From d6af174b1db2066e51456d20c58827c7fdc37c10 Mon Sep 17 00:00:00 2001 From: LuK1337 Date: Sun, 7 Jul 2019 11:07:27 +0200 Subject: msm8996-common: Use android.intent.action.BOOT_COMPLETED where possible * Ensure that the startup of PocketMode still takes place before ConfigPanel. Change-Id: I2436a38bddccb908acf94d916d0220918e8b6a0c --- .../settings/device/BootCompletedReceiver.java | 91 +++++++++++++++++++++ .../ConfigPanelSearchIndexablesProvider.java | 2 +- .../src/org/lineageos/settings/device/Startup.java | 94 ---------------------- 3 files changed, 92 insertions(+), 95 deletions(-) create mode 100644 configpanel/src/org/lineageos/settings/device/BootCompletedReceiver.java delete mode 100644 configpanel/src/org/lineageos/settings/device/Startup.java (limited to 'configpanel/src') diff --git a/configpanel/src/org/lineageos/settings/device/BootCompletedReceiver.java b/configpanel/src/org/lineageos/settings/device/BootCompletedReceiver.java new file mode 100644 index 0000000..90546b4 --- /dev/null +++ b/configpanel/src/org/lineageos/settings/device/BootCompletedReceiver.java @@ -0,0 +1,91 @@ +/* + * Copyright (C) 2016 The CyanogenMod Project + * (C) 2017-2019 The LineageOS Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.lineageos.settings.device; + +import android.content.BroadcastReceiver; +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.content.pm.PackageManager; +import android.content.SharedPreferences; +import android.support.v7.preference.PreferenceManager; +import android.util.Log; + +import org.lineageos.internal.util.FileUtils; + +public class BootCompletedReceiver extends BroadcastReceiver { + + private static final String TAG = BootCompletedReceiver.class.getSimpleName(); + + @Override + public void onReceive(Context context, Intent intent) { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + + // Disable button settings if needed + if (!hasButtonProcs()) { + disableComponent(context, ButtonSettingsActivity.class.getName()); + } else { + enableComponent(context, ButtonSettingsActivity.class.getName()); + + // Restore nodes to saved preference values + for (String pref : Constants.sButtonPrefKeys) { + String node, value; + if (Constants.sStringNodePreferenceMap.containsKey(pref)) { + node = Constants.sStringNodePreferenceMap.get(pref); + value = Utils.getPreferenceString(context, pref); + } else { + node = Constants.sBooleanNodePreferenceMap.get(pref); + value = Utils.isPreferenceEnabled(context, pref) ? "1" : "0"; + } + if (!FileUtils.writeLine(node, value)) { + Log.w(TAG, "Write to node " + node + + " failed while restoring saved preference values"); + } + } + + // Send initial broadcasts + final boolean shouldEnablePocketMode = + prefs.getBoolean(Constants.FP_WAKEUP_KEY, false) && + prefs.getBoolean(Constants.FP_POCKETMODE_KEY, false); + Utils.broadcastCustIntent(context, shouldEnablePocketMode); + } + } + + static boolean hasButtonProcs() { + return (FileUtils.fileExists(Constants.FP_WAKEUP_NODE)); + } + + private void disableComponent(Context context, String component) { + ComponentName name = new ComponentName(context, component); + PackageManager pm = context.getPackageManager(); + pm.setComponentEnabledSetting(name, + PackageManager.COMPONENT_ENABLED_STATE_DISABLED, + PackageManager.DONT_KILL_APP); + } + + private void enableComponent(Context context, String component) { + ComponentName name = new ComponentName(context, component); + PackageManager pm = context.getPackageManager(); + if (pm.getComponentEnabledSetting(name) + == PackageManager.COMPONENT_ENABLED_STATE_DISABLED) { + pm.setComponentEnabledSetting(name, + PackageManager.COMPONENT_ENABLED_STATE_ENABLED, + PackageManager.DONT_KILL_APP); + } + } +} diff --git a/configpanel/src/org/lineageos/settings/device/ConfigPanelSearchIndexablesProvider.java b/configpanel/src/org/lineageos/settings/device/ConfigPanelSearchIndexablesProvider.java index adff870..ebb9557 100644 --- a/configpanel/src/org/lineageos/settings/device/ConfigPanelSearchIndexablesProvider.java +++ b/configpanel/src/org/lineageos/settings/device/ConfigPanelSearchIndexablesProvider.java @@ -60,7 +60,7 @@ public class ConfigPanelSearchIndexablesProvider extends SearchIndexablesProvide @Override public Cursor queryXmlResources(String[] projection) { MatrixCursor cursor = new MatrixCursor(INDEXABLES_XML_RES_COLUMNS); - if (Startup.hasButtonProcs() /* show button panel */) { + if (BootCompletedReceiver.hasButtonProcs() /* show button panel */) { cursor.addRow(generateResourceRef(INDEXABLE_RES[SEARCH_IDX_BUTTON_PANEL])); } return cursor; diff --git a/configpanel/src/org/lineageos/settings/device/Startup.java b/configpanel/src/org/lineageos/settings/device/Startup.java deleted file mode 100644 index 2f3f8fd..0000000 --- a/configpanel/src/org/lineageos/settings/device/Startup.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Copyright (C) 2016 The CyanogenMod Project - * (C) 2017-2018 The LineageOS Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.lineageos.settings.device; - -import android.content.BroadcastReceiver; -import android.content.ComponentName; -import android.content.Context; -import android.content.Intent; -import android.content.pm.PackageManager; -import android.content.SharedPreferences; -import android.support.v7.preference.PreferenceManager; -import android.util.Log; - -import org.lineageos.internal.util.FileUtils; - -public class Startup extends BroadcastReceiver { - - private static final String TAG = Startup.class.getSimpleName(); - - @Override - public void onReceive(Context context, Intent intent) { - final String action = intent.getAction(); - if (lineageos.content.Intent.ACTION_INITIALIZE_LINEAGE_HARDWARE.equals(action)) { - SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); - - // Disable button settings if needed - if (!hasButtonProcs()) { - disableComponent(context, ButtonSettingsActivity.class.getName()); - } else { - enableComponent(context, ButtonSettingsActivity.class.getName()); - - // Restore nodes to saved preference values - for (String pref : Constants.sButtonPrefKeys) { - String node, value; - if (Constants.sStringNodePreferenceMap.containsKey(pref)) { - node = Constants.sStringNodePreferenceMap.get(pref); - value = Utils.getPreferenceString(context, pref); - } else { - node = Constants.sBooleanNodePreferenceMap.get(pref); - value = Utils.isPreferenceEnabled(context, pref) ? "1" : "0"; - } - if (!FileUtils.writeLine(node, value)) { - Log.w(TAG, "Write to node " + node + - " failed while restoring saved preference values"); - } - } - - // Send initial broadcasts - final boolean shouldEnablePocketMode = - prefs.getBoolean(Constants.FP_WAKEUP_KEY, false) && - prefs.getBoolean(Constants.FP_POCKETMODE_KEY, false); - Utils.broadcastCustIntent(context, shouldEnablePocketMode); - } - } - } - - static boolean hasButtonProcs() { - return (FileUtils.fileExists(Constants.FP_WAKEUP_NODE)); - } - - private void disableComponent(Context context, String component) { - ComponentName name = new ComponentName(context, component); - PackageManager pm = context.getPackageManager(); - pm.setComponentEnabledSetting(name, - PackageManager.COMPONENT_ENABLED_STATE_DISABLED, - PackageManager.DONT_KILL_APP); - } - - private void enableComponent(Context context, String component) { - ComponentName name = new ComponentName(context, component); - PackageManager pm = context.getPackageManager(); - if (pm.getComponentEnabledSetting(name) - == PackageManager.COMPONENT_ENABLED_STATE_DISABLED) { - pm.setComponentEnabledSetting(name, - PackageManager.COMPONENT_ENABLED_STATE_ENABLED, - PackageManager.DONT_KILL_APP); - } - } -} -- cgit v1.2.3