summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--PREUPLOAD.cfg2
-rw-r--r--PermissionController/res/values-as/strings.xml2
-rw-r--r--PermissionController/res/values-de/strings.xml2
-rw-r--r--PermissionController/res/values-hi/strings.xml2
-rw-r--r--PermissionController/res/values-pa/strings.xml2
-rw-r--r--PermissionController/res/values-sk/strings.xml2
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/AnnotatedText.kt54
-rw-r--r--PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/ScrollableScreen.kt1
-rw-r--r--tests/cts/permissionui/src/android/permissionui/cts/CameraMicIndicatorsPermissionTest.kt4
9 files changed, 32 insertions, 39 deletions
diff --git a/PREUPLOAD.cfg b/PREUPLOAD.cfg
index bd5908319..0bfd581d5 100644
--- a/PREUPLOAD.cfg
+++ b/PREUPLOAD.cfg
@@ -11,4 +11,4 @@ checkstyle_hook = ${REPO_ROOT}/prebuilts/checkstyle/checkstyle.py --sha ${PREUPL
ktlint_hook = ${REPO_ROOT}/prebuilts/ktlint/ktlint.py --no-verify-format -f ${PREUPLOAD_FILES}
[Tool Paths]
-ktfmt = ${REPO_ROOT}/prebuilts/build-tools/common/framework/ktfmt.jar
+ktfmt = ${REPO_ROOT}/external/ktfmt/ktfmt.sh
diff --git a/PermissionController/res/values-as/strings.xml b/PermissionController/res/values-as/strings.xml
index 85ff0e289..e46e8bafe 100644
--- a/PermissionController/res/values-as/strings.xml
+++ b/PermissionController/res/values-as/strings.xml
@@ -367,7 +367,7 @@
<string name="role_dialer_request_description" msgid="6288839625724909320">"এই এপ্‌টোক আপোনাৰ কেমেৰা, সম্পৰ্ক, মাইক্ৰ’ফ’ন, ফ’ন আৰু এছএমএছৰ এক্সেছ দিয়া হ’ব"</string>
<string name="role_dialer_search_keywords" msgid="3324448983559188087">"ডায়েলাৰ"</string>
<string name="role_sms_label" msgid="8456999857547686640">"ডিফ’ল্ট এছএমএছ এপ্"</string>
- <string name="role_sms_short_label" msgid="4371444488034692243">"এছএমএছ এপ্"</string>
+ <string name="role_sms_short_label" msgid="4371444488034692243">"এছএমএছ এপ"</string>
<string name="role_sms_description" msgid="3424020199148153513">"যিবোৰ এপে আপোনাক নিজৰ ফ’ন নম্বৰ ব্যৱহাৰ কৰি চমু পাঠ বাৰ্তা, ফট’, ভিডিঅ’ আৰু অন্য সমল পঠিওৱাৰ অনুমতি দিয়ে"</string>
<string name="role_sms_request_title" msgid="7953552109601185602">"<xliff:g id="APP_NAME">%1$s</xliff:g>ক আপোনাৰ ডিফ’ল্ট এছএমএছ এপ্ হিচাপে ছেট কৰিবনে?"</string>
<string name="role_sms_request_description" msgid="2691004766132144886">"এই এপ্‌টোক আপোনাৰ কেমেৰা, সম্পৰ্ক, ফাইল আৰু মিডিয়া, মাইক্ৰ’ফ’ন, ফ’ন আৰু এছএমএছৰ এক্সেছ দিয়া হ’ব"</string>
diff --git a/PermissionController/res/values-de/strings.xml b/PermissionController/res/values-de/strings.xml
index 5ec60858a..a1347a736 100644
--- a/PermissionController/res/values-de/strings.xml
+++ b/PermissionController/res/values-de/strings.xml
@@ -675,7 +675,7 @@
<string name="enhanced_confirmation_dialog_desc" msgid="5921240234843839219">"Aus Sicherheitsgründen ist diese Einstellung derzeit nicht verfügbar."</string>
<string name="enhanced_confirmation_dialog_title_permission" msgid="2149144789394238266">"App wurde Zugriff auf „<xliff:g id="PERMISSION_NAME">%1$s</xliff:g>“ verweigert"</string>
<string name="enhanced_confirmation_dialog_desc_permission" msgid="3150778951946468945">"Die App hat Zugriff auf eine vertrauliche Berechtigung angefordert. Wenn du diesen zulässt, sind deine privaten Daten und Finanzdaten eventuell gefährdet.<xliff:g id="ID_1">&lt;br&gt;&lt;br&gt;</xliff:g>Die App funktioniert ohne diese eingeschränkte Berechtigung aber möglicherweise nicht richtig. &lt;a href=<xliff:g id="LEARN_MORE_LINK">%1$s</xliff:g>&gt;Informationen dazu, wie du den Zugriff erlaubst&lt;/a&gt;"</string>
- <string name="enhanced_confirmation_dialog_title_role" msgid="1737023798483772780">"App wurde Zugriff verweigert, die standardmäßige <xliff:g id="ROLE_NAME">%1$s</xliff:g> zu sein"</string>
+ <string name="enhanced_confirmation_dialog_title_role" msgid="1737023798483772780">"App wurde der Zugriff verweigert, die standardmäßige <xliff:g id="ROLE_NAME">%1$s</xliff:g> zu sein"</string>
<string name="enhanced_confirmation_dialog_desc_role" msgid="6369601947905234551">"Die App hat Zugriff auf vertrauliche Berechtigungen angefordert. Wenn du diesen zulässt, sind deine privaten Daten und Finanzdaten eventuell gefährdet.<xliff:g id="ID_1">&lt;br&gt;&lt;br&gt;</xliff:g>Die App funktioniert ohne diese eingeschränkten Berechtigungen aber möglicherweise nicht richtig. &lt;a href=<xliff:g id="LEARN_MORE_LINK">%1$s</xliff:g>&gt;Informationen dazu, wie du den Zugriff erlaubst&lt;/a&gt;"</string>
<string name="enhanced_confirmation_dialog_title_settings_default" msgid="1858092969721041576">"App wurde Zugriff verweigert"</string>
<string name="enhanced_confirmation_dialog_desc_settings_default" msgid="6911632348359332981">"Wenn du den Zugriff auf diese Berechtigung zulässt, sind deine privaten Daten und Finanzdaten eventuell gefährdet.<xliff:g id="ID_1">&lt;br&gt;&lt;br&gt;</xliff:g>Die App funktioniert ohne diese eingeschränkte Berechtigung aber möglicherweise nicht richtig. &lt;a href=<xliff:g id="LEARN_MORE_LINK">%1$s</xliff:g>&gt;Informationen dazu, wie du den Zugriff erlaubst&lt;/a&gt;"</string>
diff --git a/PermissionController/res/values-hi/strings.xml b/PermissionController/res/values-hi/strings.xml
index 6503fa873..eb95fb9ba 100644
--- a/PermissionController/res/values-hi/strings.xml
+++ b/PermissionController/res/values-hi/strings.xml
@@ -673,7 +673,7 @@
<string name="enhanced_confirmation_dialog_desc" msgid="5921240234843839219">"आपकी सुरक्षा के लिए, यह सेटिंग फ़िलहाल उपलब्ध नहीं है."</string>
<string name="enhanced_confirmation_dialog_title_permission" msgid="2149144789394238266">"ऐप्लिकेशन को, <xliff:g id="PERMISSION_NAME">%1$s</xliff:g> को ऐक्सेस करने की अनुमति नहीं मिली"</string>
<string name="enhanced_confirmation_dialog_desc_permission" msgid="3150778951946468945">"इस ऐप्लिकेशन ने संवेदनशील जानकारी ऐक्सेस करने का अनुरोध किया है. इसे अनुमति देने पर, आपकी निजी और वित्तीय जानकारी की सुरक्षा को खतरा हो सकता है.<xliff:g id="ID_1">&lt;br&gt;&lt;br&gt;</xliff:g>हालांकि, हो सकता है कि पाबंदी वाली अनुमति न मिलने पर, ऐप्लिकेशन सही तरह से काम न करें. &lt;a href=<xliff:g id="LEARN_MORE_LINK">%1$s</xliff:g>&gt;ऐक्सेस देने का तरीका जानें&lt;/a&gt;"</string>
- <string name="enhanced_confirmation_dialog_title_role" msgid="1737023798483772780">"ऐप्लिकेशन को, डिफ़ॉल्ट <xliff:g id="ROLE_NAME">%1$s</xliff:g> के तौर पर सेट करने की अनुमति नहीं मिली"</string>
+ <string name="enhanced_confirmation_dialog_title_role" msgid="1737023798483772780">"ऐप्लिकेशन को डिफ़ॉल्ट <xliff:g id="ROLE_NAME">%1$s</xliff:g> के तौर पर सेट करने की अनुमति नहीं दी गई"</string>
<string name="enhanced_confirmation_dialog_desc_role" msgid="6369601947905234551">"इस ऐप्लिकेशन ने संवेदनशील जानकारी ऐक्सेस करने का अनुरोध किया है. इसे अनुमति देने पर, आपकी निजी और वित्तीय जानकारी की सुरक्षा को खतरा हो सकता है.<xliff:g id="ID_1">&lt;br&gt;&lt;br&gt;</xliff:g>हालांकि, हो सकता है कि पाबंदी वाली अनुमतियां न मिलने पर, ऐप्लिकेशन सही तरह से काम न करे. &lt;a href=<xliff:g id="LEARN_MORE_LINK">%1$s</xliff:g>&gt;ऐक्सेस देने का तरीका जानें&lt;/a&gt;"</string>
<string name="enhanced_confirmation_dialog_title_settings_default" msgid="1858092969721041576">"ऐप्लिकेशन को ऐक्सेस से जुड़ी अनुमति नहीं दी गई"</string>
<string name="enhanced_confirmation_dialog_desc_settings_default" msgid="6911632348359332981">"ऐप्लिकेशन को यह अनुमति देने पर, आपकी निजी और वित्तीय जानकारी की सुरक्षा को खतरा हो सकता है.<xliff:g id="ID_1">&lt;br&gt;&lt;br&gt;</xliff:g>हालांकि, हो सकता है कि पाबंदी वाली अनुमति न मिलने पर, ऐप्लिकेशन सही तरह से काम न करे. &lt;a href=<xliff:g id="LEARN_MORE_LINK">%1$s</xliff:g>&gt;ऐक्सेस देने का तरीका जानें&lt;/a&gt;"</string>
diff --git a/PermissionController/res/values-pa/strings.xml b/PermissionController/res/values-pa/strings.xml
index 366c1ee8c..f00741f53 100644
--- a/PermissionController/res/values-pa/strings.xml
+++ b/PermissionController/res/values-pa/strings.xml
@@ -485,7 +485,7 @@
<string name="permgrouprequest_device_aware_fineupgrade" msgid="4453775952305587571">"ਕੀ &lt;b&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/b&gt; \'ਤੇ <xliff:g id="APP_NAME">&lt;b&gt;%1$s&lt;/b&gt;</xliff:g> ਦੀ ਟਿਕਾਣਾ ਪਹੁੰਚ ਨੂੰ ਅਨੁਮਾਨਿਤ ਤੋਂ ਸਟੀਕ \'ਤੇ ਬਦਲਣਾ ਹੈ?"</string>
<string name="permgrouprequest_coarselocation" msgid="7244605063736425232">"ਕੀ &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ਨੂੰ ਇਸ ਡੀਵਾਈਸ ਦੇ ਅੰਦਾਜ਼ਨ ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦੇਣੀ ਹੈ?"</string>
<string name="permgrouprequest_device_aware_coarselocation" msgid="8367540370912066757">"ਕੀ &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ਨੂੰ &lt;b&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/b&gt; ਦੇ ਅੰਦਾਜ਼ਨ ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਆਗਿਆ ਦੇਣੀ ਹੈ?"</string>
- <string name="permgrouprequest_finelocation_imagetext" msgid="1313062433398914334">"ਸਹੀ"</string>
+ <string name="permgrouprequest_finelocation_imagetext" msgid="1313062433398914334">"ਸਟੀਕ"</string>
<string name="permgrouprequest_coarselocation_imagetext" msgid="8650605041483025297">"ਅੰਦਾਜ਼ਨ"</string>
<string name="permgrouprequest_calendar" msgid="1493150855673603806">"ਕੀ &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ਨੂੰ ਤੁਹਾਡੇ ਕੈਲੰਡਰ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਆਗਿਆ ਦੇਣੀ ਹੈ?"</string>
<string name="permgrouprequest_device_aware_calendar" msgid="7161929851377463612">"ਕੀ &lt;b&gt;<xliff:g id="APP_NAME">%1$s</xliff:g>&lt;/b&gt; ਨੂੰ &lt;b&gt;<xliff:g id="DEVICE_NAME">%2$s</xliff:g>&lt;/b&gt; \'ਤੇ ਆਪਣੇ ਕੈਲੰਡਰ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਦੀ ਆਗਿਆ ਦੇਣੀ ਹੈ?"</string>
diff --git a/PermissionController/res/values-sk/strings.xml b/PermissionController/res/values-sk/strings.xml
index 67cd04116..73a78befe 100644
--- a/PermissionController/res/values-sk/strings.xml
+++ b/PermissionController/res/values-sk/strings.xml
@@ -368,7 +368,7 @@
<string name="role_dialer_search_keywords" msgid="3324448983559188087">"vytáčanie"</string>
<string name="role_sms_label" msgid="8456999857547686640">"Predvolená aplikácia na SMS"</string>
<string name="role_sms_short_label" msgid="4371444488034692243">"aplikáciou na SMS"</string>
- <string name="role_sms_description" msgid="3424020199148153513">"Aplikácie, ktoré vám umožňujú prostredníctvom vášho telefónneho čísla odosielať a prijímať krátke textové správy, fotky, videá a ďalší obsah"</string>
+ <string name="role_sms_description" msgid="3424020199148153513">"Aplikácie, ktoré vám pomocou telefónneho čísla umožňujú posielať a prijímať krátke textové správy, fotky, videá a iné"</string>
<string name="role_sms_request_title" msgid="7953552109601185602">"Chcete <xliff:g id="APP_NAME">%1$s</xliff:g> nastaviť ako predvolenú aplikáciu na SMS?"</string>
<string name="role_sms_request_description" msgid="2691004766132144886">"Tejto aplikácii bude udelený prístup k vašej kamere, kontaktom, súborom a médiám, mikrofónu, telefónu aj správam SMS"</string>
<string name="role_sms_search_keywords" msgid="8022048144395047352">"textová správa, poslať textovú správu, správy, posielanie textových správ"</string>
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/AnnotatedText.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/AnnotatedText.kt
index d1b665846..bcdf3b661 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/AnnotatedText.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/AnnotatedText.kt
@@ -19,81 +19,75 @@ package com.android.permissioncontroller.permission.ui.wear.elements
import android.text.Spanned
import android.text.style.ClickableSpan
import android.view.View
-import androidx.compose.foundation.text.ClickableText
+import androidx.compose.foundation.text.BasicText
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.text.AnnotatedString
+import androidx.compose.ui.text.LinkAnnotation
+import androidx.compose.ui.text.LinkInteractionListener
import androidx.compose.ui.text.SpanStyle
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.buildAnnotatedString
import androidx.compose.ui.text.style.TextDecoration
import androidx.wear.compose.material.MaterialTheme
-import com.android.permissioncontroller.permission.ui.wear.WearUtils.capitalize
const val CLICKABLE_SPAN_TAG = "CLICKABLE_SPAN_TAG"
@Composable
-fun AnnotatedText(
- text: CharSequence,
- style: TextStyle,
- modifier: Modifier = Modifier,
- shouldCapitalize: Boolean
-) {
+fun AnnotatedText(text: CharSequence, style: TextStyle, modifier: Modifier = Modifier) {
val onClickCallbacks = mutableMapOf<String, (View) -> Unit>()
- val annotatedString = spannableStringToAnnotatedString(text, shouldCapitalize, onClickCallbacks)
val context = LocalContext.current
- ClickableText(text = annotatedString, style = style, modifier = modifier) { offset ->
- // Fires the onClickCallback at the clicked position.
- // It's tricky to send an empty view over the parameter, but no way to get the proper one.
- // Need to improve to use it in common.
- annotatedString
- .getStringAnnotations(CLICKABLE_SPAN_TAG, offset, offset)
- .firstOrNull()
- ?.let { onClickCallbacks.get(it.item)?.invoke(View(context)) }
+ val listener = LinkInteractionListener {
+ if (it is LinkAnnotation.Clickable) {
+ onClickCallbacks.get(it.tag)?.invoke(View(context))
+ }
}
+
+ val annotatedString =
+ spannableStringToAnnotatedString(text, onClickCallbacks, listener = listener)
+ BasicText(text = annotatedString, style = style, modifier = modifier)
}
@Composable
private fun spannableStringToAnnotatedString(
text: CharSequence,
- shouldCapitalize: Boolean,
onClickCallbacks: MutableMap<String, (View) -> Unit>,
- spanColor: Color = MaterialTheme.colors.primary
-): AnnotatedString {
- val finalString = if (shouldCapitalize) text.toString().capitalize() else text.toString()
- return if (text is Spanned) {
+ spanColor: Color = MaterialTheme.colors.primary,
+ listener: LinkInteractionListener
+) =
+ if (text is Spanned) {
buildAnnotatedString {
- append(finalString)
+ append((text.toString()))
for (span in text.getSpans(0, text.length, Any::class.java)) {
val start = text.getSpanStart(span)
val end = text.getSpanEnd(span)
when (span) {
is ClickableSpan ->
- addClickableSpan(span, spanColor, start, end, onClickCallbacks)
+ addClickableSpan(span, spanColor, start, end, onClickCallbacks, listener)
else -> addStyle(SpanStyle(), start, end)
}
}
}
} else {
- AnnotatedString(finalString)
+ AnnotatedString(text.toString())
}
-}
private fun AnnotatedString.Builder.addClickableSpan(
span: ClickableSpan,
spanColor: Color,
start: Int,
end: Int,
- onClickCallbacks: MutableMap<String, (View) -> Unit>
+ onClickCallbacks: MutableMap<String, (View) -> Unit>,
+ listener: LinkInteractionListener
) {
+ val key = "${CLICKABLE_SPAN_TAG}:$start:$end"
+ onClickCallbacks[key] = span::onClick
+ addLink(LinkAnnotation.Clickable(key, linkInteractionListener = listener), start, end)
addStyle(
SpanStyle(color = spanColor, textDecoration = TextDecoration.Underline),
start,
end,
)
- val key = "${CLICKABLE_SPAN_TAG}:$start:$end"
- onClickCallbacks[key] = span::onClick
- addStringAnnotation(CLICKABLE_SPAN_TAG, key, start, end)
}
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/ScrollableScreen.kt b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/ScrollableScreen.kt
index 7c0a7428e..717cf9528 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/ScrollableScreen.kt
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/wear/elements/ScrollableScreen.kt
@@ -271,7 +271,6 @@ internal fun Scaffold(
color = MaterialTheme.colors.onSurfaceVariant
),
modifier = modifier,
- shouldCapitalize = true
)
}
}
diff --git a/tests/cts/permissionui/src/android/permissionui/cts/CameraMicIndicatorsPermissionTest.kt b/tests/cts/permissionui/src/android/permissionui/cts/CameraMicIndicatorsPermissionTest.kt
index 0ba251aac..9325ff8fb 100644
--- a/tests/cts/permissionui/src/android/permissionui/cts/CameraMicIndicatorsPermissionTest.kt
+++ b/tests/cts/permissionui/src/android/permissionui/cts/CameraMicIndicatorsPermissionTest.kt
@@ -109,8 +109,6 @@ class CameraMicIndicatorsPermissionTest : StsExtraBusinessLogicTestCase {
private val isTv = packageManager.hasSystemFeature(PackageManager.FEATURE_LEANBACK)
private val isCar = packageManager.hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)
private val isWatch = packageManager.hasSystemFeature(PackageManager.FEATURE_WATCH)
- private val safetyCenterMicLabel = getPermissionControllerString(MIC_LABEL_NAME)
- private val safetyCenterCameraLabel = getPermissionControllerString(CAMERA_LABEL_NAME)
private val originalCameraLabel =
packageManager
.getPermissionGroupInfo(Manifest.permission_group.CAMERA, 0)
@@ -723,6 +721,7 @@ class CameraMicIndicatorsPermissionTest : StsExtraBusinessLogicTestCase {
}
private fun assertSafetyCenterMicViewNotNull() {
+ val safetyCenterMicLabel = getPermissionControllerString(MIC_LABEL_NAME)
val micView = waitFindObject(byOneOfText(originalMicLabel, safetyCenterMicLabel))
assertNotNull(
"View with text '$originalMicLabel' or '$safetyCenterMicLabel' not found",
@@ -731,6 +730,7 @@ class CameraMicIndicatorsPermissionTest : StsExtraBusinessLogicTestCase {
}
private fun assertSafetyCenterCameraViewNotNull() {
+ val safetyCenterCameraLabel = getPermissionControllerString(CAMERA_LABEL_NAME)
val cameraView = waitFindObject(byOneOfText(originalCameraLabel, safetyCenterCameraLabel))
assertNotNull(
"View with text '$originalCameraLabel' or '$safetyCenterCameraLabel' not found",