Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
8c1a4b5
Version upgrade and watch app install prompt
sameerasw Feb 4, 2026
4bd105d
Updated version kaomoji
sameerasw Feb 4, 2026
718c2f7
Update source file strings.xml
sameerasw Feb 4, 2026
cf02774
New translations strings.xml (Romanian)
sameerasw Feb 4, 2026
5bbbc38
New translations strings.xml (French)
sameerasw Feb 4, 2026
2d996cd
New translations strings.xml (Spanish)
sameerasw Feb 4, 2026
bbc8288
New translations strings.xml (Afrikaans)
sameerasw Feb 4, 2026
893f71a
New translations strings.xml (Arabic)
sameerasw Feb 4, 2026
6f2ba03
New translations strings.xml (Catalan)
sameerasw Feb 4, 2026
a1eaca3
New translations strings.xml (Czech)
sameerasw Feb 4, 2026
f7f5d4a
New translations strings.xml (Danish)
sameerasw Feb 4, 2026
810b9cc
New translations strings.xml (German)
sameerasw Feb 4, 2026
4ebef24
New translations strings.xml (Greek)
sameerasw Feb 4, 2026
b6c53ef
New translations strings.xml (Finnish)
sameerasw Feb 4, 2026
fe943ab
New translations strings.xml (Hebrew)
sameerasw Feb 4, 2026
d650003
New translations strings.xml (Hungarian)
sameerasw Feb 4, 2026
b49c883
New translations strings.xml (Italian)
sameerasw Feb 4, 2026
1f224a3
New translations strings.xml (Japanese)
sameerasw Feb 4, 2026
ded5d61
New translations strings.xml (Korean)
sameerasw Feb 4, 2026
85b306c
New translations strings.xml (Dutch)
sameerasw Feb 4, 2026
4ec2974
New translations strings.xml (Norwegian)
sameerasw Feb 4, 2026
fdc1aa5
New translations strings.xml (Polish)
sameerasw Feb 4, 2026
3204f55
New translations strings.xml (Portuguese)
sameerasw Feb 4, 2026
cd4ffcc
New translations strings.xml (Russian)
sameerasw Feb 4, 2026
41a84df
New translations strings.xml (Serbian (Cyrillic))
sameerasw Feb 4, 2026
e48dd4a
New translations strings.xml (Swedish)
sameerasw Feb 4, 2026
9819db4
New translations strings.xml (Turkish)
sameerasw Feb 4, 2026
14609b4
New translations strings.xml (Ukrainian)
sameerasw Feb 4, 2026
4ad49fa
New translations strings.xml (Chinese Simplified)
sameerasw Feb 4, 2026
ff8bfb5
New translations strings.xml (Chinese Traditional)
sameerasw Feb 4, 2026
8264722
New translations strings.xml (English)
sameerasw Feb 4, 2026
5d35acd
New translations strings.xml (Vietnamese)
sameerasw Feb 4, 2026
deef20d
New translations strings.xml (Portuguese, Brazilian)
sameerasw Feb 4, 2026
89923b6
New translations strings.xml (Sinhala)
sameerasw Feb 4, 2026
a5a63c8
New translations strings.xml (Acholi)
sameerasw Feb 4, 2026
0e31bfe
Merge pull request #181 from sameerasw/l10n_develop
sameerasw Feb 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ android {
applicationId = "com.sameerasw.essentials"
minSdk = 26
targetSdk = 36
versionCode = 23
versionName = "10.2"
versionCode = 24
versionName = "11.0"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,12 +67,14 @@ import com.sameerasw.essentials.ui.composables.configs.MapsPowerSavingSettingsUI
import com.sameerasw.essentials.viewmodels.CaffeinateViewModel
import com.sameerasw.essentials.viewmodels.MainViewModel
import com.sameerasw.essentials.viewmodels.StatusBarIconViewModel
import com.sameerasw.essentials.viewmodels.WatchViewModel
import com.sameerasw.essentials.ui.components.sheets.PermissionItem
import com.sameerasw.essentials.ui.components.sheets.PermissionsBottomSheet

import com.sameerasw.essentials.ui.composables.configs.AppLockSettingsUI
import com.sameerasw.essentials.ui.composables.configs.ScreenLockedSecuritySettingsUI
import com.sameerasw.essentials.ui.composables.configs.KeyboardSettingsUI
import com.sameerasw.essentials.ui.composables.configs.WatchSettingsUI
import com.sameerasw.essentials.utils.HapticUtil
import com.sameerasw.essentials.domain.registry.FeatureRegistry
import com.sameerasw.essentials.ui.components.cards.FeatureCard
Expand Down Expand Up @@ -127,6 +129,7 @@ class FeatureSettingsActivity : FragmentActivity() {
val viewModel: MainViewModel = viewModel()
val statusBarViewModel: StatusBarIconViewModel = viewModel()
val caffeinateViewModel: CaffeinateViewModel = viewModel()
val watchViewModel: WatchViewModel = viewModel()

// Automatic refresh on resume
val lifecycleOwner = androidx.lifecycle.compose.LocalLifecycleOwner.current
Expand All @@ -140,6 +143,9 @@ class FeatureSettingsActivity : FragmentActivity() {
if (featureId == "Caffeinate") {
caffeinateViewModel.check(context)
}
if (featureId == "Watch") {
watchViewModel.check(context)
}
}
}
lifecycleOwner.lifecycle.addObserver(observer)
Expand Down Expand Up @@ -309,6 +315,13 @@ class FeatureSettingsActivity : FragmentActivity() {
.fillMaxSize()
.then(if (hasScroll) Modifier.verticalScroll(rememberScrollState()) else Modifier)
) {
if (featureId == "Watch") {
WatchSettingsUI(
viewModel = watchViewModel,
modifier = Modifier.padding(top = 16.dp)
)
}

val children =
FeatureRegistry.ALL_FEATURES.filter { it.parentFeatureId == featureId }
if (children.isNotEmpty()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import androidx.annotation.StringRes
import com.sameerasw.essentials.R

enum class DIYTabs(@StringRes val title: Int, val subtitle: Any, val iconRes: Int) {
ESSENTIALS(R.string.tab_essentials, "(っ◕‿◕)っ", R.drawable.ic_stat_name),
ESSENTIALS(R.string.tab_essentials, "(◍•ᴗ•◍)", R.drawable.ic_stat_name),
FREEZE(R.string.tab_freeze, R.string.tab_freeze_subtitle, R.drawable.rounded_mode_cool_24),
DIY(R.string.tab_diy, R.string.tab_diy_subtitle, R.drawable.rounded_experiment_24),
APPS(R.string.tab_apps, R.string.tab_apps_subtitle, R.drawable.rounded_apps_24)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
package com.sameerasw.essentials.ui.composables.configs

import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Button
import androidx.compose.material3.ButtonDefaults
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.foundation.background
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalUriHandler
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import com.sameerasw.essentials.R
import com.sameerasw.essentials.ui.components.cards.IconToggleItem
import com.sameerasw.essentials.ui.components.containers.RoundedCardContainer
import com.sameerasw.essentials.viewmodels.WatchViewModel

@Composable
fun WatchSettingsUI(
viewModel: WatchViewModel,
modifier: Modifier = Modifier
) {
val context = LocalContext.current
val uriHandler = LocalUriHandler.current
val isWatchDetected = viewModel.isWatchDetected.value

Column(
modifier = modifier
.fillMaxWidth()
.padding(horizontal = 16.dp)
) {
if (isWatchDetected) {
RoundedCardContainer(
modifier = Modifier
.padding(bottom = 18.dp)
.background(
color = MaterialTheme.colorScheme.primary,
shape = RoundedCornerShape(24.dp)
)
) {
Column(modifier = Modifier.padding(16.dp)) {
Text(
text = stringResource(R.string.watch_no_companion_title),
style = MaterialTheme.typography.titleMedium,
color = MaterialTheme.colorScheme.onPrimary
)
Text(
text = stringResource(R.string.watch_no_companion_desc),
style = MaterialTheme.typography.bodyMedium,
color = MaterialTheme.colorScheme.onPrimary.copy(alpha = 0.8f),
modifier = Modifier.padding(top = 4.dp, bottom = 12.dp)
)
Button(
onClick = { uriHandler.openUri("https://github.com/sameerasw/essentials-wear") },
modifier = Modifier.fillMaxWidth(),
colors = ButtonDefaults.buttonColors(
containerColor = MaterialTheme.colorScheme.onPrimary,
contentColor = MaterialTheme.colorScheme.primary
)
) {
Text(stringResource(R.string.watch_install_companion_action))
}
}
}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package com.sameerasw.essentials.viewmodels

import android.content.Context
import androidx.compose.runtime.mutableStateOf
import androidx.lifecycle.ViewModel
import com.google.android.gms.wearable.Wearable

class WatchViewModel : ViewModel() {
val isWatchDetected = mutableStateOf(false)

fun check(context: Context) {
val nodeClient = Wearable.getNodeClient(context)
nodeClient.connectedNodes.addOnSuccessListener { nodes ->
isWatchDetected.value = nodes.isNotEmpty()
}.addOnFailureListener {
isWatchDetected.value = false
}
}
}
3 changes: 3 additions & 0 deletions app/src/main/res/values-ach/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1058,6 +1058,9 @@
<string name="feat_display_visuals_desc">Visuals to enhance your experience</string>
<string name="feat_watch_title">Watch</string>
<string name="feat_watch_desc">Integrations with WearOS</string>
<string name="watch_no_companion_title">No Watch detected</string>
<string name="watch_no_companion_desc">It looks like you do not have the Essentials Wear companion app installed on your watch.</string>
<string name="watch_install_companion_action">Install Companion</string>
<string name="cat_interaction">Interaction</string>
<string name="cat_interface">Interface</string>
<string name="cat_display">Display</string>
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/res/values-af/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1058,6 +1058,9 @@
<string name="feat_display_visuals_desc">Visuals to enhance your experience</string>
<string name="feat_watch_title">Watch</string>
<string name="feat_watch_desc">Integrations with WearOS</string>
<string name="watch_no_companion_title">No Watch detected</string>
<string name="watch_no_companion_desc">It looks like you do not have the Essentials Wear companion app installed on your watch.</string>
<string name="watch_install_companion_action">Install Companion</string>
<string name="cat_interaction">Interaction</string>
<string name="cat_interface">Interface</string>
<string name="cat_display">Display</string>
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/res/values-ar/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1058,6 +1058,9 @@
<string name="feat_display_visuals_desc">Visuals to enhance your experience</string>
<string name="feat_watch_title">Watch</string>
<string name="feat_watch_desc">Integrations with WearOS</string>
<string name="watch_no_companion_title">No Watch detected</string>
<string name="watch_no_companion_desc">It looks like you do not have the Essentials Wear companion app installed on your watch.</string>
<string name="watch_install_companion_action">Install Companion</string>
<string name="cat_interaction">Interaction</string>
<string name="cat_interface">Interface</string>
<string name="cat_display">Display</string>
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/res/values-ca/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1058,6 +1058,9 @@
<string name="feat_display_visuals_desc">Visuals to enhance your experience</string>
<string name="feat_watch_title">Watch</string>
<string name="feat_watch_desc">Integrations with WearOS</string>
<string name="watch_no_companion_title">No Watch detected</string>
<string name="watch_no_companion_desc">It looks like you do not have the Essentials Wear companion app installed on your watch.</string>
<string name="watch_install_companion_action">Install Companion</string>
<string name="cat_interaction">Interaction</string>
<string name="cat_interface">Interface</string>
<string name="cat_display">Display</string>
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/res/values-cs/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1058,6 +1058,9 @@
<string name="feat_display_visuals_desc">Visuals to enhance your experience</string>
<string name="feat_watch_title">Watch</string>
<string name="feat_watch_desc">Integrations with WearOS</string>
<string name="watch_no_companion_title">No Watch detected</string>
<string name="watch_no_companion_desc">It looks like you do not have the Essentials Wear companion app installed on your watch.</string>
<string name="watch_install_companion_action">Install Companion</string>
<string name="cat_interaction">Interaction</string>
<string name="cat_interface">Interface</string>
<string name="cat_display">Display</string>
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/res/values-da/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1058,6 +1058,9 @@
<string name="feat_display_visuals_desc">Visuals to enhance your experience</string>
<string name="feat_watch_title">Watch</string>
<string name="feat_watch_desc">Integrations with WearOS</string>
<string name="watch_no_companion_title">No Watch detected</string>
<string name="watch_no_companion_desc">It looks like you do not have the Essentials Wear companion app installed on your watch.</string>
<string name="watch_install_companion_action">Install Companion</string>
<string name="cat_interaction">Interaction</string>
<string name="cat_interface">Interface</string>
<string name="cat_display">Display</string>
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/res/values-de/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1058,6 +1058,9 @@
<string name="feat_display_visuals_desc">Visuals to enhance your experience</string>
<string name="feat_watch_title">Watch</string>
<string name="feat_watch_desc">Integrations with WearOS</string>
<string name="watch_no_companion_title">No Watch detected</string>
<string name="watch_no_companion_desc">It looks like you do not have the Essentials Wear companion app installed on your watch.</string>
<string name="watch_install_companion_action">Install Companion</string>
<string name="cat_interaction">Interaction</string>
<string name="cat_interface">Interface</string>
<string name="cat_display">Display</string>
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/res/values-el/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1058,6 +1058,9 @@
<string name="feat_display_visuals_desc">Visuals to enhance your experience</string>
<string name="feat_watch_title">Watch</string>
<string name="feat_watch_desc">Integrations with WearOS</string>
<string name="watch_no_companion_title">No Watch detected</string>
<string name="watch_no_companion_desc">It looks like you do not have the Essentials Wear companion app installed on your watch.</string>
<string name="watch_install_companion_action">Install Companion</string>
<string name="cat_interaction">Interaction</string>
<string name="cat_interface">Interface</string>
<string name="cat_display">Display</string>
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/res/values-en/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1058,6 +1058,9 @@
<string name="feat_display_visuals_desc">Visuals to enhance your experience</string>
<string name="feat_watch_title">Watch</string>
<string name="feat_watch_desc">Integrations with WearOS</string>
<string name="watch_no_companion_title">No Watch detected</string>
<string name="watch_no_companion_desc">It looks like you do not have the Essentials Wear companion app installed on your watch.</string>
<string name="watch_install_companion_action">Install Companion</string>
<string name="cat_interaction">Interaction</string>
<string name="cat_interface">Interface</string>
<string name="cat_display">Display</string>
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/res/values-es/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1058,6 +1058,9 @@
<string name="feat_display_visuals_desc">Visuals to enhance your experience</string>
<string name="feat_watch_title">Watch</string>
<string name="feat_watch_desc">Integrations with WearOS</string>
<string name="watch_no_companion_title">No Watch detected</string>
<string name="watch_no_companion_desc">It looks like you do not have the Essentials Wear companion app installed on your watch.</string>
<string name="watch_install_companion_action">Install Companion</string>
<string name="cat_interaction">Interaction</string>
<string name="cat_interface">Interface</string>
<string name="cat_display">Display</string>
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/res/values-fi/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1058,6 +1058,9 @@
<string name="feat_display_visuals_desc">Visuals to enhance your experience</string>
<string name="feat_watch_title">Watch</string>
<string name="feat_watch_desc">Integrations with WearOS</string>
<string name="watch_no_companion_title">No Watch detected</string>
<string name="watch_no_companion_desc">It looks like you do not have the Essentials Wear companion app installed on your watch.</string>
<string name="watch_install_companion_action">Install Companion</string>
<string name="cat_interaction">Interaction</string>
<string name="cat_interface">Interface</string>
<string name="cat_display">Display</string>
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/res/values-fr/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1058,6 +1058,9 @@
<string name="feat_display_visuals_desc">Visuals to enhance your experience</string>
<string name="feat_watch_title">Watch</string>
<string name="feat_watch_desc">Integrations with WearOS</string>
<string name="watch_no_companion_title">No Watch detected</string>
<string name="watch_no_companion_desc">It looks like you do not have the Essentials Wear companion app installed on your watch.</string>
<string name="watch_install_companion_action">Install Companion</string>
<string name="cat_interaction">Interaction</string>
<string name="cat_interface">Interface</string>
<string name="cat_display">Display</string>
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/res/values-he/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1058,6 +1058,9 @@
<string name="feat_display_visuals_desc">Visuals to enhance your experience</string>
<string name="feat_watch_title">Watch</string>
<string name="feat_watch_desc">Integrations with WearOS</string>
<string name="watch_no_companion_title">No Watch detected</string>
<string name="watch_no_companion_desc">It looks like you do not have the Essentials Wear companion app installed on your watch.</string>
<string name="watch_install_companion_action">Install Companion</string>
<string name="cat_interaction">Interaction</string>
<string name="cat_interface">Interface</string>
<string name="cat_display">Display</string>
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/res/values-hu/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1058,6 +1058,9 @@
<string name="feat_display_visuals_desc">Visuals to enhance your experience</string>
<string name="feat_watch_title">Watch</string>
<string name="feat_watch_desc">Integrations with WearOS</string>
<string name="watch_no_companion_title">No Watch detected</string>
<string name="watch_no_companion_desc">It looks like you do not have the Essentials Wear companion app installed on your watch.</string>
<string name="watch_install_companion_action">Install Companion</string>
<string name="cat_interaction">Interaction</string>
<string name="cat_interface">Interface</string>
<string name="cat_display">Display</string>
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/res/values-it/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1059,6 +1059,9 @@ Le app bloccate richiederanno l\'autenticazione all\'apertura. L\'app rimarrà s
<string name="feat_display_visuals_desc">Visuals to enhance your experience</string>
<string name="feat_watch_title">Watch</string>
<string name="feat_watch_desc">Integrations with WearOS</string>
<string name="watch_no_companion_title">No Watch detected</string>
<string name="watch_no_companion_desc">It looks like you do not have the Essentials Wear companion app installed on your watch.</string>
<string name="watch_install_companion_action">Install Companion</string>
<string name="cat_interaction">Interaction</string>
<string name="cat_interface">Interface</string>
<string name="cat_display">Display</string>
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/res/values-ja/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1058,6 +1058,9 @@
<string name="feat_display_visuals_desc">Visuals to enhance your experience</string>
<string name="feat_watch_title">Watch</string>
<string name="feat_watch_desc">Integrations with WearOS</string>
<string name="watch_no_companion_title">No Watch detected</string>
<string name="watch_no_companion_desc">It looks like you do not have the Essentials Wear companion app installed on your watch.</string>
<string name="watch_install_companion_action">Install Companion</string>
<string name="cat_interaction">Interaction</string>
<string name="cat_interface">Interface</string>
<string name="cat_display">Display</string>
Expand Down
3 changes: 3 additions & 0 deletions app/src/main/res/values-ko/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1058,6 +1058,9 @@
<string name="feat_display_visuals_desc">Visuals to enhance your experience</string>
<string name="feat_watch_title">Watch</string>
<string name="feat_watch_desc">Integrations with WearOS</string>
<string name="watch_no_companion_title">No Watch detected</string>
<string name="watch_no_companion_desc">It looks like you do not have the Essentials Wear companion app installed on your watch.</string>
<string name="watch_install_companion_action">Install Companion</string>
<string name="cat_interaction">Interaction</string>
<string name="cat_interface">Interface</string>
<string name="cat_display">Display</string>
Expand Down
Loading