diff --git a/app/src/main/java/com/ireallydontcare/viet/posseidon/MainActivity.java b/app/src/main/java/com/ireallydontcare/viet/posseidon/MainActivity.java index 6b2c6d42ba3bbaa689dbb08c842cbc2e44e78129..72e24943c5cb41190b8b77689a5d453e6a7ee579 100644 --- a/app/src/main/java/com/ireallydontcare/viet/posseidon/MainActivity.java +++ b/app/src/main/java/com/ireallydontcare/viet/posseidon/MainActivity.java @@ -98,6 +98,7 @@ public class MainActivity extends AppCompatActivity public void onSubjectSelected(Subject subject) { Intent showDetailsIntent = new Intent(); showDetailsIntent.setClass(MainActivity.this, SubjectActivity.class); + showDetailsIntent.putExtra("SUBJECT.ID",subject.id); startActivity(showDetailsIntent); } diff --git a/app/src/main/java/com/ireallydontcare/viet/posseidon/SubjectActivity.java b/app/src/main/java/com/ireallydontcare/viet/posseidon/SubjectActivity.java index 0d7fa896502de0204e949c91d4c45ae00106ebe8..9b4acc7f2987b29557acf9096ed4ea15055d486d 100644 --- a/app/src/main/java/com/ireallydontcare/viet/posseidon/SubjectActivity.java +++ b/app/src/main/java/com/ireallydontcare/viet/posseidon/SubjectActivity.java @@ -1,5 +1,6 @@ package com.ireallydontcare.viet.posseidon; +import android.app.DatePickerDialog; import android.os.Bundle; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; @@ -7,12 +8,16 @@ import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.View; +import com.ireallydontcare.viet.posseidon.fragments.NewDialogEventFragment; +import com.ireallydontcare.viet.posseidon.fragments.NewDialogSubjectFragment; import com.ireallydontcare.viet.posseidon.model.Subject; +import java.util.Calendar; + public class SubjectActivity extends AppCompatActivity { - public static final String SUBJECT_OBJECT_ID= "subject_object_ID"; + public static final String SUBJECT_OBJECT_ID= "SUBJECT.ID"; @Override @@ -22,12 +27,11 @@ public class SubjectActivity extends AppCompatActivity { Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); - FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); + FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fabevent); fab.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG) - .setAction("Action", null).show(); + new NewDialogEventFragment().show(getSupportFragmentManager(), NewDialogEventFragment.TAG); } }); diff --git a/app/src/main/java/com/ireallydontcare/viet/posseidon/data/EventDao.java b/app/src/main/java/com/ireallydontcare/viet/posseidon/data/EventDao.java index da90d7ba376822b4f2b54c179ca221c8febea158..381f82041f393c9d2ec015039d373a6f02d09aa1 100644 --- a/app/src/main/java/com/ireallydontcare/viet/posseidon/data/EventDao.java +++ b/app/src/main/java/com/ireallydontcare/viet/posseidon/data/EventDao.java @@ -6,22 +6,25 @@ import android.arch.persistence.room.Insert; import android.arch.persistence.room.Query; import android.arch.persistence.room.Update; -import com.ireallydontcare.viet.posseidon.model.Subject; +import com.ireallydontcare.viet.posseidon.model.Event; import java.util.List; @Dao public interface EventDao { - @Query("SELECT * FROM subjectitem") - List<Subject> getAll(); + @Query("SELECT * FROM eventitem") + List<Event> getAll(); + + @Query("SELECT * FROM eventitem where subjectid = :subjectid") + List<Event> getAllBySubject(Long subjectid); @Insert - long insert(Subject subjectitem); + long insert(Event eventitem); @Update - void update(Subject subjectitem); + void update(Event eventitem); @Delete - void deleteItem(Subject subjectitem); + void deleteItem(Event eventitem); } diff --git a/app/src/main/java/com/ireallydontcare/viet/posseidon/data/EventDatabase.java b/app/src/main/java/com/ireallydontcare/viet/posseidon/data/EventDatabase.java index ffd54f102ec5f33b7d3ac80dcff2e9f9adfc53af..9f330bf008279e8b38f10d761f3038cf1b51c516 100644 --- a/app/src/main/java/com/ireallydontcare/viet/posseidon/data/EventDatabase.java +++ b/app/src/main/java/com/ireallydontcare/viet/posseidon/data/EventDatabase.java @@ -4,10 +4,10 @@ package com.ireallydontcare.viet.posseidon.data; import android.arch.persistence.room.Database; import android.arch.persistence.room.RoomDatabase; -import com.ireallydontcare.viet.posseidon.model.Subject; +import com.ireallydontcare.viet.posseidon.model.Event; @Database( - entities = {Subject.class}, + entities = {Event.class}, version = 1 ) public abstract class EventDatabase extends RoomDatabase { diff --git a/app/src/main/java/com/ireallydontcare/viet/posseidon/data/SubjectDatabase.java b/app/src/main/java/com/ireallydontcare/viet/posseidon/data/SubjectDatabase.java index a0ab0f595e7bf27ce29ed00b0857e9046bbf7f30..63b4915ca0cd1a72dcf3df0deade7f0601429501 100644 --- a/app/src/main/java/com/ireallydontcare/viet/posseidon/data/SubjectDatabase.java +++ b/app/src/main/java/com/ireallydontcare/viet/posseidon/data/SubjectDatabase.java @@ -4,7 +4,6 @@ package com.ireallydontcare.viet.posseidon.data; import android.arch.persistence.room.Database; import android.arch.persistence.room.RoomDatabase; - import com.ireallydontcare.viet.posseidon.model.Subject; @Database( diff --git a/app/src/main/java/com/ireallydontcare/viet/posseidon/fragments/NewDialogEventFragment.java b/app/src/main/java/com/ireallydontcare/viet/posseidon/fragments/NewDialogEventFragment.java new file mode 100644 index 0000000000000000000000000000000000000000..661cb9c58f41e270cfd8426e63997206e628c833 --- /dev/null +++ b/app/src/main/java/com/ireallydontcare/viet/posseidon/fragments/NewDialogEventFragment.java @@ -0,0 +1,123 @@ +package com.ireallydontcare.viet.posseidon.fragments; + +import android.app.DatePickerDialog; +import android.app.Dialog; +import android.app.TimePickerDialog; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.v4.app.DialogFragment; + +import android.support.v7.app.AlertDialog; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.Button; +import android.widget.DatePicker; +import android.widget.EditText; +import android.widget.TimePicker; + +import com.ireallydontcare.viet.posseidon.R; +import com.ireallydontcare.viet.posseidon.SubjectActivity; + + +import java.util.Calendar; + +public class NewDialogEventFragment extends DialogFragment { + + public static final String TAG = "NewEventItemDialogFragment"; + + private Button dateButton; + private Button timeButton; + + + public int asd; + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); +// if (activity instanceof NewDialogSubjectFragment.NewSubjectDialogListener) { +// listener = (NewDialogSubjectFragment.NewSubjectDialogListener) activity; +// } else { +// throw new RuntimeException("Activity must implement the NewShoppingItemDialogListener interface!"); +// } + + + } + + private View getContentView(){ + View contentView = LayoutInflater.from(getContext()).inflate(R.layout.dialog_new_event_item, null); + dateButton = (Button) contentView.findViewById(R.id.dateButton); + dateButton.setOnClickListener( new View.OnClickListener(){ + @Override + public void onClick(View view) { + onDateSelected(); + } + }); + timeButton = (Button) contentView.findViewById(R.id.timeButton); + timeButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + onTimeSelected(); + } + }); + return contentView; + } + + @NonNull + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + super.onCreateDialog(savedInstanceState); + return new AlertDialog.Builder(requireContext()) + .setTitle(R.string.new_event_item) + .setView(getContentView()) + .create(); + } + + Calendar myCalendar = Calendar.getInstance(); + + DatePickerDialog.OnDateSetListener date = new DatePickerDialog.OnDateSetListener() { + + @Override + public void onDateSet(DatePicker view, int year, int monthOfYear, + int dayOfMonth) { + // TODO Auto-generated method stub + //updateLabel(); + setDate(year, monthOfYear, dayOfMonth); + } + + }; + + + public void onDateSelected(){ + new DatePickerDialog(getActivity(), date, myCalendar + .get(Calendar.YEAR), myCalendar.get(Calendar.MONTH), + myCalendar.get(Calendar.DAY_OF_MONTH)).show(); + } + + public void onTimeSelected(){ + Calendar mcurrentTime = Calendar.getInstance(); + int hour = mcurrentTime.get(Calendar.HOUR_OF_DAY); + int minute = mcurrentTime.get(Calendar.MINUTE); + + TimePickerDialog mTimePicker; + mTimePicker = new TimePickerDialog(getActivity(), new TimePickerDialog.OnTimeSetListener() { + @Override + public void onTimeSet(TimePicker timePicker, int selectedHour, int selectedMinute) { + + setTime(selectedHour,selectedMinute); + + } + }, hour, minute, true); + mTimePicker.setTitle("Select Time"); + mTimePicker.show(); + + } + + public void setDate(int year, int monthOfYear, + int dayOfMonth){ + dateButton.setText("Set"); + } + public void setTime(int selectedHour, int selectedMinute){ + timeButton.setText("Set"); + } +} diff --git a/app/src/main/java/com/ireallydontcare/viet/posseidon/model/Event.java b/app/src/main/java/com/ireallydontcare/viet/posseidon/model/Event.java index cab81aa0d0236e1acee8cfe5ab9befe220d3aa97..5c7c5a294c7b5474f59d73cf6970cc06e33a567c 100644 --- a/app/src/main/java/com/ireallydontcare/viet/posseidon/model/Event.java +++ b/app/src/main/java/com/ireallydontcare/viet/posseidon/model/Event.java @@ -3,19 +3,16 @@ package com.ireallydontcare.viet.posseidon.model; import android.arch.persistence.room.ColumnInfo; import android.arch.persistence.room.Entity; import android.arch.persistence.room.PrimaryKey; -import android.arch.persistence.room.TypeConverter; -import java.util.Date; - -@Entity(tableName = "eventItem") +@Entity(tableName = "eventitem") public class Event { - @ColumnInfo(name = "date") - Date time; + @ColumnInfo(name = "datetime") + public String datetime; @ColumnInfo(name = "subjectid") - Long SubjectId; + public Long SubjectId; @ColumnInfo(name = "eventid") @PrimaryKey(autoGenerate = true) diff --git a/app/src/main/java/com/ireallydontcare/viet/posseidon/model/Subject.java b/app/src/main/java/com/ireallydontcare/viet/posseidon/model/Subject.java index bb2c484e5fe24276ef0320bfa55284dc3009cd65..32d15b57aae17a2325ab2d29e723e3e9566523c4 100644 --- a/app/src/main/java/com/ireallydontcare/viet/posseidon/model/Subject.java +++ b/app/src/main/java/com/ireallydontcare/viet/posseidon/model/Subject.java @@ -4,16 +4,11 @@ package com.ireallydontcare.viet.posseidon.model; import android.arch.persistence.room.ColumnInfo; import android.arch.persistence.room.Entity; import android.arch.persistence.room.PrimaryKey; -import android.arch.persistence.room.TypeConverter; -import java.util.ArrayList; -import java.util.List; @Entity(tableName = "subjectitem") public class Subject { - - @ColumnInfo(name = "id") @PrimaryKey(autoGenerate = true) public Long id; diff --git a/app/src/main/res/layout/activity_subject.xml b/app/src/main/res/layout/activity_subject.xml index f59937b637baf20f268606a63b4c6a5f30bf5cff..32898aa7af2834631c938e4bbfeaa73202f47d2a 100644 --- a/app/src/main/res/layout/activity_subject.xml +++ b/app/src/main/res/layout/activity_subject.xml @@ -23,11 +23,11 @@ <include layout="@layout/content_subject" /> <android.support.design.widget.FloatingActionButton - android:id="@+id/fab" + android:id="@+id/fabevent" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|end" android:layout_margin="@dimen/fab_margin" - app:srcCompat="@android:drawable/ic_dialog_email" /> + app:srcCompat="@drawable/ic_add_white_36dp" /> </android.support.design.widget.CoordinatorLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/content_subject.xml b/app/src/main/res/layout/content_subject.xml index 2d3681cfe97f97717820bdf6627d604b7e4d2bcc..1672efadc740750fe00ef03d4d56a709468dd28b 100644 --- a/app/src/main/res/layout/content_subject.xml +++ b/app/src/main/res/layout/content_subject.xml @@ -8,4 +8,12 @@ tools:context=".SubjectActivity" tools:showIn="@layout/activity_subject"> + <android.support.v7.widget.RecyclerView + xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:app="http://schemas.android.com/apk/res-auto" + android:id="@+id/EventRecyclerView" + android:layout_width="match_parent" + android:layout_height="match_parent" + app:layout_behavior="@string/appbar_scrolling_view_behavior" + /> </android.support.constraint.ConstraintLayout> \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_new_event_item.xml b/app/src/main/res/layout/dialog_new_event_item.xml new file mode 100644 index 0000000000000000000000000000000000000000..f8d325729836c9107d4ce06de23e4ddb25cd1a04 --- /dev/null +++ b/app/src/main/res/layout/dialog_new_event_item.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout + xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" + android:padding="24dip"> + + <TextView + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="Type"/> + + <EditText + android:id="@+id/TypeName" + android:layout_width="match_parent" + android:layout_height="wrap_content"/> + + <Button + android:id="@+id/dateButton" + android:layout_width="match_parent" + android:layout_height="wrap_content" /> + <Button + android:id="@+id/timeButton" + android:layout_width="match_parent" + android:layout_height="wrap_content" /> +</LinearLayout> \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9b7b22e8363964b7599dcec725e41c94b90219cc..a042ec732a9d723951a60f0f861e8f48bdd1a315 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -9,4 +9,5 @@ <string name="ok">Ok</string> <string name="cancel">Cancel</string> <string name="title_activity_subject">SubjectActivity</string> + <string name="new_event_item">New event</string> </resources> \ No newline at end of file