Skip to content

Instantly share code, notes, and snippets.

View larkintuckerllc's full-sized avatar

John Tucker larkintuckerllc

View GitHub Profile
@larkintuckerllc
larkintuckerllc / MainActivity.java
Last active November 27, 2017 01:14
How-to Dagger 2 with Android: Part 1 - 11
...
public class MainActivity extends AppCompatActivity {
@Inject MyExample mMyExample;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView dateTextView = findViewById(R.id.tvDate);
@larkintuckerllc
larkintuckerllc / MainActivity.java
Created November 27, 2017 01:33
Android Room: Beyond the Codelab - 1
...
public void onClick(DialogInterface dialog, int which) {
String name= String.valueOf(nameEditText.getText());
long date = (new Date()).getTime();
mTodosViewModel.addTodo(name, date);
}
...
@larkintuckerllc
larkintuckerllc / TodosViewModel.java
Created November 27, 2017 01:34
Android Room: Beyond the Codelab - 2
...
public void addTodo(String name, long date) {
Todo todo = new Todo();
todo.name = name;
todo.date = date;
mDb.todoModel().insertTodo(todo);
}
...
@larkintuckerllc
larkintuckerllc / Todo.java
Created November 27, 2017 01:35
Android Room: Beyond the Codelab - 3
...
@Entity
public class Todo {
@PrimaryKey(autoGenerate = true)
public int id;
public String name;
public long date;
@larkintuckerllc
larkintuckerllc / TodoDao.java
Created November 27, 2017 01:39
Android Room: Beyond the Codelab - 4
...
@Dao
public interface TodoDao {
@Query("SELECT * FROM Todo")
LiveData<List<Todo>> findAllTodos();
@Insert(onConflict = REPLACE)
void insertTodo(Todo todo);
@larkintuckerllc
larkintuckerllc / TodosViewModel.java
Created November 27, 2017 01:40
Android Room: Beyond the Codelab - 5
...
public final LiveData<List<Todo>> todos;
private AppDatabase mDb;
public TodosViewModel(Application application) {
super(application);
mDb = AppDatabase.getDatabase(getApplication());
todos = mDb.todoModel().findAllTodos();
}
...
@larkintuckerllc
larkintuckerllc / MainActivity.java
Created November 27, 2017 01:41
Android Room: Beyond the Codelab - 6
...
mTodosViewModel.todos.observe(this, (todos -> {
DiffUtil.DiffResult result = DiffUtil.calculateDiff(new DiffUtil.Callback() {
...
});
result.dispatchUpdatesTo(todosAdapter);
mTodos = todos;
}));
...
@larkintuckerllc
larkintuckerllc / TodosViewModel.java
Created November 27, 2017 01:42
Android Room: Beyond the Codelab - 7
...
public void addTodo(String name, long date) {
Todo todo = new Todo();
todo.name = name;
todo.date = date;
new Thread(() -> {
mDb.todoModel().insertTodo(todo);
}).start();
}
@larkintuckerllc
larkintuckerllc / AppDatabase.java
Created November 27, 2017 01:43
Android Room: Beyond the Codelab - 8
...
Room.databaseBuilder(context.getApplicationContext(),
AppDatabase.class, "com.larkintuckerllc.room.db")
.build();
...
@larkintuckerllc
larkintuckerllc / MainActivity.java
Created November 27, 2017 01:44
Android Room: Beyond the Codelab - 9
...
mTodosViewModel.todos.observe(this, (todos -> {
new Thread(() -> {
DiffUtil.DiffResult result = DiffUtil.calculateDiff(new DiffUtil.Callback() {
...
});
self.runOnUiThread(() -> {
result.dispatchUpdatesTo(todosAdapter);
mTodos = todos;
mProgressDialog.hide();