From f6e983c722bad42ad84d47ac7cd3597c4b2a264b Mon Sep 17 00:00:00 2001 From: Luca Stefani Date: Sat, 4 Feb 2017 23:58:11 +0100 Subject: [PATCH] AdvancedDisplay: Refactor * Integrate with Settings * Remove back button Change-Id: Ie3bcd43ef7225bdc3b177446906335f59561b584 --- AdvancedDisplay/Android.mk | 22 ++++++ AdvancedDisplay/AndroidManifest.xml | 31 +++----- AdvancedDisplay/proguard.flags | 5 ++ AdvancedDisplay/res/values/colors.xml | 22 ------ AdvancedDisplay/res/values/styles.xml | 17 ++--- .../device/AdvancedDisplayActivity.java | 31 ++++++++ .../device/AdvancedDisplayFragment.java | 45 +++++++++++ ...tartup.java => BootCompletedReceiver.java} | 6 +- .../settings/device/Constants.java | 22 ++++++ .../settings/device/DisplaySettings.java | 69 ----------------- .../device/ScreenFragmentActivity.java | 76 ------------------- .../settings/device/mDNIeNegative.java | 21 ++--- .../settings/device/mDNIeScenario.java | 19 ++--- 13 files changed, 160 insertions(+), 226 deletions(-) create mode 100644 AdvancedDisplay/proguard.flags delete mode 100644 AdvancedDisplay/res/values/colors.xml create mode 100644 AdvancedDisplay/src/com/cyanogenmod/settings/device/AdvancedDisplayActivity.java create mode 100644 AdvancedDisplay/src/com/cyanogenmod/settings/device/AdvancedDisplayFragment.java rename AdvancedDisplay/src/com/cyanogenmod/settings/device/{Startup.java => BootCompletedReceiver.java} (83%) create mode 100644 AdvancedDisplay/src/com/cyanogenmod/settings/device/Constants.java delete mode 100644 AdvancedDisplay/src/com/cyanogenmod/settings/device/DisplaySettings.java delete mode 100644 AdvancedDisplay/src/com/cyanogenmod/settings/device/ScreenFragmentActivity.java diff --git a/AdvancedDisplay/Android.mk b/AdvancedDisplay/Android.mk index c7ea7d6c..3362e95d 100644 --- a/AdvancedDisplay/Android.mk +++ b/AdvancedDisplay/Android.mk @@ -9,8 +9,30 @@ LOCAL_PACKAGE_NAME := AdvancedDisplay LOCAL_CERTIFICATE := platform LOCAL_STATIC_JAVA_LIBRARIES := \ + android-support-v14-preference \ + android-support-v7-appcompat \ + android-support-v7-preference \ + android-support-v7-recyclerview \ org.cyanogenmod.platform.internal +LOCAL_PROGUARD_FLAG_FILES := proguard.flags + +LOCAL_RESOURCE_DIR := \ + $(LOCAL_PATH)/res \ + frameworks/support/v14/preference/res \ + frameworks/support/v7/appcompat/res \ + frameworks/support/v7/preference/res \ + frameworks/support/v7/recyclerview/res + +LOCAL_AAPT_FLAGS := \ + --auto-add-overlay \ + --extra-packages android.support.v14.preference \ + --extra-packages android.support.v7.appcompat \ + --extra-packages android.support.v7.preference \ + --extra-packages android.support.v7.recyclerview + +include frameworks/base/packages/SettingsLib/common.mk + include $(BUILD_PACKAGE) include $(call all-makefiles-under,$(LOCAL_PATH)) diff --git a/AdvancedDisplay/AndroidManifest.xml b/AdvancedDisplay/AndroidManifest.xml index 96798f3d..82b1ad3e 100644 --- a/AdvancedDisplay/AndroidManifest.xml +++ b/AdvancedDisplay/AndroidManifest.xml @@ -1,21 +1,23 @@ + android:sharedUserId="android.uid.system"> - - + + + + + + + + + android:theme="@style/AdvancedDisplay"> @@ -26,14 +28,5 @@ android:name="com.android.settings.category" android:value="com.android.settings.category.device" /> - - - - - - - - - diff --git a/AdvancedDisplay/proguard.flags b/AdvancedDisplay/proguard.flags new file mode 100644 index 00000000..9f4cf07d --- /dev/null +++ b/AdvancedDisplay/proguard.flags @@ -0,0 +1,5 @@ +-keepclasseswithmembers class * { + public (android.content.Context, android.util.AttributeSet); +} + +-keep class ** extends android.support.v14.preference.PreferenceFragment diff --git a/AdvancedDisplay/res/values/colors.xml b/AdvancedDisplay/res/values/colors.xml deleted file mode 100644 index 2a95ee2a..00000000 --- a/AdvancedDisplay/res/values/colors.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - #ff263238 - #ff21272b - #ff009688 - diff --git a/AdvancedDisplay/res/values/styles.xml b/AdvancedDisplay/res/values/styles.xml index af83c00d..ee2d0a57 100644 --- a/AdvancedDisplay/res/values/styles.xml +++ b/AdvancedDisplay/res/values/styles.xml @@ -1,8 +1,9 @@ - - - - diff --git a/AdvancedDisplay/src/com/cyanogenmod/settings/device/AdvancedDisplayActivity.java b/AdvancedDisplay/src/com/cyanogenmod/settings/device/AdvancedDisplayActivity.java new file mode 100644 index 00000000..29ab9b6b --- /dev/null +++ b/AdvancedDisplay/src/com/cyanogenmod/settings/device/AdvancedDisplayActivity.java @@ -0,0 +1,31 @@ +/* + * 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 com.cyanogenmod.settings.device; + +import android.os.Bundle; + +import com.android.settingslib.drawer.SettingsDrawerActivity; + +public class AdvancedDisplayActivity extends SettingsDrawerActivity { + + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + getFragmentManager().beginTransaction().replace(R.id.content_frame, + new AdvancedDisplayFragment()).commit(); + } +} diff --git a/AdvancedDisplay/src/com/cyanogenmod/settings/device/AdvancedDisplayFragment.java b/AdvancedDisplay/src/com/cyanogenmod/settings/device/AdvancedDisplayFragment.java new file mode 100644 index 00000000..a2b7f7b9 --- /dev/null +++ b/AdvancedDisplay/src/com/cyanogenmod/settings/device/AdvancedDisplayFragment.java @@ -0,0 +1,45 @@ +/* + * 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 com.cyanogenmod.settings.device; + +import android.content.res.Resources; +import android.os.Bundle; +import android.support.v14.preference.PreferenceFragment; + +import com.cyanogenmod.settings.device.R; + +import org.cyanogenmod.internal.util.FileUtils; + +public class AdvancedDisplayFragment extends PreferenceFragment { + private mDNIeScenario mmDNIeScenario; + private mDNIeNegative mmDNIeNegative; + + @Override + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { + addPreferencesFromResource(R.xml.screen_preferences); + Resources res = getResources(); + + /* mDNIe */ + mmDNIeScenario = (mDNIeScenario) findPreference(Constants.KEY_MDNIE_SCENARIO); + mmDNIeScenario.setEnabled( + FileUtils.isFileWritable(res.getString(R.string.mdnie_scenario_sysfs_file))); + + mmDNIeNegative = (mDNIeNegative) findPreference(Constants.KEY_MDNIE_NEGATIVE); + mmDNIeNegative.setEnabled( + FileUtils.isFileWritable(res.getString(R.string.mdnie_negative_sysfs_file))); + } +} diff --git a/AdvancedDisplay/src/com/cyanogenmod/settings/device/Startup.java b/AdvancedDisplay/src/com/cyanogenmod/settings/device/BootCompletedReceiver.java similarity index 83% rename from AdvancedDisplay/src/com/cyanogenmod/settings/device/Startup.java rename to AdvancedDisplay/src/com/cyanogenmod/settings/device/BootCompletedReceiver.java index ba7c2c5c..9408f353 100644 --- a/AdvancedDisplay/src/com/cyanogenmod/settings/device/Startup.java +++ b/AdvancedDisplay/src/com/cyanogenmod/settings/device/BootCompletedReceiver.java @@ -1,5 +1,6 @@ /* * Copyright (C) 2012 The CyanogenMod Project + * 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. @@ -20,12 +21,11 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; -public class Startup extends BroadcastReceiver { +public class BootCompletedReceiver extends BroadcastReceiver { @Override - public void onReceive(final Context context, final Intent bootintent) { + public void onReceive(Context context, Intent intent) { mDNIeScenario.restore(context); mDNIeNegative.restore(context); - ScreenFragmentActivity.restore(context); } } diff --git a/AdvancedDisplay/src/com/cyanogenmod/settings/device/Constants.java b/AdvancedDisplay/src/com/cyanogenmod/settings/device/Constants.java new file mode 100644 index 00000000..5ce0473d --- /dev/null +++ b/AdvancedDisplay/src/com/cyanogenmod/settings/device/Constants.java @@ -0,0 +1,22 @@ +/* + * 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 com.cyanogenmod.settings.device; + +public class Constants { + static final String KEY_MDNIE_SCENARIO = "mdnie_scenario"; + static final String KEY_MDNIE_NEGATIVE = "mdnie_negative"; +} diff --git a/AdvancedDisplay/src/com/cyanogenmod/settings/device/DisplaySettings.java b/AdvancedDisplay/src/com/cyanogenmod/settings/device/DisplaySettings.java deleted file mode 100644 index 147fe5e1..00000000 --- a/AdvancedDisplay/src/com/cyanogenmod/settings/device/DisplaySettings.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * Copyright (C) 2012 The CyanogenMod 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 com.cyanogenmod.settings.device; - -import android.app.Activity; -import android.app.ActionBar; -import android.app.Activity; -import android.app.Fragment; -import android.app.FragmentTransaction; -import android.content.Context; -import android.os.Bundle; -import android.view.MenuItem; -import android.widget.FrameLayout; - -import com.cyanogenmod.settings.device.R; - -import java.util.ArrayList; - -public class DisplaySettings extends Activity { - - public static final String SHARED_PREFERENCES_BASENAME = "com.cyanogenmod.settings.device"; - public static final String ACTION_UPDATE_PREFERENCES = "com.cyanogenmod.settings.device.UPDATE"; - public static final String KEY_MDNIE_SCENARIO = "mdnie_scenario"; - public static final String KEY_MDNIE_NEGATIVE = "mdnie_negative"; - - ScreenFragmentActivity mFragment; - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - mFragment = new ScreenFragmentActivity(); - setContentView(R.layout.framelayout); - getFragmentManager().beginTransaction().add(R.id.frameLayout, mFragment).commit(); - - final ActionBar bar = getActionBar(); - bar.setTitle(R.string.app_name); - bar.setDisplayHomeAsUpEnabled(true); - - } - - @Override - protected void onSaveInstanceState(Bundle outState) { - super.onSaveInstanceState(outState); - } - - @Override - public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case android.R.id.home: - DisplaySettings.this.onBackPressed(); - default: - return super.onOptionsItemSelected(item); - } - } -} diff --git a/AdvancedDisplay/src/com/cyanogenmod/settings/device/ScreenFragmentActivity.java b/AdvancedDisplay/src/com/cyanogenmod/settings/device/ScreenFragmentActivity.java deleted file mode 100644 index 7a99daf2..00000000 --- a/AdvancedDisplay/src/com/cyanogenmod/settings/device/ScreenFragmentActivity.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright (C) 2012 The CyanogenMod 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 com.cyanogenmod.settings.device; - -import android.content.Context; -import android.content.res.Resources; -import android.content.SharedPreferences; -import android.os.Bundle; -import android.preference.CheckBoxPreference; -import android.preference.ListPreference; -import android.preference.Preference; -import android.preference.PreferenceActivity; -import android.preference.PreferenceCategory; -import android.preference.PreferenceFragment; -import android.preference.PreferenceManager; -import android.preference.PreferenceScreen; -import android.util.Log; - -import com.cyanogenmod.settings.device.R; -import org.cyanogenmod.internal.util.FileUtils; - -public class ScreenFragmentActivity extends PreferenceFragment { - - private static final String PREF_ENABLED = "1"; - private static final String TAG = "DisplaySettings_Screen"; - private mDNIeScenario mmDNIeScenario; - private mDNIeNegative mmDNIeNegative; - - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - addPreferencesFromResource(R.xml.screen_preferences); - PreferenceScreen preferenceScreen = getPreferenceScreen(); - Resources res = getResources(); - - /* mDNIe */ - mmDNIeScenario = (mDNIeScenario) findPreference(DisplaySettings.KEY_MDNIE_SCENARIO); - mmDNIeScenario.setEnabled(mDNIeScenario.isSupported(res.getString(R.string.mdnie_scenario_sysfs_file))); - - mmDNIeNegative = (mDNIeNegative) findPreference(DisplaySettings.KEY_MDNIE_NEGATIVE); - mmDNIeNegative.setEnabled(mDNIeNegative.isSupported(res.getString(R.string.mdnie_negative_sysfs_file))); - - } - - @Override - public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { - - String key = preference.getKey(); - Log.w(TAG, "key: " + key); - - return true; - } - - public static boolean isSupported(String filePath) { - return FileUtils.isFileWritable(filePath); - } - - public static void restore(Context context) { - SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); - } -} diff --git a/AdvancedDisplay/src/com/cyanogenmod/settings/device/mDNIeNegative.java b/AdvancedDisplay/src/com/cyanogenmod/settings/device/mDNIeNegative.java index a5e20f2c..fc24e980 100644 --- a/AdvancedDisplay/src/com/cyanogenmod/settings/device/mDNIeNegative.java +++ b/AdvancedDisplay/src/com/cyanogenmod/settings/device/mDNIeNegative.java @@ -1,5 +1,6 @@ /* * Copyright (C) 2012 The CyanogenMod Project + * 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. @@ -16,14 +17,13 @@ package com.cyanogenmod.settings.device; -import java.io.IOException; import android.content.Context; -import android.util.AttributeSet; import android.content.SharedPreferences; -import android.preference.Preference; -import android.preference.ListPreference; -import android.preference.Preference.OnPreferenceChangeListener; -import android.preference.PreferenceManager; +import android.support.v7.preference.ListPreference; +import android.support.v7.preference.Preference; +import android.support.v7.preference.Preference.OnPreferenceChangeListener; +import android.support.v7.preference.PreferenceManager; +import android.util.AttributeSet; import org.cyanogenmod.internal.util.FileUtils; @@ -37,27 +37,22 @@ public class mDNIeNegative extends ListPreference implements OnPreferenceChangeL FILE = context.getResources().getString(R.string.mdnie_negative_sysfs_file); } - public static boolean isSupported(String filePath) { - return FileUtils.isFileWritable(filePath); - } - /** * Restore mdnie user mode setting from SharedPreferences. (Write to kernel.) * @param context The context to read the SharedPreferences from */ public static void restore(Context context) { FILE = context.getResources().getString(R.string.mdnie_negative_sysfs_file); - if (!isSupported(FILE)) { + if (!FileUtils.isFileWritable(FILE)) { return; } SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); - FileUtils.writeLine(FILE, sharedPrefs.getString(DisplaySettings.KEY_MDNIE_NEGATIVE, "0")); + FileUtils.writeLine(FILE, sharedPrefs.getString(Constants.KEY_MDNIE_NEGATIVE, "0")); } public boolean onPreferenceChange(Preference preference, Object newValue) { FileUtils.writeLine(FILE, (String) newValue); return true; } - } diff --git a/AdvancedDisplay/src/com/cyanogenmod/settings/device/mDNIeScenario.java b/AdvancedDisplay/src/com/cyanogenmod/settings/device/mDNIeScenario.java index 5d33fe91..bd5a6986 100644 --- a/AdvancedDisplay/src/com/cyanogenmod/settings/device/mDNIeScenario.java +++ b/AdvancedDisplay/src/com/cyanogenmod/settings/device/mDNIeScenario.java @@ -1,5 +1,6 @@ /* * Copyright (C) 2012 The CyanogenMod Project + * 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. @@ -17,13 +18,12 @@ package com.cyanogenmod.settings.device; import android.content.Context; - import android.content.SharedPreferences; +import android.support.v7.preference.ListPreference; +import android.support.v7.preference.Preference; +import android.support.v7.preference.Preference.OnPreferenceChangeListener; +import android.support.v7.preference.PreferenceManager; import android.util.AttributeSet; -import android.preference.Preference; -import android.preference.ListPreference; -import android.preference.Preference.OnPreferenceChangeListener; -import android.preference.PreferenceManager; import org.cyanogenmod.internal.util.FileUtils; @@ -37,27 +37,22 @@ public class mDNIeScenario extends ListPreference implements OnPreferenceChangeL FILE = context.getResources().getString(R.string.mdnie_scenario_sysfs_file); } - public static boolean isSupported(String filePath) { - return FileUtils.isFileWritable(filePath); - } - /** * Restore mdnie "camera" setting from SharedPreferences. (Write to kernel.) * @param context The context to read the SharedPreferences from */ public static void restore(Context context) { FILE = context.getResources().getString(R.string.mdnie_scenario_sysfs_file); - if (!isSupported(FILE)) { + if (!FileUtils.isFileWritable(FILE)) { return; } SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context); - FileUtils.writeLine(FILE, sharedPrefs.getString(DisplaySettings.KEY_MDNIE_SCENARIO, "0")); + FileUtils.writeLine(FILE, sharedPrefs.getString(Constants.KEY_MDNIE_SCENARIO, "0")); } public boolean onPreferenceChange(Preference preference, Object newValue) { FileUtils.writeLine(FILE, (String) newValue); return true; } - }