Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 18 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,10 @@ A self-care reminder app. It reminds users to stretch, drink water, to have good

**Required Must-have Stories**

* Notify users to stretch, drink water, posture
* Allow users to input custom tasks
* Implement timer for each task
* Show how much time is left on the timer per task
[X] Notify users to stretch, drink water, posture
[X] Allow users to input custom tasks
[ ] Implement timer for each task
[ ] Show how much time is left on the timer per task

**Optional Nice-to-have Stories**

Expand All @@ -48,18 +48,18 @@ A self-care reminder app. It reminds users to stretch, drink water, to have good

### 2. Screen Archetypes

* Notify users about tasks (Stream)
* Notify users to stretch, drink water, posture
* Allow users to input custom tasks
* Implement timer for each task
* Calender/Scheduler (Profile/Detail)
* User can press on date to see what reminders are on that day
* Full calender view of month
* Creating new tasks (Creation)
* Name of task
* Date/time
[X] Notify users about tasks (Stream)
[X] Notify users to stretch, drink water, posture
[X] Allow users to input custom tasks
[X] Implement timer for each task
[X] Calender/Scheduler (Profile/Detail)
[X] User can press on date to see what reminders are on that day
[X] Full calender view of month
[X] Creating new tasks (Creation)
[X] Name of task
[X] Date/time
* Frequency (how often the timer goes off, if needed)
* Extra notes
[X] Extra notes
* Point Shop/Usage
* Use the points gained from keeping up with schedule to get/customize avatars

Expand Down Expand Up @@ -142,3 +142,6 @@ A self-care reminder app. It reminds users to stretch, drink water, to have good
#### Walkthrough Sprint 3
<img src='projectwalkthrough3.gif' title='Video Walkthrough' width='' alt='Video Walkthrough' />


#### Walkthrough Sprint 4
<img src='walkthrough.gif' title='Video Walkthrough' width='' alt='Video Walkthrough' />
17 changes: 17 additions & 0 deletions app/src/main/java/com/example/myapplication/ItemViewModel.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package com.example.myapplication;

import android.content.ClipData;

import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;

public class ItemViewModel extends ViewModel {
private final MutableLiveData<ClipData.Item> selectedItem = new MutableLiveData<ClipData.Item>();
public void selectItem(ClipData.Item item) {
selectedItem.setValue(item);
}
public LiveData<ClipData.Item> getSelectedItem() {
return selectedItem;
}
}
25 changes: 18 additions & 7 deletions app/src/main/java/com/example/myapplication/MainActivity.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.example.myapplication;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.MenuItem;

import androidx.annotation.NonNull;
Expand All @@ -15,11 +15,10 @@
import com.example.myapplication.fragments.ComposeFragment;
import com.google.android.material.bottomnavigation.BottomNavigationView;

