From e3c966861f5069dc03c2939953681607d56e10b6 Mon Sep 17 00:00:00 2001 From: Roman Birg Date: Wed, 24 Feb 2016 08:58:39 -0800 Subject: [PATCH] cmsdk: send intent to intialize CMHW Ref: OPO-513 Change-Id: Iedd88bfad12b8f257bb792bf024d8eefa92b321c Signed-off-by: Roman Birg --- .../platform/internal/CMHardwareService.java | 12 +++++++++++- cm/res/AndroidManifest.xml | 1 + src/java/cyanogenmod/content/Intent.java | 11 +++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/cm/lib/main/java/org/cyanogenmod/platform/internal/CMHardwareService.java b/cm/lib/main/java/org/cyanogenmod/platform/internal/CMHardwareService.java index 7031bd7..bfae235 100644 --- a/cm/lib/main/java/org/cyanogenmod/platform/internal/CMHardwareService.java +++ b/cm/lib/main/java/org/cyanogenmod/platform/internal/CMHardwareService.java @@ -16,7 +16,7 @@ package org.cyanogenmod.platform.internal; import android.content.Context; -import android.content.pm.PackageManager; +import android.content.Intent; import android.os.IBinder; import android.os.RemoteCallbackList; import android.os.RemoteException; @@ -347,6 +347,16 @@ public class CMHardwareService extends SystemService implements ThermalUpdateCal publishBinderService(CMContextConstants.CM_HARDWARE_SERVICE, mService); } + @Override + public void onBootPhase(int phase) { + if (phase == PHASE_BOOT_COMPLETED) { + Intent intent = new Intent(cyanogenmod.content.Intent.ACTION_INITIALIZE_CM_HARDWARE); + intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND); + mContext.sendBroadcast(intent, + cyanogenmod.platform.Manifest.permission.HARDWARE_ABSTRACTION_ACCESS); + } + } + @Override public void onStart() { if (ThermalMonitor.isSupported()) { diff --git a/cm/res/AndroidManifest.xml b/cm/res/AndroidManifest.xml index 63354ef..b301559 100644 --- a/cm/res/AndroidManifest.xml +++ b/cm/res/AndroidManifest.xml @@ -23,6 +23,7 @@ android:sharedUserLabel="@string/cyanogenmod_system_label"> + diff --git a/src/java/cyanogenmod/content/Intent.java b/src/java/cyanogenmod/content/Intent.java index ecc4877..5a1f612 100644 --- a/src/java/cyanogenmod/content/Intent.java +++ b/src/java/cyanogenmod/content/Intent.java @@ -77,4 +77,15 @@ public class Intent { public static final String ACTION_SCREEN_CAMERA_GESTURE = "cyanogenmod.intent.action.SCREEN_CAMERA_GESTURE"; + /** + * Broadcast action: perform any initialization required for CMHW services. + * Runs when the service receives the signal the device has booted, but + * should happen before {@link android.content.Intent#ACTION_BOOT_COMPLETED}. + * + * Requires {@link cyanogenmod.platform.Manifest.permission#HARDWARE_ABSTRACTION_ACCESS}. + * @hide + */ + public static final String ACTION_INITIALIZE_CM_HARDWARE = + "cyanogenmod.intent.action.INITIALIZE_CM_HARDWARE"; + }