Re-SystemApi some fields/method that aren't in use.
Bug: 26816334
Change-Id: Ib01e7856cd65e294c018017c600f8b3dce2be844
diff --git a/api/current.txt b/api/current.txt
index dfc561d..c6504a2 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -34345,6 +34345,7 @@
package android.service.notification {
public class Condition implements android.os.Parcelable {
+ ctor public Condition(android.net.Uri, java.lang.String, java.lang.String, java.lang.String, int);
ctor public Condition(android.net.Uri, java.lang.String, java.lang.String, java.lang.String, int, int, int);
method public android.service.notification.Condition copy();
method public int describeContents();
@@ -34376,7 +34377,6 @@
method public final void notifyConditions(android.service.notification.Condition...);
method public android.os.IBinder onBind(android.content.Intent);
method public abstract void onConnected();
- method public abstract 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";
diff --git a/api/removed.txt b/api/removed.txt
index 2c6729d..0bf6594 100644
--- a/api/removed.txt
+++ b/api/removed.txt
@@ -199,6 +199,14 @@
}
+package android.service.notification {
+
+ public abstract class ConditionProviderService extends android.app.Service {
+ method public void onRequestConditions(int);
+ }
+
+}
+
package android.test.mock {
public deprecated class MockPackageManager extends android.content.pm.PackageManager {
diff --git a/api/system-current.txt b/api/system-current.txt
index 979ef2f..f59bcbb 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -36525,6 +36525,7 @@
package android.service.notification {
public class Condition implements android.os.Parcelable {
+ ctor public Condition(android.net.Uri, java.lang.String, java.lang.String, java.lang.String, int);
ctor public Condition(android.net.Uri, java.lang.String, java.lang.String, java.lang.String, int, int, int);
method public android.service.notification.Condition copy();
method public int describeContents();
@@ -36556,7 +36557,7 @@
method public final void notifyConditions(android.service.notification.Condition...);
method public android.os.IBinder onBind(android.content.Intent);
method public abstract void onConnected();
- method public abstract void onRequestConditions(int);
+ 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";
diff --git a/api/test-current.txt b/api/test-current.txt
index 88ab3d8..d6c5f98 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -34360,6 +34360,7 @@
package android.service.notification {
public class Condition implements android.os.Parcelable {
+ ctor public Condition(android.net.Uri, java.lang.String, java.lang.String, java.lang.String, int);
ctor public Condition(android.net.Uri, java.lang.String, java.lang.String, java.lang.String, int, int, int);
method public android.service.notification.Condition copy();
method public int describeContents();
@@ -34391,7 +34392,6 @@
method public final void notifyConditions(android.service.notification.Condition...);
method public android.os.IBinder onBind(android.content.Intent);
method public abstract void onConnected();
- method public abstract 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";
diff --git a/api/test-removed.txt b/api/test-removed.txt
index 2c6729d..0bf6594 100644
--- a/api/test-removed.txt
+++ b/api/test-removed.txt
@@ -199,6 +199,14 @@
}
+package android.service.notification {
+
+ public abstract class ConditionProviderService extends android.app.Service {
+ method public void onRequestConditions(int);
+ }
+
+}
+
package android.test.mock {
public deprecated class MockPackageManager extends android.content.pm.PackageManager {
diff --git a/core/java/android/service/notification/Condition.java b/core/java/android/service/notification/Condition.java
index 2c7bf65..11737c6 100644
--- a/core/java/android/service/notification/Condition.java
+++ b/core/java/android/service/notification/Condition.java
@@ -16,6 +16,7 @@
package android.service.notification;
+import android.annotation.SystemApi;
import android.content.Context;
import android.net.Uri;
import android.os.Parcel;
@@ -24,7 +25,8 @@
import java.util.Objects;
/**
- * Condition information from condition providers.
+ * Condition information from condition providers. 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 {
@@ -38,14 +40,47 @@
public static final int FLAG_RELEVANT_NOW = 1 << 0;
public static final int FLAG_RELEVANT_ALWAYS = 1 << 1;
+ /**
+ * The URI representing the condition being updated.
+ * See {@link android.app.AutomaticZenRule#getConditionId()}.
+ */
public final Uri id;
- public final String summary;
- public final String line1;
- public final String line2;
- public final int icon;
- public final int state;
- public final int flags;
+ /**
+ * A summary of what the rule encoded in {@link #id} means when it is enabled. User visible
+ * if the state of the condition is {@link #STATE_TRUE}.
+ */
+ public final String summary;
+
+ /**
+ * Additional information about what the rule encoded in {@link #id} means when it is enabled.
+ * User visible if the state of the condition is {@link #STATE_TRUE}.
+ */
+ public final String line1;
+
+ /**
+ * Additional information about what the rule encoded in {@link #id} means when it is enabled.
+ * User visible if the state of the condition is {@link #STATE_TRUE}.
+ */
+ public final String line2;
+
+ /**
+ * The state of this condition. {@link #STATE_TRUE} will enable Do Not Disturb mode. Any other
+ * state will turn Do Not Disturb off for this rule. Note that Do Not Disturb might still be
+ * enabled globally if other conditions are in a {@link #STATE_TRUE} state.
+ */
+ public final int state;
+
+ @SystemApi
+ public final int flags;
+ @SystemApi
+ public final int icon;
+
+ public Condition(Uri id, String summary, String line1, String line2, int state) {
+ this(id, summary, line1, line2, -1, state, FLAG_RELEVANT_ALWAYS);
+ }
+
+ @SystemApi
public Condition(Uri id, String summary, String line1, String line2, int icon,
int state, int flags) {
if (id == null) throw new IllegalArgumentException("id is required");
diff --git a/core/java/android/service/notification/ConditionProviderService.java b/core/java/android/service/notification/ConditionProviderService.java
index eff09d6..adcc9d6 100644
--- a/core/java/android/service/notification/ConditionProviderService.java
+++ b/core/java/android/service/notification/ConditionProviderService.java
@@ -17,6 +17,7 @@
package android.service.notification;
import android.annotation.SdkConstant;
+import android.annotation.SystemApi;
import android.app.INotificationManager;
import android.app.Service;
import android.content.ComponentName;
@@ -102,13 +103,10 @@
abstract public void onConnected();
/**
- * Called when the system wants to know the state of Conditions managed by this provider.
- *
- * Implementations should evaluate the state of all subscribed conditions, and provide updates
- * by calling {@link #notifyCondition(Condition)} or {@link #notifyConditions(Condition...)}.
- * @param relevance
+ * @removed
*/
- abstract public void onRequestConditions(int relevance);
+ @SystemApi
+ public void onRequestConditions(int relevance) {}
/**
* Called by the system when there is a new {@link Condition} to be managed by this provider.
@@ -131,7 +129,11 @@
}
/**
- * Informs the notification manager that the state of a Condition has changed.
+ * Informs the notification manager that the state of a Condition has changed. Use this method
+ * to put the system into Do Not Disturb mode or request that it exits Do Not Disturb mode. This
+ * call will be ignored unless there is an enabled {@link android.app.AutomaticZenRule} owned by
+ * service that has an {@link android.app.AutomaticZenRule#getConditionId()} equal to this
+ * {@link Condition#id}.
* @param condition the condition that has changed.
*/
public final void notifyCondition(Condition condition) {
@@ -140,7 +142,8 @@
}
/**
- * Informs the notification manager that the state of one or more Conditions has changed.
+ * Informs the notification manager that the state of one or more Conditions has changed. See
+ * {@link #notifyCondition(Condition)} for restrictions.
* @param conditions the changed conditions.
*/
public final void notifyConditions(Condition... conditions) {
diff --git a/services/core/java/com/android/server/notification/CountdownConditionProvider.java b/services/core/java/com/android/server/notification/CountdownConditionProvider.java
index 07903e9..c1a7ac6 100644
--- a/services/core/java/com/android/server/notification/CountdownConditionProvider.java
+++ b/services/core/java/com/android/server/notification/CountdownConditionProvider.java
@@ -107,11 +107,6 @@
}
@Override
- public void onRequestConditions(int relevance) {
- // by convention
- }
-
- @Override
public void onSubscribe(Uri conditionId) {
if (DEBUG) Slog.d(TAG, "onSubscribe " + conditionId);
mTime = ZenModeConfig.tryParseCountdownConditionId(conditionId);
diff --git a/services/core/java/com/android/server/notification/EventConditionProvider.java b/services/core/java/com/android/server/notification/EventConditionProvider.java
index a4d5bce..ab3cb83 100644
--- a/services/core/java/com/android/server/notification/EventConditionProvider.java
+++ b/services/core/java/com/android/server/notification/EventConditionProvider.java
@@ -134,12 +134,6 @@
}
@Override
- public void onRequestConditions(int relevance) {
- if (DEBUG) Slog.d(TAG, "onRequestConditions relevance=" + relevance);
- // does not advertise conditions
- }
-
- @Override
public void onSubscribe(Uri conditionId) {
if (DEBUG) Slog.d(TAG, "onSubscribe " + conditionId);
if (!ZenModeConfig.isValidEventConditionId(conditionId)) {
diff --git a/services/core/java/com/android/server/notification/ScheduleConditionProvider.java b/services/core/java/com/android/server/notification/ScheduleConditionProvider.java
index 44448cc..c9b0ebb 100644
--- a/services/core/java/com/android/server/notification/ScheduleConditionProvider.java
+++ b/services/core/java/com/android/server/notification/ScheduleConditionProvider.java
@@ -107,12 +107,6 @@
}
@Override
- public void onRequestConditions(int relevance) {
- if (DEBUG) Slog.d(TAG, "onRequestConditions relevance=" + relevance);
- // does not advertise conditions
- }
-
- @Override
public void onSubscribe(Uri conditionId) {
if (DEBUG) Slog.d(TAG, "onSubscribe " + conditionId);
if (!ZenModeConfig.isValidScheduleConditionId(conditionId)) {