Merge "App Bubble control page should always be available, even if off globally" into qt-dev
This commit is contained in:
@@ -64,7 +64,7 @@ public class AppBubbleNotificationSettings extends NotificationSettingsBase impl
|
|||||||
controllers.add(new BubblePreferenceController(context, fragment != null
|
controllers.add(new BubblePreferenceController(context, fragment != null
|
||||||
? fragment.getChildFragmentManager()
|
? fragment.getChildFragmentManager()
|
||||||
: null,
|
: null,
|
||||||
new NotificationBackend()));
|
new NotificationBackend(), true /* isAppPage */));
|
||||||
return controllers;
|
return controllers;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -41,11 +41,13 @@ public class BubblePreferenceController extends NotificationPreferenceController
|
|||||||
static final int SYSTEM_WIDE_OFF = 0;
|
static final int SYSTEM_WIDE_OFF = 0;
|
||||||
|
|
||||||
private FragmentManager mFragmentManager;
|
private FragmentManager mFragmentManager;
|
||||||
|
private boolean mIsAppPage;
|
||||||
|
|
||||||
public BubblePreferenceController(Context context, @Nullable FragmentManager fragmentManager,
|
public BubblePreferenceController(Context context, @Nullable FragmentManager fragmentManager,
|
||||||
NotificationBackend backend) {
|
NotificationBackend backend, boolean isAppPage) {
|
||||||
super(context, backend);
|
super(context, backend);
|
||||||
mFragmentManager = fragmentManager;
|
mFragmentManager = fragmentManager;
|
||||||
|
mIsAppPage = isAppPage;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -58,7 +60,7 @@ public class BubblePreferenceController extends NotificationPreferenceController
|
|||||||
if (!super.isAvailable()) {
|
if (!super.isAvailable()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!isGloballyEnabled()) {
|
if (!mIsAppPage && !isGloballyEnabled()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (mChannel != null) {
|
if (mChannel != null) {
|
||||||
|
@@ -115,7 +115,7 @@ public class ChannelNotificationSettings extends NotificationSettingsBase {
|
|||||||
mControllers.add(new DndPreferenceController(context, mBackend));
|
mControllers.add(new DndPreferenceController(context, mBackend));
|
||||||
mControllers.add(new NotificationsOffPreferenceController(context));
|
mControllers.add(new NotificationsOffPreferenceController(context));
|
||||||
mControllers.add(new BubblePreferenceController(context, getChildFragmentManager(),
|
mControllers.add(new BubblePreferenceController(context, getChildFragmentManager(),
|
||||||
mBackend));
|
mBackend, false /* isAppPage */));
|
||||||
return new ArrayList<>(mControllers);
|
return new ArrayList<>(mControllers);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -78,6 +78,7 @@ public class BubblePreferenceControllerTest {
|
|||||||
private FragmentManager mFragmentManager;
|
private FragmentManager mFragmentManager;
|
||||||
|
|
||||||
private BubblePreferenceController mController;
|
private BubblePreferenceController mController;
|
||||||
|
private BubblePreferenceController mAppPageController;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
@@ -87,7 +88,10 @@ public class BubblePreferenceControllerTest {
|
|||||||
shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
|
shadowApplication.setSystemService(Context.USER_SERVICE, mUm);
|
||||||
mContext = RuntimeEnvironment.application;
|
mContext = RuntimeEnvironment.application;
|
||||||
when(mFragmentManager.beginTransaction()).thenReturn(mock(FragmentTransaction.class));
|
when(mFragmentManager.beginTransaction()).thenReturn(mock(FragmentTransaction.class));
|
||||||
mController = spy(new BubblePreferenceController(mContext, mFragmentManager, mBackend));
|
mController = spy(new BubblePreferenceController(mContext, mFragmentManager, mBackend,
|
||||||
|
false /* isAppPage */));
|
||||||
|
mAppPageController = spy(new BubblePreferenceController(mContext, mFragmentManager,
|
||||||
|
mBackend, true /* isAppPage */));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -150,6 +154,16 @@ public class BubblePreferenceControllerTest {
|
|||||||
assertFalse(mController.isAvailable());
|
assertFalse(mController.isAvailable());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testIsAvailable_app_evenIfOffGlobally() {
|
||||||
|
NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
|
||||||
|
mAppPageController.onResume(appRow, null, null, null);
|
||||||
|
Settings.Secure.putInt(mContext.getContentResolver(),
|
||||||
|
NOTIFICATION_BUBBLES, SYSTEM_WIDE_OFF);
|
||||||
|
|
||||||
|
assertTrue(mAppPageController.isAvailable());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testIsAvailable_app() {
|
public void testIsAvailable_app() {
|
||||||
NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
|
NotificationBackend.AppRow appRow = new NotificationBackend.AppRow();
|
||||||
|
Reference in New Issue
Block a user