Loading core/java/android/app/AutomaticZenRule.aidl +3 −1 Original line number Diff line number Diff line Loading @@ -17,3 +17,5 @@ package android.app; parcelable AutomaticZenRule; parcelable AutomaticZenRule.AzrWithId; No newline at end of file core/java/android/app/AutomaticZenRule.java +43 −6 Original line number Diff line number Diff line Loading @@ -228,7 +228,7 @@ public final class AutomaticZenRule implements Parcelable { public AutomaticZenRule(Parcel source) { enabled = source.readInt() == ENABLED; if (source.readInt() == ENABLED) { name = getTrimmedString(source.readString()); name = getTrimmedString(source.readString8()); } interruptionFilter = source.readInt(); conditionId = getTrimmedUri(source.readParcelable(null, android.net.Uri.class)); Loading @@ -238,11 +238,11 @@ public final class AutomaticZenRule implements Parcelable { source.readParcelable(null, android.content.ComponentName.class)); creationTime = source.readLong(); mZenPolicy = source.readParcelable(null, ZenPolicy.class); mPkg = source.readString(); mPkg = source.readString8(); mDeviceEffects = source.readParcelable(null, ZenDeviceEffects.class); mAllowManualInvocation = source.readBoolean(); mIconResId = source.readInt(); mTriggerDescription = getTrimmedString(source.readString(), MAX_DESC_LENGTH); mTriggerDescription = getTrimmedString(source.readString8(), MAX_DESC_LENGTH); mType = source.readInt(); } Loading Loading @@ -514,7 +514,7 @@ public final class AutomaticZenRule implements Parcelable { dest.writeInt(enabled ? ENABLED : DISABLED); if (name != null) { dest.writeInt(1); dest.writeString(name); dest.writeString8(name); } else { dest.writeInt(0); } Loading @@ -524,11 +524,11 @@ public final class AutomaticZenRule implements Parcelable { dest.writeParcelable(configurationActivity, 0); dest.writeLong(creationTime); dest.writeParcelable(mZenPolicy, 0); dest.writeString(mPkg); dest.writeString8(mPkg); dest.writeParcelable(mDeviceEffects, 0); dest.writeBoolean(mAllowManualInvocation); dest.writeInt(mIconResId); dest.writeString(mTriggerDescription); dest.writeString8(mTriggerDescription); dest.writeInt(mType); } Loading Loading @@ -843,4 +843,41 @@ public final class AutomaticZenRule implements Parcelable { return rule; } } /** @hide */ public static final class AzrWithId implements Parcelable { public final String mId; public final AutomaticZenRule mRule; public AzrWithId(String id, AutomaticZenRule rule) { mId = id; mRule = rule; } public static final Creator<AzrWithId> CREATOR = new Creator<>() { @Override public AzrWithId createFromParcel(Parcel in) { return new AzrWithId( in.readString8(), in.readParcelable(AutomaticZenRule.class.getClassLoader(), AutomaticZenRule.class)); } @Override public AzrWithId[] newArray(int size) { return new AzrWithId[size]; } }; @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeString8(mId); dest.writeParcelable(mRule, flags); } @Override public int describeContents() { return 0; } } } core/java/android/app/INotificationManager.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -224,7 +224,7 @@ interface INotificationManager void setNotificationPolicyAccessGrantedForUser(String pkg, int userId, boolean granted); ZenPolicy getDefaultZenPolicy(); AutomaticZenRule getAutomaticZenRule(String id); Map<String, AutomaticZenRule> getAutomaticZenRules(); ParceledListSlice getAutomaticZenRules(); String addAutomaticZenRule(in AutomaticZenRule automaticZenRule, String pkg, boolean fromUser); boolean updateAutomaticZenRule(String id, in AutomaticZenRule automaticZenRule, boolean fromUser); boolean removeAutomaticZenRule(String id, boolean fromUser); Loading core/java/android/app/NotificationManager.java +9 −1 Original line number Diff line number Diff line Loading @@ -1747,7 +1747,15 @@ public class NotificationManager { public Map<String, AutomaticZenRule> getAutomaticZenRules() { INotificationManager service = service(); try { return service.getAutomaticZenRules(); Map<String, AutomaticZenRule> result = new HashMap<>(); ParceledListSlice<AutomaticZenRule.AzrWithId> parceledRules = service.getAutomaticZenRules(); if (parceledRules != null) { for (AutomaticZenRule.AzrWithId rule : parceledRules.getList()) { result.put(rule.mId, rule.mRule); } } return result; } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading core/java/android/service/notification/ZenModeConfig.java +33 −24 Original line number Diff line number Diff line Loading @@ -62,6 +62,7 @@ import android.content.ComponentName; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.ParceledListSlice; import android.content.res.Resources; import android.net.Uri; import android.os.Build; Loading Loading @@ -460,14 +461,21 @@ public class ZenModeConfig implements Parcelable { } private static void readRulesFromParcel(ArrayMap<String, ZenRule> ruleMap, Parcel source) { final int len = source.readInt(); int len = source.readInt(); if (len > 0) { final String[] ids = new String[len]; final ZenRule[] rules = new ZenRule[len]; source.readStringArray(ids); source.readTypedArray(rules, ZenRule.CREATOR); source.readString8Array(ids); ParceledListSlice<?> parceledRules = source.readParcelable( ZenRule.class.getClassLoader(), ParceledListSlice.class); List<?> rules = parceledRules != null ? parceledRules.getList() : new ArrayList<>(); if (rules.size() != len) { Slog.wtf(TAG, String.format( "Unexpected parceled rules count (%s != %s), throwing them out", rules.size(), len)); len = 0; } for (int i = 0; i < len; i++) { ruleMap.put(ids[i], rules[i]); ruleMap.put(ids[i], (ZenRule) rules.get(i)); } } } Loading @@ -485,8 +493,8 @@ public class ZenModeConfig implements Parcelable { } dest.writeInt(user); dest.writeParcelable(manualRule, 0); writeRulesToParcel(automaticRules, dest); writeRulesToParcel(deletedRules, dest); writeRulesToParcel(automaticRules, dest, flags); writeRulesToParcel(deletedRules, dest, flags); if (!Flags.modesUi()) { dest.writeInt(allowAlarms ? 1 : 0); dest.writeInt(allowMedia ? 1 : 0); Loading @@ -501,18 +509,19 @@ public class ZenModeConfig implements Parcelable { } } private static void writeRulesToParcel(ArrayMap<String, ZenRule> ruleMap, Parcel dest) { private static void writeRulesToParcel(ArrayMap<String, ZenRule> ruleMap, Parcel dest, int flags) { if (!ruleMap.isEmpty()) { final int len = ruleMap.size(); final String[] ids = new String[len]; final ZenRule[] rules = new ZenRule[len]; final ArrayList<ZenRule> rules = new ArrayList<>(); for (int i = 0; i < len; i++) { ids[i] = ruleMap.keyAt(i); rules[i] = ruleMap.valueAt(i); rules.add(ruleMap.valueAt(i)); } dest.writeInt(len); dest.writeStringArray(ids); dest.writeTypedArray(rules, 0); dest.writeString8Array(ids); dest.writeParcelable(new ParceledListSlice<>(rules), flags); } else { dest.writeInt(0); } Loading Loading @@ -2636,7 +2645,7 @@ public class ZenModeConfig implements Parcelable { enabled = source.readInt() == 1; snoozing = source.readInt() == 1; if (source.readInt() == 1) { name = source.readString(); name = source.readString8(); } zenMode = source.readInt(); conditionId = source.readParcelable(null, android.net.Uri.class); Loading @@ -2644,18 +2653,18 @@ public class ZenModeConfig implements Parcelable { component = source.readParcelable(null, android.content.ComponentName.class); configurationActivity = source.readParcelable(null, android.content.ComponentName.class); if (source.readInt() == 1) { id = source.readString(); id = source.readString8(); } creationTime = source.readLong(); if (source.readInt() == 1) { enabler = source.readString(); enabler = source.readString8(); } zenPolicy = source.readParcelable(null, android.service.notification.ZenPolicy.class); zenDeviceEffects = source.readParcelable(null, ZenDeviceEffects.class); pkg = source.readString(); pkg = source.readString8(); allowManualInvocation = source.readBoolean(); iconResName = source.readString(); triggerDescription = source.readString(); iconResName = source.readString8(); triggerDescription = source.readString8(); type = source.readInt(); userModifiedFields = source.readInt(); zenPolicyUserModifiedFields = source.readInt(); Loading Loading @@ -2703,7 +2712,7 @@ public class ZenModeConfig implements Parcelable { dest.writeInt(snoozing ? 1 : 0); if (name != null) { dest.writeInt(1); dest.writeString(name); dest.writeString8(name); } else { dest.writeInt(0); } Loading @@ -2714,23 +2723,23 @@ public class ZenModeConfig implements Parcelable { dest.writeParcelable(configurationActivity, 0); if (id != null) { dest.writeInt(1); dest.writeString(id); dest.writeString8(id); } else { dest.writeInt(0); } dest.writeLong(creationTime); if (enabler != null) { dest.writeInt(1); dest.writeString(enabler); dest.writeString8(enabler); } else { dest.writeInt(0); } dest.writeParcelable(zenPolicy, 0); dest.writeParcelable(zenDeviceEffects, 0); dest.writeString(pkg); dest.writeString8(pkg); dest.writeBoolean(allowManualInvocation); dest.writeString(iconResName); dest.writeString(triggerDescription); dest.writeString8(iconResName); dest.writeString8(triggerDescription); dest.writeInt(type); dest.writeInt(userModifiedFields); dest.writeInt(zenPolicyUserModifiedFields); Loading Loading
core/java/android/app/AutomaticZenRule.aidl +3 −1 Original line number Diff line number Diff line Loading @@ -17,3 +17,5 @@ package android.app; parcelable AutomaticZenRule; parcelable AutomaticZenRule.AzrWithId; No newline at end of file
core/java/android/app/AutomaticZenRule.java +43 −6 Original line number Diff line number Diff line Loading @@ -228,7 +228,7 @@ public final class AutomaticZenRule implements Parcelable { public AutomaticZenRule(Parcel source) { enabled = source.readInt() == ENABLED; if (source.readInt() == ENABLED) { name = getTrimmedString(source.readString()); name = getTrimmedString(source.readString8()); } interruptionFilter = source.readInt(); conditionId = getTrimmedUri(source.readParcelable(null, android.net.Uri.class)); Loading @@ -238,11 +238,11 @@ public final class AutomaticZenRule implements Parcelable { source.readParcelable(null, android.content.ComponentName.class)); creationTime = source.readLong(); mZenPolicy = source.readParcelable(null, ZenPolicy.class); mPkg = source.readString(); mPkg = source.readString8(); mDeviceEffects = source.readParcelable(null, ZenDeviceEffects.class); mAllowManualInvocation = source.readBoolean(); mIconResId = source.readInt(); mTriggerDescription = getTrimmedString(source.readString(), MAX_DESC_LENGTH); mTriggerDescription = getTrimmedString(source.readString8(), MAX_DESC_LENGTH); mType = source.readInt(); } Loading Loading @@ -514,7 +514,7 @@ public final class AutomaticZenRule implements Parcelable { dest.writeInt(enabled ? ENABLED : DISABLED); if (name != null) { dest.writeInt(1); dest.writeString(name); dest.writeString8(name); } else { dest.writeInt(0); } Loading @@ -524,11 +524,11 @@ public final class AutomaticZenRule implements Parcelable { dest.writeParcelable(configurationActivity, 0); dest.writeLong(creationTime); dest.writeParcelable(mZenPolicy, 0); dest.writeString(mPkg); dest.writeString8(mPkg); dest.writeParcelable(mDeviceEffects, 0); dest.writeBoolean(mAllowManualInvocation); dest.writeInt(mIconResId); dest.writeString(mTriggerDescription); dest.writeString8(mTriggerDescription); dest.writeInt(mType); } Loading Loading @@ -843,4 +843,41 @@ public final class AutomaticZenRule implements Parcelable { return rule; } } /** @hide */ public static final class AzrWithId implements Parcelable { public final String mId; public final AutomaticZenRule mRule; public AzrWithId(String id, AutomaticZenRule rule) { mId = id; mRule = rule; } public static final Creator<AzrWithId> CREATOR = new Creator<>() { @Override public AzrWithId createFromParcel(Parcel in) { return new AzrWithId( in.readString8(), in.readParcelable(AutomaticZenRule.class.getClassLoader(), AutomaticZenRule.class)); } @Override public AzrWithId[] newArray(int size) { return new AzrWithId[size]; } }; @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeString8(mId); dest.writeParcelable(mRule, flags); } @Override public int describeContents() { return 0; } } }
core/java/android/app/INotificationManager.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -224,7 +224,7 @@ interface INotificationManager void setNotificationPolicyAccessGrantedForUser(String pkg, int userId, boolean granted); ZenPolicy getDefaultZenPolicy(); AutomaticZenRule getAutomaticZenRule(String id); Map<String, AutomaticZenRule> getAutomaticZenRules(); ParceledListSlice getAutomaticZenRules(); String addAutomaticZenRule(in AutomaticZenRule automaticZenRule, String pkg, boolean fromUser); boolean updateAutomaticZenRule(String id, in AutomaticZenRule automaticZenRule, boolean fromUser); boolean removeAutomaticZenRule(String id, boolean fromUser); Loading
core/java/android/app/NotificationManager.java +9 −1 Original line number Diff line number Diff line Loading @@ -1747,7 +1747,15 @@ public class NotificationManager { public Map<String, AutomaticZenRule> getAutomaticZenRules() { INotificationManager service = service(); try { return service.getAutomaticZenRules(); Map<String, AutomaticZenRule> result = new HashMap<>(); ParceledListSlice<AutomaticZenRule.AzrWithId> parceledRules = service.getAutomaticZenRules(); if (parceledRules != null) { for (AutomaticZenRule.AzrWithId rule : parceledRules.getList()) { result.put(rule.mId, rule.mRule); } } return result; } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading
core/java/android/service/notification/ZenModeConfig.java +33 −24 Original line number Diff line number Diff line Loading @@ -62,6 +62,7 @@ import android.content.ComponentName; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.ParceledListSlice; import android.content.res.Resources; import android.net.Uri; import android.os.Build; Loading Loading @@ -460,14 +461,21 @@ public class ZenModeConfig implements Parcelable { } private static void readRulesFromParcel(ArrayMap<String, ZenRule> ruleMap, Parcel source) { final int len = source.readInt(); int len = source.readInt(); if (len > 0) { final String[] ids = new String[len]; final ZenRule[] rules = new ZenRule[len]; source.readStringArray(ids); source.readTypedArray(rules, ZenRule.CREATOR); source.readString8Array(ids); ParceledListSlice<?> parceledRules = source.readParcelable( ZenRule.class.getClassLoader(), ParceledListSlice.class); List<?> rules = parceledRules != null ? parceledRules.getList() : new ArrayList<>(); if (rules.size() != len) { Slog.wtf(TAG, String.format( "Unexpected parceled rules count (%s != %s), throwing them out", rules.size(), len)); len = 0; } for (int i = 0; i < len; i++) { ruleMap.put(ids[i], rules[i]); ruleMap.put(ids[i], (ZenRule) rules.get(i)); } } } Loading @@ -485,8 +493,8 @@ public class ZenModeConfig implements Parcelable { } dest.writeInt(user); dest.writeParcelable(manualRule, 0); writeRulesToParcel(automaticRules, dest); writeRulesToParcel(deletedRules, dest); writeRulesToParcel(automaticRules, dest, flags); writeRulesToParcel(deletedRules, dest, flags); if (!Flags.modesUi()) { dest.writeInt(allowAlarms ? 1 : 0); dest.writeInt(allowMedia ? 1 : 0); Loading @@ -501,18 +509,19 @@ public class ZenModeConfig implements Parcelable { } } private static void writeRulesToParcel(ArrayMap<String, ZenRule> ruleMap, Parcel dest) { private static void writeRulesToParcel(ArrayMap<String, ZenRule> ruleMap, Parcel dest, int flags) { if (!ruleMap.isEmpty()) { final int len = ruleMap.size(); final String[] ids = new String[len]; final ZenRule[] rules = new ZenRule[len]; final ArrayList<ZenRule> rules = new ArrayList<>(); for (int i = 0; i < len; i++) { ids[i] = ruleMap.keyAt(i); rules[i] = ruleMap.valueAt(i); rules.add(ruleMap.valueAt(i)); } dest.writeInt(len); dest.writeStringArray(ids); dest.writeTypedArray(rules, 0); dest.writeString8Array(ids); dest.writeParcelable(new ParceledListSlice<>(rules), flags); } else { dest.writeInt(0); } Loading Loading @@ -2636,7 +2645,7 @@ public class ZenModeConfig implements Parcelable { enabled = source.readInt() == 1; snoozing = source.readInt() == 1; if (source.readInt() == 1) { name = source.readString(); name = source.readString8(); } zenMode = source.readInt(); conditionId = source.readParcelable(null, android.net.Uri.class); Loading @@ -2644,18 +2653,18 @@ public class ZenModeConfig implements Parcelable { component = source.readParcelable(null, android.content.ComponentName.class); configurationActivity = source.readParcelable(null, android.content.ComponentName.class); if (source.readInt() == 1) { id = source.readString(); id = source.readString8(); } creationTime = source.readLong(); if (source.readInt() == 1) { enabler = source.readString(); enabler = source.readString8(); } zenPolicy = source.readParcelable(null, android.service.notification.ZenPolicy.class); zenDeviceEffects = source.readParcelable(null, ZenDeviceEffects.class); pkg = source.readString(); pkg = source.readString8(); allowManualInvocation = source.readBoolean(); iconResName = source.readString(); triggerDescription = source.readString(); iconResName = source.readString8(); triggerDescription = source.readString8(); type = source.readInt(); userModifiedFields = source.readInt(); zenPolicyUserModifiedFields = source.readInt(); Loading Loading @@ -2703,7 +2712,7 @@ public class ZenModeConfig implements Parcelable { dest.writeInt(snoozing ? 1 : 0); if (name != null) { dest.writeInt(1); dest.writeString(name); dest.writeString8(name); } else { dest.writeInt(0); } Loading @@ -2714,23 +2723,23 @@ public class ZenModeConfig implements Parcelable { dest.writeParcelable(configurationActivity, 0); if (id != null) { dest.writeInt(1); dest.writeString(id); dest.writeString8(id); } else { dest.writeInt(0); } dest.writeLong(creationTime); if (enabler != null) { dest.writeInt(1); dest.writeString(enabler); dest.writeString8(enabler); } else { dest.writeInt(0); } dest.writeParcelable(zenPolicy, 0); dest.writeParcelable(zenDeviceEffects, 0); dest.writeString(pkg); dest.writeString8(pkg); dest.writeBoolean(allowManualInvocation); dest.writeString(iconResName); dest.writeString(triggerDescription); dest.writeString8(iconResName); dest.writeString8(triggerDescription); dest.writeInt(type); dest.writeInt(userModifiedFields); dest.writeInt(zenPolicyUserModifiedFields); Loading