diff options
author | Brad Ebinger <breadley@google.com> | 2017-02-14 15:16:21 -0800 |
---|---|---|
committer | Brad Ebinger <breadley@google.com> | 2017-02-14 15:29:34 -0800 |
commit | d4d3d762a7daf00c1a450072f0e723ca6f08fa1b (patch) | |
tree | 143038db763c5de8a8a08f6394ff678476fc7f54 /rcs/rcsservice/src | |
parent | 4896eaa6630871b2734b2df1d6301a467536f3e6 (diff) | |
download | ims-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.java | 18 |
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); |