Merge "Fix new user setting in a call"
diff --git a/src/com/android/settings/SettingsActivity.java b/src/com/android/settings/SettingsActivity.java
index 711cb21..9673948 100644
--- a/src/com/android/settings/SettingsActivity.java
+++ b/src/com/android/settings/SettingsActivity.java
@@ -32,9 +32,6 @@
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
-import android.graphics.Bitmap;
-import android.graphics.Canvas;
-import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.UserHandle;
@@ -48,6 +45,12 @@
import android.widget.Button;
import android.widget.Toolbar;
+import androidx.annotation.VisibleForTesting;
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceFragment;
+import androidx.preference.PreferenceManager;
+
import com.android.internal.util.ArrayUtils;
import com.android.settings.Settings.WifiSettingsActivity;
import com.android.settings.applications.manageapplications.ManageApplications;
@@ -70,12 +73,6 @@
import java.util.ArrayList;
import java.util.List;
-import androidx.annotation.VisibleForTesting;
-import androidx.localbroadcastmanager.content.LocalBroadcastManager;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceFragment;
-import androidx.preference.PreferenceManager;
-
public class SettingsActivity extends SettingsBaseActivity
implements PreferenceManager.OnPreferenceTreeClickListener,
@@ -506,8 +503,7 @@
@Override
public void setTaskDescription(ActivityManager.TaskDescription taskDescription) {
- final Bitmap icon = getBitmapFromXmlResource(R.drawable.ic_launcher_settings);
- taskDescription.setIcon(icon);
+ taskDescription.setIcon(R.drawable.ic_launcher_settings);
super.setTaskDescription(taskDescription);
}
@@ -772,17 +768,4 @@
public Button getNextButton() {
return mNextButton;
}
-
- @VisibleForTesting
- Bitmap getBitmapFromXmlResource(int drawableRes) {
- Drawable drawable = getResources().getDrawable(drawableRes, getTheme());
- Canvas canvas = new Canvas();
- Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(),
- drawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
- canvas.setBitmap(bitmap);
- drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
- drawable.draw(canvas);
-
- return bitmap;
- }
}
diff --git a/src/com/android/settings/notification/VisibilityPreferenceController.java b/src/com/android/settings/notification/VisibilityPreferenceController.java
index cd2ebd9..02bdee6 100644
--- a/src/com/android/settings/notification/VisibilityPreferenceController.java
+++ b/src/com/android/settings/notification/VisibilityPreferenceController.java
@@ -148,8 +148,10 @@
}
private boolean getLockscreenNotificationsEnabled() {
- return Settings.Secure.getInt(mContext.getContentResolver(),
- Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS, 0) != 0;
+ final UserInfo parentUser = mUm.getProfileParent(UserHandle.myUserId());
+ final int primaryUserId = parentUser != null ? parentUser.id : UserHandle.myUserId();
+ return Settings.Secure.getIntForUser(mContext.getContentResolver(),
+ Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS, 0, primaryUserId) != 0;
}
private boolean getLockscreenAllowPrivateNotifications() {
diff --git a/tests/robotests/src/com/android/settings/SettingsActivityTest.java b/tests/robotests/src/com/android/settings/SettingsActivityTest.java
index 2096629..254d0ae 100644
--- a/tests/robotests/src/com/android/settings/SettingsActivityTest.java
+++ b/tests/robotests/src/com/android/settings/SettingsActivityTest.java
@@ -16,8 +16,7 @@
package com.android.settings;
-import static org.mockito.ArgumentMatchers.nullable;
-import static org.mockito.Matchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
@@ -28,7 +27,6 @@
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.content.Intent;
-import android.graphics.Bitmap;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -46,8 +44,6 @@
private FragmentManager mFragmentManager;
@Mock
private ActivityManager.TaskDescription mTaskDescription;
- @Mock
- private Bitmap mBitmap;
private SettingsActivity mActivity;
@Before
@@ -55,7 +51,6 @@
MockitoAnnotations.initMocks(this);
mActivity = spy(new SettingsActivity());
- doReturn(mBitmap).when(mActivity).getBitmapFromXmlResource(anyInt());
}
@Test
@@ -72,6 +67,6 @@
public void testSetTaskDescription_IconChanged() {
mActivity.setTaskDescription(mTaskDescription);
- verify(mTaskDescription).setIcon(nullable(Bitmap.class));
+ verify(mTaskDescription).setIcon(anyInt());
}
}
diff --git a/tests/robotests/src/com/android/settings/notification/VisibilityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/VisibilityPreferenceControllerTest.java
index e37c852..fbc2512 100644
--- a/tests/robotests/src/com/android/settings/notification/VisibilityPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/VisibilityPreferenceControllerTest.java
@@ -209,6 +209,31 @@
}
@Test
+ public void testUpdateState_noLockScreenNotificationsGloballyInProfile() {
+ final int primaryUserId = 2;
+ final UserInfo primaryUserInfo = new UserInfo(primaryUserId, "user 2", 0);
+ when(mUm.getProfileParent(anyInt())).thenReturn(primaryUserInfo);
+
+ Settings.Secure.putIntForUser(mContext.getContentResolver(),
+ Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS, 0, primaryUserId);
+
+ NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
+ NotificationChannel channel = mock(NotificationChannel.class);
+ mController.onResume(appRow, channel, null, null);
+
+ RestrictedListPreference pref = mock(RestrictedListPreference.class);
+ mController.updateState(pref);
+
+ ArgumentCaptor<CharSequence[]> argumentCaptor =
+ ArgumentCaptor.forClass(CharSequence[].class);
+ verify(pref, times(1)).setEntryValues(argumentCaptor.capture());
+ assertFalse(toStringList(argumentCaptor.getValue())
+ .contains(String.valueOf(VISIBILITY_NO_OVERRIDE)));
+ assertFalse(toStringList(argumentCaptor.getValue())
+ .contains(String.valueOf(VISIBILITY_PRIVATE)));
+ }
+
+ @Test
public void testUpdateState_noPrivateLockScreenNotificationsGlobally() {
Settings.Secure.putInt(mContext.getContentResolver(),
Settings.Secure.LOCK_SCREEN_SHOW_NOTIFICATIONS, 1);