From f6ec8eedc1e9b4d403d99e71f10cf9d890809331 Mon Sep 17 00:00:00 2001 From: balajitechlabs <212744006+Balajitechlabs@users.noreply.github.com> Date: Fri, 21 Aug 2026 23:42:35 +0530 Subject: [PATCH] feat: display open with and link picker as dynamic bottom sheet overlay --- .gitignore | 3 + app/src/main/AndroidManifest.xml | 6 +- .../ui/activities/LinkPickerActivity.kt | 18 + .../linkActions/LinkPickerAdapter.kt | 498 ++++++++++-------- .../linkActions/OpenWithFragment.kt | 49 +- .../linkActions/ShareWithFragment.kt | 48 +- app/src/main/res/values-ach-rUG/strings.xml | 2 +- app/src/main/res/values-ach/strings.xml | 2 +- app/src/main/res/values-af-rZA/strings.xml | 2 +- app/src/main/res/values-af/strings.xml | 2 +- app/src/main/res/values-ar-rSA/strings.xml | 6 +- app/src/main/res/values-ar/strings.xml | 4 +- app/src/main/res/values-ca-rES/strings.xml | 4 +- app/src/main/res/values-ca/strings.xml | 4 +- app/src/main/res/values-cs-rCZ/strings.xml | 2 +- app/src/main/res/values-cs/strings.xml | 2 +- app/src/main/res/values-da-rDK/strings.xml | 2 +- app/src/main/res/values-da/strings.xml | 2 +- app/src/main/res/values-de-rDE/strings.xml | 2 +- app/src/main/res/values-de/strings.xml | 2 +- app/src/main/res/values-el-rGR/strings.xml | 4 +- app/src/main/res/values-el/strings.xml | 4 +- app/src/main/res/values-en-rUS/strings.xml | 2 +- app/src/main/res/values-en/strings.xml | 2 +- app/src/main/res/values-es-rES/strings.xml | 2 +- app/src/main/res/values-es/strings.xml | 2 +- app/src/main/res/values-fi-rFI/strings.xml | 2 +- app/src/main/res/values-fi/strings.xml | 2 +- app/src/main/res/values-fil-rPH/strings.xml | 2 +- app/src/main/res/values-fr/strings.xml | 2 +- app/src/main/res/values-he/strings.xml | 2 +- app/src/main/res/values-hu-rHU/strings.xml | 2 +- app/src/main/res/values-hu/strings.xml | 2 +- app/src/main/res/values-it-rIT/strings.xml | 2 +- app/src/main/res/values-it/strings.xml | 4 +- app/src/main/res/values-iw-rIL/strings.xml | 2 +- app/src/main/res/values-ja-rJP/strings.xml | 6 +- app/src/main/res/values-ja/strings.xml | 6 +- app/src/main/res/values-kk-rKZ/strings.xml | 4 +- app/src/main/res/values-kk/strings.xml | 4 +- app/src/main/res/values-ko-rKR/strings.xml | 6 +- app/src/main/res/values-ko/strings.xml | 6 +- app/src/main/res/values-night/themes.xml | 4 + app/src/main/res/values-nl-rNL/strings.xml | 2 +- app/src/main/res/values-nl/strings.xml | 2 +- app/src/main/res/values-no-rNO/strings.xml | 2 +- app/src/main/res/values-no/strings.xml | 2 +- app/src/main/res/values-pl-rPL/strings.xml | 4 +- app/src/main/res/values-pl/strings.xml | 4 +- app/src/main/res/values-pt-rBR/strings.xml | 6 +- app/src/main/res/values-pt-rPT/strings.xml | 2 +- app/src/main/res/values-pt/strings.xml | 6 +- app/src/main/res/values-ro-rRO/strings.xml | 2 +- app/src/main/res/values-ro/strings.xml | 2 +- app/src/main/res/values-ru-rRU/strings.xml | 6 +- app/src/main/res/values-ru/strings.xml | 6 +- app/src/main/res/values-si-rLK/strings.xml | 6 +- app/src/main/res/values-si/strings.xml | 6 +- app/src/main/res/values-sr-rSP/strings.xml | 8 +- app/src/main/res/values-sr/strings.xml | 8 +- app/src/main/res/values-sv-rSE/strings.xml | 2 +- app/src/main/res/values-sv/strings.xml | 2 +- app/src/main/res/values-tr-rTR/strings.xml | 4 +- app/src/main/res/values-tr/strings.xml | 4 +- app/src/main/res/values-uk-rUA/strings.xml | 6 +- app/src/main/res/values-uk/strings.xml | 6 +- app/src/main/res/values-vi-rVN/strings.xml | 4 +- app/src/main/res/values-vi/strings.xml | 4 +- app/src/main/res/values-zh-rCN/strings.xml | 8 +- app/src/main/res/values-zh-rTW/strings.xml | 10 +- app/src/main/res/values-zh/strings.xml | 8 +- app/src/main/res/values/themes.xml | 4 + 72 files changed, 462 insertions(+), 408 deletions(-) diff --git a/.gitignore b/.gitignore index 604338b51..f1016e856 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,6 @@ build/ local.properties .agents/ *build.gradle.kts.bak +__pycache__/ +*.pyc + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e58f3b7dd..f632c9fd1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -273,9 +273,13 @@ + android:launchMode="singleInstance" + android:noHistory="true" + android:taskAffinity="" + android:theme="@style/Theme.Essentials.Translucent"> diff --git a/app/src/main/java/com/sameerasw/essentials/ui/activities/LinkPickerActivity.kt b/app/src/main/java/com/sameerasw/essentials/ui/activities/LinkPickerActivity.kt index 6e19c8057..6e769b478 100644 --- a/app/src/main/java/com/sameerasw/essentials/ui/activities/LinkPickerActivity.kt +++ b/app/src/main/java/com/sameerasw/essentials/ui/activities/LinkPickerActivity.kt @@ -11,6 +11,7 @@ package com.sameerasw.essentials import android.content.Intent import android.net.Uri +import android.os.Build import android.os.Bundle import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge @@ -24,6 +25,13 @@ import com.sameerasw.essentials.ui.theme.EssentialsTheme class LinkPickerActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { + overrideActivityTransition(OVERRIDE_TRANSITION_OPEN, 0, 0) + } else { + @Suppress("DEPRECATION") + overridePendingTransition(0, 0) + } + window.setBackgroundDrawableResource(android.R.color.transparent) val locationViewModel = com.sameerasw.essentials.viewmodels @@ -73,6 +81,16 @@ class LinkPickerActivity : AppCompatActivity() { } } } + + override fun finish() { + super.finish() + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) { + overrideActivityTransition(OVERRIDE_TRANSITION_CLOSE, 0, 0) + } else { + @Suppress("DEPRECATION") + overridePendingTransition(0, 0) + } + } } private fun extractUrl(text: String): String? { diff --git a/app/src/main/java/com/sameerasw/essentials/ui/components/linkActions/LinkPickerAdapter.kt b/app/src/main/java/com/sameerasw/essentials/ui/components/linkActions/LinkPickerAdapter.kt index df93294ac..c8fb987be 100644 --- a/app/src/main/java/com/sameerasw/essentials/ui/components/linkActions/LinkPickerAdapter.kt +++ b/app/src/main/java/com/sameerasw/essentials/ui/components/linkActions/LinkPickerAdapter.kt @@ -19,11 +19,11 @@ import android.net.Uri import android.util.Log import android.widget.Toast import androidx.compose.foundation.background -import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.asPaddingValues import androidx.compose.foundation.layout.fillMaxSize @@ -31,56 +31,97 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.navigationBars import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.foundation.layout.statusBars -import androidx.compose.foundation.pager.HorizontalPager -import androidx.compose.foundation.pager.rememberPagerState +import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.BottomSheetDefaults import androidx.compose.material3.Card import androidx.compose.material3.CardDefaults +import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.FilledIconButton +import androidx.compose.material3.FilledTonalButton import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.ModalBottomSheet import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.Text -import androidx.compose.material3.TextField import androidx.compose.material3.rememberModalBottomSheetState import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember -import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue -import androidx.compose.runtime.snapshotFlow import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusRequester import androidx.compose.ui.hapticfeedback.HapticFeedbackType -import androidx.compose.ui.layout.onGloballyPositioned import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.LocalHapticFeedback import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.core.content.edit import com.sameerasw.essentials.R -import com.sameerasw.essentials.ui.components.EssentialsFloatingToolbar -import com.sameerasw.essentials.ui.components.ToolbarItem -import com.sameerasw.essentials.ui.modifiers.BlurDirection -import com.sameerasw.essentials.ui.modifiers.progressiveBlur +import com.sameerasw.essentials.ui.core.pickers.SegmentedPicker import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.delay -import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import java.text.Collator import java.util.Locale private const val TAG = "LinkPickerScreen" +private val TRACKING_PARAMS = + setOf( + "utm_source", + "utm_medium", + "utm_campaign", + "utm_term", + "utm_content", + "utm_id", + "fbclid", + "gclid", + "igsh", + "si", + "ref", + "ref_src", + "source", + "feature", + "tracking_id", + ) + +private fun hasTrackingParameters(uri: Uri): Boolean { + return try { + uri.queryParameterNames.any { it.lowercase(Locale.getDefault()) in TRACKING_PARAMS } + } catch (_: Exception) { + false + } +} + +private fun cleanTrackingParams(uri: Uri): Uri { + return try { + val queryParamNames = uri.queryParameterNames + if (queryParamNames.none { it.lowercase(Locale.getDefault()) in TRACKING_PARAMS }) return uri + + val builder = uri.buildUpon().clearQuery() + for (key in queryParamNames) { + if (key.lowercase(Locale.getDefault()) !in TRACKING_PARAMS) { + val values = uri.getQueryParameters(key) + for (v in values) { + builder.appendQueryParameter(key, v) + } + } + } + builder.build() + } catch (_: Exception) { + uri + } +} + @OptIn(ExperimentalMaterial3Api::class) @Composable fun LinkPickerScreen( @@ -97,16 +138,16 @@ fun LinkPickerScreen( var showEditSheet by remember { mutableStateOf(false) } var editingText by remember { mutableStateOf(currentUri.toString()) } - // Search state + // Search & tab state var searchQuery by remember { mutableStateOf("") } + var selectedTab by remember { mutableIntStateOf(0) } // App lists var baseOpenWithApps by remember { mutableStateOf>(emptyList()) } var baseShareWithApps by remember { mutableStateOf>(emptyList()) } var isLoadingApps by remember { mutableStateOf(true) } - Log.d(TAG, "LinkPickerScreen called with demo = $demo") - Log.d(TAG, "LinkPickerScreen created with URI: $currentUri") + Log.d(TAG, "LinkPickerScreen called with demo = $demo, URI = $currentUri") // Query apps whenever currentUri changes LaunchedEffect(currentUri) { @@ -140,7 +181,7 @@ fun LinkPickerScreen( .sortedWith(compareBy { !pinnedPackages.value.contains(it.resolveInfo.activityInfo.packageName) }) } - // toggle pin + // Toggle pin val togglePin: (String) -> Unit = { packageName -> val current = pinnedPackages.value.toMutableSet() if (current.contains(packageName)) { @@ -153,268 +194,267 @@ fun LinkPickerScreen( haptic.performHapticFeedback(HapticFeedbackType.LongPress) } - // Pager state for swiping between tabs - val pagerState = rememberPagerState(pageCount = { 2 }) - val scope = rememberCoroutineScope() - - val mainViewModel: com.sameerasw.essentials.viewmodels.MainViewModel = - androidx.lifecycle.viewmodel.compose - .viewModel() - val isBlurEnabled by mainViewModel.isBlurEnabled + @Suppress("DEPRECATION") + val sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = false) - val statusBarHeight = WindowInsets.statusBars.asPaddingValues().calculateTopPadding() - val density = LocalDensity.current - - var cardHeightPx by androidx.compose.runtime.remember { - androidx.compose.runtime.mutableStateOf( - 0, - ) - } - val listTopPadding = with(density) { statusBarHeight + 16.dp + cardHeightPx.toDp() + 16.dp } - val topBlurHeightPx = with(density) { (statusBarHeight * 1.15f).toPx() } - - Box( - modifier = modifier.fillMaxSize(), + ModalBottomSheet( + onDismissRequest = onFinish, + sheetState = sheetState, + containerColor = MaterialTheme.colorScheme.surfaceContainerHigh, + dragHandle = { BottomSheetDefaults.DragHandle() }, + modifier = modifier, ) { - Box( + Column( modifier = Modifier - .fillMaxSize() - .background(MaterialTheme.colorScheme.surfaceContainer) - .progressiveBlur( - blurRadius = if (isBlurEnabled) 40f else 0f, - height = with(density) { topBlurHeightPx }, - direction = BlurDirection.TOP, + .fillMaxWidth() + .verticalScroll(rememberScrollState()) + .padding( + bottom = + WindowInsets.navigationBars + .asPaddingValues() + .calculateBottomPadding() + 16.dp, ), + verticalArrangement = Arrangement.spacedBy(16.dp), ) { - Column( + // Tab Selector (Open With / Share With) + Row( modifier = Modifier - .fillMaxSize() - .progressiveBlur( - blurRadius = if (isBlurEnabled) 80f else 0f, - height = with(LocalDensity.current) { 350.dp.toPx() }, - direction = BlurDirection.BOTTOM, - ), + .fillMaxWidth() + .padding(horizontal = 16.dp), ) { - LaunchedEffect(pagerState.currentPage) { - snapshotFlow { pagerState.currentPage }.collect { _ -> + SegmentedPicker( + items = listOf(0, 1), + selectedItem = selectedTab, + onItemSelected = { + selectedTab = it haptic.performHapticFeedback(HapticFeedbackType.TextHandleMove) - } - } - - if (isLoadingApps) { - Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) { - androidx.compose.material3.CircularProgressIndicator() - } - } else { - HorizontalPager( - modifier = Modifier.fillMaxSize(), - state = pagerState, - verticalAlignment = Alignment.Top, - ) { page -> - when (page) { - 0 -> { - OpenWithContent( - openWithApps, - currentUri, - onFinish, - Modifier.fillMaxSize(), - togglePin, - pinnedPackages.value, - demo, - ) - } - - 1 -> { - ShareWithContent( - shareWithApps, - currentUri, - onFinish, - Modifier.fillMaxSize(), - togglePin, - pinnedPackages.value, - demo, - ) - } + }, + labelProvider = { + when (it) { + 0 -> context.getString(R.string.label_open_with) + else -> context.getString(R.string.label_share_with) } - } - } + }, + modifier = Modifier.fillMaxWidth(), + ) } - } - // bottom card - Card( - modifier = - Modifier - .align(Alignment.BottomCenter) - .fillMaxWidth() - .padding( - bottom = - WindowInsets.navigationBars - .asPaddingValues() - .calculateBottomPadding() + 84.dp, - start = 16.dp, - end = 16.dp, - ).onGloballyPositioned { coordinates -> - cardHeightPx = coordinates.size.height - }, - shape = RoundedCornerShape(24.dp), - colors = - CardDefaults.cardColors( - containerColor = MaterialTheme.colorScheme.surfaceTint, - ), - ) { - Column( - modifier = Modifier.padding(16.dp), - verticalArrangement = Arrangement.spacedBy(12.dp), + // Link Preview Card + val domain = currentUri.host ?: currentUri.scheme ?: "Link" + val hasTrackingParams = hasTrackingParameters(currentUri) + + Card( + modifier = + Modifier + .fillMaxWidth() + .padding(horizontal = 16.dp), + shape = RoundedCornerShape(20.dp), + colors = + CardDefaults.cardColors( + containerColor = MaterialTheme.colorScheme.surfaceContainer, + ), ) { - Row( - modifier = Modifier.fillMaxWidth(), - horizontalArrangement = Arrangement.spacedBy(8.dp), - verticalAlignment = Alignment.CenterVertically, + Column( + modifier = Modifier.padding(16.dp), + verticalArrangement = Arrangement.spacedBy(12.dp), ) { - Card( - modifier = - Modifier - .weight(1f) - .clickable { - val clipboard = - context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager - clipboard.setPrimaryClip( - ClipData.newPlainText( - "Link", - currentUri.toString(), - ), - ) - Toast - .makeText( - context, - "Link copied to clipboard", - Toast.LENGTH_SHORT, - ).show() - haptic.performHapticFeedback(HapticFeedbackType.LongPress) - }, - colors = - CardDefaults.cardColors( - containerColor = MaterialTheme.colorScheme.surfaceContainer, - ), - shape = RoundedCornerShape(16.dp), + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(12.dp), + verticalAlignment = Alignment.CenterVertically, ) { - Row( - modifier = Modifier.padding(12.dp), - horizontalArrangement = Arrangement.spacedBy(8.dp), - verticalAlignment = Alignment.CenterVertically, + Box( + modifier = + Modifier + .size(40.dp) + .background( + MaterialTheme.colorScheme.primaryContainer, + RoundedCornerShape(12.dp), + ), + contentAlignment = Alignment.Center, ) { Icon( painter = painterResource(id = R.drawable.rounded_link_24), contentDescription = "Link Icon", - modifier = Modifier.size(24.dp), - tint = MaterialTheme.colorScheme.primary, + modifier = Modifier.size(22.dp), + tint = MaterialTheme.colorScheme.onPrimaryContainer, ) + } + Column(modifier = Modifier.weight(1f)) { Text( - text = - if (demo) { - "Long press an app to pin/ unpin" - } else { - currentUri.toString() - }, - style = MaterialTheme.typography.bodyMedium, + text = domain, + style = MaterialTheme.typography.titleMedium, color = MaterialTheme.colorScheme.onSurface, + maxLines = 1, + overflow = TextOverflow.Ellipsis, + ) + Text( + text = currentUri.toString(), + style = MaterialTheme.typography.bodySmall, + color = MaterialTheme.colorScheme.onSurfaceVariant, maxLines = 2, overflow = TextOverflow.Ellipsis, ) } } - Card( - modifier = - Modifier - .size(48.dp) - .clickable { - editingText = currentUri.toString() - showEditSheet = true - }, - colors = - CardDefaults.cardColors( - containerColor = MaterialTheme.colorScheme.surfaceContainer, - ), - shape = RoundedCornerShape(16.dp), + // Action buttons (Copy, Clean, Edit) + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.spacedBy(8.dp), ) { - Box( - modifier = Modifier.fillMaxSize(), - contentAlignment = Alignment.Center, + // Copy Link Button + FilledTonalButton( + onClick = { + val clipboard = + context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager + clipboard.setPrimaryClip( + ClipData.newPlainText( + "Link", + currentUri.toString(), + ), + ) + Toast + .makeText( + context, + "Link copied to clipboard", + Toast.LENGTH_SHORT, + ).show() + haptic.performHapticFeedback(HapticFeedbackType.LongPress) + }, + modifier = Modifier.weight(1f), + shape = RoundedCornerShape(12.dp), + ) { + Icon( + painter = painterResource(id = R.drawable.rounded_content_copy_24), + contentDescription = "Copy", + modifier = Modifier.size(18.dp), + ) + Spacer(Modifier.size(6.dp)) + Text("Copy", maxLines = 1) + } + + // Clean Tracker Button (if tracking params exist) + if (hasTrackingParams) { + FilledTonalButton( + onClick = { + val cleaned = cleanTrackingParams(currentUri) + currentUri = cleaned + editingText = cleaned.toString() + Toast + .makeText( + context, + "Tracking parameters removed", + Toast.LENGTH_SHORT, + ).show() + haptic.performHapticFeedback(HapticFeedbackType.LongPress) + }, + modifier = Modifier.weight(1f), + shape = RoundedCornerShape(12.dp), + ) { + Icon( + painter = painterResource(id = R.drawable.rounded_auto_awesome_24), + contentDescription = "Clean", + modifier = Modifier.size(18.dp), + ) + Spacer(Modifier.size(6.dp)) + Text("Clean", maxLines = 1) + } + } + + // Edit Button + FilledTonalButton( + onClick = { + editingText = currentUri.toString() + showEditSheet = true + }, + modifier = Modifier.weight(1f), + shape = RoundedCornerShape(12.dp), ) { Icon( painter = painterResource(id = R.drawable.rounded_edit_24), - contentDescription = "Edit Link", - modifier = Modifier.size(20.dp), - tint = MaterialTheme.colorScheme.primary, + contentDescription = "Edit", + modifier = Modifier.size(18.dp), ) + Spacer(Modifier.size(6.dp)) + Text("Edit", maxLines = 1) } } } - - TextField( - value = searchQuery, - onValueChange = { searchQuery = it }, - modifier = Modifier.fillMaxWidth(), - placeholder = { Text("Search apps") }, - leadingIcon = { - Icon( - painter = painterResource(id = R.drawable.rounded_search_24), - contentDescription = "Search", - ) - }, - singleLine = true, - shape = RoundedCornerShape(16.dp), - ) } - } - // toolbar - val toolbarItems = - remember { - listOf( - ToolbarItem( - iconRes = R.drawable.rounded_open_in_browser_24, - labelRes = R.string.label_open_with, - onClick = { - scope.launch { pagerState.animateScrollToPage(0) } - }, - ), - ToolbarItem( - iconRes = R.drawable.rounded_share_24, - labelRes = R.string.label_share_with, - onClick = { - scope.launch { pagerState.animateScrollToPage(1) } - }, - ), - ) + // Search Bar + OutlinedTextField( + value = searchQuery, + onValueChange = { searchQuery = it }, + modifier = + Modifier + .fillMaxWidth() + .padding(horizontal = 16.dp), + placeholder = { Text("Search apps") }, + leadingIcon = { + Icon( + painter = painterResource(id = R.drawable.rounded_search_24), + contentDescription = "Search", + ) + }, + singleLine = true, + shape = RoundedCornerShape(16.dp), + ) + + // Apps List + if (isLoadingApps) { + Box( + modifier = + Modifier + .fillMaxWidth() + .padding(32.dp), + contentAlignment = Alignment.Center, + ) { + CircularProgressIndicator() + } + } else { + if (selectedTab == 0) { + OpenWithContent( + resolveInfos = openWithApps, + uri = currentUri, + onFinish = onFinish, + modifier = Modifier.fillMaxWidth(), + togglePin = togglePin, + pinnedPackages = pinnedPackages.value, + demo = demo, + ) + } else { + ShareWithContent( + resolveInfos = shareWithApps, + uri = currentUri, + onFinish = onFinish, + modifier = Modifier.fillMaxWidth(), + togglePin = togglePin, + pinnedPackages = pinnedPackages.value, + demo = demo, + ) + } } - - EssentialsFloatingToolbar( - modifier = Modifier.align(Alignment.BottomCenter), - selectedIndex = pagerState.currentPage, - items = toolbarItems, - fabAction = { onFinish() }, - fabIconRes = R.drawable.rounded_arrow_back_24, - fabContentDescription = "Back", - ) + } } if (showEditSheet) { val focusRequester = remember { FocusRequester() } LaunchedEffect(Unit) { - delay(300) // Wait for sheet animation + delay(300) focusRequester.requestFocus() } + @Suppress("DEPRECATION") + val editSheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true) ModalBottomSheet( onDismissRequest = { showEditSheet = false }, - sheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true), + sheetState = editSheetState, containerColor = MaterialTheme.colorScheme.surfaceContainer, ) { Column( @@ -450,14 +490,12 @@ fun LinkPickerScreen( } if (text.isNotEmpty()) { - // Add https if no scheme is present if (!text.contains("://")) { text = "https://$text" } try { val newUri = Uri.parse(text) - // Validate scheme if (newUri.scheme.isNullOrBlank()) { Toast .makeText( diff --git a/app/src/main/java/com/sameerasw/essentials/ui/components/linkActions/OpenWithFragment.kt b/app/src/main/java/com/sameerasw/essentials/ui/components/linkActions/OpenWithFragment.kt index c1ad0e6d1..9d7cf3fac 100644 --- a/app/src/main/java/com/sameerasw/essentials/ui/components/linkActions/OpenWithFragment.kt +++ b/app/src/main/java/com/sameerasw/essentials/ui/components/linkActions/OpenWithFragment.kt @@ -12,23 +12,16 @@ package com.sameerasw.essentials.ui.components.linkActions import android.content.Intent import android.net.Uri import android.util.Log +import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.WindowInsets -import androidx.compose.foundation.layout.asPaddingValues -import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.statusBars -import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.verticalScroll import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import com.sameerasw.essentials.ui.core.containers.RoundedCardContainer @@ -37,36 +30,37 @@ fun OpenWithContent( resolveInfos: List, uri: Uri, onFinish: () -> Unit, - modifier: Modifier, + modifier: Modifier = Modifier, togglePin: (String) -> Unit, pinnedPackages: Set, demo: Boolean = false, - topPadding: Dp = WindowInsets.statusBars.asPaddingValues().calculateTopPadding(), ) { Log.d("LinkPicker", "OpenWithContent: ${resolveInfos.size} apps found") val context = LocalContext.current - Column( - modifier = - modifier - .fillMaxSize() - .verticalScroll(rememberScrollState()), - ) { - Spacer(modifier = Modifier.height(topPadding)) - - if (resolveInfos.isEmpty()) { + if (resolveInfos.isEmpty()) { + Box( + modifier = + modifier + .fillMaxWidth() + .padding(24.dp), + contentAlignment = Alignment.Center, + ) { Text( text = "No apps found to open this link", style = MaterialTheme.typography.bodyLarge, color = MaterialTheme.colorScheme.onSurfaceVariant, - modifier = Modifier.padding(16.dp), ) - } else { + } + } else { + Column( + modifier = + modifier + .fillMaxWidth() + .padding(horizontal = 16.dp), + ) { RoundedCardContainer( - modifier = - Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), + modifier = Modifier.fillMaxWidth(), ) { resolveInfos.forEach { info -> AppPickerItem( @@ -87,8 +81,5 @@ fun OpenWithContent( } } } - - // Bottom spacer — outside clip, toolbar clearance scrolls immersively - Spacer(modifier = Modifier.height(300.dp)) } } diff --git a/app/src/main/java/com/sameerasw/essentials/ui/components/linkActions/ShareWithFragment.kt b/app/src/main/java/com/sameerasw/essentials/ui/components/linkActions/ShareWithFragment.kt index 13ce041ae..16bdfa0f5 100644 --- a/app/src/main/java/com/sameerasw/essentials/ui/components/linkActions/ShareWithFragment.kt +++ b/app/src/main/java/com/sameerasw/essentials/ui/components/linkActions/ShareWithFragment.kt @@ -12,23 +12,16 @@ package com.sameerasw.essentials.ui.components.linkActions import android.content.Intent import android.net.Uri import android.util.Log +import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.WindowInsets -import androidx.compose.foundation.layout.asPaddingValues -import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.statusBars -import androidx.compose.foundation.rememberScrollState -import androidx.compose.foundation.verticalScroll import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import com.sameerasw.essentials.ui.core.containers.RoundedCardContainer @@ -37,36 +30,37 @@ fun ShareWithContent( resolveInfos: List, uri: Uri, onFinish: () -> Unit, - modifier: Modifier, + modifier: Modifier = Modifier, togglePin: (String) -> Unit, pinnedPackages: Set, demo: Boolean = false, - topPadding: Dp = WindowInsets.statusBars.asPaddingValues().calculateTopPadding(), ) { Log.d("LinkPicker", "ShareWithContent: ${resolveInfos.size} apps found") val context = LocalContext.current - Column( - modifier = - modifier - .fillMaxSize() - .verticalScroll(rememberScrollState()), - ) { - Spacer(modifier = Modifier.height(topPadding)) - - if (resolveInfos.isEmpty()) { + if (resolveInfos.isEmpty()) { + Box( + modifier = + modifier + .fillMaxWidth() + .padding(24.dp), + contentAlignment = Alignment.Center, + ) { Text( text = "No apps found to share with", style = MaterialTheme.typography.bodyLarge, color = MaterialTheme.colorScheme.onSurfaceVariant, - modifier = Modifier.padding(16.dp), ) - } else { + } + } else { + Column( + modifier = + modifier + .fillMaxWidth() + .padding(horizontal = 16.dp), + ) { RoundedCardContainer( - modifier = - Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), + modifier = Modifier.fillMaxWidth(), ) { resolveInfos.forEach { info -> AppPickerItem( @@ -91,7 +85,5 @@ fun ShareWithContent( } } } - - Spacer(modifier = Modifier.height(300.dp)) } } diff --git a/app/src/main/res/values-ach-rUG/strings.xml b/app/src/main/res/values-ach-rUG/strings.xml index 08790d0ce..4e35d801f 100644 --- a/app/src/main/res/values-ach-rUG/strings.xml +++ b/app/src/main/res/values-ach-rUG/strings.xml @@ -1214,7 +1214,7 @@ Mitte me juku cim ni ka oo. Dii me miini. %1$d m %1$.1f km - Alarm me wot tye ka tic + Travelling to %1$s %1$s ma odong (%2$d%%) Wot tye ka mede anyim Nyutu bor ma tye i kare kikome me oo kama omyera icit iye diff --git a/app/src/main/res/values-ach/strings.xml b/app/src/main/res/values-ach/strings.xml index faae9f3a9..824527553 100644 --- a/app/src/main/res/values-ach/strings.xml +++ b/app/src/main/res/values-ach/strings.xml @@ -1132,7 +1132,7 @@ Mitte me juku cim ni ka oo. Dii me miini. %1$d m %1$.1f km - Alarm me wot tye ka tic + Travelling to %1$s %1$s ma odong (%2$d%%) Wot tye ka mede anyim Nyutu bor ma tye i kare kikome me oo kama omyera icit iye diff --git a/app/src/main/res/values-af-rZA/strings.xml b/app/src/main/res/values-af-rZA/strings.xml index c247d2ea2..c54cb0f85 100644 --- a/app/src/main/res/values-af-rZA/strings.xml +++ b/app/src/main/res/values-af-rZA/strings.xml @@ -1214,7 +1214,7 @@ Vereis om jou toestel wakker te maak met aankoms. Tik om toe te staan. %1$d m %1$.1f km - Reisalarm aktief + Op pad na %1$s %1$s oorblywende (%2$d%%) Reisvordering Toon intydse afstand na bestemming diff --git a/app/src/main/res/values-af/strings.xml b/app/src/main/res/values-af/strings.xml index d496082c9..3eb53bc99 100644 --- a/app/src/main/res/values-af/strings.xml +++ b/app/src/main/res/values-af/strings.xml @@ -1132,7 +1132,7 @@ Vereis om jou toestel wakker te maak met aankoms. Tik om toe te staan. %1$d m %1$.1f km - Reisalarm aktief + Op pad na %1$s %1$s oorblywende (%2$d%%) Reisvordering Toon intydse afstand na bestemming diff --git a/app/src/main/res/values-ar-rSA/strings.xml b/app/src/main/res/values-ar-rSA/strings.xml index 755dd7344..1afeb403a 100644 --- a/app/src/main/res/values-ar-rSA/strings.xml +++ b/app/src/main/res/values-ar-rSA/strings.xml @@ -1212,9 +1212,9 @@ افتح الخرائط إذن إنذار بملء الشاشة مطلوب لتنبيه جهازك عند الوصول. انقر للمنح. - %1$d م - %1$.1f كم - إنذار السفر نشط + %1$d m + %1$.1f km + السفر إلى %1$s %1$s المتبقي (%2$d%%) تقدم السفر يظهر المسافة في الوقت الحقيقي إلى الوجهة diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index e93597b0f..7223e5653 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -1370,8 +1370,8 @@ فتح الخرائط إذن التنبيه بملء الشاشة مطلوب لإيقاظ جهازك عند الوصول. انقر للمنح. - %1$d م - %1$.1f كم + %1$d m + %1$.1f km السفر إلى %1$s %1$s المتبقي (%2$d%%) تقدم السفر diff --git a/app/src/main/res/values-ca-rES/strings.xml b/app/src/main/res/values-ca-rES/strings.xml index 5695248f2..82beff61c 100644 --- a/app/src/main/res/values-ca-rES/strings.xml +++ b/app/src/main/res/values-ca-rES/strings.xml @@ -1213,8 +1213,8 @@ Permís d\'alarma de pantalla completa Necessari per activar el dispositiu en arribar. Toca per concedir. %1$d m - %1$,1f km - Alarma de viatge activa + %1$.1f km + Viatjant a %1$s %1$s restant (%2$d%%) Progrés de viatge Mostra la distància en temps real fins a la destinació diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 680d865d7..03b40e8fd 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -1131,8 +1131,8 @@ Permís d\'alarma de pantalla completa Necessari per activar el dispositiu en arribar. Toca per concedir. %1$d m - %1$,1f km - Alarma de viatge activa + %1$.1f km + Viatjant a %1$s %1$s restant (%2$d%%) Progrés de viatge Mostra la distància en temps real fins a la destinació diff --git a/app/src/main/res/values-cs-rCZ/strings.xml b/app/src/main/res/values-cs-rCZ/strings.xml index 8d852a535..ad7f552e7 100644 --- a/app/src/main/res/values-cs-rCZ/strings.xml +++ b/app/src/main/res/values-cs-rCZ/strings.xml @@ -1214,7 +1214,7 @@ Vyžadováno k probuzení zařízení při příjezdu. Klepnutím udělíte. %1$d m %1$.1f km - Aktivní cestovní alarm + Cesta do %1$s %1$s zbývající (%2$d%%) Cestovní pokrok Zobrazuje vzdálenost do cíle v reálném čase diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 67bdcf024..3e2938e78 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -1132,7 +1132,7 @@ Vyžadováno k probuzení zařízení při příjezdu. Klepnutím udělíte. %1$d m %1$.1f km - Aktivní cestovní alarm + Cesta do %1$s %1$s zbývající (%2$d%%) Cestovní pokrok Zobrazuje vzdálenost do cíle v reálném čase diff --git a/app/src/main/res/values-da-rDK/strings.xml b/app/src/main/res/values-da-rDK/strings.xml index 2098ff5f1..6e033c977 100644 --- a/app/src/main/res/values-da-rDK/strings.xml +++ b/app/src/main/res/values-da-rDK/strings.xml @@ -1214,7 +1214,7 @@ Påkrævet for at vække din enhed ved ankomst. Tryk for at give. %1$d m %1$.1f km - Rejsealarm aktiv + Rejser til %1$s %1$s resterende (%2$d%%) Rejsefremskridt Viser afstand til destination i realtid diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 11ea633b2..2ec0304ea 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -1132,7 +1132,7 @@ Påkrævet for at vække din enhed ved ankomst. Tryk for at give. %1$d m %1$.1f km - Rejsealarm aktiv + Rejser til %1$s %1$s resterende (%2$d%%) Rejsefremskridt Viser afstand til destination i realtid diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml index 1c33d6d06..a0ded5f78 100644 --- a/app/src/main/res/values-de-rDE/strings.xml +++ b/app/src/main/res/values-de-rDE/strings.xml @@ -1214,7 +1214,7 @@ Benötigt, um dein Gerät bei der Ankunft zu wecken. Tippe zum Gewähren. %1$d m %1$.1f km - Reisealarm aktiv + Reise nach %1$s %1$s verbleibend (%2$d%%) Reisefortschritt Zeigt die Entfernung zum Zielort in Echtzeit an diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index c5d11a0fe..d1324ddd4 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -1158,7 +1158,7 @@ ADB-Debugging-Zugriff direkt über die Schnelleinstellungen aktivieren oder deak Benötigt, um dein Gerät bei der Ankunft zu wecken. Tippe zum Gewähren. %1$d m %1$.1f km - Reisealarm aktiv + Reise nach %1$s %1$s verbleibend (%2$d%%) Reisefortschritt Zeigt die Entfernung zum Zielort in Echtzeit an diff --git a/app/src/main/res/values-el-rGR/strings.xml b/app/src/main/res/values-el-rGR/strings.xml index a26793d63..cbb3c0267 100644 --- a/app/src/main/res/values-el-rGR/strings.xml +++ b/app/src/main/res/values-el-rGR/strings.xml @@ -1213,8 +1213,8 @@ Άδεια συναγερμού πλήρους οθόνης Απαιτείται η αφύπνιση της συσκευής σας κατά την άφιξη. Πατήστε για παραχώρηση. %1$d m - %1$.1f χλμ - Ενεργός συναγερμός ταξιδιού + %1$.1f km + Ταξίδι προς %1$s %1$s υπόλοιπο (%2$d%%) Ταξιδιωτική Πρόοδος Εμφανίζει την απόσταση από τον προορισμό σε πραγματικό χρόνο diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 30dd2bb96..0a9f2c372 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -1131,8 +1131,8 @@ Άδεια συναγερμού πλήρους οθόνης Απαιτείται η αφύπνιση της συσκευής σας κατά την άφιξη. Πατήστε για παραχώρηση. %1$d m - %1$.1f χλμ - Ενεργός συναγερμός ταξιδιού + %1$.1f km + Ταξίδι προς %1$s %1$s υπόλοιπο (%2$d%%) Ταξιδιωτική Πρόοδος Εμφανίζει την απόσταση από τον προορισμό σε πραγματικό χρόνο diff --git a/app/src/main/res/values-en-rUS/strings.xml b/app/src/main/res/values-en-rUS/strings.xml index c46a6f356..1a87e0e98 100644 --- a/app/src/main/res/values-en-rUS/strings.xml +++ b/app/src/main/res/values-en-rUS/strings.xml @@ -1214,7 +1214,7 @@ Required to wake your device upon arrival. Tap to grant. %1$d m %1$.1f km - Travel Alarm active + Travelling to %1$s %1$s remaining (%2$d%%) Travel Progress Shows real-time distance to destination diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml index f34a15b87..e02f500e7 100644 --- a/app/src/main/res/values-en/strings.xml +++ b/app/src/main/res/values-en/strings.xml @@ -1132,7 +1132,7 @@ Required to wake your device upon arrival. Tap to grant. %1$d m %1$.1f km - Travel Alarm active + Travelling to %1$s %1$s remaining (%2$d%%) Travel Progress Shows real-time distance to destination diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml index 8a7a33a88..ef47798e5 100644 --- a/app/src/main/res/values-es-rES/strings.xml +++ b/app/src/main/res/values-es-rES/strings.xml @@ -1216,7 +1216,7 @@ Cuando llegue un mensaje o alerta de una aplicación seleccionada, la Pantalla s Necesario para activar tu dispositivo al llegar. Toca para concederlo. %1$d m %1$.1f km - Alarma de viaje activa + Viajando a %1$s %1$s restante (%2$d%%) Progreso del viaje Muestra la distancia al destino en tiempo real diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 804b2d560..661c47608 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -1134,7 +1134,7 @@ Cuando llegue un mensaje o alerta de una aplicación seleccionada, la Pantalla s Necesario para activar tu dispositivo al llegar. Toca para concederlo. %1$d m %1$.1f km - Alarma de viaje activa + Viajando a %1$s %1$s restante (%2$d%%) Progreso del viaje Muestra la distancia al destino en tiempo real diff --git a/app/src/main/res/values-fi-rFI/strings.xml b/app/src/main/res/values-fi-rFI/strings.xml index fc7b1ab2c..fea118420 100644 --- a/app/src/main/res/values-fi-rFI/strings.xml +++ b/app/src/main/res/values-fi-rFI/strings.xml @@ -1214,7 +1214,7 @@ Pakollinen herättämään laitteesi saavuttaessa. Myönnä napauttamalla. %1$d m %1$.1f km - Matkahälytys aktiivinen + Matkalla kohteeseen %1$s %1$s jäljellä (%2$d%%) Matkan edistyminen Näyttää reaaliaikaisen etäisyyden määränpäähän diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index ce9d7c35b..08186819f 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -1132,7 +1132,7 @@ Pakollinen herättämään laitteesi saavuttaessa. Myönnä napauttamalla. %1$d m %1$.1f km - Matkahälytys aktiivinen + Matkalla kohteeseen %1$s %1$s jäljellä (%2$d%%) Matkan edistyminen Näyttää reaaliaikaisen etäisyyden määränpäähän diff --git a/app/src/main/res/values-fil-rPH/strings.xml b/app/src/main/res/values-fil-rPH/strings.xml index 16166587c..2aa29df2f 100644 --- a/app/src/main/res/values-fil-rPH/strings.xml +++ b/app/src/main/res/values-fil-rPH/strings.xml @@ -1214,7 +1214,7 @@ Required to wake your device upon arrival. Tap to grant. %1$d m %1$.1f km - Travelling to %1$s + Matkalla kohteeseen %1$s %1$s remaining (%2$d%%) Travel Progress Shows real-time distance to destination diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 29bb64f5c..e4d348559 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -1132,7 +1132,7 @@ Requise pour réveiller votre appareil à l\'arrivée. Appuyez pour autoriser. %1$d m %1$.1f km - Alarme de trajet active + Trajet vers %1$s %1$s restant (%2$d%%) Progrès du trajet Affiche la distance de la destination en temps réel diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml index bb8345165..61eda2dae 100644 --- a/app/src/main/res/values-he/strings.xml +++ b/app/src/main/res/values-he/strings.xml @@ -1132,7 +1132,7 @@ Required to wake your device upon arrival. Tap to grant. %1$d m %1$.1f km - Travel Alarm active + נוסע אל %1$s %1$s remaining (%2$d%%) Travel Progress Shows real-time distance to destination diff --git a/app/src/main/res/values-hu-rHU/strings.xml b/app/src/main/res/values-hu-rHU/strings.xml index 1aa9befad..d6b785f3d 100644 --- a/app/src/main/res/values-hu-rHU/strings.xml +++ b/app/src/main/res/values-hu-rHU/strings.xml @@ -1214,7 +1214,7 @@ Az eszköz felébresztéséhez érkezéskor szükséges. Koppintson az engedélyezéshez. %1$d m %1$.1f km - Utazási riasztó aktív + Utazás ide: %1$s %1$s fennmaradó (%2$d%%) Az utazás előrehaladása Valós idejű távolságot mutat a céltól diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 2484a91b1..c9b347b96 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -1132,7 +1132,7 @@ Az eszköz felébresztéséhez érkezéskor szükséges. Koppintson az engedélyezéshez. %1$d m %1$.1f km - Utazási riasztó aktív + Utazás ide: %1$s %1$s fennmaradó (%2$d%%) Az utazás előrehaladása Valós idejű távolságot mutat a céltól diff --git a/app/src/main/res/values-it-rIT/strings.xml b/app/src/main/res/values-it-rIT/strings.xml index 95084e876..072bcb420 100644 --- a/app/src/main/res/values-it-rIT/strings.xml +++ b/app/src/main/res/values-it-rIT/strings.xml @@ -1212,7 +1212,7 @@ Apri Maps Autorizzazione notifiche a schermo intero Richiesto per riattivare il dispositivo all\'arrivo. Tocca per concedere. - %1$d M + %1$d m %1$.1f km In viaggio verso %1$s %1$s rimanente (%2$d%%) diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 8811a2886..fc76717e3 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -1130,9 +1130,9 @@ Apri Mappe Autorizzazione allarme a schermo intero Necessario per riattivare il dispositivo all\'arrivo. Tocca per concedere. - %1$d M + %1$d m %1$.1f km - Allarme di viaggio attivo + In viaggio verso %1$s %1$s rimanente (%2$d%%) Progresso del viaggio Mostra la distanza in tempo reale dalla destinazione diff --git a/app/src/main/res/values-iw-rIL/strings.xml b/app/src/main/res/values-iw-rIL/strings.xml index a101c7a70..f309d041a 100644 --- a/app/src/main/res/values-iw-rIL/strings.xml +++ b/app/src/main/res/values-iw-rIL/strings.xml @@ -1214,7 +1214,7 @@ Required to wake your device upon arrival. Tap to grant. %1$d m %1$.1f km - Travel Alarm active + נוסע אל %1$s %1$s remaining (%2$d%%) Travel Progress Shows real-time distance to destination diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml index 78a6a43e0..ac7210ad8 100644 --- a/app/src/main/res/values-ja-rJP/strings.xml +++ b/app/src/main/res/values-ja-rJP/strings.xml @@ -1212,9 +1212,9 @@ マップを開く 全画面通知権限 到着時にデバイスを起動するのに必要です。許可するにはタップしてください。 - %1$dm - %1$.1fkm - Travel Alarm active + %1$d m + %1$.1f km + %1$s への移動 残り%1$s (%2$d%%) お出かけの進行状況 目的地までの距離をリアルタイムで表示 diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 1a2dc885e..be93cf925 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -1132,9 +1132,9 @@ マップを開く 全画面通知権限 到着時にデバイスを起動するのに必要です。許可するにはタップしてください。 - %1$dm - %1$.1fkm - Travel Alarm active + %1$d m + %1$.1f km + %1$s への移動 残り%1$s (%2$d%%) お出かけの進行状況 目的地までの距離をリアルタイムで表示 diff --git a/app/src/main/res/values-kk-rKZ/strings.xml b/app/src/main/res/values-kk-rKZ/strings.xml index cc75090c2..52b5c9398 100644 --- a/app/src/main/res/values-kk-rKZ/strings.xml +++ b/app/src/main/res/values-kk-rKZ/strings.xml @@ -1411,8 +1411,8 @@ Открыть карты Разрешение на отображение полноэкранных уведомлений Требуется разрешение на пробуждение устройства по прибытии. Нажмите, чтобы разрешить. - %1$d м - %1$.1f км + %1$d m + %1$.1f km Travelling to %1$s %1$s осталось (%2$d%%) Прогресс путешествия diff --git a/app/src/main/res/values-kk/strings.xml b/app/src/main/res/values-kk/strings.xml index cc75090c2..52b5c9398 100644 --- a/app/src/main/res/values-kk/strings.xml +++ b/app/src/main/res/values-kk/strings.xml @@ -1411,8 +1411,8 @@ Открыть карты Разрешение на отображение полноэкранных уведомлений Требуется разрешение на пробуждение устройства по прибытии. Нажмите, чтобы разрешить. - %1$d м - %1$.1f км + %1$d m + %1$.1f km Travelling to %1$s %1$s осталось (%2$d%%) Прогресс путешествия diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index 7ebbc4417..f041a7786 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -1212,9 +1212,9 @@ 지도 열기 전체 화면 알람 권한 도착 시 기기를 깨워야 합니다. 부여하려면 탭하세요. - %1$d 중 - %1$.1fkm - 여행 알람 활성화 + %1$d m + %1$.1f km + %1$s(으)로 이동 중 %1$s 남음 (%2$d%%) 여행 진행 목적지까지의 거리를 실시간으로 표시 diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml index 804c8a5dd..7cac4fcde 100644 --- a/app/src/main/res/values-ko/strings.xml +++ b/app/src/main/res/values-ko/strings.xml @@ -1130,9 +1130,9 @@ 지도 열기 전체 화면 알람 권한 도착 시 기기를 깨워야 합니다. 부여하려면 탭하세요. - %1$d 중 - %1$.1fkm - 여행 알람 활성화 + %1$d m + %1$.1f km + %1$s(으)로 이동 중 %1$s 남음 (%2$d%%) 여행 진행 목적지까지의 거리를 실시간으로 표시 diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml index 4448dbd55..bd9b264e1 100644 --- a/app/src/main/res/values-night/themes.xml +++ b/app/src/main/res/values-night/themes.xml @@ -14,5 +14,9 @@ @null true @null + @android:color/transparent + @android:color/transparent + true + @null diff --git a/app/src/main/res/values-nl-rNL/strings.xml b/app/src/main/res/values-nl-rNL/strings.xml index 5938a1725..0809461c3 100644 --- a/app/src/main/res/values-nl-rNL/strings.xml +++ b/app/src/main/res/values-nl-rNL/strings.xml @@ -1214,7 +1214,7 @@ Vereist voor het wekken van je apparaat bij aankomst. Klikken om toestemmingen te geven. %1$d m %1$.1f km - Travel Alarm active + Onderweg naar %1$s %1$s resterend (%2$d%%) Reisvoortgang Laat de realtime afstand tot de bestemming zien diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 682678b94..8b98aa881 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -1132,7 +1132,7 @@ Vereist voor het wekken van je apparaat bij aankomst. Klikken om toestemmingen te geven. %1$d m %1$.1f km - Travel Alarm active + Onderweg naar %1$s %1$s resterend (%2$d%%) Reisvoortgang Laat de realtime afstand tot de bestemming zien diff --git a/app/src/main/res/values-no-rNO/strings.xml b/app/src/main/res/values-no-rNO/strings.xml index fb6f9923d..23d7ef61d 100644 --- a/app/src/main/res/values-no-rNO/strings.xml +++ b/app/src/main/res/values-no-rNO/strings.xml @@ -1214,7 +1214,7 @@ Nødvendig for å vekke enheten ved ankomst. Trykk for å gi. %1$d m %1$.1f km - Reisealarm aktiv + Reiser til %1$s %1$s gjenværende (%2$d%%) Reisefremgang Viser avstand til destinasjon i sanntid diff --git a/app/src/main/res/values-no/strings.xml b/app/src/main/res/values-no/strings.xml index b5f1135f5..620e3f5e9 100644 --- a/app/src/main/res/values-no/strings.xml +++ b/app/src/main/res/values-no/strings.xml @@ -1136,7 +1136,7 @@ Aktiver eller deaktiver alltid på-skjermen raskt for å se informasjon med et Nødvendig for å vekke enheten ved ankomst. Trykk for å gi. %1$d m %1$.1f km - Reisealarm aktiv + Reiser til %1$s %1$s gjenværende (%2$d%%) Reisefremgang Viser avstand til destinasjon i sanntid diff --git a/app/src/main/res/values-pl-rPL/strings.xml b/app/src/main/res/values-pl-rPL/strings.xml index c0bfb320f..adb7a3cf8 100644 --- a/app/src/main/res/values-pl-rPL/strings.xml +++ b/app/src/main/res/values-pl-rPL/strings.xml @@ -1212,9 +1212,9 @@ Otwórz Mapy Zezwolenie na alarm pełnoekranowy Wymagane, aby obudzić urządzenie po przyjeździe. Kliknij, aby przyznać. - %1$d M + %1$d m %1$.1f km - Aktywny alarm podróżny + W drodze do %1$s %1$s pozostałe (%2$d%%) Postęp podróży Pokazuje w czasie rzeczywistym odległość do celu diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 6f19e974b..2b9463fcf 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -1132,9 +1132,9 @@ Jeśli Twoje urządzenie nie obsługuje nakładek w trybie AOD, możesz wybrać Otwórz Mapy Zezwolenie na alarm pełnoekranowy Wymagane, aby obudzić urządzenie po przyjeździe. Kliknij, aby przyznać. - %1$d M + %1$d m %1$.1f km - Aktywny alarm podróżny + W drodze do %1$s %1$s pozostałe (%2$d%%) Postęp podróży Pokazuje w czasie rzeczywistym odległość do celu diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index fa12c3b23..d4ce3d126 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -1212,9 +1212,9 @@ Abrir mapas Permissão de alarme em tela cheia Necessário para ativar seu dispositivo na chegada. Toque para conceder. - %1$d eu - %1$,1f km - Travel alarm active + %1$d m + %1$.1f km + A caminho de %1$s %1$s restante (%2$d%%) Progresso da viagem Mostra a distância em tempo real até o destino diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml index 030757902..4b6a69d59 100644 --- a/app/src/main/res/values-pt-rPT/strings.xml +++ b/app/src/main/res/values-pt-rPT/strings.xml @@ -1214,7 +1214,7 @@ Required to wake your device upon arrival. Tap to grant. %1$d m %1$.1f km - Travelling to %1$s + A caminho de %1$s %1$s remaining (%2$d%%) Travel Progress Shows real-time distance to destination diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 64b308596..0bb6e6975 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -1130,9 +1130,9 @@ Abrir mapas Permissão de alarme em tela cheia Necessário para ativar seu dispositivo na chegada. Toque para conceder. - %1$d eu - %1$,1f km - Travel alarm active + %1$d m + %1$.1f km + A caminho de %1$s %1$s restante (%2$d%%) Progresso da viagem Mostra a distância em tempo real até o destino diff --git a/app/src/main/res/values-ro-rRO/strings.xml b/app/src/main/res/values-ro-rRO/strings.xml index 750265228..46f9116ca 100644 --- a/app/src/main/res/values-ro-rRO/strings.xml +++ b/app/src/main/res/values-ro-rRO/strings.xml @@ -1214,7 +1214,7 @@ Este necesar să vă treziți dispozitivul la sosire. Atingeți pentru a acorda. %1$d m %1$.1f km - Alarma de călătorie activă + În călătorie spre %1$s %1$s rămas (%2$d%%) Progresul călătoriei Afișează distanța în timp real până la destinație diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index ef1a45b17..56470a715 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -1132,7 +1132,7 @@ Este necesar să vă treziți dispozitivul la sosire. Atingeți pentru a acorda. %1$d m %1$.1f km - Alarma de călătorie activă + În călătorie spre %1$s %1$s rămas (%2$d%%) Progresul călătoriei Afișează distanța în timp real până la destinație diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml index 50db0f0e8..a237c3d25 100644 --- a/app/src/main/res/values-ru-rRU/strings.xml +++ b/app/src/main/res/values-ru-rRU/strings.xml @@ -1212,9 +1212,9 @@ Открыть карты Разрешение на отображение полноэкранных уведомлений Требуется разрешение на пробуждение устройства по прибытии. Нажмите, чтобы разрешить. - %1$d м - %1$.1f км - Сигнализация движения активна + %1$d m + %1$.1f km + Поездка в %1$s %1$s осталось (%2$d%%) Прогресс путешествия Показывает расстояние до пункта назначения в режиме реального времени diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index d8af0d429..e38483c94 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -1130,9 +1130,9 @@ Открыть карты Разрешение на отображение полноэкранных уведомлений Требуется разрешение на пробуждение устройства по прибытии. Нажмите, чтобы разрешить. - %1$d м - %1$.1f км - Сигнализация движения активна + %1$d m + %1$.1f km + Поездка в %1$s %1$s осталось (%2$d%%) Прогресс путешествия Показывает расстояние до пункта назначения в режиме реального времени diff --git a/app/src/main/res/values-si-rLK/strings.xml b/app/src/main/res/values-si-rLK/strings.xml index d10ef2186..ec879e699 100644 --- a/app/src/main/res/values-si-rLK/strings.xml +++ b/app/src/main/res/values-si-rLK/strings.xml @@ -1212,9 +1212,9 @@ සිතියම් විවෘත කරන්න සම්පූර්ණ තිර එලාම් අවසරය පැමිණීමෙන් පසු ඔබගේ උපාංගය අවදි කිරීමට අවශ්‍ය වේ. ප්‍රදානය කිරීමට තට්ටු කරන්න. - %1$d මීටර් - කිලෝමීටර් %1$.1f - සංචාරක අනතුරු ඇඟවීම සක්‍රීයයි + %1$d m + %1$.1f km + %1$s වෙත ගමන් කරමින් %1$s ඉතිරි (%2$d%%) ගමන් ප්‍රගතිය ගමනාන්තයට තත්‍ය කාලීන දුර පෙන්වයි diff --git a/app/src/main/res/values-si/strings.xml b/app/src/main/res/values-si/strings.xml index 0f5642b29..06c21c8d7 100644 --- a/app/src/main/res/values-si/strings.xml +++ b/app/src/main/res/values-si/strings.xml @@ -1130,9 +1130,9 @@ සිතියම් විවෘත කරන්න සම්පූර්ණ තිර එලාම් අවසරය පැමිණීමෙන් පසු ඔබගේ උපාංගය අවදි කිරීමට අවශ්‍ය වේ. ප්‍රදානය කිරීමට තට්ටු කරන්න. - %1$d මීටර් - කිලෝමීටර් %1$.1f - සංචාරක අනතුරු ඇඟවීම සක්‍රීයයි + %1$d m + %1$.1f km + %1$s වෙත ගමන් කරමින් %1$s ඉතිරි (%2$d%%) ගමන් ප්‍රගතිය ගමනාන්තයට තත්‍ය කාලීන දුර පෙන්වයි diff --git a/app/src/main/res/values-sr-rSP/strings.xml b/app/src/main/res/values-sr-rSP/strings.xml index 53834f1c1..44e5afcc2 100644 --- a/app/src/main/res/values-sr-rSP/strings.xml +++ b/app/src/main/res/values-sr-rSP/strings.xml @@ -1212,16 +1212,16 @@ Отворите Мапе Дозвола за аларм преко целог екрана Неопходно је да пробудите уређај по доласку. Додирните да бисте одобрили. - %1$d м - %1$.1ф км - Путни аларм активан + %1$d m + %1$.1f km + Пут ка %1$s %1$s преостали (%2$d%%) Травел Прогресс Приказује удаљеност до одредишта у реалном времену Одредиште у близини Припремите се за силазак Одбаци - Постављено одредиште: %1$.4ф, %2$.4ф + Одредиште постављено: %1$.4f, %2$.4f Користите Роот Уместо Шизукуа Роот приступ није доступан. Проверите свог роот менаџера. diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index 1e13240fc..9972bed2d 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -1130,16 +1130,16 @@ Отворите Мапе Дозвола за аларм преко целог екрана Неопходно је да пробудите уређај по доласку. Додирните да бисте одобрили. - %1$d м - %1$.1ф км - Путни аларм активан + %1$d m + %1$.1f km + Пут ка %1$s %1$s преостали (%2$d%%) Травел Прогресс Приказује удаљеност до одредишта у реалном времену Одредиште у близини Припремите се за силазак Одбаци - Постављено одредиште: %1$.4ф, %2$.4ф + Одредиште постављено: %1$.4f, %2$.4f Користите Роот Уместо Шизукуа Роот приступ није доступан. Проверите свог роот менаџера. diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml index de8f8beef..5a6de321d 100644 --- a/app/src/main/res/values-sv-rSE/strings.xml +++ b/app/src/main/res/values-sv-rSE/strings.xml @@ -1214,7 +1214,7 @@ Krävs för att väcka din enhet vid ankomst. Tryck för att bevilja. %1$d m %1$.1f km - Resalarm aktivt + Reser till %1$s %1$s återstående (%2$d%%) Resans framsteg Visar avstånd till destination i realtid diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 08a9b7d61..0340188b1 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -1132,7 +1132,7 @@ Krävs för att väcka din enhet vid ankomst. Tryck för att bevilja. %1$d m %1$.1f km - Resalarm aktivt + Reser till %1$s %1$s återstående (%2$d%%) Resans framsteg Visar avstånd till destination i realtid diff --git a/app/src/main/res/values-tr-rTR/strings.xml b/app/src/main/res/values-tr-rTR/strings.xml index b095a4876..daee5e22d 100644 --- a/app/src/main/res/values-tr-rTR/strings.xml +++ b/app/src/main/res/values-tr-rTR/strings.xml @@ -1213,9 +1213,9 @@ Haritalar\'ı aç Tam Ekran Alarm İzni Varışta cihazınızı uyandırmak için gereklidir. Vermek için dokunun. - %1$d M + %1$d m %1$.1f km - %1$s\'a yolculuk + Travelling to %1$s %1$s kalan (%2$d%%) Seyahat İlerlemesi Hedefe olan gerçek zamanlı mesafeyi gösterir diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index f20fe5f96..c8896f659 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -1133,9 +1133,9 @@ Kolayca filigran eklemek için bir görüntüyü doğrudan başka bir uygulamada Haritalar\'ı aç Tam Ekran Alarm İzni Varışta cihazınızı uyandırmak için gereklidir. Vermek için dokunun. - %1$d M + %1$d m %1$.1f km - %1$s\'a yolculuk + Travelling to %1$s %1$s kalan (%2$d%%) Seyahat İlerlemesi Hedefe olan gerçek zamanlı mesafeyi gösterir diff --git a/app/src/main/res/values-uk-rUA/strings.xml b/app/src/main/res/values-uk-rUA/strings.xml index f03ef8716..eeef6178d 100644 --- a/app/src/main/res/values-uk-rUA/strings.xml +++ b/app/src/main/res/values-uk-rUA/strings.xml @@ -1212,9 +1212,9 @@ Відкрийте Карти Дозвіл повноекранного будильника Потрібно, щоб вивести пристрій із режиму сну після прибуття. Торкніться, щоб надати. - %1$d м - %1$.1f км - Будильник подорожі активний + %1$d m + %1$.1f km + Подорож до %1$s %1$s залишилося (%2$d%%) Прогрес подорожі Показує відстань до місця призначення в реальному часі diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index e737c3836..603eed8de 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -1130,9 +1130,9 @@ Відкрийте Карти Дозвіл повноекранного будильника Потрібно, щоб вивести пристрій із режиму сну після прибуття. Торкніться, щоб надати. - %1$d м - %1$.1f км - Будильник подорожі активний + %1$d m + %1$.1f km + Подорож до %1$s %1$s залишилося (%2$d%%) Прогрес подорожі Показує відстань до місця призначення в реальному часі diff --git a/app/src/main/res/values-vi-rVN/strings.xml b/app/src/main/res/values-vi-rVN/strings.xml index d44fec231..078020807 100644 --- a/app/src/main/res/values-vi-rVN/strings.xml +++ b/app/src/main/res/values-vi-rVN/strings.xml @@ -1212,9 +1212,9 @@ Mở Bản đồ Quyền báo động toàn màn hình Cần thiết để đánh thức thiết bị của bạn khi đến nơi. Nhấn để cấp. - %1$d tôi + %1$d m %1$.1f km - Cảnh báo hành trình đang hoạt động + Đang di chuyển đến %1$s %1$s còn lại (%2$d%%) Tiến độ du lịch Shows real-time distance to destination diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 7b610c959..21fcfefb9 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -1132,9 +1132,9 @@ Nếu thiết bị của bạn không hỗ trợ hiển thị lớp phủ đè l Mở Bản đồ Quyền báo động toàn màn hình Cần thiết để đánh thức thiết bị của bạn khi đến nơi. Nhấn để cấp. - RAM + %1$d m %1$.1f km - Cảnh báo hành trình đang hoạt động + Đang di chuyển đến %1$s %1$s còn lại (%2$d%%) Tiến độ du lịch Shows real-time distance to destination diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 0535c2291..9b83e87d7 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -1412,10 +1412,10 @@ 打开地图 全屏闹钟权限 到达时唤醒设备所需。点按授予。 - %1$d 米 - %1$.1f 公里 - 正在前往 %1$s - 剩余 %1$s(%2$d%%) + %1$d m + %1$.1f km + 前往 %1$s + %1$s 剩余 (%2$d%%) 行程进度 显示到目的地的实时距离 目的地附近 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 1cda1b3d7..626dde343 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -40,7 +40,7 @@ 在螢幕關閉時可用(推薦) Shizuku 沒在運行 偵測到 %1$s - %1$s狀態: %1$s + 狀態:%1$s 打開 Shizuku 手電筒 手電筒設定 @@ -1212,10 +1212,10 @@ 打开地图 全屏闹钟权限 需要在到达时唤醒您的设备。点击授予。 - %1$d 米 - %1$.1f 公里 - 旅行闹钟活跃 - 剩余 %1$s + %1$d m + %1$.1f km + 前往 %1$s + %1$s 剩餘 (%2$d%%) 行程进度 显示到目的地的实时距离 目的地临近 diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index d7a619fee..20f575612 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -1126,10 +1126,10 @@ 打开地图 全屏闹钟权限 需要在到达时唤醒您的设备。点击授予。 - %1$d 米 - %1$.1f 公里 - 旅行闹钟活跃 - 剩余 %1$s + %1$d m + %1$.1f km + 前往 %1$s + %1$s 剩余 (%2$d%%) 行程进度 显示到目的地的实时距离 目的地临近 diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 444811347..47f67215c 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -14,6 +14,10 @@ @null true @null + @android:color/transparent + @android:color/transparent + true + @null