diff options
author | Luca Stefani <luca.stefani.ge1@gmail.com> | 2017-02-04 23:58:11 +0100 |
---|---|---|
committer | Luca Stefani <luca020400@lineageos.org> | 2017-06-26 18:56:40 +0000 |
commit | f6e983c722bad42ad84d47ac7cd3597c4b2a264b (patch) | |
tree | 9382c06bfa260bc1c5daabb21f8a76692a2c30b6 | |
parent | 5b0f1435a0b216dc910109f83f37a53d4e8247bc (diff) | |
download | hardware_samsung-f6e983c722bad42ad84d47ac7cd3597c4b2a264b.tar.gz hardware_samsung-f6e983c722bad42ad84d47ac7cd3597c4b2a264b.tar.bz2 hardware_samsung-f6e983c722bad42ad84d47ac7cd3597c4b2a264b.zip |
AdvancedDisplay: Refactor
* Integrate with Settings
* Remove back button
Change-Id: Ie3bcd43ef7225bdc3b177446906335f59561b584
13 files changed, 160 insertions, 226 deletions
diff --git a/AdvancedDisplay/Android.mk b/AdvancedDisplay/Android.mk index c7ea7d6..3362e95 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 96798f3..82b1ad3 100644 --- a/AdvancedDisplay/AndroidManifest.xml +++ b/AdvancedDisplay/AndroidManifest.xml @@ -1,21 +1,23 @@ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.cyanogenmod.settings.device" - android:sharedUserId="android.uid.system" > + android:sharedUserId="android.uid.system"> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> - <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> - <application android:label="@string/app_name"> + <application + android:label="@string/app_name"> + <receiver android:name="com.cyanogenmod.settings.device.BootCompletedReceiver"> + <intent-filter> + <action android:name="android.intent.action.BOOT_COMPLETED" /> + <category android:name="android.intent.category.DEFAULT" /> + </intent-filter> + </receiver> + <activity - android:name="com.cyanogenmod.settings.device.DisplaySettings" - android:launchMode="singleTop" - android:icon="@drawable/ic_settings_advanced_display" - android:hardwareAccelerated="true" - android:configChanges="orientation|keyboardHidden|screenSize" + android:name=".AdvancedDisplayActivity" android:label="@string/app_name" - android:theme="@style/Theme.Main" - android:excludeFromRecents="true" > + android:theme="@style/AdvancedDisplay"> <intent-filter> <action android:name="com.android.settings.action.EXTRA_SETTINGS" /> </intent-filter> @@ -26,14 +28,5 @@ android:name="com.android.settings.category" android:value="com.android.settings.category.device" /> </activity> - - <receiver android:name=".Startup"> - <intent-filter android:priority="100"> - <action android:name="android.intent.action.BOOT_COMPLETED" /> - </intent-filter> - </receiver> - - <activity android:name=".ScreenFragmentActivity" /> - </application> </manifest> diff --git a/AdvancedDisplay/proguard.flags b/AdvancedDisplay/proguard.flags new file mode 100644 index 0000000..9f4cf07 --- /dev/null +++ b/AdvancedDisplay/proguard.flags @@ -0,0 +1,5 @@ +-keepclasseswithmembers class * { + public <init>(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 2a95ee2..0000000 --- a/AdvancedDisplay/res/values/colors.xml +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- - Copyright (C) 2016 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. ---> -<resources> - <!-- Palette colors referenced by top-level themes. --> - <color name="theme_primary">#ff263238</color> - <color name="theme_primary_dark">#ff21272b</color> - <color name="theme_accent">#ff009688</color> -</resources> diff --git a/AdvancedDisplay/res/values/styles.xml b/AdvancedDisplay/res/values/styles.xml index af83c00..ee2d0a5 100644 --- a/AdvancedDisplay/res/values/styles.xml +++ b/AdvancedDisplay/res/values/styles.xml @@ -1,8 +1,9 @@ <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2016 The CyanogenMod Project + 2017 The LineageOS Project - Licensed under the Apache License, Version 2.0 (the "License" + 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 @@ -14,16 +15,8 @@ See the License for the specific language governing permissions and limitations under the License. --> -<resources> - <style name="Theme.Main" parent="@android:style/Theme.Material.Light.DarkActionBar"> - <item name="android:colorPrimary">@color/theme_primary</item> - <item name="android:colorPrimaryDark">@color/theme_primary_dark</item> - <item name="android:colorAccent">@color/theme_accent</item> - <!-- Redefine the ActionBar style for contentInsetStart --> - <item name="android:actionBarStyle">@style/Theme.ActionBar.SubSettings</item> - </style> - - <style name="Theme.ActionBar.SubSettings" parent="@android:style/Widget.Material.Light.ActionBar.Solid"> - <item name="android:contentInsetStart">@dimen/actionbar_subsettings_contentInsetStart</item> +<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> + <style name="AdvancedDisplay" parent="@android:style/Theme.Material.Settings"> + <item name="preferenceTheme">@android:style/Theme.Material.Settings</item> </style> </resources> 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 0000000..29ab9b6 --- /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 0000000..a2b7f7b --- /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 index ba7c2c5..9408f35 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 0000000..5ce0473 --- /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 147fe5e..0000000 --- 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 7a99daf..0000000 --- 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 a5e20f2..fc24e98 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 5d33fe9..bd5a698 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; } - } |