From 73d0b61dba456b1be29d3aa1c70cad4c1b4649d3 Mon Sep 17 00:00:00 2001 From: Tad Date: Sun, 2 Jul 2017 15:38:00 -0400 Subject: [PATCH] Fix Silence replacement, RIP CustomTiles --- Manifests/Manifest_LAOS-14.1.xml | 1 - .../0001-Profiles.patch | 253 ------------------ Scripts/LAOS-14.1_Patches.sh | 8 +- 3 files changed, 3 insertions(+), 259 deletions(-) delete mode 100644 Patches/LineageOS-14.1/android_packages_apps_CustomTiles/0001-Profiles.patch diff --git a/Manifests/Manifest_LAOS-14.1.xml b/Manifests/Manifest_LAOS-14.1.xml index 64f07e30..6269ae24 100644 --- a/Manifests/Manifest_LAOS-14.1.xml +++ b/Manifests/Manifest_LAOS-14.1.xml @@ -95,7 +95,6 @@ - diff --git a/Patches/LineageOS-14.1/android_packages_apps_CustomTiles/0001-Profiles.patch b/Patches/LineageOS-14.1/android_packages_apps_CustomTiles/0001-Profiles.patch deleted file mode 100644 index 68c31054..00000000 --- a/Patches/LineageOS-14.1/android_packages_apps_CustomTiles/0001-Profiles.patch +++ /dev/null @@ -1,253 +0,0 @@ -From a42004f47da3d2f8128f77b7170bf84dd86d7e19 Mon Sep 17 00:00:00 2001 -From: Gabriele M -Date: Mon, 27 Mar 2017 17:23:04 +0200 -Subject: [PATCH] CustomTiles: Add system profiles tile - -This tile opens a dialog to change the current profile. If system -profiles are disabled, they'll be enabled as soon as a profile is -selected. Disabling system profiles from the tile is not possible. - -Change-Id: I38b28be8fcf1eb7998d7d18df204802ea66554f6 ---- - AndroidManifest.xml | 11 ++ - res/drawable/ic_profiles.xml | 28 +++++ - res/values/strings.xml | 4 + - src/org/lineageos/customtiles/MainActivity.java | 1 + - src/org/lineageos/customtiles/ProfileTile.java | 139 ++++++++++++++++++++++++ - 5 files changed, 183 insertions(+) - create mode 100644 res/drawable/ic_profiles.xml - create mode 100644 src/org/lineageos/customtiles/ProfileTile.java - -diff --git a/AndroidManifest.xml b/AndroidManifest.xml -index 6bef3c7..09f2de9 100644 ---- a/AndroidManifest.xml -+++ b/AndroidManifest.xml -@@ -129,6 +129,17 @@ - - - -+ -+ -+ -+ -+ -+ -+ - - -+ -+ -+ -+ -+ -diff --git a/res/values/strings.xml b/res/values/strings.xml -index 60cb829..e0dd75e 100644 ---- a/res/values/strings.xml -+++ b/res/values/strings.xml -@@ -24,8 +24,12 @@ - Sync - Volume panel - USB tethering -+ System Profile - - - Caffeine - -+ Select profile -+ No system profile found -+ - -diff --git a/src/org/lineageos/customtiles/MainActivity.java b/src/org/lineageos/customtiles/MainActivity.java -index 95d3015..4f9f3ba 100644 ---- a/src/org/lineageos/customtiles/MainActivity.java -+++ b/src/org/lineageos/customtiles/MainActivity.java -@@ -33,6 +33,7 @@ public class MainActivity extends Activity { - put(".SyncTile", new Intent(Settings.ACTION_SYNC_SETTINGS)); - put(".UsbTetherTile", new Intent(Settings.ACTION_WIRELESS_SETTINGS)); - put(".VolumePanelTile", new Intent(Settings.ACTION_SOUND_SETTINGS)); -+ put(".ProfileTile", new Intent("org.cyanogenmod.cmparts.PROFILES_SETTINGS")); - }}; - - @Override -diff --git a/src/org/lineageos/customtiles/ProfileTile.java b/src/org/lineageos/customtiles/ProfileTile.java -new file mode 100644 -index 0000000..ed3caab ---- /dev/null -+++ b/src/org/lineageos/customtiles/ProfileTile.java -@@ -0,0 +1,139 @@ -+/* -+ * Copyright (C) 2017 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.customtiles; -+ -+import android.app.AlertDialog; -+import android.app.Dialog; -+import android.content.BroadcastReceiver; -+import android.content.Context; -+import android.content.DialogInterface; -+import android.content.Intent; -+import android.content.IntentFilter; -+import android.service.quicksettings.Tile; -+import android.service.quicksettings.TileService; -+ -+import java.util.UUID; -+ -+import cyanogenmod.app.Profile; -+import cyanogenmod.app.ProfileManager; -+import cyanogenmod.providers.CMSettings; -+ -+public class ProfileTile extends TileService { -+ -+ private ProfileManager mProfileManager; -+ -+ private Profile mCurrentProfile; -+ -+ private BroadcastReceiver mReceiver = new BroadcastReceiver() { -+ @Override -+ public void onReceive(Context context, Intent intent) { -+ refresh(); -+ } -+ }; -+ -+ @Override -+ public void onStartListening() { -+ super.onStartListening(); -+ -+ mProfileManager = ProfileManager.getInstance(getBaseContext()); -+ -+ IntentFilter filter = new IntentFilter(); -+ filter.addAction(ProfileManager.INTENT_ACTION_PROFILE_SELECTED); -+ filter.addAction(ProfileManager.INTENT_ACTION_PROFILE_UPDATED); -+ filter.addAction(ProfileManager.PROFILES_STATE_CHANGED_ACTION); -+ registerReceiver(mReceiver, filter); -+ -+ refresh(); -+ } -+ -+ @Override -+ public void onStopListening() { -+ unregisterReceiver(mReceiver); -+ super.onStopListening(); -+ } -+ -+ private Dialog selectProfileDialog() { -+ -+ Profile[] profilesList = mProfileManager.getProfiles(); -+ if (profilesList.length == 0) { -+ return new AlertDialog.Builder(getBaseContext()) -+ .setTitle(R.string.dialog_system_profile_title) -+ .setMessage(R.string.dialog_system_profile_message) -+ .setPositiveButton(android.R.string.ok, null) -+ .create(); -+ } -+ -+ final CharSequence[] profileLabels = new CharSequence[profilesList.length]; -+ final UUID[] profileUuids = new UUID[profilesList.length]; -+ int selectedProfile = -1; -+ for (int i = 0; i < profilesList.length; i++) { -+ UUID profileUuuid = profilesList[i].getUuid(); -+ profileLabels[i] = profilesList[i].getName(); -+ profileUuids[i] = profileUuuid; -+ if (mCurrentProfile != null && mCurrentProfile.getUuid().equals(profileUuuid)) { -+ selectedProfile = i; -+ } -+ } -+ -+ return new AlertDialog.Builder(getBaseContext()) -+ .setTitle(R.string.dialog_system_profile_title) -+ .setSingleChoiceItems(profileLabels, selectedProfile, -+ new DialogInterface.OnClickListener() { -+ @Override -+ public void onClick(DialogInterface dialogInterface, int index) { -+ if (!mProfileManager.isProfilesEnabled()) { -+ enableProfiles(); -+ } -+ mProfileManager.setActiveProfile(profileUuids[index]); -+ dialogInterface.dismiss(); -+ } -+ }) -+ .setNegativeButton(android.R.string.cancel, null) -+ .setCancelable(true) -+ .create(); -+ } -+ -+ @Override -+ public void onClick() { -+ super.onClick(); -+ -+ unlockAndRun(new Runnable() { -+ @Override -+ public void run() { -+ showDialog(selectProfileDialog()); -+ } -+ }); -+ } -+ -+ private void refresh() { -+ if (mProfileManager.isProfilesEnabled()) { -+ mCurrentProfile = mProfileManager.getActiveProfile(); -+ getQsTile().setState(Tile.STATE_ACTIVE); -+ getQsTile().setLabel(mCurrentProfile.getName()); -+ } else { -+ mCurrentProfile = null; -+ getQsTile().setState(Tile.STATE_INACTIVE); -+ getQsTile().setLabel(getString(R.string.system_profile_label)); -+ } -+ getQsTile().updateTile(); -+ } -+ -+ private void enableProfiles() { -+ CMSettings.System.putInt(getContentResolver(), -+ CMSettings.System.SYSTEM_PROFILES_ENABLED, 1); -+ } -+} --- -2.13.1 - diff --git a/Scripts/LAOS-14.1_Patches.sh b/Scripts/LAOS-14.1_Patches.sh index c1c246c0..f39a4f96 100755 --- a/Scripts/LAOS-14.1_Patches.sh +++ b/Scripts/LAOS-14.1_Patches.sh @@ -64,7 +64,7 @@ enter "build" patch -p1 < $patches"android_build/0001-Automated_Build_Signing.patch" #Automated build signing sed -i 's|echo "ro.build.user=$USER"|echo "ro.build.user=emy"|' tools/buildinfo.sh; #Override build user sed -i 's|echo "ro.build.host=`hostname`"|echo "ro.build.host=dosbm"|' tools/buildinfo.sh; #Override build host -sed -i 's/messaging/Silence/' target/product/*.mk; #Replace AOSP Messaging app with Silence TODO: Refine this +sed -i 's/messaging/Silence/' target/product/*.mk; #Replace AOSP Messaging app with Silence enter "device/qcom/sepolicy" patch -p1 < $patches"android_device_qcom_sepolicy/0001-Camera_Fix.patch" #Fix camera on user builds @@ -77,7 +77,7 @@ patch -p1 < $patches"android_external_svox/94d2ddb.diff" #Fix garbled output See enter "frameworks/base" git revert 0326bb5e41219cf502727c3aa44ebf2daa19a5b3 #re-enable doze on devices without gms -git fetch https://review.lineageos.org/LineageOS/android_frameworks_base refs/changes/75/151975/34 && git cherry-pick FETCH_HEAD #network traffic +git fetch https://review.lineageos.org/LineageOS/android_frameworks_base refs/changes/75/151975/35 && git cherry-pick FETCH_HEAD #network traffic sed -i 's/DEFAULT_MAX_FILES = 1000;/DEFAULT_MAX_FILES = 0;/' services/core/java/com/android/server/DropBoxManagerService.java; #Disable DropBox sed -i '0,/wifi,cell,battery/s/wifi,cell,battery,dnd,flashlight,rotation,bt,airplane/wifi,cell,bt,dnd,flashlight,rotation,battery,saver,location,airplane,hotspot,nfc/' packages/SystemUI/res/values/config.xml; patch -p1 < $patches"android_frameworks_base/0003-Signature_Spoofing.patch" #Allow packages to spoof their signature (MicroG) @@ -98,9 +98,6 @@ patch -p1 < $patches"android_packages_apps_CMUpdater/0001-Server.patch" #Switch sed -i 's/CM_RELEASE_TYPE_DEFAULT = "UNOFFICIAL";/CM_RELEASE_TYPE_DEFAULT = "dos";/' src/com/cyanogenmod/updater/misc/Constants.java; #Change buildtype sed -i 's/subStrings\[3\]\.length() < 7/subStrings\[3\]\.length() < 3/' src/com/cyanogenmod/updater/utils/Utils.java; #Fix not allowing buildtypes length < 7 -enter "packages/apps/CustomTiles" -patch -p1 < $patches"android_packages_apps_CustomTiles/0001-Profiles.patch" #System profiles tile - enter "packages/apps/Dialer" sed -i 's/FLP_DEFAULT = FLP_GOOGLE;/FLP_DEFAULT = FLP_OPENSTREETMAP;/' src/com/android/dialer/lookup/LookupSettings.java; #Change default FLP to OpenStreetMap sed -i 's/CMSettings.System.ENABLE_FORWARD_LOOKUP, 1)/CMSettings.System.ENABLE_FORWARD_LOOKUP, 0)/' src/com/android/dialer/lookup/LookupSettings.java; #Disable FLP by default @@ -162,6 +159,7 @@ awk -i inplace '!/50-cm.sh/' config/common.mk; #Make sure our hosts is always us patch -p1 < $patches"android_vendor_cm/0001-SCE.patch" #Include our extras such as MicroG and F-Droid cp $patches"android_vendor_cm/sce.mk" config/sce.mk sed -i 's/CM_BUILDTYPE := UNOFFICIAL/CM_BUILDTYPE := dos/' config/common.mk; #Change buildtype +sed -i 's/messaging/Silence/' config/telephony.mk; #Replace AOSP Messaging app with Silence enter "vendor/cmsdk" git fetch https://review.lineageos.org/LineageOS/cm_platform_sdk refs/changes/21/148321/14 && git cherry-pick FETCH_HEAD #network traffic