From a9c2fe2bbd3fee68e4d24c524223b615d6e3ae2f Mon Sep 17 00:00:00 2001 From: Vietanh Le Trung <vietanh.le.trung@ericsson.com> Date: Sat, 24 Nov 2018 20:10:02 +0100 Subject: [PATCH] sugarorm added --- .../viet/posseidon/MainActivity.java | 37 ++++++++++++++++++- .../viet/posseidon/SubjectActivity.java | 7 ++++ .../posseidon/adapter/SubjectAdapter.java | 6 +++ .../viet/posseidon/data/EventDao.java | 27 ++++++++++++++ .../viet/posseidon/data/SubjectDao.java | 27 ++++++++++++++ .../viet/posseidon/data/SubjectDatabase.java | 16 ++++++++ .../viet/posseidon/model/Event.java | 23 ++++++++++++ .../viet/posseidon/model/Subject.java | 6 ++- 8 files changed, 146 insertions(+), 3 deletions(-) create mode 100644 app/src/main/java/com/ireallydontcare/viet/posseidon/data/EventDao.java create mode 100644 app/src/main/java/com/ireallydontcare/viet/posseidon/data/SubjectDao.java create mode 100644 app/src/main/java/com/ireallydontcare/viet/posseidon/data/SubjectDatabase.java 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 abc2993..6b2c6d4 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 ffb22e3..0d7fa89 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 f70c9f8..3db2b6c 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 0000000..da90d7b --- /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 0000000..bfb1ecb --- /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 0000000..a0ab0f5 --- /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 f4b2a71..cab81aa 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 82826e6..bb2c484 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; } -- GitLab