Skip to content

Instantly share code, notes, and snippets.

View manijshrestha's full-sized avatar

Manij Shrestha manijshrestha

View GitHub Profile
package com.manijshrestha.todolist.ui
import com.manijshrestha.todolist.data.Task
import com.manijshrestha.todolist.data.TaskDao
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.CompositeDisposable
import io.reactivex.schedulers.Schedulers
import javax.inject.Inject
class ToDoPresenter @Inject constructor(val taskDao: TaskDao) {
var tasks = ArrayList<Task>()
var presentation: ToDoPresentation? = null
fun onCreate(toDoPresentation: ToDoPresentation) {
presentation = toDoPresentation
loadTasks()
}
@Module class AppModule(private val context: Context) {
@Provides fun providesAppContext() = context
@Provides fun providesAppDatabase(context: Context): AppDatabase =
Room.databaseBuilder(context, AppDatabase::class.java, "my-todo-db").allowMainThreadQueries().build()
@Provides fun providesToDoDao(database: AppDatabase) = database.taskDao()
}
@Database(entities = arrayOf(Task::class), version = 1, exportSchema = false)
abstract class AppDatabase : RoomDatabase() {
abstract fun taskDao(): TaskDao
}
@Dao interface TaskDao {
@Query("select * from task")
fun getAllTasks(): List<Task>
@Query("select * from task where id = :p0")
fun findTaskById(id: Long): Task
@Insert(onConflict = REPLACE)
fun insertTask(task: Task)
import android.arch.persistence.room.ColumnInfo
import android.arch.persistence.room.Entity
import android.arch.persistence.room.PrimaryKey
@Entity(tableName = "task")
data class Task(@ColumnInfo(name = "completed_flag") var completed: Boolean = false,
@ColumnInfo(name = "task_desciption") var description: String) {
@ColumnInfo(name = "id")
@PrimaryKey(autoGenerate = true) var id: Long = 0
}
@manijshrestha
manijshrestha / build.gradle
Last active June 3, 2017 04:16
Include Room
dependencies {
....
compile "android.arch.persistence.room:runtime:1.0.0-alpha1"
kapt "android.arch.persistence.room:compiler:1.0.0-alpha1"
...
}
public class WeatherService {
private WeatherListener mListener;
public WeatherService(WeatherListener listener) {
this.mListener = listener;
}
public void getWeather(String cityName) {
RestAdapter adapter = new RestAdapter.Builder().setEndpoint("http://api.openweathermap.org").build();
productFlavors {
demo {
applicationId = "com.manijshrestha.weatherdemo.demo"
resValue "string", "app_name", "Demo App"
}
full {
applicationId = "com.manijshrestha.weatherdemo.full"
resValue "string", "app_name", "Full App"
}
}
@Override
public void onBackPressed() {
stopLockTask();
}