Skip to content

Instantly share code, notes, and snippets.

View fayaz07's full-sized avatar
:octocat:
commit, rebase and merge

Mohammad Fayaz fayaz07

:octocat:
commit, rebase and merge
View GitHub Profile
@fayaz07
fayaz07 / speak.gradle
Last active June 26, 2024 14:01
🚧 voice out android project's build status(Global configuration)
/**
* Place the file at $HOME/.gradle/init.d/speak.gradle
**/
gradle.ext.projectName = ""
gradle.ext.taskMapping = [
'assembleDevDebug': 'Running debug build',
'connectedCheck': 'Running UI Tests',
'connectedDevDebugAndroidTest': 'Running UI Tests - with dev flavour and debug mode',
'connectedProdDebugAndroidTest': 'Running UI Tests - with prod flavour and debug mode',
var job: Job? = null
fun makeApiCall() {
if (job?.isActive == true) {
job?.cancel()
}
job = viewModelScope.launch {
// ... your API call
}
}
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id 'kotlin-kapt'
}
dependencies {
def room_version = "2.4.3"
class MViewModelFactory(private val todoDao: TodoDao) : ViewModelProvider.Factory {
override fun <T : ViewModel> create(modelClass: Class<T>): T {
return when(modelClass) {
MainViewModel::class.java -> {
MainViewModel(todoDao) as T
}
CreateViewModel::class.java -> {
CreateViewModel(todoDao) as T
}
else -> {
class MainViewModel(private val todoDao: TodoDao) : ViewModel() {
fun getTodos() = todoDao.getList().asLiveData()
fun toggleTodoStatus(id: Int, updatedStatus: Boolean) {
viewModelScope.launch {
todoDao.toggleTodo(id, updatedStatus)
}
}
class CreateViewModel(private val todoDao: TodoDao) : ViewModel() {
fun create(task: String) {
viewModelScope.launch {
todoDao.insert(NewTodo(task))
}
}
}
package com.mohammadfayaz.todo.ui.create
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import com.mohammadfayaz.todo.R
import com.mohammadfayaz.todo.data.DbService
import com.mohammadfayaz.todo.data.NewTodo
import com.mohammadfayaz.todo.data.TodoDao
class CreateTodoActivity : AppCompatActivity() {
lateinit var taskField: EditText
lateinit var saveButton: Button
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_create_todo)
taskField = findViewById(R.id.newTodoTextField)
class MainActivity : AppCompatActivity() {
lateinit var recyclerView: RecyclerView
lateinit var adapter: TodoAdapter
lateinit var fab: FloatingActionButton
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)