Snap for 5694913 from 8d08713c96 to qt-c2f2-release
Change-Id: I3a22e7cdb16986099fa63ba0583deced159eecf3
This commit is contained in:
@@ -2271,6 +2271,7 @@
|
||||
android:excludeFromRecents="true"
|
||||
android:label=""
|
||||
android:screenOrientation="nosensor"
|
||||
android:taskAffinity="com.android.settings.FallbackHome"
|
||||
android:theme="@style/FallbackHome">
|
||||
<intent-filter android:priority="-1000">
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
||||
@@ -16,9 +16,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="?android:attr/colorControlNormal"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="?android:attr/colorControlNormal"
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M12,16.41l-6.71,-6.7l1.42,-1.42l5.29,5.3l5.29,-5.3l1.42,1.42z"/>
|
||||
</vector>
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="@*android:color/material_grey_600"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:pathData="M16,1L4,1c-1.1,0 -2,0.9 -2,2v14h2L4,3h12L16,1zM19,5L8,5c-1.1,0 -2,0.9 -2,2v14c0,1.1 0.9,2 2,2h11c1.1,0 2,-0.9 2,-2L21,7c0,-1.1 -0.9,-2 -2,-2zM19,21L8,21L8,7h11v14z"
|
||||
android:fillColor="#757575"/>
|
||||
android:fillColor="@android:color/white"/>
|
||||
</vector>
|
||||
|
||||
@@ -16,9 +16,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="@android:color/black"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M3,6h18L21,4L3,4c-1.1,0 -2,0.9 -2,2v12c0,1.1 0.9,2 2,2h4v-2L3,18L3,6zM13,12L9,12v1.78c-0.61,0.55 -1,1.33 -1,2.22 0,0.89 0.39,1.67 1,2.22L9,20h4v-1.78c0.61,-0.55 1,-1.34 1,-2.22s-0.39,-1.67 -1,-2.22L13,12zM11,17.5c-0.83,0 -1.5,-0.67 -1.5,-1.5s0.67,-1.5 1.5,-1.5 1.5,0.67 1.5,1.5 -0.67,1.5 -1.5,1.5zM22,8h-6c-0.5,0 -1,0.5 -1,1v10c0,0.5 0.5,1 1,1h6c0.5,0 1,-0.5 1,-1L23,9c0,-0.5 -0.5,-1 -1,-1zM21,18h-4v-8h4v8z"/>
|
||||
</vector>
|
||||
|
||||
@@ -17,9 +17,10 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="?android:attr/colorControlNormal"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="?android:attr/colorControlNormal"
|
||||
android:fillColor="@android:color/white"
|
||||
android:pathData="M18,8h-1V6c0,-2.76 -2.24,-5 -5,-5S7,3.24 7,6v2H6c-1.1,0 -2,0.9 -2,2v10c0,1.1 0.9,2 2,2h12c1.1,0 2,-0.9 2,-2V10C20,8.9 19.1,8 18,8zM9,6c0,-1.66 1.34,-3 3,-3s3,1.34 3,3v2H9V6zM18,20H6V10h12V20zM12,17c1.1,0 2,-0.9 2,-2c0,-1.1 -0.9,-2 -2,-2c-1.1,0 -2,0.9 -2,2C10,16.1 10.9,17 12,17z"/>
|
||||
</vector>
|
||||
|
||||
@@ -130,11 +130,6 @@ public final class Utils extends com.android.settingslib.Utils {
|
||||
public static final String PROPERTY_DEVICE_IDENTIFIER_ACCESS_RESTRICTIONS_DISABLED =
|
||||
"device_identifier_access_restrictions_disabled";
|
||||
|
||||
/**
|
||||
* Whether to show the Permissions Hub.
|
||||
*/
|
||||
public static final String PROPERTY_PERMISSIONS_HUB_ENABLED = "permissions_hub_enabled";
|
||||
|
||||
/**
|
||||
* Finds a matching activity for a preference's intent. If a matching
|
||||
* activity is not found, it will remove the preference.
|
||||
|
||||
@@ -64,9 +64,7 @@ public class RecentLocationAccessPreferenceController extends AbstractPreference
|
||||
|
||||
@Override
|
||||
public boolean isAvailable() {
|
||||
return Boolean.parseBoolean(
|
||||
DeviceConfig.getProperty(DeviceConfig.NAMESPACE_PRIVACY,
|
||||
Utils.PROPERTY_PERMISSIONS_HUB_ENABLED));
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -89,10 +89,7 @@ public class PermissionBarChartPreferenceController extends BasePreferenceContro
|
||||
|
||||
@Override
|
||||
public int getAvailabilityStatus() {
|
||||
return Boolean.parseBoolean(
|
||||
DeviceConfig.getProperty(DeviceConfig.NAMESPACE_PRIVACY,
|
||||
com.android.settings.Utils.PROPERTY_PERMISSIONS_HUB_ENABLED)) ?
|
||||
AVAILABLE_UNSEARCHABLE : UNSUPPORTED_ON_DEVICE;
|
||||
return UNSUPPORTED_ON_DEVICE;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -26,8 +26,6 @@
|
||||
<item>@drawable/ic_arrow_back</item>
|
||||
<item>@drawable/ic_arrow_down_24dp</item>
|
||||
<item>@drawable/ic_battery_charging_full</item>
|
||||
<item>@drawable/ic_battery_saver_accent_24dp</item>
|
||||
<item>@drawable/ic_battery_status_bad_24dp</item>
|
||||
<item>@drawable/ic_battery_status_good_24dp</item>
|
||||
<item>@drawable/ic_battery_status_maybe_24dp</item>
|
||||
<item>@drawable/ic_call_24dp</item>
|
||||
@@ -38,13 +36,13 @@
|
||||
<item>@drawable/ic_content_copy_grey600_24dp</item>
|
||||
<item>@drawable/ic_data_saver</item>
|
||||
<item>@drawable/ic_delete</item>
|
||||
<item>@drawable/ic_delete_accent</item>
|
||||
<item>@drawable/ic_devices_other</item>
|
||||
<item>@drawable/ic_devices_other_opaque_black</item>
|
||||
<item>@drawable/ic_do_not_disturb_on_24dp</item>
|
||||
<item>@drawable/ic_eject_24dp</item>
|
||||
<item>@drawable/ic_expand_less</item>
|
||||
<item>@drawable/ic_expand_more_inverse</item>
|
||||
<item>@drawable/ic_find_in_page_24px</item>
|
||||
<item>@drawable/ic_folder_vd_theme_24</item>
|
||||
<item>@drawable/ic_friction_lock_closed</item>
|
||||
<item>@drawable/ic_gray_scale_24dp</item>
|
||||
@@ -73,7 +71,9 @@
|
||||
<item>@drawable/ic_settings_delete</item>
|
||||
<item>@drawable/ic_settings_display_white</item>
|
||||
<item>@drawable/ic_settings_home</item>
|
||||
<item>@drawable/ic_settings_language</item>
|
||||
<item>@drawable/ic_settings_location</item>
|
||||
<item>@drawable/ic_settings_multiuser</item>
|
||||
<item>@drawable/ic_settings_night_display</item>
|
||||
<item>@drawable/ic_settings_open</item>
|
||||
<item>@drawable/ic_settings_print</item>
|
||||
@@ -82,7 +82,6 @@
|
||||
<item>@drawable/ic_settings_sim</item>
|
||||
<item>@drawable/ic_settings_system_dashboard_white</item>
|
||||
<item>@drawable/ic_settings_wireless</item>
|
||||
<item>@drawable/ic_settings_wireless_white</item>
|
||||
<item>@drawable/ic_storage</item>
|
||||
<item>@drawable/ic_storage_white</item>
|
||||
<item>@drawable/ic_suggestion_night_display</item>
|
||||
@@ -92,5 +91,6 @@
|
||||
<item>@drawable/ic_volume_ringer_vibrate</item>
|
||||
<item>@drawable/ic_volume_up_24dp</item>
|
||||
<item>@drawable/ic_vpn_key</item>
|
||||
<item>@drawable/ic_wifi_tethering</item>
|
||||
</array>
|
||||
</resources>
|
||||
|
||||
@@ -92,75 +92,4 @@ public class RecentLocationAccessPreferenceControllerTest {
|
||||
// We have not yet set the property to show the Permissions Hub.
|
||||
assertThat(mController.isAvailable()).isEqualTo(false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void isAvailable_permissionHubEnabled_shouldReturnTrue() {
|
||||
DeviceConfig.setProperty(DeviceConfig.NAMESPACE_PRIVACY,
|
||||
Utils.PROPERTY_PERMISSIONS_HUB_ENABLED, "true", true);
|
||||
|
||||
assertThat(mController.isAvailable()).isEqualTo(true);
|
||||
}
|
||||
|
||||
/** Verifies the title text, details text are correct, and the click listener is set. */
|
||||
@Test
|
||||
@Ignore
|
||||
public void updateState_whenAppListIsEmpty_shouldDisplayTitleTextAndDetailsText() {
|
||||
doReturn(new ArrayList<>()).when(mRecentLocationApps).getAppListSorted();
|
||||
mController.displayPreference(mScreen);
|
||||
mController.updateState(mLayoutPreference);
|
||||
|
||||
final TextView title = mAppEntitiesHeaderView.findViewById(R.id.header_title);
|
||||
assertThat(title.getText()).isEqualTo(
|
||||
mContext.getText(R.string.location_category_recent_location_access));
|
||||
final TextView details = mAppEntitiesHeaderView.findViewById(R.id.header_details);
|
||||
assertThat(details.getText()).isEqualTo(
|
||||
mContext.getText(R.string.location_recent_location_access_view_details));
|
||||
assertThat(details.hasOnClickListeners()).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateState_whenAppListMoreThanThree_shouldDisplayTopThreeApps() {
|
||||
final List<RecentLocationAccesses.Access> accesses = createMockAccesses(6);
|
||||
doReturn(accesses).when(mRecentLocationApps).getAppListSorted();
|
||||
mController.displayPreference(mScreen);
|
||||
mController.updateState(mLayoutPreference);
|
||||
|
||||
// The widget can display the top 3 apps from the list when there're more than 3.
|
||||
final View app1View = mAppEntitiesHeaderView.findViewById(R.id.app1_view);
|
||||
final ImageView appIconView1 = app1View.findViewById(R.id.app_icon);
|
||||
final TextView appTitle1 = app1View.findViewById(R.id.app_title);
|
||||
|
||||
assertThat(app1View.getVisibility()).isEqualTo(View.VISIBLE);
|
||||
assertThat(appIconView1.getDrawable()).isNotNull();
|
||||
assertThat(appTitle1.getText()).isEqualTo("appTitle0");
|
||||
|
||||
final View app2View = mAppEntitiesHeaderView.findViewById(R.id.app2_view);
|
||||
final ImageView appIconView2 = app2View.findViewById(R.id.app_icon);
|
||||
final TextView appTitle2 = app2View.findViewById(R.id.app_title);
|
||||
|
||||
assertThat(app2View.getVisibility()).isEqualTo(View.VISIBLE);
|
||||
assertThat(appIconView2.getDrawable()).isNotNull();
|
||||
assertThat(appTitle2.getText()).isEqualTo("appTitle1");
|
||||
|
||||
final View app3View = mAppEntitiesHeaderView.findViewById(R.id.app3_view);
|
||||
final ImageView appIconView3 = app3View.findViewById(R.id.app_icon);
|
||||
final TextView appTitle3 = app3View.findViewById(R.id.app_title);
|
||||
|
||||
assertThat(app3View.getVisibility()).isEqualTo(View.VISIBLE);
|
||||
assertThat(appIconView3.getDrawable()).isNotNull();
|
||||
assertThat(appTitle3.getText()).isEqualTo("appTitle2");
|
||||
}
|
||||
|
||||
private List<RecentLocationAccesses.Access> createMockAccesses(int count) {
|
||||
final List<RecentLocationAccesses.Access> accesses = new ArrayList<>();
|
||||
for (int i = 0; i < count; i++) {
|
||||
final Drawable icon = mock(Drawable.class);
|
||||
// Add mock accesses
|
||||
final RecentLocationAccesses.Access access = new RecentLocationAccesses.Access(
|
||||
"packageName", android.os.Process.myUserHandle(), icon,
|
||||
"appTitle" + i, "appSummary" + i, 1000 - i);
|
||||
accesses.add(access);
|
||||
}
|
||||
return accesses;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,8 +65,6 @@ public class AccessibilityUsagePreferenceControllerTest {
|
||||
|
||||
@Test
|
||||
public void getAvailabilityStatus_noEnabledServices_shouldReturnUnsupported() {
|
||||
DeviceConfig.setProperty(DeviceConfig.NAMESPACE_PRIVACY,
|
||||
Utils.PROPERTY_PERMISSIONS_HUB_ENABLED, "true", true);
|
||||
mAccessibilityManager.setEnabledAccessibilityServiceList(new ArrayList<>());
|
||||
AccessibilityUsagePreferenceController controller =
|
||||
new AccessibilityUsagePreferenceController(mContext, "test_key");
|
||||
@@ -76,8 +74,6 @@ public class AccessibilityUsagePreferenceControllerTest {
|
||||
|
||||
@Test
|
||||
public void getAvailabilityStatus_enabledServices_shouldReturnAvailable() {
|
||||
DeviceConfig.setProperty(DeviceConfig.NAMESPACE_PRIVACY,
|
||||
Utils.PROPERTY_PERMISSIONS_HUB_ENABLED, "false", true);
|
||||
mAccessibilityManager.setEnabledAccessibilityServiceList(
|
||||
new ArrayList<>(Arrays.asList(new AccessibilityServiceInfo())));
|
||||
AccessibilityUsagePreferenceController controller =
|
||||
|
||||
@@ -117,144 +117,4 @@ public class PermissionBarChartPreferenceControllerTest {
|
||||
// We have not yet set the property to show the Permissions Hub.
|
||||
assertThat(mController.getAvailabilityStatus()).isEqualTo(UNSUPPORTED_ON_DEVICE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getAvailabilityStatus_permissionHubEnabled_shouldReturnAvailableUnsearchable() {
|
||||
DeviceConfig.setProperty(DeviceConfig.NAMESPACE_PRIVACY,
|
||||
Utils.PROPERTY_PERMISSIONS_HUB_ENABLED,
|
||||
"true", true);
|
||||
|
||||
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE_UNSEARCHABLE);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void displayPreference_shouldInitializeBarChart() {
|
||||
mController.displayPreference(mScreen);
|
||||
|
||||
verify(mPreference).initializeBarChart(any(BarChartInfo.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void displayPreference_usageInfosSet_shouldSetBarViewInfos() {
|
||||
final RuntimePermissionUsageInfo info1 =
|
||||
new RuntimePermissionUsageInfo("permission 1", 10);
|
||||
mController.mOldUsageInfos.add(info1);
|
||||
|
||||
mController.displayPreference(mScreen);
|
||||
|
||||
verify(mPreference).setBarViewInfos(any(BarViewInfo[].class));
|
||||
verify(mPreference).initializeBarChart(any(BarChartInfo.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onPermissionUsageResult_differentPermissionResultSet_shouldSetBarViewInfos() {
|
||||
final List<RuntimePermissionUsageInfo> infos1 = new ArrayList<>();
|
||||
final RuntimePermissionUsageInfo info1 =
|
||||
new RuntimePermissionUsageInfo("permission 1", 10);
|
||||
infos1.add(info1);
|
||||
mController.displayPreference(mScreen);
|
||||
mController.onPermissionUsageResult(infos1);
|
||||
|
||||
verify(mPreference).setBarViewInfos(any(BarViewInfo[].class));
|
||||
|
||||
final List<RuntimePermissionUsageInfo> infos2 = new ArrayList<>();
|
||||
final RuntimePermissionUsageInfo info2 =
|
||||
new RuntimePermissionUsageInfo("permission 2", 20);
|
||||
infos2.add(info2);
|
||||
mController.onPermissionUsageResult(infos2);
|
||||
|
||||
verify(mPreference, times(2)).setBarViewInfos(any(BarViewInfo[].class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onPermissionUsageResult_samePermissionResultSet_shouldNotSetBarViewInfos() {
|
||||
final List<RuntimePermissionUsageInfo> mInfos = new ArrayList<>();
|
||||
final RuntimePermissionUsageInfo info1 =
|
||||
new RuntimePermissionUsageInfo("permission 1", 10);
|
||||
mInfos.add(info1);
|
||||
mController.displayPreference(mScreen);
|
||||
mController.onPermissionUsageResult(mInfos);
|
||||
|
||||
mController.onPermissionUsageResult(mInfos);
|
||||
|
||||
verify(mPreference, times(1)).setBarViewInfos(any(BarViewInfo[].class));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onStart_usageInfosNotSetAndPermissionHubEnabled_shouldShowProgressBar() {
|
||||
DeviceConfig.setProperty(DeviceConfig.NAMESPACE_PRIVACY,
|
||||
Utils.PROPERTY_PERMISSIONS_HUB_ENABLED,
|
||||
"true", true);
|
||||
mController.displayPreference(mScreen);
|
||||
|
||||
mController.onStart();
|
||||
|
||||
verify(mFragment).setLoadingEnabled(true /* enabled */);
|
||||
verify(mPreference).updateLoadingState(true /* isLoading */);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onStart_usageInfosSetAndPermissionHubEnabled_shouldNotUpdatePrefLoadingState() {
|
||||
DeviceConfig.setProperty(DeviceConfig.NAMESPACE_PRIVACY,
|
||||
Utils.PROPERTY_PERMISSIONS_HUB_ENABLED,
|
||||
"true", true);
|
||||
final RuntimePermissionUsageInfo info1 =
|
||||
new RuntimePermissionUsageInfo("permission 1", 10);
|
||||
mController.mOldUsageInfos.add(info1);
|
||||
mController.displayPreference(mScreen);
|
||||
|
||||
mController.onStart();
|
||||
|
||||
verify(mFragment).setLoadingEnabled(true /* enabled */);
|
||||
verify(mPreference).updateLoadingState(false /* isLoading */);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onStart_permissionHubDisabled_shouldNotShowProgressBar() {
|
||||
DeviceConfig.setProperty(DeviceConfig.NAMESPACE_PRIVACY,
|
||||
Utils.PROPERTY_PERMISSIONS_HUB_ENABLED,
|
||||
"false", true);
|
||||
|
||||
mController.onStart();
|
||||
|
||||
verify(mFragment, never()).setLoadingEnabled(true /* enabled */);
|
||||
verify(mPreference, never()).updateLoadingState(true /* isLoading */);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onPermissionUsageResult_shouldHideProgressBar() {
|
||||
final List<RuntimePermissionUsageInfo> infos1 = new ArrayList<>();
|
||||
final RuntimePermissionUsageInfo info1 =
|
||||
new RuntimePermissionUsageInfo("permission 1", 10);
|
||||
infos1.add(info1);
|
||||
mController.displayPreference(mScreen);
|
||||
|
||||
mController.onPermissionUsageResult(infos1);
|
||||
|
||||
verify(mFragment).setLoadingEnabled(false /* enabled */);
|
||||
verify(mPreference).updateLoadingState(false /* isLoading */);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onPermissionUsageResult_shouldBeSorted() {
|
||||
final List<RuntimePermissionUsageInfo> infos = new ArrayList<>();
|
||||
infos.add(new RuntimePermissionUsageInfo(PHONE, 10));
|
||||
infos.add(new RuntimePermissionUsageInfo(LOCATION, 10));
|
||||
infos.add(new RuntimePermissionUsageInfo(CAMERA, 10));
|
||||
infos.add(new RuntimePermissionUsageInfo(SMS, 1));
|
||||
infos.add(new RuntimePermissionUsageInfo(MICROPHONE, 10));
|
||||
infos.add(new RuntimePermissionUsageInfo(CONTACTS, 42));
|
||||
infos.add(new RuntimePermissionUsageInfo(CALENDAR, 10));
|
||||
mController.displayPreference(mScreen);
|
||||
|
||||
mController.onPermissionUsageResult(infos);
|
||||
|
||||
assertThat(infos.get(0).getName()).isEqualTo(CONTACTS);
|
||||
assertThat(infos.get(1).getName()).isEqualTo(LOCATION);
|
||||
assertThat(infos.get(2).getName()).isEqualTo(MICROPHONE);
|
||||
assertThat(infos.get(3).getName()).isEqualTo(CAMERA);
|
||||
assertThat(infos.get(4).getName()).isEqualTo(CALENDAR);
|
||||
assertThat(infos.get(5).getName()).isEqualTo(PHONE);
|
||||
assertThat(infos.get(6).getName()).isEqualTo(SMS);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user