Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
140 commits
Select commit Hold shift + click to select a range
333ca8a
New translations strings.xml (Russian)
sameerasw Mar 25, 2026
c51153e
New translations strings.xml (Russian)
sameerasw Mar 25, 2026
924d5e2
New translations strings.xml (Dutch)
sameerasw Mar 26, 2026
6e420fb
New translations strings.xml (French)
sameerasw Mar 26, 2026
0a2b0d3
New translations strings.xml (Arabic)
sameerasw Mar 28, 2026
faf2d2d
New translations strings.xml (German)
sameerasw Mar 28, 2026
3213db4
New translations strings.xml (Hebrew)
sameerasw Mar 28, 2026
c67d6ab
New translations strings.xml (Italian)
sameerasw Mar 28, 2026
0776e07
New translations strings.xml (Japanese)
sameerasw Mar 28, 2026
d969990
New translations strings.xml (Polish)
sameerasw Mar 28, 2026
ea75a16
New translations strings.xml (Russian)
sameerasw Mar 28, 2026
1db1b20
New translations strings.xml (Portuguese, Brazilian)
sameerasw Mar 28, 2026
1073595
New translations strings.xml (English)
sameerasw Mar 28, 2026
584e0fc
New translations strings.xml (Romanian)
sameerasw Mar 28, 2026
cd1b4ae
New translations strings.xml (French)
sameerasw Mar 28, 2026
473b3eb
New translations strings.xml (Spanish)
sameerasw Mar 28, 2026
5672ad5
New translations strings.xml (Afrikaans)
sameerasw Mar 28, 2026
e1b8e52
New translations strings.xml (Catalan)
sameerasw Mar 28, 2026
1e3b5b7
New translations strings.xml (Czech)
sameerasw Mar 28, 2026
332268d
New translations strings.xml (Danish)
sameerasw Mar 28, 2026
55a0cd7
New translations strings.xml (Greek)
sameerasw Mar 28, 2026
20c5a71
New translations strings.xml (Finnish)
sameerasw Mar 28, 2026
fcd0759
New translations strings.xml (Hungarian)
sameerasw Mar 28, 2026
d1ca858
New translations strings.xml (Korean)
sameerasw Mar 28, 2026
6b8e2d3
New translations strings.xml (Dutch)
sameerasw Mar 28, 2026
3352bf4
New translations strings.xml (Norwegian)
sameerasw Mar 28, 2026
daa3735
New translations strings.xml (Portuguese)
sameerasw Mar 28, 2026
7ab4d50
New translations strings.xml (Serbian (Cyrillic))
sameerasw Mar 28, 2026
2167769
New translations strings.xml (Swedish)
sameerasw Mar 28, 2026
88b69e9
New translations strings.xml (Turkish)
sameerasw Mar 28, 2026
0c3d3ad
New translations strings.xml (Ukrainian)
sameerasw Mar 28, 2026
305630c
New translations strings.xml (Chinese Simplified)
sameerasw Mar 28, 2026
9be423e
New translations strings.xml (Chinese Traditional)
sameerasw Mar 28, 2026
b3d97f6
New translations strings.xml (Vietnamese)
sameerasw Mar 28, 2026
6505fd6
New translations strings.xml (Sinhala)
sameerasw Mar 28, 2026
b88c005
New translations strings.xml (Acholi)
sameerasw Mar 28, 2026
6c8156a
Update source file strings.xml
sameerasw Mar 31, 2026
6c78263
New translations strings.xml (Arabic)
sameerasw Mar 31, 2026
8496283
New translations strings.xml (German)
sameerasw Mar 31, 2026
8c4a947
New translations strings.xml (Hebrew)
sameerasw Mar 31, 2026
a85707e
New translations strings.xml (Italian)
sameerasw Mar 31, 2026
9927c75
New translations strings.xml (Japanese)
sameerasw Mar 31, 2026
15ce083
New translations strings.xml (Polish)
sameerasw Mar 31, 2026
85c789b
New translations strings.xml (Russian)
sameerasw Mar 31, 2026
9f9273d
New translations strings.xml (Portuguese, Brazilian)
sameerasw Mar 31, 2026
445742d
New translations strings.xml (English)
sameerasw Mar 31, 2026
6010b91
New translations strings.xml (Romanian)
sameerasw Mar 31, 2026
8326908
New translations strings.xml (French)
sameerasw Mar 31, 2026
dc7624c
New translations strings.xml (Spanish)
sameerasw Mar 31, 2026
6c817d5
New translations strings.xml (Afrikaans)
sameerasw Mar 31, 2026
45f62ed
New translations strings.xml (Catalan)
sameerasw Mar 31, 2026
8c1e3d6
New translations strings.xml (Czech)
sameerasw Mar 31, 2026
2bef138
New translations strings.xml (Danish)
sameerasw Mar 31, 2026
429a137
New translations strings.xml (Greek)
sameerasw Mar 31, 2026
664daae
New translations strings.xml (Finnish)
sameerasw Mar 31, 2026
a7486dc
New translations strings.xml (Hungarian)
sameerasw Mar 31, 2026
7f5202b
New translations strings.xml (Korean)
sameerasw Mar 31, 2026
a7798ac
New translations strings.xml (Dutch)
sameerasw Mar 31, 2026
ea8f435
New translations strings.xml (Norwegian)
sameerasw Mar 31, 2026
54e0fda
New translations strings.xml (Portuguese)
sameerasw Mar 31, 2026
e5ad7ed
New translations strings.xml (Serbian (Cyrillic))
sameerasw Mar 31, 2026
05127f1
New translations strings.xml (Swedish)
sameerasw Mar 31, 2026
01f1b5c
New translations strings.xml (Turkish)
sameerasw Mar 31, 2026
d2247cc
New translations strings.xml (Ukrainian)
sameerasw Mar 31, 2026
b99aee9
New translations strings.xml (Chinese Simplified)
sameerasw Mar 31, 2026
0217e16
New translations strings.xml (Chinese Traditional)
sameerasw Mar 31, 2026
17a54ae
New translations strings.xml (Vietnamese)
sameerasw Mar 31, 2026
3b4980f
New translations strings.xml (Sinhala)
sameerasw Mar 31, 2026
2659dbe
New translations strings.xml (Acholi)
sameerasw Mar 31, 2026
e63df00
Update source file strings.xml
sameerasw Mar 31, 2026
386f369
New translations strings.xml (Arabic)
sameerasw Mar 31, 2026
d795440
New translations strings.xml (German)
sameerasw Mar 31, 2026
4d543c3
New translations strings.xml (Hebrew)
sameerasw Mar 31, 2026
3cab39a
New translations strings.xml (Italian)
sameerasw Mar 31, 2026
e41ca9a
New translations strings.xml (Japanese)
sameerasw Mar 31, 2026
3ceef31
New translations strings.xml (Polish)
sameerasw Mar 31, 2026
e85f215
New translations strings.xml (Russian)
sameerasw Mar 31, 2026
ca5b130
New translations strings.xml (Portuguese, Brazilian)
sameerasw Mar 31, 2026
042cd40
New translations strings.xml (English)
sameerasw Mar 31, 2026
0379b5d
New translations strings.xml (Romanian)
sameerasw Mar 31, 2026
9ccec9e
New translations strings.xml (French)
sameerasw Mar 31, 2026
7facade
New translations strings.xml (Spanish)
sameerasw Mar 31, 2026
a1ee21c
New translations strings.xml (Afrikaans)
sameerasw Mar 31, 2026
8d8d9dd
New translations strings.xml (Catalan)
sameerasw Mar 31, 2026
3f8149a
New translations strings.xml (Czech)
sameerasw Mar 31, 2026
d9c3c9d
New translations strings.xml (Danish)
sameerasw Mar 31, 2026
ae64fc4
New translations strings.xml (Greek)
sameerasw Mar 31, 2026
1a633d9
New translations strings.xml (Finnish)
sameerasw Mar 31, 2026
13c5062
New translations strings.xml (Hungarian)
sameerasw Mar 31, 2026
bc3ff11
New translations strings.xml (Korean)
sameerasw Mar 31, 2026
13000a8
New translations strings.xml (Dutch)
sameerasw Mar 31, 2026
aa28a73
New translations strings.xml (Norwegian)
sameerasw Mar 31, 2026
5eb16e8
New translations strings.xml (Portuguese)
sameerasw Mar 31, 2026
392bcad
New translations strings.xml (Serbian (Cyrillic))
sameerasw Mar 31, 2026
799c5d2
New translations strings.xml (Swedish)
sameerasw Mar 31, 2026
3f0b80b
New translations strings.xml (Turkish)
sameerasw Mar 31, 2026
e1dfee9
New translations strings.xml (Ukrainian)
sameerasw Mar 31, 2026
616e89d
New translations strings.xml (Chinese Simplified)
sameerasw Mar 31, 2026
db822bb
New translations strings.xml (Chinese Traditional)
sameerasw Mar 31, 2026
09a32d9
New translations strings.xml (Vietnamese)
sameerasw Mar 31, 2026
7d0ac0a
New translations strings.xml (Sinhala)
sameerasw Mar 31, 2026
47436d5
New translations strings.xml (Acholi)
sameerasw Mar 31, 2026
6a18144
Update source file strings.xml
sameerasw Mar 31, 2026
67de268
New translations strings.xml (Italian)
sameerasw Mar 31, 2026
81866c4
New Crowdin updates (#301)
sameerasw Mar 31, 2026
a9e4435
New translations strings.xml (Arabic)
sameerasw Mar 31, 2026
a1fe174
New translations strings.xml (German)
sameerasw Mar 31, 2026
9c2b87b
New translations strings.xml (Hebrew)
sameerasw Mar 31, 2026
9513ca2
New translations strings.xml (Italian)
sameerasw Mar 31, 2026
47a0eb5
New translations strings.xml (Japanese)
sameerasw Mar 31, 2026
1546288
New translations strings.xml (Polish)
sameerasw Mar 31, 2026
9bfe733
New translations strings.xml (Russian)
sameerasw Mar 31, 2026
852242e
New translations strings.xml (Romanian)
sameerasw Mar 31, 2026
be85995
New translations strings.xml (French)
sameerasw Mar 31, 2026
374a4e7
New translations strings.xml (Spanish)
sameerasw Mar 31, 2026
b3ca1be
New translations strings.xml (Afrikaans)
sameerasw Mar 31, 2026
187b9e7
New translations strings.xml (Catalan)
sameerasw Mar 31, 2026
af1e88f
New translations strings.xml (Czech)
sameerasw Mar 31, 2026
1070a4b
New translations strings.xml (Danish)
sameerasw Mar 31, 2026
30be3a5
New translations strings.xml (Greek)
sameerasw Mar 31, 2026
729c2f3
New translations strings.xml (Finnish)
sameerasw Mar 31, 2026
59ddca5
New translations strings.xml (Hungarian)
sameerasw Mar 31, 2026
487501c
New translations strings.xml (Korean)
sameerasw Mar 31, 2026
3ba0aad
New translations strings.xml (Dutch)
sameerasw Mar 31, 2026
b5182bd
New translations strings.xml (Norwegian)
sameerasw Mar 31, 2026
99823af
New translations strings.xml (Portuguese)
sameerasw Mar 31, 2026
a0bec59
New translations strings.xml (Serbian (Cyrillic))
sameerasw Mar 31, 2026
6d154a5
New translations strings.xml (Swedish)
sameerasw Mar 31, 2026
239d9dc
New translations strings.xml (Turkish)
sameerasw Mar 31, 2026
2c86e96
New translations strings.xml (Portuguese, Brazilian)
sameerasw Mar 31, 2026
9914e9f
New translations strings.xml (English)
sameerasw Mar 31, 2026
03cc9b7
New translations strings.xml (Ukrainian)
sameerasw Mar 31, 2026
4f0f8bc
New translations strings.xml (Chinese Simplified)
sameerasw Mar 31, 2026
7af3aee
New translations strings.xml (Chinese Traditional)
sameerasw Mar 31, 2026
12f0dd7
New translations strings.xml (Vietnamese)
sameerasw Mar 31, 2026
673a81b
New translations strings.xml (Sinhala)
sameerasw Mar 31, 2026
b59dc7a
New translations strings.xml (Acholi)
sameerasw Mar 31, 2026
f662746
fix: #303 Attempt no. 3458347589 of trying to fix your android crash …
sameerasw Mar 31, 2026
1181fa1
New Crowdin updates (#311)
sameerasw Mar 31, 2026
60050f2
feat: It's a ncie day
sameerasw Mar 31, 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
15 changes: 12 additions & 3 deletions app/proguard-rules.pro
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,14 @@
-keep class com.google.gson.** { *; }
-keepattributes Signature
-keepattributes *Annotation*
-keepattributes InnerClasses
-keepattributes EnclosingMethod

# Ensure @Keep annotations are always honored
-keep @androidx.annotation.Keep class * { *; }
-keepclassmembers class * {
@androidx.annotation.Keep *;
}

# Shizuku rules
-keep class rikka.shizuku.** { *; }
Expand All @@ -38,10 +46,11 @@
-keep class com.sameerasw.essentials.data.repository.** { *; }
-keep class com.sameerasw.essentials.domain.registry.** { *; }

# Emoji data classes for Gson
-keep class com.sameerasw.essentials.ui.ime.EmojiObject { *; }
-keep class com.sameerasw.essentials.ui.ime.EmojiCategory { *; }
-keep class com.sameerasw.essentials.ui.ime.EmojiDataResponse { *; }

# Data models for Gson
-keep class com.sameerasw.essentials.data.model.** { *; }
-keepclassmembers class com.sameerasw.essentials.data.model.** { *; }
# Keep ViewModel constructors for reflection-based instantiation
-keepclassmembers class * extends androidx.lifecycle.ViewModel {
public <init>(...);
Expand Down
21 changes: 21 additions & 0 deletions app/src/main/java/com/sameerasw/essentials/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -92,10 +92,12 @@ import com.sameerasw.essentials.ui.components.EssentialsFloatingToolbar
import com.sameerasw.essentials.ui.components.ToolbarItem
import com.sameerasw.essentials.ui.components.cards.TrackedRepoCard
import androidx.compose.foundation.layout.statusBarsPadding
import com.sameerasw.essentials.data.repository.SettingsRepository
import com.sameerasw.essentials.ui.components.containers.RoundedCardContainer
import com.sameerasw.essentials.ui.components.sheets.AddRepoBottomSheet
import com.sameerasw.essentials.ui.components.sheets.GitHubAuthSheet
import com.sameerasw.essentials.ui.components.sheets.InstructionsBottomSheet
import com.sameerasw.essentials.ui.components.sheets.PrankBottomSheet
import com.sameerasw.essentials.ui.components.sheets.UpdateBottomSheet
import com.sameerasw.essentials.ui.components.menus.SegmentedDropdownMenu
import com.sameerasw.essentials.ui.components.menus.SegmentedDropdownMenuItem
Expand Down Expand Up @@ -353,6 +355,25 @@ class MainActivity : AppCompatActivity() {
)
}

val isAprilFoolsSheetVisible by viewModel.isAprilFoolsSheetVisible
val prankSheetState = androidx.compose.material3.rememberModalBottomSheetState(
skipPartiallyExpanded = true
)

if (isAprilFoolsSheetVisible) {
PrankBottomSheet(
viewModel = viewModel,
sheetState = prankSheetState,
onDismissRequest = {
viewModel.isAprilFoolsSheetVisible.value = false
viewModel.settingsRepository.putBoolean(
SettingsRepository.KEY_APRIL_FOOLS_SHOWN,
true
)
}
)
}

val refreshingRepoIds by updatesViewModel.refreshingRepoIds
val updateProgress by updatesViewModel.updateProgress
val animatedProgress by animateFloatAsState(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,7 @@ class SettingsRepository(private val context: Context) {
const val KEY_SENTRY_REPORT_MODE = "sentry_report_mode"
const val KEY_ONBOARDING_COMPLETED = "onboarding_completed"
const val KEY_PRIVATE_DNS_PRESETS = "private_dns_presets"
const val KEY_APRIL_FOOLS_SHOWN = "april_fools_shown"
}

// Observe changes
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
package com.sameerasw.essentials.ui.components.sheets

import androidx.compose.foundation.gestures.detectTapGestures
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.material3.Button
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.ModalBottomSheet
import androidx.compose.material3.SheetState
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.input.pointer.pointerInput
import androidx.compose.ui.platform.LocalView
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import coil.compose.AsyncImage
import com.sameerasw.essentials.R
import com.sameerasw.essentials.data.repository.SettingsRepository
import com.sameerasw.essentials.utils.HapticUtil
import com.sameerasw.essentials.viewmodels.MainViewModel

@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun PrankBottomSheet(
viewModel: MainViewModel,
sheetState: SheetState,
onDismissRequest: () -> Unit
) {
var isRevealed by remember { mutableStateOf(false) }
val view = LocalView.current

ModalBottomSheet(
onDismissRequest = {
if (isRevealed) {
onDismissRequest()
}
},
sheetState = sheetState,
dragHandle = null
) {
Column(
modifier = Modifier
.fillMaxWidth()
.padding(24.dp),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.spacedBy(16.dp)
) {
// App Logo
AsyncImage(
model = R.mipmap.ic_launcher_round,
contentDescription = null,
modifier = Modifier.size(80.dp)
)

if (!isRevealed) {
// Prank Phase
Text(
text = stringResource(R.string.prank_trial_expired_title),
style = MaterialTheme.typography.headlineSmall,
fontWeight = FontWeight.Bold,
textAlign = TextAlign.Center
)

Text(
text = stringResource(R.string.prank_trial_expired_desc),
style = MaterialTheme.typography.bodyMedium,
textAlign = TextAlign.Center,
color = MaterialTheme.colorScheme.onSurfaceVariant
)

Spacer(modifier = Modifier.height(8.dp))

Button(
onClick = {
HapticUtil.performHeavyHaptic(view)
isRevealed = true
},
modifier = Modifier.fillMaxWidth()
) {
Text(text = stringResource(R.string.prank_button_premium))
}
} else {
// Reveal Phase
Text(
text = stringResource(R.string.prank_reveal_title),
style = MaterialTheme.typography.headlineSmall,
fontWeight = FontWeight.Bold,
textAlign = TextAlign.Center,
color = MaterialTheme.colorScheme.primary
)

Text(
text = stringResource(R.string.prank_reveal_desc),
style = MaterialTheme.typography.bodyLarge,
textAlign = TextAlign.Center
)

Spacer(modifier = Modifier.height(8.dp))

Button(
onClick = {
onDismissRequest()
},
modifier = Modifier
.fillMaxWidth()
.pointerInput(Unit) {
detectTapGestures(
onLongPress = {
// Debug reset
viewModel.settingsRepository.putBoolean(
SettingsRepository.KEY_APRIL_FOOLS_SHOWN,
false
)
HapticUtil.performHeavyHaptic(view)
android.widget.Toast.makeText(view.context, "Prank reset for testing", android.widget.Toast.LENGTH_SHORT).show()
},
onTap = {
HapticUtil.performUIHaptic(view)
onDismissRequest()
}
)
}
) {
Text(text = stringResource(R.string.action_continue))
}
}

Spacer(modifier = Modifier.height(16.dp))
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,8 @@ class MainViewModel : ViewModel() {
val windowAnimationScale = mutableFloatStateOf(1.0f)
val smallestWidth = mutableIntStateOf(360)
val hasShizukuPermission = mutableStateOf(false)
val isAprilFoolsSheetVisible = mutableStateOf(false)
val isAprilFoolsShown = mutableStateOf(false)

private var lastUpdateCheckTime: Long = 0
lateinit var settingsRepository: SettingsRepository
Expand Down Expand Up @@ -444,6 +446,10 @@ class MainViewModel : ViewModel() {
dnsPresets.clear()
dnsPresets.addAll(settingsRepository.getPrivateDnsPresets())
}

SettingsRepository.KEY_APRIL_FOOLS_SHOWN -> {
isAprilFoolsShown.value = settingsRepository.getBoolean(key)
}
}
}
}
Expand Down Expand Up @@ -793,6 +799,18 @@ class MainViewModel : ViewModel() {

isAirSyncConnectionEnabled.value =
settingsRepository.getBoolean(SettingsRepository.KEY_AIRSYNC_CONNECTION_ENABLED)

// April Fools Check
isAprilFoolsShown.value = settingsRepository.getBoolean(SettingsRepository.KEY_APRIL_FOOLS_SHOWN)
if (!isAprilFoolsShown.value) {
val calendar = java.util.Calendar.getInstance()
val month = calendar.get(java.util.Calendar.MONTH)
val day = calendar.get(java.util.Calendar.DAY_OF_MONTH)
if (month == java.util.Calendar.APRIL && day == 1) {
isAprilFoolsSheetVisible.value = true
}
}

macBatteryLevel.intValue =
settingsRepository.getInt(SettingsRepository.KEY_MAC_BATTERY_LEVEL, -1)
isMacBatteryCharging.value =
Expand Down
45 changes: 45 additions & 0 deletions app/src/main/res/values-ach/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
<string name="flashlight_pulse_tile_label">Lweny pa mac ma ki lwongo ni Flashlight</string>
<string name="check_pre_releases_label">Nen pi jami ma ki cwalo ma peya ki cwalo gi</string>
<string name="check_pre_releases_desc">Twero bedo ni pe ocung matek</string>
<string name="label_default_tab">Default tab</string>
<!-- App Lock -->
<string name="settings_section_security">Gwoko kuc</string>
<string name="app_lock_enable_title">Yab app lock</string>
Expand Down Expand Up @@ -113,6 +114,15 @@
<string name="settings_section_app_control">Kit me tic ki jami ma ki lwongo ni App</string>
<string name="action_freeze">Miyu doko ngic</string>
<string name="action_unfreeze">Yab ma ngiic</string>
<string name="action_remove">Remove</string>
<string name="action_create_shortcut">Create shortcut</string>
<string name="action_app_info">App info</string>
<string name="freeze_mode_description_freeze_title">What is Freeze?</string>
<string name="freeze_mode_description_freeze_body">App freezing disables the app\'s launch activity which removes it from the app list and updates. It will prevent the app from starting at all until it\'s unfrozen which saves resources but you will need to unfreeze from here or manually re-enable.</string>
<string name="freeze_mode_description_freeze_warning">DO NOT FREEZE COMMUNICATION APPS</string>
<string name="freeze_mode_description_suspend_title">What is Suspend?</string>
<string name="freeze_mode_description_suspend_body">Suspending an app used to pause the app activity and prevent background executions but with recent Android changes, it only pauses the notifications from appearing and that\'s pretty much it. But does allows you to unpause from the launcher app list as they will be still available as grayscale paused app icons.</string>
<string name="freeze_mode_description_suspend_footer">Should work the same as the native app pause/ focus mode features.</string>
<string name="content_desc_more_options">Jami mukene ma itwero yero</string>
<string name="action_freeze_all">Juk jami weny ma ki tiyo kwede</string>
<string name="action_unfreeze_all">Yab jami weny ma ki tiyo kwede</string>
Expand Down Expand Up @@ -579,6 +589,7 @@
<string name="action_search">Moyo</string>
<string name="action_stop">Jiko</string>
<string name="label_search">Moyo</string>
<string name="search_frozen_apps_placeholder">Search frozen apps</string>
<!-- UI Components General -->
<string name="action_back">Cen</string>
<string name="content_desc_back">Cen</string>
Expand Down Expand Up @@ -632,6 +643,29 @@
<string name="about_desc_screen_locked_security">Medo gwok ka cim ni ki juku.\n\nGengo donyo i QS tiles mogo ma gengo alokaloka ma pe ki miiyo twero bot gi ki medo gengo gi me temo timo ne kun imedo rwom me tic me gengo spam.\n\nGin ni pe tek ki twero bedo ki goro ma calo jami mogo ma weko loko jami calo bluetooth onyo flight mode ma pe kitwero gengo ne.</string>
<string name="about_desc_app_lock">Gwok apps ni ki layer me aryo me moko ni jami tye kakare.\n\nKit me moko ni jami ni tye kakare ki bi tiyo kwede ka ce rwate ki rwom me gwoko kuc me kilaci 3 ma lubu rwom me Android.</string>
<string name="about_desc_location_reached">Nwong ngec ka i oo cok ki kama i tye ka cito iye me neno ni pi i rwenyo kama icung iye.\n\nCit i Google Maps, dii pi kare malac i kom pin ma tye cok ki kama i tye ka cito iye ki nen ni waco ni \"Dropped pin\" (Ka kumeno, wel bor piny ni twero bedo ma pe tye kakare), ki dong poko kabedo ni me cako lubo kor jami ma miite.</string>
<string name="location_reached_add_title">Add Destination</string>
<string name="location_reached_edit_title">Edit Destination</string>
<string name="location_reached_name_placeholder">Home, Office, etc.</string>
<string name="location_reached_name_label">Name</string>
<string name="location_reached_save_btn">Save</string>
<string name="location_reached_cancel_btn">Cancel</string>
<string name="location_reached_resolving">Resolving location…</string>
<string name="location_reached_last_trip">Last Trip</string>
<string name="location_reached_saved_destinations">Saved Destinations</string>
<string name="location_reached_no_saved_dest">No destinations saved yet.</string>
<string name="location_reached_delete">Delete Destination</string>
<string name="location_reached_tracking_now">Tracking Now</string>
<string name="location_reached_restart_btn">Re-Start</string>
<string name="location_reached_instructional_desc">Share coordinates (Dropped pin) from Google Maps to Essentials to save as a destination.\n\nThe distance shown is the direct distance to the destination, not the distance along the roads.\n\nTake all calculations of time and distance with a grain of salt as they are not always accurate.</string>
<string name="tile_location_reached">Are we there yet?</string>
<string name="location_reached_radius_label">Radius: %1$d m</string>
<string name="location_reached_distance_label">Distance to target: %1$s</string>
<string name="location_reached_last_travelled">Last: %1$s</string>
<string name="location_reached_never">Never</string>
<string name="location_reached_to_go">To go</string>
<string name="location_reached_eta_min">%1$d min</string>
<string name="location_reached_eta_hr_min">%1$d hr %2$d min</string>
<string name="location_reached_service_remaining_with_eta">%1$s (%2$d%%) • %3$s to go</string>
<string name="about_desc_freeze">Juk jami ma ki tiyo kwede me juku gi me tic i ngeye.\n\nGengo rweny pa batri ki tic ki ngec kun i juku jami ma itiyo kwede ka pe itye ka tic kwede. Gin obi bedo ma pe ki juku cut cut ka i yabo gi. Jami ma ki tiyo kwede ni pe obi nyute i kama ki keto iye jami ni ki bene pe obi nyute pi medo jami ma ki tiyo kwede i Play Store nongo ki juku.</string>
<string name="about_desc_system_keyboard">Kit me keto gin mo ma ngat mo pe openyo pire.\n\nMan obedo temo keken. Leb mapol pe twero nongo kony pien obedo gin ma tek ki tero kare malac.</string>
<string name="about_desc_batteries">Nen rwom pa mac pa jami ma itiyo kwede weny.\n\nNen kit ma batri tye kwede i cim me it, cawa, ki jami mukene i kabedo acel. Kube ki AirSync me nyutu rwom pa batri pa mac ni bene.</string>
Expand Down Expand Up @@ -1067,10 +1101,15 @@
<string name="format_updated_relative">Ki medo %1$s</string>
<!-- Relative Time -->
<string name="time_just_now">kombedi ni</string>
<string name="today">Today</string>
<string name="yesterday">Yesterday</string>
<string name="time_min_ago">%1$dm mukato angec</string>
<string name="time_hour_ago">%1$dh mukato angec</string>
<string name="time_day_ago">%1$dd mukato angec</string>
<string name="time_days_ago">%1$d days ago</string>
<string name="time_weeks_ago">%1$d weeks ago</string>
<string name="time_month_ago">%1$ddwe mukato angec</string>
<string name="time_months_ago">%1$d months ago</string>
<string name="time_year_ago">%1$dy ma okato</string>
<string name="action_retry">Tem doki</string>
<string name="action_start_sign_in">Yab donyo</string>
Expand Down Expand Up @@ -1197,4 +1236,10 @@
<string name="action_send_feedback">Send Feedback</string>
<string name="msg_feedback_sent">Feedback sent successfully! Thanks for helping us improve the app.</string>
<string name="label_alternatively">Alternatively</string>
<!-- Pixel Diagnostics -->
<string name="label_diagnostics">Diagnostics</string>
<string name="label_device_check">Device Check</string>
<string name="msg_flashbang">Get ready to be flashbanged!</string>
<string name="action_abort">Abort</string>
<string name="action_continue">Continue</string>
</resources>
Loading