Implement some unnecessarily abstract methods in SystemConditionProviderService
Test: atest CountdownConditionProviderTest EventConditionProviderTest ScheduleConditionProviderTest
Bug: 342156843
Flag: NONE
Change-Id: Ifa5ab6a240cf7cec5828be0b10a6b4d28eb7432e
diff --git a/services/core/java/com/android/server/notification/CountdownConditionProvider.java b/services/core/java/com/android/server/notification/CountdownConditionProvider.java
index efca598..c3ace15 100644
--- a/services/core/java/com/android/server/notification/CountdownConditionProvider.java
+++ b/services/core/java/com/android/server/notification/CountdownConditionProvider.java
@@ -19,13 +19,11 @@
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
-import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.Uri;
import android.service.notification.Condition;
-import android.service.notification.IConditionProvider;
import android.service.notification.ZenModeConfig;
import android.text.format.DateUtils;
import android.util.Log;
@@ -41,9 +39,6 @@
private static final String TAG = "ConditionProviders.CCP";
private static final boolean DEBUG = Log.isLoggable("ConditionProviders", Log.DEBUG);
- public static final ComponentName COMPONENT =
- new ComponentName("android", CountdownConditionProvider.class.getName());
-
private static final String ACTION = CountdownConditionProvider.class.getName();
private static final int REQUEST_CODE = 100;
private static final String EXTRA_CONDITION_ID = "condition_id";
@@ -60,31 +55,16 @@
}
@Override
- public ComponentName getComponent() {
- return COMPONENT;
- }
-
- @Override
public boolean isValidConditionId(Uri id) {
return ZenModeConfig.isValidCountdownConditionId(id);
}
@Override
- public void attachBase(Context base) {
- attachBaseContext(base);
- }
-
- @Override
public void onBootComplete() {
// noop
}
@Override
- public IConditionProvider asInterface() {
- return (IConditionProvider) onBind(null);
- }
-
- @Override
public void dump(PrintWriter pw, DumpFilter filter) {
pw.println(" CountdownConditionProvider:");
pw.print(" mConnected="); pw.println(mConnected);
diff --git a/services/core/java/com/android/server/notification/EventConditionProvider.java b/services/core/java/com/android/server/notification/EventConditionProvider.java
index 4fe7a27..00dd547 100644
--- a/services/core/java/com/android/server/notification/EventConditionProvider.java
+++ b/services/core/java/com/android/server/notification/EventConditionProvider.java
@@ -19,7 +19,6 @@
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
-import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
@@ -31,7 +30,6 @@
import android.os.UserHandle;
import android.os.UserManager;
import android.service.notification.Condition;
-import android.service.notification.IConditionProvider;
import android.service.notification.ZenModeConfig;
import android.service.notification.ZenModeConfig.EventInfo;
import android.util.ArraySet;
@@ -54,8 +52,6 @@
private static final String TAG = "ConditionProviders.ECP";
private static final boolean DEBUG = Log.isLoggable("ConditionProviders", Log.DEBUG);
- public static final ComponentName COMPONENT =
- new ComponentName("android", EventConditionProvider.class.getName());
private static final String NOT_SHOWN = "...";
private static final String SIMPLE_NAME = EventConditionProvider.class.getSimpleName();
private static final String ACTION_EVALUATE = SIMPLE_NAME + ".EVALUATE";
@@ -82,11 +78,6 @@
}
@Override
- public ComponentName getComponent() {
- return COMPONENT;
- }
-
- @Override
public boolean isValidConditionId(Uri id) {
return ZenModeConfig.isValidEventConditionId(id);
}
@@ -166,16 +157,6 @@
}
}
- @Override
- public void attachBase(Context base) {
- attachBaseContext(base);
- }
-
- @Override
- public IConditionProvider asInterface() {
- return (IConditionProvider) onBind(null);
- }
-
private void reloadTrackers() {
if (DEBUG) Slog.d(TAG, "reloadTrackers");
for (int i = 0; i < mTrackers.size(); i++) {
diff --git a/services/core/java/com/android/server/notification/ScheduleConditionProvider.java b/services/core/java/com/android/server/notification/ScheduleConditionProvider.java
index 737353d..6efe88f 100644
--- a/services/core/java/com/android/server/notification/ScheduleConditionProvider.java
+++ b/services/core/java/com/android/server/notification/ScheduleConditionProvider.java
@@ -20,7 +20,6 @@
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
-import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
@@ -28,7 +27,6 @@
import android.os.Binder;
import android.provider.Settings;
import android.service.notification.Condition;
-import android.service.notification.IConditionProvider;
import android.service.notification.ScheduleCalendar;
import android.service.notification.ZenModeConfig;
import android.text.TextUtils;
@@ -54,8 +52,6 @@
static final String TAG = "ConditionProviders.SCP";
static final boolean DEBUG = true || Log.isLoggable("ConditionProviders", Log.DEBUG);
- public static final ComponentName COMPONENT =
- new ComponentName("android", ScheduleConditionProvider.class.getName());
private static final String NOT_SHOWN = "...";
private static final String SIMPLE_NAME = ScheduleConditionProvider.class.getSimpleName();
private static final String ACTION_EVALUATE = SIMPLE_NAME + ".EVALUATE";
@@ -66,7 +62,8 @@
private final Context mContext = this;
private final ArrayMap<Uri, ScheduleCalendar> mSubscriptions = new ArrayMap<>();
- private ArraySet<Uri> mSnoozedForAlarm = new ArraySet<>();
+ @GuardedBy("mSnoozedForAlarm")
+ private final ArraySet<Uri> mSnoozedForAlarm = new ArraySet<>();
private AlarmManager mAlarmManager;
private boolean mConnected;
@@ -78,11 +75,6 @@
}
@Override
- public ComponentName getComponent() {
- return COMPONENT;
- }
-
- @Override
public boolean isValidConditionId(Uri id) {
return ZenModeConfig.isValidScheduleConditionId(id);
}
@@ -103,7 +95,10 @@
pw.println(mSubscriptions.get(conditionId).toString());
}
}
- pw.println(" snoozed due to alarm: " + TextUtils.join(SEPARATOR, mSnoozedForAlarm));
+ synchronized (mSnoozedForAlarm) {
+ pw.println(
+ " snoozed due to alarm: " + TextUtils.join(SEPARATOR, mSnoozedForAlarm));
+ }
dumpUpcomingTime(pw, "mNextAlarmTime", mNextAlarmTime, now);
}
@@ -149,16 +144,6 @@
evaluateSubscriptions();
}
- @Override
- public void attachBase(Context base) {
- attachBaseContext(base);
- }
-
- @Override
- public IConditionProvider asInterface() {
- return (IConditionProvider) onBind(null);
- }
-
private void evaluateSubscriptions() {
if (mAlarmManager == null) {
mAlarmManager = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
@@ -299,6 +284,7 @@
}
}
+ @GuardedBy("mSnoozedForAlarm")
private void saveSnoozedLocked() {
final String setting = TextUtils.join(SEPARATOR, mSnoozedForAlarm);
final int currentUser = ActivityManager.getCurrentUser();
diff --git a/services/core/java/com/android/server/notification/SystemConditionProviderService.java b/services/core/java/com/android/server/notification/SystemConditionProviderService.java
index 574f04c..97073b7 100644
--- a/services/core/java/com/android/server/notification/SystemConditionProviderService.java
+++ b/services/core/java/com/android/server/notification/SystemConditionProviderService.java
@@ -31,12 +31,21 @@
public abstract class SystemConditionProviderService extends ConditionProviderService {
abstract public void dump(PrintWriter pw, DumpFilter filter);
- abstract public void attachBase(Context context);
- abstract public IConditionProvider asInterface();
- abstract public ComponentName getComponent();
abstract public boolean isValidConditionId(Uri id);
abstract public void onBootComplete();
+ final ComponentName getComponent() {
+ return new ComponentName("android", this.getClass().getName());
+ }
+
+ final IConditionProvider asInterface() {
+ return (IConditionProvider) onBind(null);
+ }
+
+ final void attachBase(Context context) {
+ attachBaseContext(context);
+ }
+
protected static String ts(long time) {
return new Date(time) + " (" + time + ")";
}
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/CountdownConditionProviderTest.java b/services/tests/uiservicestests/src/com/android/server/notification/CountdownConditionProviderTest.java
index ddb9b43..58a1d9c 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/CountdownConditionProviderTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/CountdownConditionProviderTest.java
@@ -16,12 +16,15 @@
package com.android.server.notification;
+import static com.google.common.truth.Truth.assertThat;
+
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import android.app.Application;
import android.app.PendingIntent;
+import android.content.ComponentName;
import android.content.Intent;
import android.net.Uri;
import android.testing.AndroidTestingRunner;
@@ -66,6 +69,12 @@
}
@Test
+ public void getComponent_returnsComponent() {
+ assertThat(mService.getComponent()).isEqualTo(new ComponentName("android",
+ "com.android.server.notification.CountdownConditionProvider"));
+ }
+
+ @Test
public void testGetPendingIntent() {
PendingIntent pi = mService.getPendingIntent(Uri.EMPTY);
assertEquals(PackageManagerService.PLATFORM_PACKAGE_NAME, pi.getIntent().getPackage());
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/EventConditionProviderTest.java b/services/tests/uiservicestests/src/com/android/server/notification/EventConditionProviderTest.java
index 4c440ca..4af96ef 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/EventConditionProviderTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/EventConditionProviderTest.java
@@ -16,14 +16,16 @@
package com.android.server.notification;
+import static com.google.common.truth.Truth.assertThat;
+
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import android.app.Application;
import android.app.PendingIntent;
+import android.content.ComponentName;
import android.content.Intent;
-import android.net.Uri;
import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper.RunWithLooper;
@@ -63,7 +65,13 @@
service.onCreate();
service.onBind(startIntent);
mService = spy(service);
- }
+ }
+
+ @Test
+ public void getComponent_returnsComponent() {
+ assertThat(mService.getComponent()).isEqualTo(new ComponentName("android",
+ "com.android.server.notification.EventConditionProvider"));
+ }
@Test
public void testGetPendingIntent() {
diff --git a/services/tests/uiservicestests/src/com/android/server/notification/ScheduleConditionProviderTest.java b/services/tests/uiservicestests/src/com/android/server/notification/ScheduleConditionProviderTest.java
index 7d89d87..fe4ce465e 100644
--- a/services/tests/uiservicestests/src/com/android/server/notification/ScheduleConditionProviderTest.java
+++ b/services/tests/uiservicestests/src/com/android/server/notification/ScheduleConditionProviderTest.java
@@ -1,5 +1,7 @@
package com.android.server.notification;
+import static com.google.common.truth.Truth.assertThat;
+
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -8,6 +10,7 @@
import android.app.Application;
import android.app.PendingIntent;
+import android.content.ComponentName;
import android.content.Intent;
import android.net.Uri;
import android.service.notification.Condition;
@@ -58,6 +61,12 @@
}
@Test
+ public void getComponent_returnsComponent() {
+ assertThat(mService.getComponent()).isEqualTo(new ComponentName("android",
+ "com.android.server.notification.ScheduleConditionProvider"));
+ }
+
+ @Test
public void testIsValidConditionId_incomplete() throws Exception {
Uri badConditionId = Uri.EMPTY;
assertFalse(mService.isValidConditionId(badConditionId));