Skip to content
Snippets Groups Projects
Commit a9c2fe2b authored by Vietanh Le Trung's avatar Vietanh Le Trung
Browse files

sugarorm added

parent 10acb0d3
Branches
No related tags found
No related merge requests found
package com.ireallydontcare.viet.posseidon; package com.ireallydontcare.viet.posseidon;
import android.arch.persistence.room.Room;
import android.content.Intent; import android.content.Intent;
import android.os.AsyncTask; import android.os.AsyncTask;
import android.os.Bundle; import android.os.Bundle;
...@@ -8,20 +9,25 @@ import android.support.v7.app.AppCompatActivity; ...@@ -8,20 +9,25 @@ import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View; import android.view.View;
import android.view.Menu; import android.view.Menu;
import android.view.MenuItem; import android.view.MenuItem;
import com.ireallydontcare.viet.posseidon.adapter.SubjectAdapter; 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.fragments.NewDialogSubjectFragment;
import com.ireallydontcare.viet.posseidon.model.Subject; import com.ireallydontcare.viet.posseidon.model.Subject;
import java.util.List;
public class MainActivity extends AppCompatActivity public class MainActivity extends AppCompatActivity
implements NewDialogSubjectFragment.NewSubjectDialogListener, SubjectAdapter.OnSubjectSelectedListener{ implements NewDialogSubjectFragment.NewSubjectDialogListener, SubjectAdapter.OnSubjectSelectedListener{
private RecyclerView subjectRecyclerView; private RecyclerView subjectRecyclerView;
private SubjectAdapter subjectAdapter; private SubjectAdapter subjectAdapter;
private RecyclerView.LayoutManager subjectLayoutManager; private RecyclerView.LayoutManager subjectLayoutManager;
private SubjectDatabase database;
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
...@@ -39,20 +45,31 @@ public class MainActivity extends AppCompatActivity ...@@ -39,20 +45,31 @@ public class MainActivity extends AppCompatActivity
} }
}); });
database = Room.databaseBuilder(
getApplicationContext(),
SubjectDatabase.class,
"subject-list"
).build();
subjectRecyclerView = (RecyclerView) findViewById(R.id.SubjectRecyclerView); subjectRecyclerView = (RecyclerView) findViewById(R.id.SubjectRecyclerView);
// use this setting to improve performance if you know that changes // use this setting to improve performance if you know that changes
// in content do not change the layout size of the RecyclerView // in content do not change the layout size of the RecyclerView
subjectRecyclerView.setHasFixedSize(true); subjectRecyclerView.setHasFixedSize(true);
loadItemsInBackground();
// use a linear layout manager // use a linear layout manager
subjectLayoutManager = new LinearLayoutManager(this); subjectLayoutManager = new LinearLayoutManager(this);
subjectRecyclerView.setLayoutManager(subjectLayoutManager); subjectRecyclerView.setLayoutManager(subjectLayoutManager);
// specify an adapter (see also next example) // specify an adapter (see also next example)
subjectAdapter = new SubjectAdapter(this); subjectAdapter = new SubjectAdapter(this);
subjectRecyclerView.setAdapter(subjectAdapter); subjectRecyclerView.setAdapter(subjectAdapter);
} }
@Override @Override
...@@ -90,14 +107,30 @@ public class MainActivity extends AppCompatActivity ...@@ -90,14 +107,30 @@ public class MainActivity extends AppCompatActivity
@Override @Override
protected Subject doInBackground(Void... voids) { protected Subject doInBackground(Void... voids) {
newItem.id = database.SubjectDao().insert(newItem);
return newItem; return newItem;
} }
@Override @Override
protected void onPostExecute(Subject shoppingItem) { protected void onPostExecute(Subject subject) {
subjectAdapter.addItem(shoppingItem); subjectAdapter.addItem(subject);
} }
}.execute(); }.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();
}
} }
...@@ -7,8 +7,14 @@ import android.support.v7.app.AppCompatActivity; ...@@ -7,8 +7,14 @@ import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
import android.view.View; import android.view.View;
import com.ireallydontcare.viet.posseidon.model.Subject;
public class SubjectActivity extends AppCompatActivity { public class SubjectActivity extends AppCompatActivity {
public static final String SUBJECT_OBJECT_ID= "subject_object_ID";
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
...@@ -24,6 +30,7 @@ public class SubjectActivity extends AppCompatActivity { ...@@ -24,6 +30,7 @@ public class SubjectActivity extends AppCompatActivity {
.setAction("Action", null).show(); .setAction("Action", null).show();
} }
}); });
} }
} }
...@@ -51,6 +51,12 @@ public class SubjectAdapter extends RecyclerView.Adapter<SubjectAdapter.SubjectV ...@@ -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 @Override
public int getItemCount() { public int getItemCount() {
return subjects.size(); return subjects.size();
......
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);
}
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);
}
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
package com.ireallydontcare.viet.posseidon.model; 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 { 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;
} }
...@@ -6,9 +6,14 @@ import android.arch.persistence.room.Entity; ...@@ -6,9 +6,14 @@ import android.arch.persistence.room.Entity;
import android.arch.persistence.room.PrimaryKey; import android.arch.persistence.room.PrimaryKey;
import android.arch.persistence.room.TypeConverter; import android.arch.persistence.room.TypeConverter;
import java.util.ArrayList;
import java.util.List;
@Entity(tableName = "subjectitem") @Entity(tableName = "subjectitem")
public class Subject { public class Subject {
@ColumnInfo(name = "id") @ColumnInfo(name = "id")
@PrimaryKey(autoGenerate = true) @PrimaryKey(autoGenerate = true)
public Long id; public Long id;
...@@ -22,7 +27,6 @@ public class Subject { ...@@ -22,7 +27,6 @@ public class Subject {
@ColumnInfo(name = "description") @ColumnInfo(name = "description")
public String description; public String description;
@ColumnInfo(name="credit") @ColumnInfo(name="credit")
public int credit; public int credit;
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment