Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 26f48aa9 authored by Matías Hernández's avatar Matías Hernández
Browse files

Populate the "new" fields in implicit ZenRules

Namely: type, icon, and triggerDescription.

Fixes: 308673864
Test: atest ZenModeHelperTest
Change-Id: I9819621003925959cee5f9ae75430c71a7a79eaa
parent 9735d938
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1980,6 +1980,7 @@ public class ZenModeConfig implements Parcelable {
        @Nullable public ZenDeviceEffects zenDeviceEffects;
        public boolean modified;    // rule has been modified from initial creation
        public String pkg;
        @AutomaticZenRule.Type
        public int type = AutomaticZenRule.TYPE_UNKNOWN;
        public String triggerDescription;
        public String iconResName;
+2 −0
Original line number Diff line number Diff line
@@ -5252,6 +5252,8 @@
    <!-- Zen mode - name of default automatic calendar time-based rule that is triggered every night (when sleeping). [CHAR LIMIT=40] -->
    <string name="zen_mode_default_every_night_name">Sleeping</string>

    <!-- Zen mode - Trigger description of the rule, indicating which app owns it. [CHAR_LIMIT=100] -->
    <string name="zen_mode_implicit_trigger_description">Managed by <xliff:g id="app_name">%1$s</xliff:g></string>
    <!-- Zen mode - Condition summary when a rule is activated due to a call to setInterruptionFilter(). [CHAR_LIMIT=NONE] -->
    <string name="zen_mode_implicit_activated">On</string>
    <!-- Zen mode - Condition summary when a rule is deactivated due to a call to setInterruptionFilter(). [CHAR_LIMIT=NONE] -->
+1 −0
Original line number Diff line number Diff line
@@ -2585,6 +2585,7 @@
  <java-symbol type="string" name="zen_mode_default_weekends_name" />
  <java-symbol type="string" name="zen_mode_default_events_name" />
  <java-symbol type="string" name="zen_mode_default_every_night_name" />
  <java-symbol type="string" name="zen_mode_implicit_trigger_description" />
  <java-symbol type="string" name="zen_mode_implicit_activated" />
  <java-symbol type="string" name="zen_mode_implicit_deactivated" />
  <java-symbol type="string" name="display_rotation_camera_compat_toast_after_rotation" />
+4 −0
Original line number Diff line number Diff line
@@ -627,6 +627,7 @@ public class ZenModeHelper {
            try {
                ApplicationInfo applicationInfo = mPm.getApplicationInfo(pkg, 0);
                rule.name = applicationInfo.loadLabel(mPm).toString();
                rule.iconResName = drawableResIdToResName(pkg, applicationInfo.icon);
            } catch (PackageManager.NameNotFoundException e) {
                // Should not happen, since it's the app calling us (?)
                Log.w(TAG, "Package not found for creating implicit zen rule");
@@ -634,6 +635,9 @@ public class ZenModeHelper {
            }
        });

        rule.type = AutomaticZenRule.TYPE_OTHER;
        rule.triggerDescription = mContext.getString(R.string.zen_mode_implicit_trigger_description,
                rule.name);
        rule.condition = null;
        rule.conditionId = new Uri.Builder()
                .scheme(Condition.SCHEME)
+10 −3
Original line number Diff line number Diff line
@@ -80,6 +80,7 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.notNull;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
@@ -265,10 +266,12 @@ public class ZenModeHelperTest extends UiServiceTestCase {
                .thenReturn(CUSTOM_PKG_UID);
        when(mPackageManager.getPackagesForUid(anyInt())).thenReturn(
                new String[] {pkg});
        ApplicationInfo mockAppInfo = mock(ApplicationInfo.class);
        when(mockAppInfo.loadLabel(any())).thenReturn(CUSTOM_APP_LABEL);

        ApplicationInfo appInfoSpy = spy(new ApplicationInfo());
        appInfoSpy.icon = ICON_RES_ID;
        when(appInfoSpy.loadLabel(any())).thenReturn(CUSTOM_APP_LABEL);
        when(mPackageManager.getApplicationInfo(eq(CUSTOM_PKG_NAME), anyInt()))
                .thenReturn(mockAppInfo);
                .thenReturn(appInfoSpy);
        mZenModeHelper.mPm = mPackageManager;

        mZenModeEventLogger.reset();
@@ -3753,6 +3756,10 @@ public class ZenModeHelperTest extends UiServiceTestCase {
        rule.zenPolicy = policy;
        rule.pkg = ownerPkg;
        rule.name = CUSTOM_APP_LABEL;
        rule.iconResName = ICON_RES_NAME;
        rule.triggerDescription = mContext.getString(R.string.zen_mode_implicit_trigger_description,
                CUSTOM_APP_LABEL);
        rule.type = AutomaticZenRule.TYPE_OTHER;
        rule.enabled = true;
        return rule;
    }