public class MainActivity extends AppCompatActivity {
final FragmentManager fragmentManager = getSupportFragmentManager();

Context context;
import org.parceler.Parcels;

public class MainActivity extends AppCompatActivity implements ComposeFragment.OnDataPass {
final FragmentManager fragmentManager = getSupportFragmentManager();
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Expand Down Expand Up @@ -61,11 +60,14 @@ public boolean onNavigationItemSelected(@NonNull MenuItem item) {
// do something here
fragment = new CalendarFragment();
break;
case R.id.action_reminderlist:
fragment = new ReminderListFragment();
break;
case R.id.action_compose:
fragment = new ComposeFragment();
break;
case R.id.action_logout:
fragment = new StretchlistActivity();
case R.id.action_stretches:
fragment = new StretchListFragment();
break;
default: return true;
}
Expand All @@ -79,4 +81,13 @@ public boolean onNavigationItemSelected(@NonNull MenuItem item) {
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}

@Override
public void onDataPass(Reminder r) { //todo: pass properly
Bundle bundle = new Bundle();
bundle.putParcelable("reminder",Parcels.wrap(r)); //todo: figure out why time binds to notes
ReminderListFragment frag = new ReminderListFragment();
frag.setArguments(bundle);
fragmentManager.beginTransaction().replace(R.id.flContainer,frag).commit();
}
}
59 changes: 59 additions & 0 deletions app/src/main/java/com/example/myapplication/Remindar.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
package com.example.myapplication;

public class Remindar {

private String name;
private String date;
private int hour;
private int min;
private String notes;


public Remindar(String name, String date, int hour, int min, String notes){
this.name = name;
this.date = date;
this.hour = hour;
this.min = min;
this.notes = notes;
}

public String getName(){
return name;
}

public String getDate(){
return date;
}

public int getHour(){
return hour;
}

public int getMin(){
return min;
}

public String getNotes(){
return notes;
}

public void setName(String nName){
name = nName;
}

public void setDate(String nDate){
date = nDate;
}

public void setHour(int nHour){
hour = nHour;
}

public void setMin(int nMin){
min = nMin;
}

public void setNotes(String nNotes){
notes = nNotes;
}
}
79 changes: 79 additions & 0 deletions app/src/main/java/com/example/myapplication/RemindarAdapter.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
package com.example.myapplication;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

import java.util.List;

public class RemindarAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder>{
private static final int TYPE = 1;
private final Context context;
private final List<Object> listRecyclerItem;


public RemindarAdapter(Context context, List<Object> listRecyclerItem) {
this.context = context;
this.listRecyclerItem = listRecyclerItem;
}

@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int i) {
switch (i) {
case TYPE:

default:

View layoutView = LayoutInflater.from(parent.getContext()).inflate(
R.layout.item_reminder, parent, false);

return new ItemViewHolder((layoutView));
}

}

@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int i) {
int viewType = getItemViewType(i);

switch (viewType) {
case TYPE:
default:

ItemViewHolder itemViewHolder = (ItemViewHolder) holder;
Remindar remindar = (Remindar) listRecyclerItem.get(i);

itemViewHolder.tvReminder.setText(remindar.getName());
itemViewHolder.tvRNote.setText(remindar.getNotes());
itemViewHolder.tvRTime.setText(remindar.getHour()+":"+remindar.getMin());
}
}

public class ItemViewHolder extends RecyclerView.ViewHolder {

ImageView ivIcon;
TextView tvReminder;
TextView tvRNote;
TextView tvRTime;

public ItemViewHolder(@NonNull View itemView) {
super(itemView);
ivIcon = itemView.findViewById(R.id.ivIcon);
tvReminder = itemView.findViewById(R.id.tvReminder);
tvRNote = itemView.findViewById(R.id.tvRNote);
tvRTime = itemView.findViewById(R.id.tvRTime);
}
}

@Override
public int getItemCount() {
return listRecyclerItem.size();
}
}
38 changes: 37 additions & 1 deletion app/src/main/java/com/example/myapplication/Reminder.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
package com.example.myapplication;

public class Reminder {
import android.os.Parcelable;

import android.os.Parcel;

import static java.lang.Integer.valueOf;

public class Reminder implements Parcelable {

private String name;
private String date;
Expand Down Expand Up @@ -36,4 +42,34 @@ public int getMin(){
public String getNotes(){
return notes;
}

//parcel
public Reminder(Parcel in){
String[] data = new String[5];
in.readStringArray(data);
this.name = data[0];
this.date = data[1];
this.hour = Integer.parseInt(data[2]);
this.min = Integer.parseInt(data[3]);
this.notes = data[4];
}

@Override
public int describeContents() {
return 0;
}

@Override
public void writeToParcel(android.os.Parcel dest, int flags) {
dest.writeStringArray(new String[] {this.name, this.date, Integer.toString(this.hour),Integer.toString(this.min),this.notes});
}
public static final Parcelable.Creator CREATOR = new Parcelable.Creator(){
public Reminder createFromParcel(Parcel in){
return new Reminder(in);
}

public Reminder[] newArray(int size) {
return new Reminder[size];
}
};
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ public class ReminderAdapter extends RecyclerView.Adapter<ReminderAdapter.ViewHo
Context context;
List<Reminder> reminders;

//pass context & reminders TODO: load in based on date?

public ReminderAdapter(Context context, List<Reminder> reminders) {
this.context = context;
Expand Down Expand Up @@ -68,7 +67,7 @@ public ViewHolder(@NonNull View itemView) {
ivIcon = itemView.findViewById(R.id.ivIcon);
tvReminder = itemView.findViewById(R.id.tvReminder);
tvRNote = itemView.findViewById(R.id.tvRNote);
tvRTime = itemView.findViewById(R.id.tvRNote);
tvRTime = itemView.findViewById(R.id.tvRTime);
}

public void bind(Reminder reminder) {
Expand Down
Loading