Extract the not-strictly-modes-related parts of ZenModesBackend

So that when it's moved to SettingsLib, it doesn't need to carry that baggage.

Bug: 346519570
Test: atest com.android.settings.notification.modes
Flag: android.app.modes_ui
Change-Id: I7911a521d96f5dbac2c2395171d324b7b54b8b07
This commit is contained in:
Matías Hernández
2024-06-17 17:57:28 +02:00
parent a3894e6761
commit ee414b4c43
28 changed files with 213 additions and 141 deletions

View File

@@ -43,7 +43,6 @@ import androidx.fragment.app.Fragment;
import androidx.preference.Preference;
import com.android.settings.SettingsActivity;
import com.android.settings.notification.NotificationBackend;
import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
import com.android.settingslib.widget.SelectorWithWidgetPreference;
@@ -57,7 +56,6 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.util.ReflectionHelpers;
import java.util.ArrayList;
import java.util.List;
@@ -73,7 +71,7 @@ public final class ZenModeAppsLinkPreferenceControllerTest {
private ZenModesBackend mZenModesBackend;
@Mock
private NotificationBackend mNotificationBackend;
private ZenHelperBackend mHelperBackend;
@Mock
private ApplicationsState mApplicationsState;
@@ -90,8 +88,7 @@ public final class ZenModeAppsLinkPreferenceControllerTest {
when(mApplicationsState.newSession(any(), any())).thenReturn(mSession);
mController = new ZenModeAppsLinkPreferenceController(
mContext, "controller_key", mock(Fragment.class), mApplicationsState,
mZenModesBackend);
ReflectionHelpers.setField(mController, "mNotificationBackend", mNotificationBackend);
mZenModesBackend, mHelperBackend);
}
private ApplicationsState.AppEntry createAppEntry(String packageName, String label) {
@@ -149,7 +146,7 @@ public final class ZenModeAppsLinkPreferenceControllerTest {
ApplicationsState.AppEntry entryConv = createAppEntry("test_conv", "test_convLabel");
List<ApplicationsState.AppEntry> appEntries = List.of(entry, entryConv);
when(mNotificationBackend.getPackagesBypassingDnd(mContext.getUserId(),
when(mHelperBackend.getPackagesBypassingDnd(mContext.getUserId(),
false)).thenReturn(List.of("test"));
assertThat(mController.getAppsBypassingDnd(appEntries)).containsExactly("testLabel");
@@ -167,7 +164,7 @@ public final class ZenModeAppsLinkPreferenceControllerTest {
new ArrayList<ApplicationsState.AppEntry>();
appEntries.add(createAppEntry("test", "pkgLabel"));
when(mNotificationBackend.getPackagesBypassingDnd(
when(mHelperBackend.getPackagesBypassingDnd(
mContext.getUserId(), false))
.thenReturn(List.of("test"));

View File

@@ -17,7 +17,7 @@
package com.android.settings.notification.modes;
import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
@@ -29,7 +29,9 @@ import android.net.Uri;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.service.notification.ZenPolicy;
import androidx.preference.Preference;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -38,8 +40,6 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.util.ReflectionHelpers;
@RunWith(RobolectricTestRunner.class)
public final class ZenModeCallsLinkPreferenceControllerTest {
@@ -49,10 +49,9 @@ public final class ZenModeCallsLinkPreferenceControllerTest {
@Rule
public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
private Context mContext;
@Mock
private ZenModesBackend mBackend;
@Mock private ZenModesBackend mBackend;
@Mock private ZenHelperBackend mHelperBackend;
@Before
public void setup() {
@@ -61,7 +60,7 @@ public final class ZenModeCallsLinkPreferenceControllerTest {
mContext = RuntimeEnvironment.application;
mController = new ZenModeCallsLinkPreferenceController(
mContext, "something", mBackend);
mContext, "something", mBackend, mHelperBackend);
}
@Test

View File

@@ -17,6 +17,7 @@
package com.android.settings.notification.modes;
import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
@@ -28,7 +29,9 @@ import android.net.Uri;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.service.notification.ZenPolicy;
import androidx.preference.Preference;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -47,8 +50,8 @@ public final class ZenModeDisplayLinkPreferenceControllerTest {
public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
private Context mContext;
@Mock
private ZenModesBackend mBackend;
@Mock private ZenModesBackend mBackend;
@Mock private ZenHelperBackend mHelperBackend;
@Before
public void setup() {
@@ -57,7 +60,7 @@ public final class ZenModeDisplayLinkPreferenceControllerTest {
mContext = RuntimeEnvironment.application;
mController = new ZenModeDisplayLinkPreferenceController(
mContext, "something", mBackend);
mContext, "something", mBackend, mHelperBackend);
}
@Test

View File

@@ -17,7 +17,7 @@
package com.android.settings.notification.modes;
import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
@@ -29,7 +29,9 @@ import android.net.Uri;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.service.notification.ZenPolicy;
import androidx.preference.Preference;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -48,8 +50,8 @@ public final class ZenModeMessagesLinkPreferenceControllerTest {
public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
private Context mContext;
@Mock
private ZenModesBackend mBackend;
@Mock private ZenModesBackend mBackend;
@Mock private ZenHelperBackend mHelperBackend;
@Before
public void setup() {
@@ -58,7 +60,7 @@ public final class ZenModeMessagesLinkPreferenceControllerTest {
mContext = RuntimeEnvironment.application;
mController = new ZenModeMessagesLinkPreferenceController(
mContext, "something", mBackend);
mContext, "something", mBackend, mHelperBackend);
}
@Test

View File

@@ -17,6 +17,7 @@
package com.android.settings.notification.modes;
import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
@@ -28,7 +29,9 @@ import android.net.Uri;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.service.notification.ZenPolicy;
import androidx.preference.Preference;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -47,8 +50,8 @@ public final class ZenModeNotifVisLinkPreferenceControllerTest {
public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
private Context mContext;
@Mock
private ZenModesBackend mBackend;
@Mock private ZenModesBackend mBackend;
@Mock private ZenHelperBackend mHelperBackend;
@Before
public void setup() {
@@ -57,7 +60,7 @@ public final class ZenModeNotifVisLinkPreferenceControllerTest {
mContext = RuntimeEnvironment.application;
mController = new ZenModeNotifVisLinkPreferenceController(
mContext, "something", mBackend);
mContext, "something", mBackend, mHelperBackend);
}
@Test

View File

@@ -17,6 +17,7 @@
package com.android.settings.notification.modes;
import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
@@ -28,7 +29,9 @@ import android.net.Uri;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.service.notification.ZenPolicy;
import androidx.preference.Preference;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -48,8 +51,8 @@ public final class ZenModeOtherLinkPreferenceControllerTest {
public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
private Context mContext;
@Mock
private ZenModesBackend mBackend;
@Mock private ZenModesBackend mBackend;
@Mock private ZenHelperBackend mHelperBackend;
@Before
public void setup() {
@@ -58,7 +61,7 @@ public final class ZenModeOtherLinkPreferenceControllerTest {
mContext = RuntimeEnvironment.application;
mController = new ZenModeOtherLinkPreferenceController(
mContext, "something", mBackend);
mContext, "something", mBackend, mHelperBackend);
}
@Test

View File

@@ -19,7 +19,9 @@ package com.android.settings.notification.modes;
import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
import static android.service.notification.ZenPolicy.STATE_ALLOW;
import static android.service.notification.ZenPolicy.STATE_UNSET;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
@@ -30,7 +32,9 @@ import android.net.Uri;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.service.notification.ZenPolicy;
import androidx.preference.TwoStatePreference;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;

View File

@@ -17,7 +17,7 @@
package com.android.settings.notification.modes;
import static android.app.NotificationManager.INTERRUPTION_FILTER_PRIORITY;
import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
@@ -29,7 +29,9 @@ import android.net.Uri;
import android.platform.test.annotations.EnableFlags;
import android.platform.test.flag.junit.SetFlagsRule;
import android.service.notification.ZenPolicy;
import androidx.preference.Preference;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -50,6 +52,8 @@ public final class ZenModePeopleLinkPreferenceControllerTest {
private Context mContext;
@Mock
private ZenModesBackend mBackend;
@Mock
private ZenHelperBackend mHelperBackend;
@Before
public void setup() {
@@ -58,7 +62,7 @@ public final class ZenModePeopleLinkPreferenceControllerTest {
mContext = RuntimeEnvironment.application;
mController = new ZenModePeopleLinkPreferenceController(
mContext, "something", mBackend);
mContext, "something", mBackend, mHelperBackend);
}
@Test

View File

@@ -77,8 +77,8 @@ public final class ZenModePrioritySendersPreferenceControllerTest {
public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
private Context mContext;
@Mock
private ZenModesBackend mBackend;
@Mock private ZenModesBackend mBackend;
@Mock private ZenHelperBackend mHelperBackend;
private PreferenceCategory mMessagesPrefCategory, mCallsPrefCategory;
@@ -90,10 +90,11 @@ public final class ZenModePrioritySendersPreferenceControllerTest {
mContext = RuntimeEnvironment.application;
mMessagesController = new ZenModePrioritySendersPreferenceController(
mContext, "messages", true, mBackend);
mCallsController = new ZenModePrioritySendersPreferenceController(
mContext, "calls", false, mBackend);
mMessagesController = new ZenModePrioritySendersPreferenceController(mContext, "messages",
true, mBackend, mHelperBackend);
mCallsController = new ZenModePrioritySendersPreferenceController(mContext, "calls", false,
mBackend, mHelperBackend);
mMessagesPrefCategory = new PreferenceCategory(mContext);
mMessagesPrefCategory.setKey(mMessagesController.getPreferenceKey());
mCallsPrefCategory = new PreferenceCategory(mContext);
@@ -106,7 +107,7 @@ public final class ZenModePrioritySendersPreferenceControllerTest {
Cursor cursor = mock(Cursor.class);
when(cursor.getCount()).thenReturn(1);
when(mBackend.queryAllContactsData()).thenReturn(cursor);
when(mHelperBackend.queryAllContactsData()).thenReturn(cursor);
}
// Makes a preference with the provided key and whether it's a checkbox with

View File

@@ -44,7 +44,7 @@ import java.util.Set;
@RunWith(RobolectricTestRunner.class)
public class ZenModesSummaryHelperTest {
private Context mContext;
private ZenModesBackend mBackend;
private ZenHelperBackend mBackend;
private ZenModeSummaryHelper mSummaryHelper;
@@ -52,7 +52,7 @@ public class ZenModesSummaryHelperTest {
public void setup() {
MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application;
mBackend = new ZenModesBackend(mContext);
mBackend = new ZenHelperBackend(mContext);
mSummaryHelper = new ZenModeSummaryHelper(mContext, mBackend);
}