From d5a3bb56350580a1669800b2861d29875489896b Mon Sep 17 00:00:00 2001 From: Phillip Thelen Date: Mon, 25 Jul 2022 09:47:56 +0200 Subject: [PATCH] Improve phone communication handling --- Habitica/res/values/strings.xml | 1 - version.properties | 2 +- wearos/src/main/AndroidManifest.xml | 2 +- .../habitica/ui/activities/LoginActivity.kt | 2 +- .../ui/views/ConnectedActionChipView.kt | 30 +++++++++++++++++++ .../habitica/ui/views/TextActionChipView.kt | 2 +- wearos/src/main/res/layout/activity_login.xml | 4 +-- wearos/src/main/res/layout/activity_rya.xml | 12 ++++---- .../main/res/layout/activity_task_detail.xml | 2 +- 9 files changed, 43 insertions(+), 14 deletions(-) create mode 100644 wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/ConnectedActionChipView.kt diff --git a/Habitica/res/values/strings.xml b/Habitica/res/values/strings.xml index 8314dbe93..d1ffa9096 100644 --- a/Habitica/res/values/strings.xml +++ b/Habitica/res/values/strings.xml @@ -1174,7 +1174,6 @@ Purchase successful Starting Objectives Switch Class - task_container_name Starting Objectives Task list mode diff --git a/version.properties b/version.properties index d50f527e0..1edd541a1 100644 --- a/version.properties +++ b/version.properties @@ -1,2 +1,2 @@ NAME=4.0 -CODE=4250 \ No newline at end of file +CODE=4260 \ No newline at end of file diff --git a/wearos/src/main/AndroidManifest.xml b/wearos/src/main/AndroidManifest.xml index 72cf9cb4a..09f409142 100644 --- a/wearos/src/main/AndroidManifest.xml +++ b/wearos/src/main/AndroidManifest.xml @@ -19,7 +19,7 @@ android:required="true" /> + android:value="false" /> () { binding.signInOnPhoneButton.isVisible = false binding.otherButton.isVisible = false binding.googleLoginButton.isVisible = true - binding.registerButton.isVisible = true + binding.registerButton.isVisible = binding.registerButton.isEnabled binding.usernamePasswordButton.isVisible = true binding.usernameEditText.isVisible = false binding.passwordEditText.isVisible = false diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/ConnectedActionChipView.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/ConnectedActionChipView.kt new file mode 100644 index 000000000..2545eebf4 --- /dev/null +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/ConnectedActionChipView.kt @@ -0,0 +1,30 @@ +package com.habitrpg.wearos.habitica.ui.views + +import android.content.Context +import android.util.AttributeSet +import androidx.core.view.isVisible +import com.google.android.gms.tasks.Tasks +import com.google.android.gms.wearable.CapabilityClient +import com.google.android.gms.wearable.Wearable +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.MainScope +import kotlinx.coroutines.launch + +class ConnectedActionChipView(context: Context, attrs: AttributeSet? = null) : + TextActionChipView(context, attrs) { + private val capabilityClient: CapabilityClient by lazy { Wearable.getCapabilityClient(context) } + + init { + checkIfPhoneAvailable() + } + + private fun checkIfPhoneAvailable() { + MainScope().launch(Dispatchers.IO) { + val result = Tasks.await(capabilityClient.getCapability("open_activity", CapabilityClient.FILTER_REACHABLE)) + launch(Dispatchers.Main) { + isEnabled = result.nodes.firstOrNull { it.isNearby } != null + isVisible = isEnabled + } + } + } +} \ No newline at end of file diff --git a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/TextActionChipView.kt b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/TextActionChipView.kt index 9297debd5..e785c597c 100644 --- a/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/TextActionChipView.kt +++ b/wearos/src/main/java/com/habitrpg/wearos/habitica/ui/views/TextActionChipView.kt @@ -7,7 +7,7 @@ import com.habitrpg.android.habitica.R import com.habitrpg.android.habitica.databinding.TextActionChipBinding import com.habitrpg.common.habitica.extensions.layoutInflater -class TextActionChipView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) : +open class TextActionChipView @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null) : RelativeLayout(context, attrs) { private val attributes = context.theme?.obtainStyledAttributes( attrs, diff --git a/wearos/src/main/res/layout/activity_login.xml b/wearos/src/main/res/layout/activity_login.xml index 26fd513f9..f2037ab3c 100644 --- a/wearos/src/main/res/layout/activity_login.xml +++ b/wearos/src/main/res/layout/activity_login.xml @@ -34,7 +34,7 @@ android:textColor="@color/watch_white" android:layout_marginBottom="18dp"/> - - + xmlns:tools="http://schemas.android.com/tools" + xmlns:app="http://schemas.android.com/apk/res-auto"> -