From 03f0ebe7956256042b36a3209233c2a7a40d8910 Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Mon, 18 Jul 2022 11:55:55 +0200 Subject: [PATCH] Improve error display --- fastlane/README.md | 8 -------- version.properties | 2 +- .../wearos/habitica/models/DisplayedError.kt | 2 +- .../wearos/habitica/ui/activities/BaseActivity.kt | 3 +-- .../wearos/habitica/ui/activities/MainActivity.kt | 10 ---------- .../habitica/ui/viewmodels/TaskListViewModel.kt | 6 ++++++ .../util/HabiticaCoroutineExceptionhandler.kt | 13 ++++++++++++- wearos/src/main/res/layout/logout_layout.xml | 3 ++- 8 files changed, 23 insertions(+), 24 deletions(-) diff --git a/fastlane/README.md b/fastlane/README.md index 054066702..9db559d7a 100644 --- a/fastlane/README.md +++ b/fastlane/README.md @@ -23,14 +23,6 @@ For _fastlane_ installation instructions, see [Installing _fastlane_](https://do Runs all the tests -### android testUpload - -```sh -[bundle exec] fastlane android testUpload -``` - - - ### android staff ```sh diff --git a/version.properties b/version.properties index 2931e25db..40fd533c1 100644 --- a/version.properties +++ b/version.properties @@ -1,2 +1,2 @@ NAME=4.0 -CODE=4210 \ No newline at end of file +CODE=4230 \ No newline at end of file diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/models/DisplayedError.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/DisplayedError.kt index 2ce2d96c3..a60b2174e 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/models/DisplayedError.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/models/DisplayedError.kt @@ -1,3 +1,3 @@ package com.habitrpg.wearos.habitica.models -data class DisplayedError(val title: String, val subtitle: String? = null) \ No newline at end of file +data class DisplayedError(val icon: Int, val title: String, val subtitle: String? = null) \ No newline at end of file diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/BaseActivity.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/BaseActivity.kt index a85525851..585e6de18 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/BaseActivity.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/BaseActivity.kt @@ -12,7 +12,6 @@ import com.google.android.gms.tasks.Tasks import com.google.android.gms.wearable.CapabilityClient import com.google.android.gms.wearable.MessageClient import com.google.android.gms.wearable.Wearable -import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.databinding.ActivityWrapperBinding import com.habitrpg.wearos.habitica.managers.AppStateManager import com.habitrpg.wearos.habitica.ui.viewmodels.BaseViewModel @@ -45,7 +44,7 @@ abstract class BaseActivity : ComponentActivi viewModel.errorValues.observe(this) { val intent = Intent(this, ConfirmationActivity::class.java).apply { putExtra("text", it.title) - putExtra("icon", R.drawable.error) + putExtra("icon", it.icon) } startActivity(intent) } diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/MainActivity.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/MainActivity.kt index 90489e643..7acf2df25 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/MainActivity.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/activities/MainActivity.kt @@ -83,16 +83,6 @@ class MainActivity : BaseActivity() { ) { openTasklist(TaskType.HABIT) }, - MenuItem( - TaskType.REWARD.value, - getString(R.string.rewards), - AppCompatResources.getDrawable(this, R.drawable.icon_rewards), - ContextCompat.getColor(this, R.color.watch_purple_200), - ContextCompat.getColor(this, R.color.watch_purple_700), - isHidden = true - ) { - openTasklist(TaskType.REWARD) - }, MenuItem( "stats", getString(R.string.stats), diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/TaskListViewModel.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/TaskListViewModel.kt index 17a983362..a69ff7478 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/TaskListViewModel.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/viewmodels/TaskListViewModel.kt @@ -13,6 +13,7 @@ import com.habitrpg.wearos.habitica.managers.AppStateManager import com.habitrpg.wearos.habitica.models.tasks.Task import com.habitrpg.wearos.habitica.util.ExceptionHandlerBuilder import dagger.hilt.android.lifecycle.HiltViewModel +import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.map import kotlinx.coroutines.launch @@ -56,6 +57,11 @@ class TaskListViewModel @Inject constructor( task, direction ) + if (result?.hasLeveledUp == true) { + launch(Dispatchers.Main) { + userRepository.retrieveUser() + } + } onResult(result) } } diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/util/HabiticaCoroutineExceptionhandler.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/util/HabiticaCoroutineExceptionhandler.kt index 0bdb6e956..a97962e85 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/util/HabiticaCoroutineExceptionhandler.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/util/HabiticaCoroutineExceptionhandler.kt @@ -1,10 +1,12 @@ package com.habitrpg.wearos.habitica.util import android.util.Log +import com.habitrpg.android.habitica.R import com.habitrpg.wearos.habitica.managers.AppStateManager import com.habitrpg.wearos.habitica.models.DisplayedError import dagger.hilt.android.scopes.ViewModelScoped import kotlinx.coroutines.CoroutineExceptionHandler +import java.io.IOException import javax.inject.Inject @ViewModelScoped @@ -19,7 +21,16 @@ class ExceptionHandlerBuilder @Inject constructor(val appStateManager: AppStateM fun userFacing(errorPresenter: ErrorPresenter): CoroutineExceptionHandler { return CoroutineExceptionHandler { _, throwable -> Log.e("Coroutine Error", "Error: ${throwable.cause}", throwable) - errorPresenter.errorValues.value = throwable.message?.let { DisplayedError(it) } + if (throwable is IOException) { + errorPresenter.errorValues.value = throwable.message?.let { + DisplayedError(R.drawable.disconnected, "Disconnected") + } + } else { + errorPresenter.errorValues.value = throwable.message?.let { + DisplayedError(R.drawable.error, it) + } + } + appStateManager.endLoading() } } diff --git a/wearos/src/main/res/layout/logout_layout.xml b/wearos/src/main/res/layout/logout_layout.xml index f17d5aa2f..9502771e4 100644 --- a/wearos/src/main/res/layout/logout_layout.xml +++ b/wearos/src/main/res/layout/logout_layout.xml @@ -19,7 +19,8 @@ android:text="@string/log_out_of_habitica" android:fontFamily="sans-serif-medium" android:textColor="@color/watch_white" - android:layout_marginBottom="18dp"/> + android:layout_marginBottom="18dp" + android:layout_marginHorizontal="@dimen/spacing_large"/>