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 abc29931d2ab40e85c7f49c796126d6b4f1816ff..6b2c6d42ba3bbaa689dbb08c842cbc2e44e78129 100644 --- a/app/src/main/java/com/ireallydontcare/viet/posseidon/MainActivity.java +++ b/app/src/main/java/com/ireallydontcare/viet/posseidon/MainActivity.java @@ -1,5 +1,6 @@ package com.ireallydontcare.viet.posseidon; +import android.arch.persistence.room.Room; import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; @@ -8,20 +9,25 @@ import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; +import android.util.Log; import android.view.View; import android.view.Menu; import android.view.MenuItem; import com.ireallydontcare.viet.posseidon.adapter.SubjectAdapter; +import com.ireallydontcare.viet.posseidon.data.SubjectDatabase; import com.ireallydontcare.viet.posseidon.fragments.NewDialogSubjectFragment; import com.ireallydontcare.viet.posseidon.model.Subject; +import java.util.List; + public class MainActivity extends AppCompatActivity implements NewDialogSubjectFragment.NewSubjectDialogListener, SubjectAdapter.OnSubjectSelectedListener{ private RecyclerView subjectRecyclerView; private SubjectAdapter subjectAdapter; private RecyclerView.LayoutManager subjectLayoutManager; + private SubjectDatabase database; @Override protected void onCreate(Bundle savedInstanceState) { @@ -39,20 +45,31 @@ public class MainActivity extends AppCompatActivity } }); + database = Room.databaseBuilder( + getApplicationContext(), + SubjectDatabase.class, + "subject-list" + ).build(); + + subjectRecyclerView = (RecyclerView) findViewById(R.id.SubjectRecyclerView); // use this setting to improve performance if you know that changes // in content do not change the layout size of the RecyclerView subjectRecyclerView.setHasFixedSize(true); + loadItemsInBackground(); // use a linear layout manager subjectLayoutManager = new LinearLayoutManager(this); + + subjectRecyclerView.setLayoutManager(subjectLayoutManager); // specify an adapter (see also next example) subjectAdapter = new SubjectAdapter(this); subjectRecyclerView.setAdapter(subjectAdapter); + } @Override @@ -90,14 +107,30 @@ public class MainActivity extends AppCompatActivity @Override protected Subject doInBackground(Void... voids) { + newItem.id = database.SubjectDao().insert(newItem); return newItem; } @Override - protected void onPostExecute(Subject shoppingItem) { - subjectAdapter.addItem(shoppingItem); + protected void onPostExecute(Subject subject) { + subjectAdapter.addItem(subject); } }.execute(); }; + private void loadItemsInBackground(){ + new AsyncTask<Void, Void, List<Subject>>() { + + @Override + protected List<Subject> doInBackground(Void... voids) { + return database.SubjectDao().getAll(); + } + + @Override + protected void onPostExecute(List<Subject> subjects) { + subjectAdapter.update(subjects); + } + }.execute(); + } + } 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 ffb22e31a8297c3b4e9dc9ec1aedc3f7e21a89eb..0d7fa896502de0204e949c91d4c45ae00106ebe8 100644 --- a/app/src/main/java/com/ireallydontcare/viet/posseidon/SubjectActivity.java +++ b/app/src/main/java/com/ireallydontcare/viet/posseidon/SubjectActivity.java @@ -7,8 +7,14 @@ import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.View; +import com.ireallydontcare.viet.posseidon.model.Subject; + public class SubjectActivity extends AppCompatActivity { + + public static final String SUBJECT_OBJECT_ID= "subject_object_ID"; + + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -24,6 +30,7 @@ public class SubjectActivity extends AppCompatActivity { .setAction("Action", null).show(); } }); + } } diff --git a/app/src/main/java/com/ireallydontcare/viet/posseidon/adapter/SubjectAdapter.java b/app/src/main/java/com/ireallydontcare/viet/posseidon/adapter/SubjectAdapter.java index f70c9f8a3b5dd88fef6e6652f9db9b8630a3546b..3db2b6c1ccedee7eaaf2e524eb6f32a685f7ebf7 100644 --- a/app/src/main/java/com/ireallydontcare/viet/posseidon/adapter/SubjectAdapter.java +++ b/app/src/main/java/com/ireallydontcare/viet/posseidon/adapter/SubjectAdapter.java @@ -51,6 +51,12 @@ public class SubjectAdapter extends RecyclerView.Adapter<SubjectAdapter.SubjectV } + public void update(List<Subject> subjects){ + this.subjects.clear(); + this.subjects.addAll(subjects); + notifyDataSetChanged(); + } + @Override public int getItemCount() { return subjects.size(); 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 new file mode 100644 index 0000000000000000000000000000000000000000..da90d7ba376822b4f2b54c179ca221c8febea158 --- /dev/null +++ b/app/src/main/java/com/ireallydontcare/viet/posseidon/data/EventDao.java @@ -0,0 +1,27 @@ +package com.ireallydontcare.viet.posseidon.data; + +import android.arch.persistence.room.Dao; +import android.arch.persistence.room.Delete; +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 java.util.List; + +@Dao +public interface EventDao { + + @Query("SELECT * FROM subjectitem") + List<Subject> getAll(); + + @Insert + long insert(Subject subjectitem); + + @Update + void update(Subject subjectitem); + + @Delete + void deleteItem(Subject subjectitem); +} diff --git a/app/src/main/java/com/ireallydontcare/viet/posseidon/data/SubjectDao.java b/app/src/main/java/com/ireallydontcare/viet/posseidon/data/SubjectDao.java new file mode 100644 index 0000000000000000000000000000000000000000..bfb1ecba6a23c37ca6d114c1deb9d8ca5eb3491d --- /dev/null +++ b/app/src/main/java/com/ireallydontcare/viet/posseidon/data/SubjectDao.java @@ -0,0 +1,27 @@ +package com.ireallydontcare.viet.posseidon.data; + +import android.arch.persistence.room.Dao; +import android.arch.persistence.room.Delete; +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 java.util.List; + +@Dao +public interface SubjectDao { + + @Query("SELECT * FROM subjectitem") + List<Subject> getAll(); + + @Insert + long insert(Subject subjectitem); + + @Update + void update(Subject subjectitem); + + @Delete + void deleteItem(Subject subjectitem); +} 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 new file mode 100644 index 0000000000000000000000000000000000000000..a0ab0f595e7bf27ce29ed00b0857e9046bbf7f30 --- /dev/null +++ b/app/src/main/java/com/ireallydontcare/viet/posseidon/data/SubjectDatabase.java @@ -0,0 +1,16 @@ +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( + entities = {Subject.class}, + version = 1 +) +public abstract class SubjectDatabase extends RoomDatabase { + public abstract SubjectDao SubjectDao(); +} \ No newline at end of file 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 f4b2a7158b1444f6eea9be216c356eacfc461e0b..cab81aa0d0236e1acee8cfe5ab9befe220d3aa97 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 @@ -1,4 +1,27 @@ 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") public class Event { + + @ColumnInfo(name = "date") + Date time; + + @ColumnInfo(name = "subjectid") + Long SubjectId; + + @ColumnInfo(name = "eventid") + @PrimaryKey(autoGenerate = true) + public Long id; + + @ColumnInfo(name = "type") + public String type; + } 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 82826e62f58c65b19bad528e0141accdc7e8c6ed..bb2c484e5fe24276ef0320bfa55284dc3009cd65 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 @@ -6,9 +6,14 @@ 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; @@ -22,7 +27,6 @@ public class Subject { @ColumnInfo(name = "description") public String description; - @ColumnInfo(name="credit") public int credit; }