Loading core/api/current.txt +0 −1 Original line number Diff line number Diff line Loading @@ -5317,7 +5317,6 @@ package android.app { ctor @Deprecated public AutomaticZenRule(String, android.content.ComponentName, android.net.Uri, int, boolean); ctor public AutomaticZenRule(@NonNull String, @Nullable android.content.ComponentName, @Nullable android.content.ComponentName, @NonNull android.net.Uri, @Nullable android.service.notification.ZenPolicy, int, boolean); ctor public AutomaticZenRule(android.os.Parcel); method @FlaggedApi("android.app.modes_api") public boolean canUpdate(); method public int describeContents(); method public android.net.Uri getConditionId(); method @Nullable public android.content.ComponentName getConfigurationActivity(); core/api/test-current.txt +0 −49 Original line number Diff line number Diff line Loading @@ -284,16 +284,6 @@ package android.app { method public default void onOpActiveChanged(@NonNull String, int, @NonNull String, @Nullable String, boolean, int, int); } public final class AutomaticZenRule implements android.os.Parcelable { method @FlaggedApi("android.app.modes_api") public int getUserModifiedFields(); field @FlaggedApi("android.app.modes_api") public static final int FIELD_INTERRUPTION_FILTER = 2; // 0x2 field @FlaggedApi("android.app.modes_api") public static final int FIELD_NAME = 1; // 0x1 } @FlaggedApi("android.app.modes_api") public static final class AutomaticZenRule.Builder { method @FlaggedApi("android.app.modes_api") @NonNull public android.app.AutomaticZenRule.Builder setUserModifiedFields(int); } public class BroadcastOptions extends android.app.ComponentOptions { ctor public BroadcastOptions(); ctor public BroadcastOptions(@NonNull android.os.Bundle); Loading Loading @@ -3021,47 +3011,8 @@ package android.service.notification { method @Deprecated public boolean isBound(); } @FlaggedApi("android.app.modes_api") public final class ZenDeviceEffects implements android.os.Parcelable { method public int getUserModifiedFields(); field public static final int FIELD_DIM_WALLPAPER = 4; // 0x4 field public static final int FIELD_DISABLE_AUTO_BRIGHTNESS = 16; // 0x10 field public static final int FIELD_DISABLE_TAP_TO_WAKE = 32; // 0x20 field public static final int FIELD_DISABLE_TILT_TO_WAKE = 64; // 0x40 field public static final int FIELD_DISABLE_TOUCH = 128; // 0x80 field public static final int FIELD_GRAYSCALE = 1; // 0x1 field public static final int FIELD_MAXIMIZE_DOZE = 512; // 0x200 field public static final int FIELD_MINIMIZE_RADIO_USAGE = 256; // 0x100 field public static final int FIELD_NIGHT_MODE = 8; // 0x8 field public static final int FIELD_SUPPRESS_AMBIENT_DISPLAY = 2; // 0x2 } @FlaggedApi("android.app.modes_api") public static final class ZenDeviceEffects.Builder { method @NonNull public android.service.notification.ZenDeviceEffects.Builder setUserModifiedFields(int); } public final class ZenPolicy implements android.os.Parcelable { method @FlaggedApi("android.app.modes_api") public int getUserModifiedFields(); field @FlaggedApi("android.app.modes_api") public static final int FIELD_ALLOW_CHANNELS = 8; // 0x8 field @FlaggedApi("android.app.modes_api") public static final int FIELD_CALLS = 2; // 0x2 field @FlaggedApi("android.app.modes_api") public static final int FIELD_CONVERSATIONS = 4; // 0x4 field @FlaggedApi("android.app.modes_api") public static final int FIELD_MESSAGES = 1; // 0x1 field @FlaggedApi("android.app.modes_api") public static final int FIELD_PRIORITY_CATEGORY_ALARMS = 128; // 0x80 field @FlaggedApi("android.app.modes_api") public static final int FIELD_PRIORITY_CATEGORY_EVENTS = 32; // 0x20 field @FlaggedApi("android.app.modes_api") public static final int FIELD_PRIORITY_CATEGORY_MEDIA = 256; // 0x100 field @FlaggedApi("android.app.modes_api") public static final int FIELD_PRIORITY_CATEGORY_REPEAT_CALLERS = 64; // 0x40 field @FlaggedApi("android.app.modes_api") public static final int FIELD_PRIORITY_CATEGORY_SYSTEM = 512; // 0x200 field @FlaggedApi("android.app.modes_api") public static final int FIELD_VISUAL_EFFECT_AMBIENT = 32768; // 0x8000 field @FlaggedApi("android.app.modes_api") public static final int FIELD_VISUAL_EFFECT_BADGE = 16384; // 0x4000 field @FlaggedApi("android.app.modes_api") public static final int FIELD_VISUAL_EFFECT_FULL_SCREEN_INTENT = 1024; // 0x400 field @FlaggedApi("android.app.modes_api") public static final int FIELD_VISUAL_EFFECT_LIGHTS = 2048; // 0x800 field @FlaggedApi("android.app.modes_api") public static final int FIELD_VISUAL_EFFECT_NOTIFICATION_LIST = 65536; // 0x10000 field @FlaggedApi("android.app.modes_api") public static final int FIELD_VISUAL_EFFECT_PEEK = 4096; // 0x1000 field @FlaggedApi("android.app.modes_api") public static final int FIELD_VISUAL_EFFECT_STATUS_BAR = 8192; // 0x2000 } public static final class ZenPolicy.Builder { ctor public ZenPolicy.Builder(@Nullable android.service.notification.ZenPolicy); method @FlaggedApi("android.app.modes_api") @NonNull public android.service.notification.ZenPolicy.Builder setUserModifiedFields(int); } } Loading core/java/android/app/AutomaticZenRule.java +8 −61 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ import android.annotation.FlaggedApi; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.TestApi; import android.app.NotificationManager.InterruptionFilter; import android.content.ComponentName; import android.net.Uri; Loading Loading @@ -113,8 +112,8 @@ public final class AutomaticZenRule implements Parcelable { @Retention(RetentionPolicy.SOURCE) public @interface Type {} /** Used to track which rule variables have been modified by the user. * Should be checked against the bitmask {@link #getUserModifiedFields()}. /** * Enum for the user-modifiable fields in this object. * @hide */ @IntDef(flag = true, prefix = { "FIELD_" }, value = { Loading @@ -128,13 +127,11 @@ public final class AutomaticZenRule implements Parcelable { * @hide */ @FlaggedApi(Flags.FLAG_MODES_API) @TestApi public static final int FIELD_NAME = 1 << 0; /** * @hide */ @FlaggedApi(Flags.FLAG_MODES_API) @TestApi public static final int FIELD_INTERRUPTION_FILTER = 1 << 1; private boolean enabled; Loading @@ -153,7 +150,6 @@ public final class AutomaticZenRule implements Parcelable { private int mIconResId; private String mTriggerDescription; private boolean mAllowManualInvocation; private @ModifiableField int mUserModifiedFields; // Bitwise representation /** * The maximum string length for any string contained in this automatic zen rule. This pertains Loading Loading @@ -256,7 +252,6 @@ public final class AutomaticZenRule implements Parcelable { mIconResId = source.readInt(); mTriggerDescription = getTrimmedString(source.readString(), MAX_DESC_LENGTH); mType = source.readInt(); mUserModifiedFields = source.readInt(); } } Loading Loading @@ -307,8 +302,7 @@ public final class AutomaticZenRule implements Parcelable { * Returns whether this rule's name has been modified by the user. * @hide */ // TODO: b/310620812 - Replace with mUserModifiedFields & FIELD_NAME once // FLAG_MODES_API is inlined. // TODO: b/310620812 - Consider removing completely. Seems not be used anywhere except tests. public boolean isModified() { return mModified; } Loading Loading @@ -506,32 +500,6 @@ public final class AutomaticZenRule implements Parcelable { return type; } /** * Gets the bitmask representing which fields are user modified. Bits are set using * {@link ModifiableField}. * @hide */ @FlaggedApi(Flags.FLAG_MODES_API) @TestApi public @ModifiableField int getUserModifiedFields() { return mUserModifiedFields; } /** * Returns {@code true} if the {@link AutomaticZenRule} can be updated. * When this returns {@code false}, calls to * {@link NotificationManager#updateAutomaticZenRule(String, AutomaticZenRule)}) with this rule * will ignore changes to user-configurable fields. */ @FlaggedApi(Flags.FLAG_MODES_API) public boolean canUpdate() { // The rule is considered updateable if its bitmask has no user modifications, and // the bitmasks of the policy and device effects have no modification. return mUserModifiedFields == 0 && (mZenPolicy == null || mZenPolicy.getUserModifiedFields() == 0) && (mDeviceEffects == null || mDeviceEffects.getUserModifiedFields() == 0); } @Override public int describeContents() { return 0; Loading Loading @@ -560,7 +528,6 @@ public final class AutomaticZenRule implements Parcelable { dest.writeInt(mIconResId); dest.writeString(mTriggerDescription); dest.writeInt(mType); dest.writeInt(mUserModifiedFields); } } Loading @@ -582,16 +549,14 @@ public final class AutomaticZenRule implements Parcelable { .append(",allowManualInvocation=").append(mAllowManualInvocation) .append(",iconResId=").append(mIconResId) .append(",triggerDescription=").append(mTriggerDescription) .append(",type=").append(mType) .append(",userModifiedFields=") .append(modifiedFieldsToString(mUserModifiedFields)); .append(",type=").append(mType); } return sb.append(']').toString(); } @FlaggedApi(Flags.FLAG_MODES_API) private String modifiedFieldsToString(int bitmask) { /** @hide */ public static String fieldsToString(@ModifiableField int bitmask) { ArrayList<String> modified = new ArrayList<>(); if ((bitmask & FIELD_NAME) != 0) { modified.add("FIELD_NAME"); Loading Loading @@ -623,8 +588,7 @@ public final class AutomaticZenRule implements Parcelable { && other.mAllowManualInvocation == mAllowManualInvocation && other.mIconResId == mIconResId && Objects.equals(other.mTriggerDescription, mTriggerDescription) && other.mType == mType && other.mUserModifiedFields == mUserModifiedFields; && other.mType == mType; } return finalEquals; } Loading @@ -634,8 +598,7 @@ public final class AutomaticZenRule implements Parcelable { if (Flags.modesApi()) { return Objects.hash(enabled, name, interruptionFilter, conditionId, owner, configurationActivity, mZenPolicy, mDeviceEffects, mModified, creationTime, mPkg, mAllowManualInvocation, mIconResId, mTriggerDescription, mType, mUserModifiedFields); mPkg, mAllowManualInvocation, mIconResId, mTriggerDescription, mType); } return Objects.hash(enabled, name, interruptionFilter, conditionId, owner, configurationActivity, mZenPolicy, mModified, creationTime, mPkg); Loading Loading @@ -704,7 +667,6 @@ public final class AutomaticZenRule implements Parcelable { private boolean mAllowManualInvocation; private long mCreationTime; private String mPkg; private @ModifiableField int mUserModifiedFields; public Builder(@NonNull AutomaticZenRule rule) { mName = rule.getName(); Loading @@ -721,7 +683,6 @@ public final class AutomaticZenRule implements Parcelable { mAllowManualInvocation = rule.isManualInvocationAllowed(); mCreationTime = rule.getCreationTime(); mPkg = rule.getPackageName(); mUserModifiedFields = rule.mUserModifiedFields; } public Builder(@NonNull String name, @NonNull Uri conditionId) { Loading Loading @@ -848,19 +809,6 @@ public final class AutomaticZenRule implements Parcelable { return this; } /** * Sets the bitmask representing which fields have been user-modified. * This method should not be used outside of tests. The value of userModifiedFields * should be set based on what values are changed when a rule is populated or updated.. * @hide */ @FlaggedApi(Flags.FLAG_MODES_API) @TestApi public @NonNull Builder setUserModifiedFields(@ModifiableField int userModifiedFields) { mUserModifiedFields = userModifiedFields; return this; } public @NonNull AutomaticZenRule build() { AutomaticZenRule rule = new AutomaticZenRule(mName, mOwner, mConfigurationActivity, mConditionId, mPolicy, mInterruptionFilter, mEnabled); Loading @@ -871,7 +819,6 @@ public final class AutomaticZenRule implements Parcelable { rule.mIconResId = mIconResId; rule.mAllowManualInvocation = mAllowManualInvocation; rule.setPackageName(mPkg); rule.mUserModifiedFields = mUserModifiedFields; return rule; } Loading core/java/android/service/notification/ZenDeviceEffects.java +10 −50 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ import android.annotation.FlaggedApi; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.TestApi; import android.app.Flags; import android.os.Parcel; import android.os.Parcelable; Loading @@ -37,8 +36,8 @@ import java.util.Objects; @FlaggedApi(Flags.FLAG_MODES_API) public final class ZenDeviceEffects implements Parcelable { /** Used to track which rule variables have been modified by the user. * Should be checked against the bitmask {@link #getUserModifiedFields()}. /** * Enum for the user-modifiable fields in this object. * @hide */ @IntDef(flag = true, prefix = { "FIELD_" }, value = { Loading @@ -59,52 +58,42 @@ public final class ZenDeviceEffects implements Parcelable { /** * @hide */ @TestApi public static final int FIELD_GRAYSCALE = 1 << 0; /** * @hide */ @TestApi public static final int FIELD_SUPPRESS_AMBIENT_DISPLAY = 1 << 1; /** * @hide */ @TestApi public static final int FIELD_DIM_WALLPAPER = 1 << 2; /** * @hide */ @TestApi public static final int FIELD_NIGHT_MODE = 1 << 3; /** * @hide */ @TestApi public static final int FIELD_DISABLE_AUTO_BRIGHTNESS = 1 << 4; /** * @hide */ @TestApi public static final int FIELD_DISABLE_TAP_TO_WAKE = 1 << 5; /** * @hide */ @TestApi public static final int FIELD_DISABLE_TILT_TO_WAKE = 1 << 6; /** * @hide */ @TestApi public static final int FIELD_DISABLE_TOUCH = 1 << 7; /** * @hide */ @TestApi public static final int FIELD_MINIMIZE_RADIO_USAGE = 1 << 8; /** * @hide */ @TestApi public static final int FIELD_MAXIMIZE_DOZE = 1 << 9; private final boolean mGrayscale; Loading @@ -119,13 +108,10 @@ public final class ZenDeviceEffects implements Parcelable { private final boolean mMinimizeRadioUsage; private final boolean mMaximizeDoze; private final @ModifiableField int mUserModifiedFields; // Bitwise representation private ZenDeviceEffects(boolean grayscale, boolean suppressAmbientDisplay, boolean dimWallpaper, boolean nightMode, boolean disableAutoBrightness, boolean disableTapToWake, boolean disableTiltToWake, boolean disableTouch, boolean minimizeRadioUsage, boolean maximizeDoze, @ModifiableField int userModifiedFields) { boolean minimizeRadioUsage, boolean maximizeDoze) { mGrayscale = grayscale; mSuppressAmbientDisplay = suppressAmbientDisplay; mDimWallpaper = dimWallpaper; Loading @@ -136,7 +122,6 @@ public final class ZenDeviceEffects implements Parcelable { mDisableTouch = disableTouch; mMinimizeRadioUsage = minimizeRadioUsage; mMaximizeDoze = maximizeDoze; mUserModifiedFields = userModifiedFields; } @Override Loading @@ -153,15 +138,14 @@ public final class ZenDeviceEffects implements Parcelable { && this.mDisableTiltToWake == that.mDisableTiltToWake && this.mDisableTouch == that.mDisableTouch && this.mMinimizeRadioUsage == that.mMinimizeRadioUsage && this.mMaximizeDoze == that.mMaximizeDoze && this.mUserModifiedFields == that.mUserModifiedFields; && this.mMaximizeDoze == that.mMaximizeDoze; } @Override public int hashCode() { return Objects.hash(mGrayscale, mSuppressAmbientDisplay, mDimWallpaper, mNightMode, mDisableAutoBrightness, mDisableTapToWake, mDisableTiltToWake, mDisableTouch, mMinimizeRadioUsage, mMaximizeDoze, mUserModifiedFields); mMinimizeRadioUsage, mMaximizeDoze); } @Override Loading @@ -177,11 +161,11 @@ public final class ZenDeviceEffects implements Parcelable { if (mDisableTouch) effects.add("disableTouch"); if (mMinimizeRadioUsage) effects.add("minimizeRadioUsage"); if (mMaximizeDoze) effects.add("maximizeDoze"); return "[" + String.join(", ", effects) + "]" + " userModifiedFields: " + modifiedFieldsToString(mUserModifiedFields); return "[" + String.join(", ", effects) + "]"; } private String modifiedFieldsToString(int bitmask) { /** @hide */ public static String fieldsToString(@ModifiableField int bitmask) { ArrayList<String> modified = new ArrayList<>(); if ((bitmask & FIELD_GRAYSCALE) != 0) { modified.add("FIELD_GRAYSCALE"); Loading Loading @@ -312,7 +296,7 @@ public final class ZenDeviceEffects implements Parcelable { return new ZenDeviceEffects(in.readBoolean(), in.readBoolean(), in.readBoolean(), in.readBoolean(), in.readBoolean(), in.readBoolean(), in.readBoolean(), in.readBoolean(), in.readBoolean(), in.readBoolean(), in.readInt()); in.readBoolean()); } @Override Loading @@ -321,16 +305,6 @@ public final class ZenDeviceEffects implements Parcelable { } }; /** * Gets the bitmask representing which fields are user modified. Bits are set using * {@link ModifiableField}. * @hide */ @TestApi public @ModifiableField int getUserModifiedFields() { return mUserModifiedFields; } @Override public int describeContents() { return 0; Loading @@ -348,7 +322,6 @@ public final class ZenDeviceEffects implements Parcelable { dest.writeBoolean(mDisableTouch); dest.writeBoolean(mMinimizeRadioUsage); dest.writeBoolean(mMaximizeDoze); dest.writeInt(mUserModifiedFields); } /** Builder class for {@link ZenDeviceEffects} objects. */ Loading @@ -365,7 +338,6 @@ public final class ZenDeviceEffects implements Parcelable { private boolean mDisableTouch; private boolean mMinimizeRadioUsage; private boolean mMaximizeDoze; private @ModifiableField int mUserModifiedFields; /** * Instantiates a new {@link ZenPolicy.Builder} with all effects set to default (disabled). Loading @@ -388,7 +360,6 @@ public final class ZenDeviceEffects implements Parcelable { mDisableTouch = zenDeviceEffects.shouldDisableTouch(); mMinimizeRadioUsage = zenDeviceEffects.shouldMinimizeRadioUsage(); mMaximizeDoze = zenDeviceEffects.shouldMaximizeDoze(); mUserModifiedFields = zenDeviceEffects.mUserModifiedFields; } /** Loading Loading @@ -510,24 +481,13 @@ public final class ZenDeviceEffects implements Parcelable { return this; } /** * Sets the bitmask representing which fields are user modified. See the FIELD_ constants. * @hide */ @TestApi @NonNull public Builder setUserModifiedFields(@ModifiableField int userModifiedFields) { mUserModifiedFields = userModifiedFields; return this; } /** Builds a {@link ZenDeviceEffects} object based on the builder's state. */ @NonNull public ZenDeviceEffects build() { return new ZenDeviceEffects(mGrayscale, mSuppressAmbientDisplay, mDimWallpaper, mNightMode, mDisableAutoBrightness, mDisableTapToWake, mDisableTiltToWake, mDisableTouch, mMinimizeRadioUsage, mMaximizeDoze, mUserModifiedFields); mMaximizeDoze); } } } core/java/android/service/notification/ZenModeConfig.java +42 −13 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
core/api/current.txt +0 −1 Original line number Diff line number Diff line Loading @@ -5317,7 +5317,6 @@ package android.app { ctor @Deprecated public AutomaticZenRule(String, android.content.ComponentName, android.net.Uri, int, boolean); ctor public AutomaticZenRule(@NonNull String, @Nullable android.content.ComponentName, @Nullable android.content.ComponentName, @NonNull android.net.Uri, @Nullable android.service.notification.ZenPolicy, int, boolean); ctor public AutomaticZenRule(android.os.Parcel); method @FlaggedApi("android.app.modes_api") public boolean canUpdate(); method public int describeContents(); method public android.net.Uri getConditionId(); method @Nullable public android.content.ComponentName getConfigurationActivity();
core/api/test-current.txt +0 −49 Original line number Diff line number Diff line Loading @@ -284,16 +284,6 @@ package android.app { method public default void onOpActiveChanged(@NonNull String, int, @NonNull String, @Nullable String, boolean, int, int); } public final class AutomaticZenRule implements android.os.Parcelable { method @FlaggedApi("android.app.modes_api") public int getUserModifiedFields(); field @FlaggedApi("android.app.modes_api") public static final int FIELD_INTERRUPTION_FILTER = 2; // 0x2 field @FlaggedApi("android.app.modes_api") public static final int FIELD_NAME = 1; // 0x1 } @FlaggedApi("android.app.modes_api") public static final class AutomaticZenRule.Builder { method @FlaggedApi("android.app.modes_api") @NonNull public android.app.AutomaticZenRule.Builder setUserModifiedFields(int); } public class BroadcastOptions extends android.app.ComponentOptions { ctor public BroadcastOptions(); ctor public BroadcastOptions(@NonNull android.os.Bundle); Loading Loading @@ -3021,47 +3011,8 @@ package android.service.notification { method @Deprecated public boolean isBound(); } @FlaggedApi("android.app.modes_api") public final class ZenDeviceEffects implements android.os.Parcelable { method public int getUserModifiedFields(); field public static final int FIELD_DIM_WALLPAPER = 4; // 0x4 field public static final int FIELD_DISABLE_AUTO_BRIGHTNESS = 16; // 0x10 field public static final int FIELD_DISABLE_TAP_TO_WAKE = 32; // 0x20 field public static final int FIELD_DISABLE_TILT_TO_WAKE = 64; // 0x40 field public static final int FIELD_DISABLE_TOUCH = 128; // 0x80 field public static final int FIELD_GRAYSCALE = 1; // 0x1 field public static final int FIELD_MAXIMIZE_DOZE = 512; // 0x200 field public static final int FIELD_MINIMIZE_RADIO_USAGE = 256; // 0x100 field public static final int FIELD_NIGHT_MODE = 8; // 0x8 field public static final int FIELD_SUPPRESS_AMBIENT_DISPLAY = 2; // 0x2 } @FlaggedApi("android.app.modes_api") public static final class ZenDeviceEffects.Builder { method @NonNull public android.service.notification.ZenDeviceEffects.Builder setUserModifiedFields(int); } public final class ZenPolicy implements android.os.Parcelable { method @FlaggedApi("android.app.modes_api") public int getUserModifiedFields(); field @FlaggedApi("android.app.modes_api") public static final int FIELD_ALLOW_CHANNELS = 8; // 0x8 field @FlaggedApi("android.app.modes_api") public static final int FIELD_CALLS = 2; // 0x2 field @FlaggedApi("android.app.modes_api") public static final int FIELD_CONVERSATIONS = 4; // 0x4 field @FlaggedApi("android.app.modes_api") public static final int FIELD_MESSAGES = 1; // 0x1 field @FlaggedApi("android.app.modes_api") public static final int FIELD_PRIORITY_CATEGORY_ALARMS = 128; // 0x80 field @FlaggedApi("android.app.modes_api") public static final int FIELD_PRIORITY_CATEGORY_EVENTS = 32; // 0x20 field @FlaggedApi("android.app.modes_api") public static final int FIELD_PRIORITY_CATEGORY_MEDIA = 256; // 0x100 field @FlaggedApi("android.app.modes_api") public static final int FIELD_PRIORITY_CATEGORY_REPEAT_CALLERS = 64; // 0x40 field @FlaggedApi("android.app.modes_api") public static final int FIELD_PRIORITY_CATEGORY_SYSTEM = 512; // 0x200 field @FlaggedApi("android.app.modes_api") public static final int FIELD_VISUAL_EFFECT_AMBIENT = 32768; // 0x8000 field @FlaggedApi("android.app.modes_api") public static final int FIELD_VISUAL_EFFECT_BADGE = 16384; // 0x4000 field @FlaggedApi("android.app.modes_api") public static final int FIELD_VISUAL_EFFECT_FULL_SCREEN_INTENT = 1024; // 0x400 field @FlaggedApi("android.app.modes_api") public static final int FIELD_VISUAL_EFFECT_LIGHTS = 2048; // 0x800 field @FlaggedApi("android.app.modes_api") public static final int FIELD_VISUAL_EFFECT_NOTIFICATION_LIST = 65536; // 0x10000 field @FlaggedApi("android.app.modes_api") public static final int FIELD_VISUAL_EFFECT_PEEK = 4096; // 0x1000 field @FlaggedApi("android.app.modes_api") public static final int FIELD_VISUAL_EFFECT_STATUS_BAR = 8192; // 0x2000 } public static final class ZenPolicy.Builder { ctor public ZenPolicy.Builder(@Nullable android.service.notification.ZenPolicy); method @FlaggedApi("android.app.modes_api") @NonNull public android.service.notification.ZenPolicy.Builder setUserModifiedFields(int); } } Loading
core/java/android/app/AutomaticZenRule.java +8 −61 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ import android.annotation.FlaggedApi; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.TestApi; import android.app.NotificationManager.InterruptionFilter; import android.content.ComponentName; import android.net.Uri; Loading Loading @@ -113,8 +112,8 @@ public final class AutomaticZenRule implements Parcelable { @Retention(RetentionPolicy.SOURCE) public @interface Type {} /** Used to track which rule variables have been modified by the user. * Should be checked against the bitmask {@link #getUserModifiedFields()}. /** * Enum for the user-modifiable fields in this object. * @hide */ @IntDef(flag = true, prefix = { "FIELD_" }, value = { Loading @@ -128,13 +127,11 @@ public final class AutomaticZenRule implements Parcelable { * @hide */ @FlaggedApi(Flags.FLAG_MODES_API) @TestApi public static final int FIELD_NAME = 1 << 0; /** * @hide */ @FlaggedApi(Flags.FLAG_MODES_API) @TestApi public static final int FIELD_INTERRUPTION_FILTER = 1 << 1; private boolean enabled; Loading @@ -153,7 +150,6 @@ public final class AutomaticZenRule implements Parcelable { private int mIconResId; private String mTriggerDescription; private boolean mAllowManualInvocation; private @ModifiableField int mUserModifiedFields; // Bitwise representation /** * The maximum string length for any string contained in this automatic zen rule. This pertains Loading Loading @@ -256,7 +252,6 @@ public final class AutomaticZenRule implements Parcelable { mIconResId = source.readInt(); mTriggerDescription = getTrimmedString(source.readString(), MAX_DESC_LENGTH); mType = source.readInt(); mUserModifiedFields = source.readInt(); } } Loading Loading @@ -307,8 +302,7 @@ public final class AutomaticZenRule implements Parcelable { * Returns whether this rule's name has been modified by the user. * @hide */ // TODO: b/310620812 - Replace with mUserModifiedFields & FIELD_NAME once // FLAG_MODES_API is inlined. // TODO: b/310620812 - Consider removing completely. Seems not be used anywhere except tests. public boolean isModified() { return mModified; } Loading Loading @@ -506,32 +500,6 @@ public final class AutomaticZenRule implements Parcelable { return type; } /** * Gets the bitmask representing which fields are user modified. Bits are set using * {@link ModifiableField}. * @hide */ @FlaggedApi(Flags.FLAG_MODES_API) @TestApi public @ModifiableField int getUserModifiedFields() { return mUserModifiedFields; } /** * Returns {@code true} if the {@link AutomaticZenRule} can be updated. * When this returns {@code false}, calls to * {@link NotificationManager#updateAutomaticZenRule(String, AutomaticZenRule)}) with this rule * will ignore changes to user-configurable fields. */ @FlaggedApi(Flags.FLAG_MODES_API) public boolean canUpdate() { // The rule is considered updateable if its bitmask has no user modifications, and // the bitmasks of the policy and device effects have no modification. return mUserModifiedFields == 0 && (mZenPolicy == null || mZenPolicy.getUserModifiedFields() == 0) && (mDeviceEffects == null || mDeviceEffects.getUserModifiedFields() == 0); } @Override public int describeContents() { return 0; Loading Loading @@ -560,7 +528,6 @@ public final class AutomaticZenRule implements Parcelable { dest.writeInt(mIconResId); dest.writeString(mTriggerDescription); dest.writeInt(mType); dest.writeInt(mUserModifiedFields); } } Loading @@ -582,16 +549,14 @@ public final class AutomaticZenRule implements Parcelable { .append(",allowManualInvocation=").append(mAllowManualInvocation) .append(",iconResId=").append(mIconResId) .append(",triggerDescription=").append(mTriggerDescription) .append(",type=").append(mType) .append(",userModifiedFields=") .append(modifiedFieldsToString(mUserModifiedFields)); .append(",type=").append(mType); } return sb.append(']').toString(); } @FlaggedApi(Flags.FLAG_MODES_API) private String modifiedFieldsToString(int bitmask) { /** @hide */ public static String fieldsToString(@ModifiableField int bitmask) { ArrayList<String> modified = new ArrayList<>(); if ((bitmask & FIELD_NAME) != 0) { modified.add("FIELD_NAME"); Loading Loading @@ -623,8 +588,7 @@ public final class AutomaticZenRule implements Parcelable { && other.mAllowManualInvocation == mAllowManualInvocation && other.mIconResId == mIconResId && Objects.equals(other.mTriggerDescription, mTriggerDescription) && other.mType == mType && other.mUserModifiedFields == mUserModifiedFields; && other.mType == mType; } return finalEquals; } Loading @@ -634,8 +598,7 @@ public final class AutomaticZenRule implements Parcelable { if (Flags.modesApi()) { return Objects.hash(enabled, name, interruptionFilter, conditionId, owner, configurationActivity, mZenPolicy, mDeviceEffects, mModified, creationTime, mPkg, mAllowManualInvocation, mIconResId, mTriggerDescription, mType, mUserModifiedFields); mPkg, mAllowManualInvocation, mIconResId, mTriggerDescription, mType); } return Objects.hash(enabled, name, interruptionFilter, conditionId, owner, configurationActivity, mZenPolicy, mModified, creationTime, mPkg); Loading Loading @@ -704,7 +667,6 @@ public final class AutomaticZenRule implements Parcelable { private boolean mAllowManualInvocation; private long mCreationTime; private String mPkg; private @ModifiableField int mUserModifiedFields; public Builder(@NonNull AutomaticZenRule rule) { mName = rule.getName(); Loading @@ -721,7 +683,6 @@ public final class AutomaticZenRule implements Parcelable { mAllowManualInvocation = rule.isManualInvocationAllowed(); mCreationTime = rule.getCreationTime(); mPkg = rule.getPackageName(); mUserModifiedFields = rule.mUserModifiedFields; } public Builder(@NonNull String name, @NonNull Uri conditionId) { Loading Loading @@ -848,19 +809,6 @@ public final class AutomaticZenRule implements Parcelable { return this; } /** * Sets the bitmask representing which fields have been user-modified. * This method should not be used outside of tests. The value of userModifiedFields * should be set based on what values are changed when a rule is populated or updated.. * @hide */ @FlaggedApi(Flags.FLAG_MODES_API) @TestApi public @NonNull Builder setUserModifiedFields(@ModifiableField int userModifiedFields) { mUserModifiedFields = userModifiedFields; return this; } public @NonNull AutomaticZenRule build() { AutomaticZenRule rule = new AutomaticZenRule(mName, mOwner, mConfigurationActivity, mConditionId, mPolicy, mInterruptionFilter, mEnabled); Loading @@ -871,7 +819,6 @@ public final class AutomaticZenRule implements Parcelable { rule.mIconResId = mIconResId; rule.mAllowManualInvocation = mAllowManualInvocation; rule.setPackageName(mPkg); rule.mUserModifiedFields = mUserModifiedFields; return rule; } Loading
core/java/android/service/notification/ZenDeviceEffects.java +10 −50 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ import android.annotation.FlaggedApi; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.TestApi; import android.app.Flags; import android.os.Parcel; import android.os.Parcelable; Loading @@ -37,8 +36,8 @@ import java.util.Objects; @FlaggedApi(Flags.FLAG_MODES_API) public final class ZenDeviceEffects implements Parcelable { /** Used to track which rule variables have been modified by the user. * Should be checked against the bitmask {@link #getUserModifiedFields()}. /** * Enum for the user-modifiable fields in this object. * @hide */ @IntDef(flag = true, prefix = { "FIELD_" }, value = { Loading @@ -59,52 +58,42 @@ public final class ZenDeviceEffects implements Parcelable { /** * @hide */ @TestApi public static final int FIELD_GRAYSCALE = 1 << 0; /** * @hide */ @TestApi public static final int FIELD_SUPPRESS_AMBIENT_DISPLAY = 1 << 1; /** * @hide */ @TestApi public static final int FIELD_DIM_WALLPAPER = 1 << 2; /** * @hide */ @TestApi public static final int FIELD_NIGHT_MODE = 1 << 3; /** * @hide */ @TestApi public static final int FIELD_DISABLE_AUTO_BRIGHTNESS = 1 << 4; /** * @hide */ @TestApi public static final int FIELD_DISABLE_TAP_TO_WAKE = 1 << 5; /** * @hide */ @TestApi public static final int FIELD_DISABLE_TILT_TO_WAKE = 1 << 6; /** * @hide */ @TestApi public static final int FIELD_DISABLE_TOUCH = 1 << 7; /** * @hide */ @TestApi public static final int FIELD_MINIMIZE_RADIO_USAGE = 1 << 8; /** * @hide */ @TestApi public static final int FIELD_MAXIMIZE_DOZE = 1 << 9; private final boolean mGrayscale; Loading @@ -119,13 +108,10 @@ public final class ZenDeviceEffects implements Parcelable { private final boolean mMinimizeRadioUsage; private final boolean mMaximizeDoze; private final @ModifiableField int mUserModifiedFields; // Bitwise representation private ZenDeviceEffects(boolean grayscale, boolean suppressAmbientDisplay, boolean dimWallpaper, boolean nightMode, boolean disableAutoBrightness, boolean disableTapToWake, boolean disableTiltToWake, boolean disableTouch, boolean minimizeRadioUsage, boolean maximizeDoze, @ModifiableField int userModifiedFields) { boolean minimizeRadioUsage, boolean maximizeDoze) { mGrayscale = grayscale; mSuppressAmbientDisplay = suppressAmbientDisplay; mDimWallpaper = dimWallpaper; Loading @@ -136,7 +122,6 @@ public final class ZenDeviceEffects implements Parcelable { mDisableTouch = disableTouch; mMinimizeRadioUsage = minimizeRadioUsage; mMaximizeDoze = maximizeDoze; mUserModifiedFields = userModifiedFields; } @Override Loading @@ -153,15 +138,14 @@ public final class ZenDeviceEffects implements Parcelable { && this.mDisableTiltToWake == that.mDisableTiltToWake && this.mDisableTouch == that.mDisableTouch && this.mMinimizeRadioUsage == that.mMinimizeRadioUsage && this.mMaximizeDoze == that.mMaximizeDoze && this.mUserModifiedFields == that.mUserModifiedFields; && this.mMaximizeDoze == that.mMaximizeDoze; } @Override public int hashCode() { return Objects.hash(mGrayscale, mSuppressAmbientDisplay, mDimWallpaper, mNightMode, mDisableAutoBrightness, mDisableTapToWake, mDisableTiltToWake, mDisableTouch, mMinimizeRadioUsage, mMaximizeDoze, mUserModifiedFields); mMinimizeRadioUsage, mMaximizeDoze); } @Override Loading @@ -177,11 +161,11 @@ public final class ZenDeviceEffects implements Parcelable { if (mDisableTouch) effects.add("disableTouch"); if (mMinimizeRadioUsage) effects.add("minimizeRadioUsage"); if (mMaximizeDoze) effects.add("maximizeDoze"); return "[" + String.join(", ", effects) + "]" + " userModifiedFields: " + modifiedFieldsToString(mUserModifiedFields); return "[" + String.join(", ", effects) + "]"; } private String modifiedFieldsToString(int bitmask) { /** @hide */ public static String fieldsToString(@ModifiableField int bitmask) { ArrayList<String> modified = new ArrayList<>(); if ((bitmask & FIELD_GRAYSCALE) != 0) { modified.add("FIELD_GRAYSCALE"); Loading Loading @@ -312,7 +296,7 @@ public final class ZenDeviceEffects implements Parcelable { return new ZenDeviceEffects(in.readBoolean(), in.readBoolean(), in.readBoolean(), in.readBoolean(), in.readBoolean(), in.readBoolean(), in.readBoolean(), in.readBoolean(), in.readBoolean(), in.readBoolean(), in.readInt()); in.readBoolean()); } @Override Loading @@ -321,16 +305,6 @@ public final class ZenDeviceEffects implements Parcelable { } }; /** * Gets the bitmask representing which fields are user modified. Bits are set using * {@link ModifiableField}. * @hide */ @TestApi public @ModifiableField int getUserModifiedFields() { return mUserModifiedFields; } @Override public int describeContents() { return 0; Loading @@ -348,7 +322,6 @@ public final class ZenDeviceEffects implements Parcelable { dest.writeBoolean(mDisableTouch); dest.writeBoolean(mMinimizeRadioUsage); dest.writeBoolean(mMaximizeDoze); dest.writeInt(mUserModifiedFields); } /** Builder class for {@link ZenDeviceEffects} objects. */ Loading @@ -365,7 +338,6 @@ public final class ZenDeviceEffects implements Parcelable { private boolean mDisableTouch; private boolean mMinimizeRadioUsage; private boolean mMaximizeDoze; private @ModifiableField int mUserModifiedFields; /** * Instantiates a new {@link ZenPolicy.Builder} with all effects set to default (disabled). Loading @@ -388,7 +360,6 @@ public final class ZenDeviceEffects implements Parcelable { mDisableTouch = zenDeviceEffects.shouldDisableTouch(); mMinimizeRadioUsage = zenDeviceEffects.shouldMinimizeRadioUsage(); mMaximizeDoze = zenDeviceEffects.shouldMaximizeDoze(); mUserModifiedFields = zenDeviceEffects.mUserModifiedFields; } /** Loading Loading @@ -510,24 +481,13 @@ public final class ZenDeviceEffects implements Parcelable { return this; } /** * Sets the bitmask representing which fields are user modified. See the FIELD_ constants. * @hide */ @TestApi @NonNull public Builder setUserModifiedFields(@ModifiableField int userModifiedFields) { mUserModifiedFields = userModifiedFields; return this; } /** Builds a {@link ZenDeviceEffects} object based on the builder's state. */ @NonNull public ZenDeviceEffects build() { return new ZenDeviceEffects(mGrayscale, mSuppressAmbientDisplay, mDimWallpaper, mNightMode, mDisableAutoBrightness, mDisableTapToWake, mDisableTiltToWake, mDisableTouch, mMinimizeRadioUsage, mMaximizeDoze, mUserModifiedFields); mMaximizeDoze); } } }
core/java/android/service/notification/ZenModeConfig.java +42 −13 File changed.Preview size limit exceeded, changes collapsed. Show changes