Merge "Cache summary text to avoid flickering" into tm-dev
diff --git a/res/drawable/ic_error_outline.xml b/res/drawable/ic_error_outline.xml
deleted file mode 100644
index 2ddc6d4..0000000
--- a/res/drawable/ic_error_outline.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-/**
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
--->
-<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="24dp"
- android:height="24dp"
- android:viewportWidth="24.0"
- android:viewportHeight="24.0">
- <path
- android:pathData="M11,15h2v2h-2v-2zM11,7h2v6h-2L11,7zM11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10C17.52,22 22,17.52 22,12S17.52,2 11.99,2zM12,20c-4.42,0 -8,-3.58 -8,-8s3.58,-8 8,-8 8,3.58 8,8 -3.58,8 -8,8z"
- android:fillColor="?android:attr/colorError"
- android:fillType="evenOdd"/>
-</vector>
\ No newline at end of file
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 6cd29ed..9ab0cc2 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -500,15 +500,6 @@
<!-- Title for the App's locale picker activity. [CHAR LIMIT=50]-->
<string name="app_locale_picker_title">App Language</string>
- <!-- Title for the warning message of the locale picker activity. [CHAR LIMIT=50]-->
- <string name="warnings_title">Update the app</string>
-
- <!-- Summary for the warning message of the locale picker activity. [CHAR LIMIT=70]-->
- <string name="warnings_summary">You need to update the app for the latest available languages</string>
-
- <!-- Button text on warning message [CHAR LIMIT=20]-->
- <string name="warnings_button_update">Update now</string>
-
<!-- Category for the suggested app's locales. [CHAR LIMIT=50]-->
<string name="suggested_app_locales_title">Suggested languages</string>
@@ -7848,7 +7839,11 @@
<string name="help_label">Help & feedback</string>
<!-- Summary text for support setting tile [CHAR LIMIT=None] -->
- <string name="support_summary">Help articles, phone & chat</string>
+ <string name="support_summary" product="default">Help articles, phone & chat</string>
+ <!-- Summary text for support setting tile [CHAR LIMIT=None] -->
+ <string name="support_summary" product="tablet">Help articles, tablet & chat</string>
+ <!-- Summary text for support setting tile [CHAR LIMIT=None] -->
+ <string name="support_summary" product="device">Help articles, device & chat</string>
<!-- Help URI, Default [DO NOT TRANSLATE] -->
<string name="help_uri_default" translatable="false"></string>
diff --git a/res/xml/app_locale_details.xml b/res/xml/app_locale_details.xml
index e01db2f..f849441 100644
--- a/res/xml/app_locale_details.xml
+++ b/res/xml/app_locale_details.xml
@@ -24,13 +24,6 @@
android:title="@string/desc_app_locale_disclaimer"
android:order="1"/>
- <com.android.settingslib.widget.BannerMessagePreference
- android:key="key_warnings"
- android:order="20"
- android:icon="@drawable/ic_error_outline"
- android:title="@string/warnings_title"
- android:summary="@string/warnings_summary"/>
-
<com.android.settingslib.widget.LayoutPreference
android:key="app_locale_description"
android:order="30"
diff --git a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
index a6aeb89..9289db6 100644
--- a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
@@ -147,8 +147,7 @@
return AccessibilityGestureNavigationTutorial
.showAccessibilityGestureTutorialDialog(getPrefContext());
case DialogEnums.MAGNIFICATION_EDIT_SHORTCUT:
- final CharSequence dialogTitle = getPrefContext().getString(
- R.string.accessibility_shortcut_title, mPackageName);
+ final CharSequence dialogTitle = getShortcutTitle();
final int dialogType = WizardManagerHelper.isAnySetupWizard(getIntent())
? DialogType.EDIT_SHORTCUT_MAGNIFICATION_SUW
: DialogType.EDIT_SHORTCUT_MAGNIFICATION;
diff --git a/src/com/android/settings/applications/AppLocaleUtil.java b/src/com/android/settings/applications/AppLocaleUtil.java
index 77fba89..3135796 100644
--- a/src/com/android/settings/applications/AppLocaleUtil.java
+++ b/src/com/android/settings/applications/AppLocaleUtil.java
@@ -99,7 +99,8 @@
* Check the function of per app language is supported by current application.
*/
public static boolean isAppLocaleSupported(Context context, String packageName) {
- if (getPackageLocales(context, packageName) != null) {
+ LocaleList localeList = getPackageLocales(context, packageName);
+ if (localeList != null && localeList.size() > 0) {
return true;
}
diff --git a/src/com/android/settings/applications/appinfo/AppLocaleDetails.java b/src/com/android/settings/applications/appinfo/AppLocaleDetails.java
index 20cddec..88b9d51 100644
--- a/src/com/android/settings/applications/appinfo/AppLocaleDetails.java
+++ b/src/com/android/settings/applications/appinfo/AppLocaleDetails.java
@@ -21,12 +21,8 @@
import android.app.LocaleManager;
import android.app.settings.SettingsEnums;
import android.content.Context;
-import android.content.Intent;
import android.content.pm.ApplicationInfo;
-import android.content.pm.InstallSourceInfo;
import android.content.pm.PackageManager;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.net.Uri;
import android.os.Bundle;
import android.os.LocaleList;
import android.os.UserHandle;
@@ -34,7 +30,6 @@
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
-import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.TextView;
@@ -48,8 +43,6 @@
import com.android.settings.widget.EntityHeaderController;
import com.android.settingslib.applications.AppUtils;
import com.android.settingslib.applications.ApplicationsState.AppEntry;
-import com.android.settingslib.widget.BannerMessagePreference;
-import com.android.settingslib.widget.BannerMessagePreference.AttentionLevel;
import com.android.settingslib.widget.LayoutPreference;
import java.util.Locale;
@@ -62,7 +55,6 @@
private static final String TAG = "AppLocaleDetails";
private static final String KEY_APP_DESCRIPTION = "app_locale_description";
- private static final String KEY_WARNINGS = "key_warnings";
private static final String KEY_APP_DISCLAIMER = "app_locale_disclaimer";
private boolean mCreated = false;
@@ -96,7 +88,6 @@
mPrefOfDescription = getPreferenceScreen().findPreference(KEY_APP_DESCRIPTION);
mPrefOfDisclaimer = getPreferenceScreen().findPreference(KEY_APP_DISCLAIMER);
mApplicationInfo = getApplicationInfo(mPackageName, getContext().getUserId());
- setWarningMessage();
setDisclaimerPreference();
}
@@ -119,7 +110,6 @@
}
private void refreshUi() {
- setWarningMessage();
setDescription();
}
@@ -156,26 +146,6 @@
getPreferenceScreen().addPreference(pref);
}
- private void setWarningMessage() {
- BannerMessagePreference warningPreference =
- (BannerMessagePreference) getPreferenceScreen().findPreference(KEY_WARNINGS);
- try {
- InstallSourceInfo installSourceInfo =
- getContext().getPackageManager().getInstallSourceInfo(mPackageName);
- if (mApplicationInfo.isSystemApp()
- && installSourceInfo.getInstallingPackageName() == null) {
- warningPreference.setAttentionLevel(AttentionLevel.MEDIUM);
- warningPreference.setPositiveButtonOnClickListener(mBannerButtonClickListener);
- warningPreference.setPositiveButtonText(R.string.warnings_button_update);
- warningPreference.setVisible(true);
- } else {
- warningPreference.setVisible(false);
- }
- } catch (NameNotFoundException e) {
- Log.e(TAG, "Exception while retrieving the package installer of " + mPackageName, e);
- }
- }
-
private void setDisclaimerPreference() {
if (FeatureFlagUtils.isEnabled(
getContext(), FeatureFlagUtils.SETTINGS_APP_LOCALE_OPT_IN_ENABLED)) {
@@ -192,19 +162,6 @@
}
}
- private OnClickListener mBannerButtonClickListener = new OnClickListener() {
- @Override
- public void onClick(View v) {
- startActivity(getAppSearchIntent(mPackageName));
- }
- };
-
- private static Intent getAppSearchIntent(String pkg) {
- Intent intent = new Intent(Intent.ACTION_VIEW);
- intent.setData(Uri.parse("market://details?id=" + pkg));
- return intent;
- }
-
private ApplicationInfo getApplicationInfo(String packageName, int userId) {
ApplicationInfo applicationInfo;
try {
diff --git a/src/com/android/settings/applications/appinfo/ButtonActionDialogFragment.java b/src/com/android/settings/applications/appinfo/ButtonActionDialogFragment.java
index 80ce802..7b7e3e9 100644
--- a/src/com/android/settings/applications/appinfo/ButtonActionDialogFragment.java
+++ b/src/com/android/settings/applications/appinfo/ButtonActionDialogFragment.java
@@ -90,6 +90,12 @@
@Override
public void onClick(DialogInterface dialog, int which) {
+ // When it's in a multi-window mode, force stopping an app will lead to an activity
+ // recreate, and the dialog fragment will also be recreated. So dismiss the dialog before
+ // stopping the app.
+ if (mId == ButtonActionDialogFragment.DialogType.FORCE_STOP) {
+ dialog.dismiss();
+ }
final AppButtonsDialogListener lsn =
(AppButtonsDialogListener) getTargetFragment();
lsn.handleDialogClick(mId);
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java
index 66059e7..b5782cd 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java
@@ -111,6 +111,11 @@
lottieAnimationView.setVisibility(View.GONE);
lottieAnimationViewPortrait.setVisibility(View.VISIBLE);
break;
+ case Surface.ROTATION_180:
+ lottieAnimationView.setVisibility(View.VISIBLE);
+ lottieAnimationView.setRotation(180);
+ lottieAnimationViewPortrait.setVisibility(View.GONE);
+ break;
case Surface.ROTATION_270:
lottieAnimationView.setVisibility(View.GONE);
lottieAnimationViewPortrait.setVisibility(View.VISIBLE);
@@ -342,10 +347,7 @@
@Override
public void onOrientationChanged(int orientation) {
final int currentRotation = getDisplay().getRotation();
- if ((mPreviousRotation == Surface.ROTATION_90
- && currentRotation == Surface.ROTATION_270) || (
- mPreviousRotation == Surface.ROTATION_270
- && currentRotation == Surface.ROTATION_90)) {
+ if ((currentRotation + 2) % 4 == mPreviousRotation) {
mPreviousRotation = currentRotation;
recreate();
}
diff --git a/src/com/android/settings/deviceinfo/VolumeOptionMenuController.java b/src/com/android/settings/deviceinfo/VolumeOptionMenuController.java
index d4f93fa..42a3a16 100644
--- a/src/com/android/settings/deviceinfo/VolumeOptionMenuController.java
+++ b/src/com/android/settings/deviceinfo/VolumeOptionMenuController.java
@@ -132,7 +132,6 @@
if (mStorageEntry.isPrivate()) {
if (!mStorageEntry.isDefaultInternalStorage()) {
mRename.setVisible(true);
- mUnmount.setVisible(true);
mFormatAsPortable.setVisible(true);
}
diff --git a/src/com/android/settings/notification/NotificationBackend.java b/src/com/android/settings/notification/NotificationBackend.java
index 5215a33..150dbe0 100644
--- a/src/com/android/settings/notification/NotificationBackend.java
+++ b/src/com/android/settings/notification/NotificationBackend.java
@@ -106,29 +106,20 @@
return row;
}
- public AppRow loadAppRow(Context context, PackageManager pm,
- RoleManager roleManager, PackageInfo app) {
+ public AppRow loadAppRow(Context context, PackageManager pm, PackageInfo app) {
final AppRow row = loadAppRow(context, pm, app.applicationInfo);
- recordCanBeBlocked(context, pm, roleManager, app, row);
+ recordCanBeBlocked(app, row);
return row;
}
- void recordCanBeBlocked(Context context, PackageManager pm, RoleManager rm, PackageInfo app,
- AppRow row) {
-
+ void recordCanBeBlocked(PackageInfo app, AppRow row) {
try {
row.systemApp = row.lockedImportance =
- sINM.isPermissionFixed(app.packageName, row.userId);
+ sINM.isImportanceLocked(app.packageName, app.applicationInfo.uid);
} catch (RemoteException e) {
Log.w(TAG, "Error calling NMS", e);
}
- // The permission system cannot make role permissions 'fixed', so check for these
- // roles explicitly
- List<String> roles = rm.getHeldRolesFromController(app.packageName);
- if (roles.contains(RoleManager.ROLE_DIALER)
- || roles.contains(RoleManager.ROLE_EMERGENCY)) {
- row.systemApp = row.lockedImportance = true;
- }
+
// if the app targets T but has not requested the permission, we cannot change the
// permission state
if (app.applicationInfo.targetSdkVersion > Build.VERSION_CODES.S_V2) {
@@ -139,24 +130,6 @@
}
}
- @VisibleForTesting static void markAppRowWithBlockables(String[] nonBlockablePkgs, AppRow row,
- String packageName) {
- if (nonBlockablePkgs != null) {
- int N = nonBlockablePkgs.length;
- for (int i = 0; i < N; i++) {
- String pkg = nonBlockablePkgs[i];
- if (pkg == null) {
- continue;
- } else if (pkg.contains(":")) {
- // handled by NotificationChannel.isImportanceLockedByOEM()
- continue;
- } else if (packageName.equals(nonBlockablePkgs[i])) {
- row.systemApp = row.lockedImportance = true;
- }
- }
- }
- }
-
static public CharSequence getDeviceList(ICompanionDeviceManager cdm, LocalBluetoothManager lbm,
String pkg, int userId) {
boolean multiple = false;
@@ -191,10 +164,9 @@
public boolean enableSwitch(Context context, ApplicationInfo app) {
try {
PackageInfo info = context.getPackageManager().getPackageInfo(
- app.packageName, PackageManager.GET_SIGNATURES);
- RoleManager rm = context.getSystemService(RoleManager.class);
+ app.packageName, PackageManager.GET_PERMISSIONS);
final AppRow row = new AppRow();
- recordCanBeBlocked(context, context.getPackageManager(), rm, info, row);
+ recordCanBeBlocked(info, row);
boolean systemBlockable = !row.systemApp || (row.systemApp && row.banned);
return systemBlockable && !row.lockedImportance;
} catch (PackageManager.NameNotFoundException e) {
diff --git a/src/com/android/settings/notification/app/NotificationPreferenceController.java b/src/com/android/settings/notification/app/NotificationPreferenceController.java
index 9d339f0..fb19d9d 100644
--- a/src/com/android/settings/notification/app/NotificationPreferenceController.java
+++ b/src/com/android/settings/notification/app/NotificationPreferenceController.java
@@ -24,6 +24,7 @@
import android.app.NotificationChannelGroup;
import android.app.NotificationManager;
import android.content.Context;
+import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.content.pm.ShortcutInfo;
import android.graphics.drawable.Drawable;
@@ -171,7 +172,8 @@
return overrideCanConfigureValue;
}
if (mAppRow != null) {
- return !mAppRow.systemApp && !mAppRow.lockedImportance;
+ boolean systemBlockable = !mAppRow.systemApp || (mAppRow.systemApp && mAppRow.banned);
+ return systemBlockable && !mAppRow.lockedImportance;
}
return true;
}
diff --git a/src/com/android/settings/notification/app/NotificationSettings.java b/src/com/android/settings/notification/app/NotificationSettings.java
index afc9a66..192a0ee 100644
--- a/src/com/android/settings/notification/app/NotificationSettings.java
+++ b/src/com/android/settings/notification/app/NotificationSettings.java
@@ -25,7 +25,6 @@
import android.app.NotificationChannel;
import android.app.NotificationChannelGroup;
import android.app.NotificationManager;
-import android.app.role.RoleManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
@@ -69,7 +68,6 @@
protected PackageManager mPm;
protected NotificationBackend mBackend = new NotificationBackend();
protected NotificationManager mNm;
- protected RoleManager mRm;
protected Context mContext;
protected int mUid;
@@ -116,7 +114,6 @@
mPm = getPackageManager();
mNm = NotificationManager.from(mContext);
- mRm = mContext.getSystemService(RoleManager.class);
mPkg = mArgs != null && mArgs.containsKey(AppInfoBase.ARG_PACKAGE_NAME)
? mArgs.getString(AppInfoBase.ARG_PACKAGE_NAME)
@@ -290,7 +287,7 @@
}
private void loadAppRow() {
- mAppRow = mBackend.loadAppRow(mContext, mPm, mRm, mPkgInfo);
+ mAppRow = mBackend.loadAppRow(mContext, mPm, mPkgInfo);
}
private void loadChannelGroup() {
diff --git a/tests/robotests/src/com/android/settings/applications/appinfo/ButtonActionDialogFragmentTest.java b/tests/robotests/src/com/android/settings/applications/appinfo/ButtonActionDialogFragmentTest.java
index d9ed6b0..432104d 100644
--- a/tests/robotests/src/com/android/settings/applications/appinfo/ButtonActionDialogFragmentTest.java
+++ b/tests/robotests/src/com/android/settings/applications/appinfo/ButtonActionDialogFragmentTest.java
@@ -18,7 +18,9 @@
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
@@ -73,6 +75,21 @@
}
@Test
+ public void testOnClick_forceStop_dismissDialog() {
+ ButtonActionDialogFragment fragment =
+ spy(ButtonActionDialogFragment.newInstance(FORCE_STOP_ID));
+ FragmentController.setupFragment(fragment, FragmentActivity.class, 0 /* containerViewId */,
+ null /* bundle */);
+ doReturn(mTargetFragment).when(fragment).getTargetFragment();
+ doNothing().when(mTargetFragment).handleDialogClick(anyInt());
+ final AlertDialog dialog = mock(AlertDialog.class);
+
+ fragment.onClick(dialog, 0);
+
+ verify(dialog).dismiss();
+ }
+
+ @Test
public void testOnCreateDialog_forceStopDialog() {
ButtonActionDialogFragment fragment = ButtonActionDialogFragment.newInstance(FORCE_STOP_ID);
FragmentController.setupFragment(fragment, FragmentActivity.class, 0 /* containerViewId */,
diff --git a/tests/robotests/src/com/android/settings/notification/NotificationBackendTest.java b/tests/robotests/src/com/android/settings/notification/NotificationBackendTest.java
index 5745aa0..764962f 100644
--- a/tests/robotests/src/com/android/settings/notification/NotificationBackendTest.java
+++ b/tests/robotests/src/com/android/settings/notification/NotificationBackendTest.java
@@ -20,6 +20,7 @@
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
+import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@@ -80,69 +81,17 @@
}
@Test
- public void testMarkAppRow_unblockablePackage() {
- AppRow appRow = new AppRow();
- String packageName = "foo.bar.unblockable";
- appRow.pkg = packageName;
- String[] nonBlockablePkgs = new String[2];
- nonBlockablePkgs[0] = packageName;
- nonBlockablePkgs[1] = "some.other.package";
- NotificationBackend.markAppRowWithBlockables(nonBlockablePkgs, appRow, packageName);
-
- // This package has a package lock but no locked channels
- assertTrue(appRow.lockedImportance);
- }
-
- @Test
- public void testMarkAppRow_defaultPackage() {
- PackageInfo pi = new PackageInfo();
- pi.packageName = "test";
- pi.applicationInfo = new ApplicationInfo();
- pi.applicationInfo.packageName = "test";
- List<String> roles = new ArrayList<>();
- roles.add(RoleManager.ROLE_DIALER);
- RoleManager rm = mock(RoleManager.class);
- when(rm.getHeldRolesFromController(anyString())).thenReturn(roles);
-
- AppRow appRow = new NotificationBackend().loadAppRow(RuntimeEnvironment.application,
- mock(PackageManager.class), rm, pi);
-
- assertTrue(appRow.systemApp);
- }
-
- @Test
- public void testMarkAppRow_fixedPermission_withRole() throws Exception {
+ public void testMarkAppRow_fixedImportance() throws Exception {
PackageInfo pi = new PackageInfo();
pi.packageName = "test";
pi.applicationInfo = new ApplicationInfo();
pi.applicationInfo.packageName = "test";
pi.applicationInfo.uid = 123;
- List<String> roles = new ArrayList<>();
- roles.add(RoleManager.ROLE_DIALER);
- RoleManager rm = mock(RoleManager.class);
- when(rm.getHeldRolesFromController(anyString())).thenReturn(roles);
- when(mInm.isPermissionFixed(pi.packageName, 0)).thenReturn(false);
+ when(mInm.isImportanceLocked(pi.packageName, 123)).thenReturn(true);
AppRow appRow = new NotificationBackend().loadAppRow(RuntimeEnvironment.application,
- mock(PackageManager.class), rm, pi);
-
- assertTrue(appRow.systemApp);
- assertTrue(appRow.lockedImportance);
- }
-
- @Test
- public void testMarkAppRow_fixedPermission() throws Exception {
- PackageInfo pi = new PackageInfo();
- pi.packageName = "test";
- pi.applicationInfo = new ApplicationInfo();
- pi.applicationInfo.packageName = "test";
- pi.applicationInfo.uid = 123;
-
- when(mInm.isPermissionFixed(pi.packageName, 0)).thenReturn(true);
-
- AppRow appRow = new NotificationBackend().loadAppRow(RuntimeEnvironment.application,
- mock(PackageManager.class), mock(RoleManager.class), pi);
+ mock(PackageManager.class), pi);
assertTrue(appRow.systemApp);
assertTrue(appRow.lockedImportance);
@@ -156,10 +105,10 @@
pi.applicationInfo.packageName = "test";
pi.applicationInfo.uid = 123;
- when(mInm.isPermissionFixed(pi.packageName, 0)).thenReturn(false);
+ when(mInm.isImportanceLocked(anyString(), anyInt())).thenReturn(false);
AppRow appRow = new NotificationBackend().loadAppRow(RuntimeEnvironment.application,
- mock(PackageManager.class), mock(RoleManager.class), pi);
+ mock(PackageManager.class), pi);
assertFalse(appRow.systemApp);
assertFalse(appRow.lockedImportance);
@@ -178,7 +127,7 @@
when(mInm.isPermissionFixed(pi.packageName, 0)).thenReturn(false);
AppRow appRow = new NotificationBackend().loadAppRow(RuntimeEnvironment.application,
- mock(PackageManager.class), mock(RoleManager.class), pi);
+ mock(PackageManager.class), pi);
assertFalse(appRow.systemApp);
assertTrue(appRow.lockedImportance);
@@ -198,30 +147,13 @@
when(mInm.isPermissionFixed(pi.packageName, 0)).thenReturn(false);
AppRow appRow = new NotificationBackend().loadAppRow(RuntimeEnvironment.application,
- mock(PackageManager.class), mock(RoleManager.class), pi);
+ mock(PackageManager.class), pi);
assertFalse(appRow.systemApp);
assertFalse(appRow.lockedImportance);
}
@Test
- public void testMarkAppRow_notDefaultPackage() {
- PackageInfo pi = new PackageInfo();
- pi.packageName = "test";
- pi.applicationInfo = new ApplicationInfo();
- pi.applicationInfo.packageName = "test";
- List<String> roles = new ArrayList<>();
- roles.add(RoleManager.ROLE_HOME);
- RoleManager rm = mock(RoleManager.class);
- when(rm.getHeldRolesFromController(anyString())).thenReturn(roles);
-
- AppRow appRow = new NotificationBackend().loadAppRow(RuntimeEnvironment.application,
- mock(PackageManager.class), rm, pi);
-
- assertFalse(appRow.systemApp);
- }
-
- @Test
public void testGetAggregatedUsageEvents_multipleEventsAgg() {
List<UsageEvents.Event> events = new ArrayList<>();
UsageEvents.Event good = new UsageEvents.Event();
diff --git a/tests/robotests/src/com/android/settings/notification/app/NotificationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/app/NotificationPreferenceControllerTest.java
index 4ba5fe7..b2f1673 100644
--- a/tests/robotests/src/com/android/settings/notification/app/NotificationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/app/NotificationPreferenceControllerTest.java
@@ -284,24 +284,36 @@
}
@Test
- public void testIsAppBlockable_postMigration_locked() {
+ public void testIsAppBlockable_fixedPermission() {
mController = new TestPreferenceController(mContext, mBackend);
NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
- appRow.lockedImportance = true;
+ appRow.systemApp = true;
appRow.banned = false;
mController.onResume(appRow, null, null, null, null, null, null);
assertFalse(mController.isAppBlockable());
}
@Test
- public void testIsAppBlockable_postMigration_locked_butAppOff() {
+ public void testIsAppBlockable_fixedPermission_butAppOff() {
mController = new TestPreferenceController(mContext, mBackend);
NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
- appRow.lockedImportance = true;
+ appRow.systemApp = true;
appRow.banned = true;
mController.onResume(appRow, null, null, null, null, null, null);
+ assertTrue(mController.isAppBlockable());
+ }
+
+ @Test
+ public void testIsAppBlockable_notFixedButAppInBadState() {
+ mController = new TestPreferenceController(mContext, mBackend);
+
+ NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+ appRow.systemApp = false;
+ appRow.banned = true;
+ appRow.lockedImportance = true;
+ mController.onResume(appRow, null, null, null, null, null, null);
assertFalse(mController.isAppBlockable());
}
diff --git a/tests/unit/src/com/android/settings/deviceinfo/VolumeOptionMenuControllerTest.java b/tests/unit/src/com/android/settings/deviceinfo/VolumeOptionMenuControllerTest.java
index 314f8c2..8bd9b01 100644
--- a/tests/unit/src/com/android/settings/deviceinfo/VolumeOptionMenuControllerTest.java
+++ b/tests/unit/src/com/android/settings/deviceinfo/VolumeOptionMenuControllerTest.java
@@ -142,7 +142,6 @@
mController.onPrepareOptionsMenu(mMenu);
verify(mController.mRename, atLeastOnce()).setVisible(true);
- verify(mController.mUnmount, atLeastOnce()).setVisible(true);
verify(mController.mFormatAsPortable, atLeastOnce()).setVisible(true);
verify(mController.mMount, never()).setVisible(true);
verify(mController.mFormat, never()).setVisible(true);