summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--PermissionController/jarjar-rules.txt4
-rw-r--r--PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyCenterDashboardFragment.java30
-rw-r--r--PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/permission/service/PermissionStorageTimeChangeReceiverTest.kt6
-rw-r--r--PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/permission/service/PersistedStoragePackageUninstalledReceiverTest.kt4
-rw-r--r--PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/privacysources/AppDataSharingUpdatesPrivacySourceTest.kt6
-rw-r--r--PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/privacysources/NotificationListenerPrivacySourceTest.kt6
-rw-r--r--PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/privacysources/SafetyCenterReceiverTest.kt16
-rw-r--r--PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/privacysources/WorkPolicyInfoTest.kt6
-rw-r--r--PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/safetylabel/SafetyLabelChangesJobServiceTest.kt6
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionScaffold.kt9
-rw-r--r--PermissionController/wear-permission-components/src/wear.permission.components/theme/WearComposeMaterial3Typography.kt13
11 files changed, 69 insertions, 37 deletions
diff --git a/PermissionController/jarjar-rules.txt b/PermissionController/jarjar-rules.txt
index 5ecb0241f..ceac6c3a7 100644
--- a/PermissionController/jarjar-rules.txt
+++ b/PermissionController/jarjar-rules.txt
@@ -26,6 +26,10 @@ rule android.os.*FeatureFlags* com.android.permissioncontroller.jarjar.@0
rule android.os.FeatureFlags* com.android.permissioncontroller.jarjar.@0
rule android.os.FeatureFlags com.android.permissioncontroller.jarjar.@0
rule android.os.Flags com.android.permissioncontroller.jarjar.@0
+rule android.xr.*FeatureFlags* com.android.permissioncontroller.jarjar.@0
+rule android.xr.FeatureFlags* com.android.permissioncontroller.jarjar.@0
+rule android.xr.FeatureFlags com.android.permissioncontroller.jarjar.@0
+rule android.xr.Flags com.android.permissioncontroller.jarjar.@0
rule com.android.permission.flags.*FeatureFlags* com.android.permissioncontroller.jarjar.@0
rule com.android.permission.flags.FeatureFlags* com.android.permissioncontroller.jarjar.@0
rule com.android.permission.flags.FeatureFlags com.android.permissioncontroller.jarjar.@0
diff --git a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyCenterDashboardFragment.java b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyCenterDashboardFragment.java
index 1297bc4c2..47f9fd591 100644
--- a/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyCenterDashboardFragment.java
+++ b/PermissionController/src/com/android/permissioncontroller/safetycenter/ui/SafetyCenterDashboardFragment.java
@@ -81,6 +81,7 @@ public final class SafetyCenterDashboardFragment extends SafetyCenterFragment {
new CollapsableGroupCardHelper();
private PreferenceGroup mIssuesGroup;
private PreferenceGroup mEntriesGroup;
+ @Nullable private PreferenceGroup mPrivacyEntriesGroup;
private PreferenceGroup mStaticEntriesGroup;
private boolean mIsQuickSettingsFragment;
@@ -263,12 +264,17 @@ public final class SafetyCenterDashboardFragment extends SafetyCenterFragment {
if (SdkLevel.isAtLeastV()
&& group != null
&& Objects.equals(group.getId(), PRIVACY_SOURCES_GROUP_ID)) {
- // Add an extra header before the privacy sources
- PreferenceCategory category = new ComparablePreferenceCategory(context);
- SafetyCenterResourcesApk safetyCenterResourcesApk =
- new SafetyCenterResourcesApk(requireContext());
- category.setTitle(safetyCenterResourcesApk.getStringByName("privacy_title"));
- mEntriesGroup.addPreference(category);
+ // Add a special group for the privacy sources
+ mPrivacyEntriesGroup = new ComparablePreferenceCategory(context);
+ mPrivacyEntriesGroup.setTitle(
+ new SafetyCenterResourcesApk(requireContext())
+ .getStringByName("privacy_title"));
+ mEntriesGroup.addPreference(mPrivacyEntriesGroup);
+
+ mPrivacyEntriesGroup.addPreference(
+ new SafetyHomepageEntryPreference(
+ context, group, getSafetyCenterSessionId()));
+ continue;
}
if (SafetyCenterUiFlags.getShowSubpages() && group != null) {
@@ -327,10 +333,14 @@ public final class SafetyCenterDashboardFragment extends SafetyCenterFragment {
private void updateStaticSafetyEntries(Context context, SafetyCenterData data) {
mStaticEntriesGroup.removeAll();
- for (SafetyCenterStaticEntryGroup group : data.getStaticEntryGroups()) {
- if (group.getTitle().toString().isEmpty()) {
- // Interpret an empty title as signal to not create a titled category
- addStaticEntriesTo(context, data, mStaticEntriesGroup, group.getStaticEntries());
+ List<SafetyCenterStaticEntryGroup> staticEntryGroups = data.getStaticEntryGroups();
+ for (int i = 0, size = staticEntryGroups.size(); i < size; i++) {
+ SafetyCenterStaticEntryGroup group = staticEntryGroups.get(i);
+
+ if (i == 0 && group.getTitle().toString().isEmpty() && mPrivacyEntriesGroup != null) {
+ // Interpret an empty title for the first group as signal to extend the privacy
+ // category.
+ addStaticEntriesTo(context, data, mPrivacyEntriesGroup, group.getStaticEntries());
} else {
PreferenceCategory category = new ComparablePreferenceCategory(context);
category.setTitle(group.getTitle());
diff --git a/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/permission/service/PermissionStorageTimeChangeReceiverTest.kt b/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/permission/service/PermissionStorageTimeChangeReceiverTest.kt
index 2ae4b0585..5612b7731 100644
--- a/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/permission/service/PermissionStorageTimeChangeReceiverTest.kt
+++ b/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/permission/service/PermissionStorageTimeChangeReceiverTest.kt
@@ -49,7 +49,7 @@ import org.mockito.Mockito.mock
import org.mockito.Mockito.never
import org.mockito.Mockito.spy
import org.mockito.Mockito.verify
-import org.mockito.Mockito.verifyZeroInteractions
+import org.mockito.Mockito.verifyNoMoreInteractions
import org.mockito.Mockito.`when`
import org.mockito.MockitoAnnotations
import org.mockito.MockitoSession
@@ -125,7 +125,7 @@ class PermissionStorageTimeChangeReceiverTest {
receiver.onReceive(context, Intent(Intent.ACTION_TIME_CHANGED))
verify(receiver, never()).onTimeChanged(anyLong())
- verifyZeroInteractions(editor)
+ verifyNoMoreInteractions(editor)
}
@Test
@@ -133,7 +133,7 @@ class PermissionStorageTimeChangeReceiverTest {
receiver.onReceive(context, Intent(Intent.ACTION_MANAGE_PERMISSIONS))
verify(receiver, never()).onTimeChanged(anyLong())
- verifyZeroInteractions(editor)
+ verifyNoMoreInteractions(editor)
}
@Test
diff --git a/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/permission/service/PersistedStoragePackageUninstalledReceiverTest.kt b/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/permission/service/PersistedStoragePackageUninstalledReceiverTest.kt
index baa848960..4b89d5141 100644
--- a/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/permission/service/PersistedStoragePackageUninstalledReceiverTest.kt
+++ b/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/permission/service/PersistedStoragePackageUninstalledReceiverTest.kt
@@ -40,7 +40,7 @@ import org.junit.runner.RunWith
import org.mockito.Mock
import org.mockito.Mockito
import org.mockito.Mockito.spy
-import org.mockito.Mockito.verifyZeroInteractions
+import org.mockito.Mockito.verifyNoMoreInteractions
import org.mockito.Mockito.`when`
import org.mockito.MockitoAnnotations
import org.mockito.MockitoSession
@@ -102,7 +102,7 @@ class PersistedStoragePackageUninstalledReceiverTest {
receiver.onReceive(context, intent)
- verifyZeroInteractions(permissionEventStorage)
+ verifyNoMoreInteractions(permissionEventStorage)
}
@Test
diff --git a/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/privacysources/AppDataSharingUpdatesPrivacySourceTest.kt b/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/privacysources/AppDataSharingUpdatesPrivacySourceTest.kt
index d09b5093f..731022cb5 100644
--- a/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/privacysources/AppDataSharingUpdatesPrivacySourceTest.kt
+++ b/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/privacysources/AppDataSharingUpdatesPrivacySourceTest.kt
@@ -55,7 +55,7 @@ import org.mockito.ArgumentMatchers.anyBoolean
import org.mockito.ArgumentMatchers.eq
import org.mockito.Mock
import org.mockito.Mockito.verify
-import org.mockito.Mockito.verifyZeroInteractions
+import org.mockito.Mockito.verifyNoMoreInteractions
import org.mockito.Mockito.`when` as whenever
import org.mockito.MockitoAnnotations
import org.mockito.MockitoSession
@@ -102,14 +102,14 @@ class AppDataSharingUpdatesPrivacySourceTest {
fun safetyCenterEnabledChanged_enabled_doesNothing() {
appDataSharingUpdatesPrivacySource.safetyCenterEnabledChanged(context, true)
- verifyZeroInteractions(mockSafetyCenterManager)
+ verifyNoMoreInteractions(mockSafetyCenterManager)
}
@Test
fun safetyCenterEnabledChanged_disabled_doesNothing() {
appDataSharingUpdatesPrivacySource.safetyCenterEnabledChanged(context, false)
- verifyZeroInteractions(mockSafetyCenterManager)
+ verifyNoMoreInteractions(mockSafetyCenterManager)
}
@Test
diff --git a/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/privacysources/NotificationListenerPrivacySourceTest.kt b/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/privacysources/NotificationListenerPrivacySourceTest.kt
index cc3b096a8..cac60e1a2 100644
--- a/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/privacysources/NotificationListenerPrivacySourceTest.kt
+++ b/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/privacysources/NotificationListenerPrivacySourceTest.kt
@@ -55,7 +55,7 @@ import org.mockito.ArgumentMatchers.eq
import org.mockito.Mock
import org.mockito.Mockito.never
import org.mockito.Mockito.verify
-import org.mockito.Mockito.verifyZeroInteractions
+import org.mockito.Mockito.verifyNoMoreInteractions
import org.mockito.Mockito.`when` as whenever
import org.mockito.MockitoAnnotations
import org.mockito.MockitoSession
@@ -209,7 +209,7 @@ class NotificationListenerPrivacySourceTest {
privacySource.safetyCenterEnabledChanged(context, false)
- verifyZeroInteractions(mockSafetyCenterManager)
+ verifyNoMoreInteractions(mockSafetyCenterManager)
}
@Test
@@ -281,7 +281,7 @@ class NotificationListenerPrivacySourceTest {
SafetyCenterReceiver.RefreshEvent.UNKNOWN
)
- verifyZeroInteractions(mockSafetyCenterManager)
+ verifyNoMoreInteractions(mockSafetyCenterManager)
}
private fun setNotificationListenerCheckEnabled(enabled: Boolean) {
diff --git a/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/privacysources/SafetyCenterReceiverTest.kt b/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/privacysources/SafetyCenterReceiverTest.kt
index a0199979d..2c166f24b 100644
--- a/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/privacysources/SafetyCenterReceiverTest.kt
+++ b/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/privacysources/SafetyCenterReceiverTest.kt
@@ -55,7 +55,7 @@ import org.mockito.ArgumentMatchers.eq
import org.mockito.Mock
import org.mockito.Mockito
import org.mockito.Mockito.verify
-import org.mockito.Mockito.verifyZeroInteractions
+import org.mockito.Mockito.verifyNoMoreInteractions
import org.mockito.Mockito.`when` as whenever
import org.mockito.MockitoAnnotations
import org.mockito.MockitoSession
@@ -199,8 +199,8 @@ class SafetyCenterReceiverTest {
safetyCenterReceiver.onReceive(application, intent)
advanceUntilIdle()
- verifyZeroInteractions(mockPrivacySource)
- verifyZeroInteractions(mockPrivacySource2)
+ verifyNoMoreInteractions(mockPrivacySource)
+ verifyNoMoreInteractions(mockPrivacySource2)
}
@Test
@@ -214,7 +214,7 @@ class SafetyCenterReceiverTest {
verify(mockPrivacySource)
.rescanAndPushSafetyCenterData(application, intent, EVENT_REFRESH_REQUESTED)
- verifyZeroInteractions(mockPrivacySource2)
+ verifyNoMoreInteractions(mockPrivacySource2)
}
@Test
@@ -225,8 +225,8 @@ class SafetyCenterReceiverTest {
safetyCenterReceiver.onReceive(application, intent)
advanceUntilIdle()
- verifyZeroInteractions(mockPrivacySource)
- verifyZeroInteractions(mockPrivacySource2)
+ verifyNoMoreInteractions(mockPrivacySource)
+ verifyNoMoreInteractions(mockPrivacySource2)
}
@Test
@@ -238,7 +238,7 @@ class SafetyCenterReceiverTest {
safetyCenterReceiver.onReceive(application, intent)
advanceUntilIdle()
- verifyZeroInteractions(mockPrivacySource)
- verifyZeroInteractions(mockPrivacySource2)
+ verifyNoMoreInteractions(mockPrivacySource)
+ verifyNoMoreInteractions(mockPrivacySource2)
}
}
diff --git a/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/privacysources/WorkPolicyInfoTest.kt b/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/privacysources/WorkPolicyInfoTest.kt
index 38baee3ed..e2f1443e3 100644
--- a/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/privacysources/WorkPolicyInfoTest.kt
+++ b/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/privacysources/WorkPolicyInfoTest.kt
@@ -47,7 +47,7 @@ import org.mockito.ArgumentMatchers.eq
import org.mockito.Mock
import org.mockito.Mockito
import org.mockito.Mockito.verify
-import org.mockito.Mockito.verifyZeroInteractions
+import org.mockito.Mockito.verifyNoMoreInteractions
import org.mockito.Mockito.`when` as whenever
import org.mockito.MockitoAnnotations
import org.mockito.MockitoSession
@@ -169,7 +169,7 @@ class WorkPolicyInfoTest {
fun safetyCenterEnabledChanged_safetyCenterDisabled() {
workPolicyInfo.safetyCenterEnabledChanged(context, false)
- verifyZeroInteractions(mockSafetyCenterManager)
+ verifyNoMoreInteractions(mockSafetyCenterManager)
}
@Test
@@ -196,7 +196,7 @@ class WorkPolicyInfoTest {
workPolicyInfo.safetyCenterEnabledChanged(context, false)
- verifyZeroInteractions(mockSafetyCenterManager)
+ verifyNoMoreInteractions(mockSafetyCenterManager)
}
@Test
diff --git a/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/safetylabel/SafetyLabelChangesJobServiceTest.kt b/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/safetylabel/SafetyLabelChangesJobServiceTest.kt
index 4d206a2f4..396ad41df 100644
--- a/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/safetylabel/SafetyLabelChangesJobServiceTest.kt
+++ b/PermissionController/tests/mocking/src/com/android/permissioncontroller/tests/mocking/safetylabel/SafetyLabelChangesJobServiceTest.kt
@@ -46,7 +46,7 @@ import org.mockito.Mockito.doNothing
import org.mockito.Mockito.mock
import org.mockito.Mockito.times
import org.mockito.Mockito.verify
-import org.mockito.Mockito.verifyZeroInteractions
+import org.mockito.Mockito.verifyNoMoreInteractions
import org.mockito.Mockito.`when` as whenever
import org.mockito.MockitoAnnotations
import org.mockito.MockitoSession
@@ -121,14 +121,14 @@ class SafetyLabelChangesJobServiceTest {
receiver.onReceive(application, Intent(Intent.ACTION_BOOT_COMPLETED))
- verifyZeroInteractions(mockJobScheduler)
+ verifyNoMoreInteractions(mockJobScheduler)
}
@Test
fun onReceiveInvalidIntentAction_jobNotScheduled() {
receiver.onReceive(application, Intent(Intent.ACTION_DEFAULT))
- verifyZeroInteractions(mockJobScheduler)
+ verifyNoMoreInteractions(mockJobScheduler)
}
@Test
diff --git a/PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionScaffold.kt b/PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionScaffold.kt
index 296e45e79..208d3d6ec 100644
--- a/PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionScaffold.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/material3/WearPermissionScaffold.kt
@@ -27,6 +27,7 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.requiredHeightIn
import androidx.compose.foundation.layout.size
import androidx.compose.runtime.Composable
+import androidx.compose.runtime.LaunchedEffect
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.ColorFilter
@@ -59,7 +60,6 @@ import androidx.wear.compose.material3.ScreenScaffold
import androidx.wear.compose.material3.ScrollIndicator
import androidx.wear.compose.material3.Text
import androidx.wear.compose.material3.TimeText
-import androidx.wear.compose.material3.lazy.scrollTransform
import com.android.permissioncontroller.wear.permission.components.AnnotatedText
import com.android.permissioncontroller.wear.permission.components.ListScopeWrapper
import com.android.permissioncontroller.wear.permission.components.material2.Wear2Scaffold
@@ -73,7 +73,7 @@ private class TransformingScopeConverter(private val scope: TransformingLazyColu
ListScopeWrapper {
override fun item(key: Any?, contentType: Any?, content: @Composable () -> Unit) {
// TODO:https://buganizer.corp.google.com/issues/389093588.
- scope.item { Box(modifier = Modifier.scrollTransform(this)) { content() } }
+ scope.item { content() }
}
override fun items(
@@ -194,6 +194,11 @@ private fun WearPermissionScaffoldInternal(
val scalingListState = rememberScalingLazyListState()
val transformingLazyColumnState = rememberTransformingLazyColumnState()
+ LaunchedEffect(title, subtitle) {
+ // When the title/subtitle changes go to the top. Ex: A chain of permission requests.
+ scalingListState.scrollToItem(index = 0)
+ transformingLazyColumnState.scrollToItem(index = 0)
+ }
val listState = if (asScalingList) scalingListState else transformingLazyColumnState
val scrollInfoProvider =
if (asScalingList) ScrollInfoProvider(scalingListState)
diff --git a/PermissionController/wear-permission-components/src/wear.permission.components/theme/WearComposeMaterial3Typography.kt b/PermissionController/wear-permission-components/src/wear.permission.components/theme/WearComposeMaterial3Typography.kt
index e44a24981..c85381c1b 100644
--- a/PermissionController/wear-permission-components/src/wear.permission.components/theme/WearComposeMaterial3Typography.kt
+++ b/PermissionController/wear-permission-components/src/wear.permission.components/theme/WearComposeMaterial3Typography.kt
@@ -24,6 +24,7 @@ import androidx.compose.ui.text.font.Font
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontVariation
import androidx.compose.ui.unit.sp
+import androidx.wear.compose.foundation.CurvedTextStyle
import androidx.wear.compose.material3.Typography
import com.android.permissioncontroller.wear.permission.components.R
@@ -50,6 +51,18 @@ internal object WearComposeMaterial3Typography {
return FontFamily(font)
}
+ private fun CurvedTextStyle.updatedTextStyle(
+ context: Context,
+ @StringRes fontRes: Int,
+ variationSettings: FontVariation.Settings? = null,
+ @DimenRes fontSizeRes: Int,
+ ): CurvedTextStyle {
+ val fontFamily =
+ fontFamily(context = context, id = fontRes, variationSettings = variationSettings)
+ val fontSize = ResourceHelper.getDimen(context = context, id = fontSizeRes)?.sp ?: fontSize
+ return copy(fontFamily = fontFamily, fontSize = fontSize)
+ }
+
private fun TextStyle.updatedTextStyle(
context: Context,
@StringRes fontRes: Int,