summaryrefslogtreecommitdiff
path: root/rcs/rcsservice/src
diff options
context:
space:
mode:
authorBrad Ebinger <breadley@google.com>2017-02-14 15:16:21 -0800
committerBrad Ebinger <breadley@google.com>2017-02-14 15:29:34 -0800
commitd4d3d762a7daf00c1a450072f0e723ca6f08fa1b (patch)
tree143038db763c5de8a8a08f6394ff678476fc7f54 /rcs/rcsservice/src
parent4896eaa6630871b2734b2df1d6301a467536f3e6 (diff)
downloadims-d4d3d762a7daf00c1a450072f0e723ca6f08fa1b.tar.gz
Turn implicit RCS broadcast to startService insteadandroid-o-preview-1o-preview
With background check enabled, RcsPresence.ACTION_PUBLISH_STATE_CHANGED is no longer starting the PersistService in the RcsStackAdapter. This change removes the receiver and instead launches the service directly when the PersistService is needed. Test: Manual Bug: 35319937 Change-Id: I4395ce9b1baa2e23bb10208e0de4aedf11de5051
Diffstat (limited to 'rcs/rcsservice/src')
-rw-r--r--rcs/rcsservice/src/com/android/service/ims/RcsStackAdaptor.java18
1 files changed, 15 insertions, 3 deletions
diff --git a/rcs/rcsservice/src/com/android/service/ims/RcsStackAdaptor.java b/rcs/rcsservice/src/com/android/service/ims/RcsStackAdaptor.java
index 450e692..151809f 100644
--- a/rcs/rcsservice/src/com/android/service/ims/RcsStackAdaptor.java
+++ b/rcs/rcsservice/src/com/android/service/ims/RcsStackAdaptor.java
@@ -85,6 +85,10 @@ import com.android.service.ims.presence.AlarmBroadcastReceiver;
public class RcsStackAdaptor{
private static final boolean DEBUG = true;
+ private static final String PERSIST_SERVICE_NAME =
+ "com.android.service.ims.presence.PersistService";
+ private static final String PERSIST_SERVICE_PACKAGE = "com.android.service.ims.presence";
+
// The logger
private Logger logger = Logger.getLogger(this.getClass().getName());
@@ -238,11 +242,12 @@ public class RcsStackAdaptor{
SystemProperties.set("rcs.publish.status",
String.valueOf(publishState));
- // broadcast publish state change intent
Intent publishIntent = new Intent(RcsPresence.ACTION_PUBLISH_STATE_CHANGED);
- publishIntent.putExtra(RcsPresence.EXTRA_PUBLISH_STATE,
- publishState);
+ publishIntent.putExtra(RcsPresence.EXTRA_PUBLISH_STATE, publishState);
+ // Start PersistService and broadcast to other receivers that are listening
+ // dynamically.
mContext.sendStickyBroadcast(publishIntent);
+ launchPersistService(publishIntent);
}
mPublishingState = publishState;
@@ -443,6 +448,13 @@ public class RcsStackAdaptor{
return ResultCode.SUCCESS;
}
+ private void launchPersistService(Intent intent) {
+ ComponentName component = new ComponentName(PERSIST_SERVICE_PACKAGE,
+ PERSIST_SERVICE_NAME);
+ intent.setComponent(component);
+ mContext.startService(intent);
+ }
+
private void createListeningThread() {
HandlerThread listenerThread = new HandlerThread("Listener",
android.os.Process.THREAD_PRIORITY_BACKGROUND);