diff options
author | Brad Ebinger <breadley@google.com> | 2017-02-15 01:28:58 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-02-15 01:28:58 +0000 |
commit | 01e835687ead2bc237b90f9e60793b1b849327ac (patch) | |
tree | 8b0060a8b2fd73300a55776d0d9502bbc2b2be25 | |
parent | 73b20d76551f2392c16677045612d79ed66f1df2 (diff) | |
parent | eafc81d8b1837c8745ed333914e19ade785aae80 (diff) | |
download | platform_external_ims-android-wear-o-preview-3.tar.gz platform_external_ims-android-wear-o-preview-3.tar.bz2 platform_external_ims-android-wear-o-preview-3.zip |
Turn implicit RCS broadcast to startService instead am: d4d3d762a7 am: ee8176647dandroid-wear-o-preview-4android-wear-o-preview-3android-o-preview-2
am: eafc81d8b1
Change-Id: I8a50953adbb0fcb035a0d344f339110d9be6fdf8
4 files changed, 18 insertions, 80 deletions
diff --git a/rcs/presencepolling/AndroidManifest.xml b/rcs/presencepolling/AndroidManifest.xml index 8d69796..e4f5dfb 100644 --- a/rcs/presencepolling/AndroidManifest.xml +++ b/rcs/presencepolling/AndroidManifest.xml @@ -73,7 +73,6 @@ <receiver android:name=".DeviceBoot" androidprv:systemUserOnly="true"> <intent-filter android:priority="103"> - <action android:name="com.android.ims.ACTION_PUBLISH_STATUS_CHANGED"/> <action android:name="android.intent.action.BOOT_COMPLETED"/> </intent-filter> </receiver> @@ -94,14 +93,6 @@ </intent-filter> </receiver> - <receiver android:name=".PresenceBroadcastReceiver" - androidprv:systemUserOnly="true" - android:permission="com.android.ims.permission.PRESENCE_ACCESS"> - <intent-filter> - <action android:name="com.android.ims.ACTION_PUBLISH_STATUS_CHANGED"/> - </intent-filter> - </receiver> - <service android:name=".PersistService" android:exported="false" android:permission="com.android.ims.permission.PRESENCE_ACCESS"> diff --git a/rcs/presencepolling/src/com/android/service/ims/presence/DeviceBoot.java b/rcs/presencepolling/src/com/android/service/ims/presence/DeviceBoot.java index 7f7b438..ecab2e1 100644 --- a/rcs/presencepolling/src/com/android/service/ims/presence/DeviceBoot.java +++ b/rcs/presencepolling/src/com/android/service/ims/presence/DeviceBoot.java @@ -37,12 +37,11 @@ import com.android.ims.RcsPresence.PublishState; import com.android.ims.internal.Logger; /** - * Device boot event receiver: automatically starts the RCS service + * Device boot event receiver: automatically starts the RCS service. Registered + * to receive BOOT_COMPLETED actions. */ public class DeviceBoot extends BroadcastReceiver { - /** - * The logger - */ + private Logger logger = Logger.getLogger("PresencePolling", this.getClass().getName()); @@ -54,14 +53,6 @@ public class DeviceBoot extends BroadcastReceiver { logger.debug("onReceive() in PresencePolling, intent: " + intent + ", context: " + context); - String action = intent.getAction(); - if (RcsPresence.ACTION_PUBLISH_STATE_CHANGED.equalsIgnoreCase(action)) { - int state = intent.getIntExtra( - RcsPresence.EXTRA_PUBLISH_STATE, - RcsPresence.PublishState.PUBLISH_STATE_NOT_PUBLISHED); - logger.debug("Publish state: " + state); - } - if (!PollingService.isRcsSupported(context)) { return; } diff --git a/rcs/presencepolling/src/com/android/service/ims/presence/PresenceBroadcastReceiver.java b/rcs/presencepolling/src/com/android/service/ims/presence/PresenceBroadcastReceiver.java deleted file mode 100644 index 6d716bd..0000000 --- a/rcs/presencepolling/src/com/android/service/ims/presence/PresenceBroadcastReceiver.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2015, Motorola Mobility LLC - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - Neither the name of Motorola Mobility nor the - * names of its contributors may be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MOTOROLA MOBILITY LLC BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH - * DAMAGE. - */ - -package com.android.service.ims.presence; - -import android.content.BroadcastReceiver; -import android.content.Context; -import android.content.Intent; - -import com.android.ims.RcsPresence; - -import com.android.ims.internal.Logger; - -public class PresenceBroadcastReceiver extends BroadcastReceiver { - private Logger logger = Logger.getLogger(this.getClass().getName()); - - @Override - public void onReceive(Context context, Intent intent) { - logger.print("onReceive(), intent: " + intent + - ", context: " + context); - - String action = intent.getAction(); - if (RcsPresence.ACTION_PUBLISH_STATE_CHANGED.equals(action)) { - intent.setClass(context, PersistService.class); - context.startService(intent); - } else { - logger.debug("No interest in this intent: " + action); - } - } -}; - 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); |