A fork of Simple Time Tracker with WearOS support. (Now integrated upstream)
0

Configure Feed

Select the types of activity you want to include in your feed.

code review, change some extensions

razeeman (Sep 25, 2021, 8:02 PM +0300) 04af1639 c6c5a818

+34 -29
+1 -1
build.gradle.kts
··· 3 3 buildscript { 4 4 repositories { 5 5 google() 6 - jcenter() 6 + jcenter() // jcenter will keep repos indefinitely and some repos wasn't moved yet (ex. flexbox) 7 7 maven("https://plugins.gradle.org/m2/") 8 8 } 9 9 dependencies {
+8 -13
core/src/main/java/com/example/util/simpletimetracker/core/extension/ActivityExtensions.kt
··· 1 1 package com.example.util.simpletimetracker.core.extension 2 2 3 3 import android.app.Activity 4 - import android.content.Context 5 4 import android.view.View 6 5 import android.view.inputmethod.InputMethodManager 6 + import androidx.core.content.getSystemService 7 7 import androidx.fragment.app.Fragment 8 8 import androidx.fragment.app.FragmentActivity 9 9 10 - fun FragmentActivity.hideKeyboard() { 11 - this.currentFocus?.apply { 12 - (getSystemService(Context.INPUT_METHOD_SERVICE) as? InputMethodManager) 13 - ?.hideSoftInputFromWindow(windowToken, 0) 14 - } 10 + fun Activity.hideKeyboard(flags: Int = 0) { 11 + val currentFocus = currentFocus ?: return 12 + getSystemService<InputMethodManager>()?.hideSoftInputFromWindow(currentFocus.windowToken, flags) 15 13 } 16 14 17 - fun Activity?.showKeyboard(view: View) { 18 - (this?.getSystemService(Context.INPUT_METHOD_SERVICE) as? InputMethodManager) 19 - ?.apply { 20 - currentFocus?.clearFocus() 21 - view.requestFocus() 22 - showSoftInput(view, InputMethodManager.SHOW_IMPLICIT) 23 - } 15 + fun Activity.showKeyboard(view: View) { 16 + currentFocus?.clearFocus() 17 + view.requestFocus() 18 + getSystemService<InputMethodManager>()?.showSoftInput(view, InputMethodManager.SHOW_IMPLICIT) 24 19 } 25 20 26 21 fun FragmentActivity.getAllFragments(): List<Fragment> {
+3
core/src/main/java/com/example/util/simpletimetracker/core/extension/CollectionExtensions.kt
··· 1 1 package com.example.util.simpletimetracker.core.extension 2 2 3 + /** 4 + * Adds item if it not in the list, otherwise removes it from the list. 5 + */ 3 6 fun <T> MutableList<T>.addOrRemove(item: T) { 4 7 if (item in this) remove(item) else add(item) 5 8 }
+1 -4
core/src/main/java/com/example/util/simpletimetracker/core/extension/LiveDataExtensions.kt
··· 17 17 ) 18 18 } 19 19 20 - fun <T> LiveData<T>.post(data: T) = 21 - (this as MutableLiveData).postValue(data) 22 - 23 20 fun <T> LiveData<T>.set(data: T) { 24 - (this as MutableLiveData).value = data 21 + if (this is MutableLiveData) value = data 25 22 }
+4 -4
features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/cardSize/viewModel/CardSizeViewModel.kt
··· 6 6 import androidx.lifecycle.viewModelScope 7 7 import com.example.util.simpletimetracker.feature_base_adapter.ViewHolderType 8 8 import com.example.util.simpletimetracker.feature_base_adapter.loader.LoaderViewData 9 - import com.example.util.simpletimetracker.core.extension.post 9 + import com.example.util.simpletimetracker.core.extension.set 10 10 import com.example.util.simpletimetracker.core.mapper.RecordTypeViewDataMapper 11 11 import com.example.util.simpletimetracker.core.view.buttonsRowView.ButtonsRowViewData 12 12 import com.example.util.simpletimetracker.domain.interactor.PrefsInteractor ··· 77 77 78 78 private fun updateButtonsViewData() { 79 79 val data = loadButtonsViewData() 80 - buttons.post(data) 80 + buttons.set(data) 81 81 } 82 82 83 83 private fun updateDefaultButton() = viewModelScope.launch { 84 84 val data = loadDefaultButtonViewData() 85 - defaultButton.post(data) 85 + defaultButton.set(data) 86 86 } 87 87 88 88 private fun updateRecordTypes() = viewModelScope.launch { 89 89 val data = loadRecordTypes() 90 - recordTypes.post(data) 90 + recordTypes.set(data) 91 91 } 92 92 93 93 private fun loadButtonsViewData(): List<ViewHolderType> {
+4 -4
features/feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/chartFilter/viewModel/ChartFilterViewModel.kt
··· 8 8 import com.example.util.simpletimetracker.feature_base_adapter.category.CategoryViewData 9 9 import com.example.util.simpletimetracker.feature_base_adapter.loader.LoaderViewData 10 10 import com.example.util.simpletimetracker.core.extension.addOrRemove 11 - import com.example.util.simpletimetracker.core.extension.post 11 + import com.example.util.simpletimetracker.core.extension.set 12 12 import com.example.util.simpletimetracker.core.utils.UNTRACKED_ITEM_ID 13 13 import com.example.util.simpletimetracker.core.view.buttonsRowView.ButtonsRowViewData 14 14 import com.example.util.simpletimetracker.feature_base_adapter.recordType.RecordTypeViewData ··· 121 121 122 122 private fun updateFilterTypeViewData() { 123 123 val data = loadFilterTypeViewData() 124 - filterTypeViewData.post(data) 124 + filterTypeViewData.set(data) 125 125 } 126 126 127 127 private fun loadFilterTypeViewData(): List<ViewHolderType> { ··· 144 144 145 145 private fun updateRecordTypesViewData() = viewModelScope.launch { 146 146 val data = loadRecordTypesViewData() 147 - types.post(data) 147 + types.set(data) 148 148 } 149 149 150 150 private suspend fun loadRecordTypesViewData(): List<ViewHolderType> { ··· 173 173 174 174 private fun updateCategoriesViewData() = viewModelScope.launch { 175 175 val data = loadCategoriesViewData() 176 - types.post(data) 176 + types.set(data) 177 177 } 178 178 179 179 private suspend fun loadCategoriesViewData(): List<ViewHolderType> {
+13 -3
features/feature_views/src/main/java/com/example/util/simpletimetracker/feature_views/extension/DisplayExtensions.kt
··· 1 1 package com.example.util.simpletimetracker.feature_views.extension 2 2 3 3 import android.content.res.Resources 4 + import android.util.TypedValue 5 + import android.util.TypedValue.COMPLEX_UNIT_DIP 6 + import android.util.TypedValue.COMPLEX_UNIT_SP 7 + import kotlin.math.roundToInt 4 8 5 - fun Int.dpToPx(): Int = (this * Resources.getSystem().displayMetrics.density).toInt() 9 + fun Float.dpToPx(): Int = TypedValue.applyDimension(COMPLEX_UNIT_DIP, this, getDisplayMetrics()).roundToInt() 10 + 11 + fun Int.dpToPx(): Int = this.toFloat().dpToPx() 6 12 7 13 fun Float.pxToDp(): Int = (this / Resources.getSystem().displayMetrics.density).toInt() 8 14 9 - fun Int.pxToDp(): Int = (this / Resources.getSystem().displayMetrics.density).toInt() 15 + fun Int.pxToDp(): Int = this.toFloat().toInt() 10 16 11 - fun Int.spToPx(): Int = (this * Resources.getSystem().displayMetrics.scaledDensity).toInt() 17 + fun Float.spToPx(): Int = TypedValue.applyDimension(COMPLEX_UNIT_SP, this, getDisplayMetrics()).roundToInt() 18 + 19 + fun Int.spToPx(): Int = this.toFloat().spToPx() 20 + 21 + private fun getDisplayMetrics() = Resources.getSystem().displayMetrics