diff --git a/api/current.txt b/api/current.txt index b5ce2b10353bd..210d362468a10 100644 --- a/api/current.txt +++ b/api/current.txt @@ -34673,7 +34673,7 @@ package android.service.media { package android.service.notification { - public class Condition implements android.os.Parcelable { + public final class Condition implements android.os.Parcelable { ctor public Condition(android.net.Uri, java.lang.String, int); ctor public Condition(android.net.Uri, java.lang.String, java.lang.String, java.lang.String, int, int, int); ctor public Condition(android.os.Parcel); @@ -34710,7 +34710,7 @@ package android.service.notification { method public void onRequestConditions(int); method public abstract void onSubscribe(android.net.Uri); method public abstract void onUnsubscribe(android.net.Uri); - field public static final java.lang.String EXTRA_RULE_ID = "android.content.automatic.ruleId"; + field public static final java.lang.String EXTRA_RULE_ID = "android.service.notification.extra.RULE_ID"; field public static final java.lang.String META_DATA_CONFIGURATION_ACTIVITY = "android.service.zen.automatic.configurationActivity"; field public static final java.lang.String META_DATA_RULE_INSTANCE_LIMIT = "android.service.zen.automatic.ruleInstanceLimit"; field public static final java.lang.String META_DATA_RULE_TYPE = "android.service.zen.automatic.ruleType"; diff --git a/api/system-current.txt b/api/system-current.txt index 876dfa8245a91..a3fd1eea0023e 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -37396,7 +37396,7 @@ package android.service.notification { field public static final java.lang.String NEEDS_AUTOGROUPING_KEY = "autogroup_needed"; } - public class Condition implements android.os.Parcelable { + public final class Condition implements android.os.Parcelable { ctor public Condition(android.net.Uri, java.lang.String, int); ctor public Condition(android.net.Uri, java.lang.String, java.lang.String, java.lang.String, int, int, int); ctor public Condition(android.os.Parcel); @@ -37433,7 +37433,7 @@ package android.service.notification { method public void onRequestConditions(int); method public abstract void onSubscribe(android.net.Uri); method public abstract void onUnsubscribe(android.net.Uri); - field public static final java.lang.String EXTRA_RULE_ID = "android.content.automatic.ruleId"; + field public static final java.lang.String EXTRA_RULE_ID = "android.service.notification.extra.RULE_ID"; field public static final java.lang.String META_DATA_CONFIGURATION_ACTIVITY = "android.service.zen.automatic.configurationActivity"; field public static final java.lang.String META_DATA_RULE_INSTANCE_LIMIT = "android.service.zen.automatic.ruleInstanceLimit"; field public static final java.lang.String META_DATA_RULE_TYPE = "android.service.zen.automatic.ruleType"; diff --git a/api/test-current.txt b/api/test-current.txt index 301c1b2c61d62..34f8c8f6c6e88 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -34751,7 +34751,7 @@ package android.service.media { package android.service.notification { - public class Condition implements android.os.Parcelable { + public final class Condition implements android.os.Parcelable { ctor public Condition(android.net.Uri, java.lang.String, int); ctor public Condition(android.net.Uri, java.lang.String, java.lang.String, java.lang.String, int, int, int); ctor public Condition(android.os.Parcel); @@ -34788,7 +34788,7 @@ package android.service.notification { method public void onRequestConditions(int); method public abstract void onSubscribe(android.net.Uri); method public abstract void onUnsubscribe(android.net.Uri); - field public static final java.lang.String EXTRA_RULE_ID = "android.content.automatic.ruleId"; + field public static final java.lang.String EXTRA_RULE_ID = "android.service.notification.extra.RULE_ID"; field public static final java.lang.String META_DATA_CONFIGURATION_ACTIVITY = "android.service.zen.automatic.configurationActivity"; field public static final java.lang.String META_DATA_RULE_INSTANCE_LIMIT = "android.service.zen.automatic.ruleInstanceLimit"; field public static final java.lang.String META_DATA_RULE_TYPE = "android.service.zen.automatic.ruleType"; diff --git a/core/java/android/service/notification/Condition.java b/core/java/android/service/notification/Condition.java index 0163b47f2ba7f..447afe62fd1a9 100644 --- a/core/java/android/service/notification/Condition.java +++ b/core/java/android/service/notification/Condition.java @@ -33,7 +33,7 @@ import java.util.Objects; * {@link ConditionProviderService} that owns the rule. Used to tell the system to enter Do Not * Disturb mode and request that the system exit Do Not Disturb mode. */ -public class Condition implements Parcelable { +public final class Condition implements Parcelable { @SystemApi public static final String SCHEME = "condition"; diff --git a/core/java/android/service/notification/ConditionProviderService.java b/core/java/android/service/notification/ConditionProviderService.java index 44c3887ec35d2..9d4b0a4057b39 100644 --- a/core/java/android/service/notification/ConditionProviderService.java +++ b/core/java/android/service/notification/ConditionProviderService.java @@ -95,7 +95,7 @@ public abstract class ConditionProviderService extends Service { /** * A String rule id extra passed to {@link #META_DATA_CONFIGURATION_ACTIVITY}. */ - public static final String EXTRA_RULE_ID = "android.content.automatic.ruleId"; + public static final String EXTRA_RULE_ID = "android.service.notification.extra.RULE_ID"; /** * Called when this service is connected. diff --git a/services/core/java/com/android/server/notification/ScheduleConditionProvider.java b/services/core/java/com/android/server/notification/ScheduleConditionProvider.java index 15a63ec6875ba..e3dcf1401f3ac 100644 --- a/services/core/java/com/android/server/notification/ScheduleConditionProvider.java +++ b/services/core/java/com/android/server/notification/ScheduleConditionProvider.java @@ -36,6 +36,7 @@ import android.util.Slog; import com.android.server.notification.NotificationManagerService.DumpFilter; import java.io.PrintWriter; +import java.util.Calendar; import java.util.TimeZone; /** @@ -237,6 +238,14 @@ public class ScheduleConditionProvider extends SystemConditionProviderService { @Override public void onReceive(Context context, Intent intent) { if (DEBUG) Slog.d(TAG, "onReceive " + intent.getAction()); + if (Intent.ACTION_TIMEZONE_CHANGED.equals(intent.getAction())) { + for (Uri conditionId : mSubscriptions.keySet()) { + final ScheduleCalendar cal = mSubscriptions.get(conditionId); + if (cal != null) { + cal.setTimeZone(Calendar.getInstance().getTimeZone()); + } + } + } evaluateSubscriptions(); } };