summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/DisplaySettings.java
diff options
context:
space:
mode:
authorDvTonder <david.vantonder@gmail.com>2013-12-07 09:25:38 +0100
committerAdnan Begovic <adnan@cyngn.com>2015-10-29 17:36:29 -0700
commitf71d7438ea0b30fe08d0297b8bbb9ea68124348b (patch)
treef32110177758b46296d58f0c359dd22c2df89244 /src/com/android/settings/DisplaySettings.java
parenta284b34f11b3ad22084232950d81fb1bc68f21ce (diff)
downloadpackages_apps_Settings-f71d7438ea0b30fe08d0297b8bbb9ea68124348b.zip
packages_apps_Settings-f71d7438ea0b30fe08d0297b8bbb9ea68124348b.tar.gz
packages_apps_Settings-f71d7438ea0b30fe08d0297b8bbb9ea68124348b.tar.bz2
Settings: Forward port Display Rotation settings
Originaly authored by Robert Burns (burnsra) Settings: Fix possible NPE in Display settings Change-Id: I186203782aa27fb4eaa77500fecb82946bfdd173 Display : Enable rotation on large screens The auto-rotate toggle in statusbar is no longer present, so the check is no longer valid. Change-Id: I0a23e251b3cb793481d14ea8ad8a9079c7c0e962 Fix the spacing between displayed rotation angles Before: http://goo.gl/QJ7hE After: http://goo.gl/V0alW Change-Id: I0319f8e84e4b278b2f720cbc77cecc280c82d461 Settings: rotation settings for devices with hardware rotation lock All settings would be disabled on devices with hardware rotation lock due to dependency setting. Disable dependency to allow setting swap volume and rotation degrees on those devices. Change-Id: Iee0532902d59fa80666e17b3853db8e3d7ed5ddc Add lockscreen rotation as an optional rotation setting (2/2) This will allow the user to select wether or not to use the rotation settings for the lockscreen. This is dependent upon the rotation setting being checked. Signed-off-by: Michael Bestas <mikeioannina@gmail.com> Change-Id: If45c13a395e0d71b7c4cdcf484a6b8cef964ee37 JIRA: CYAN-339 Ported from cm-10.2, adjusted for 4.4 Signed-off-by: Michael Bestas <mikeioannina@gmail.com> Change-Id: Ib239e63200fc8565c3f66969aa495f1c40908adf
Diffstat (limited to 'src/com/android/settings/DisplaySettings.java')
-rw-r--r--src/com/android/settings/DisplaySettings.java109
1 files changed, 107 insertions, 2 deletions
diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java
index 13c1b28..8645377 100644
--- a/src/com/android/settings/DisplaySettings.java
+++ b/src/com/android/settings/DisplaySettings.java
@@ -16,8 +16,8 @@
*/
package com.android.settings;
-
import com.android.internal.logging.MetricsLogger;
+import android.preference.CheckBoxPreference;
import com.android.internal.view.RotationPolicy;
import com.android.settings.DropDownPreference.Callback;
import com.android.settings.search.BaseSearchIndexProvider;
@@ -44,7 +44,9 @@ import android.content.SharedPreferences;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.os.Build;
+import android.database.ContentObserver;
import android.os.Bundle;
+import android.os.Handler;
import android.os.RemoteException;
import android.os.SystemProperties;
import android.preference.ListPreference;
@@ -60,6 +62,9 @@ import android.provider.Settings;
import android.text.TextUtils;
import android.util.Log;
+import com.android.settings.DreamSettings;
+import com.android.settings.Utils;
+import com.android.settings.cyanogenmod.DisplayRotation;
import java.util.ArrayList;
import java.util.List;
@@ -94,6 +99,11 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
private static final String KEY_COLOR_ENHANCEMENT = "color_enhancement";
private static final String KEY_TAP_TO_WAKE = "double_tap_wake_gesture";
private static final String KEY_PROXIMITY_WAKE = "proximity_on_wake";
+ private static final String KEY_DISPLAY_ROTATION = "display_rotation";
+ private static final String KEY_ADVANCED_DISPLAY_SETTINGS = "advanced_display_settings";
+ private static final String CATEGORY_LIGHTS = "lights_prefs";
+ private static final String KEY_NOTIFICATION_PULSE = "notification_pulse";
+ private static final String KEY_BATTERY_LIGHT = "battery_light";
private static final String KEY_WAKE_WHEN_PLUGGED_OR_UNPLUGGED = "wake_when_plugged_or_unplugged";
private static final String CATEGORY_ADVANCED = "advanced_display_prefs";
@@ -103,6 +113,9 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
private static final int DLG_GLOBAL_CHANGE_WARNING = 1;
private FontDialogPreference mFontSizePref;
+ private PreferenceScreen mNotificationPulse;
+ private PreferenceScreen mBatteryPulse;
+ private PreferenceScreen mDisplayRotationPreference;
private final Configuration mCurConfig = new Configuration();
@@ -120,6 +133,22 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
private SwitchPreference mSunlightEnhancement;
private SwitchPreference mColorEnhancement;
+ private ContentObserver mAccelerometerRotationObserver =
+ new ContentObserver(new Handler()) {
+ @Override
+ public void onChange(boolean selfChange) {
+ updateDisplayRotationPreferenceDescription();
+ }
+ };
+
+ private final RotationPolicy.RotationPolicyListener mRotationPolicyListener =
+ new RotationPolicy.RotationPolicyListener() {
+ @Override
+ public void onChange() {
+ updateDisplayRotationPreferenceDescription();
+ }
+ };
+
@Override
protected int getMetricsCategory() {
return MetricsLogger.DISPLAY;
@@ -133,6 +162,8 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
addPreferencesFromResource(R.xml.display_settings);
+ mDisplayRotationPreference = (PreferenceScreen) findPreference(KEY_DISPLAY_ROTATION);
+
mScreenSaverPreference = findPreference(KEY_SCREEN_SAVER);
if (mScreenSaverPreference != null
&& getResources().getBoolean(
@@ -147,6 +178,7 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
mScreenTimeoutPreference.setOnPreferenceChangeListener(this);
disableUnusableTimeouts(mScreenTimeoutPreference);
updateTimeoutPreferenceDescription(currentTimeout);
+ updateDisplayRotationPreferenceDescription();
mFontSizePref = (FontDialogPreference) findPreference(KEY_FONT_SIZE);
mFontSizePref.setOnPreferenceChangeListener(this);
@@ -289,6 +321,54 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
return res.getBoolean(com.android.internal.R.bool.config_automatic_brightness_available);
}
+ private void updateDisplayRotationPreferenceDescription() {
+ if (mDisplayRotationPreference == null) {
+ // The preference was removed, do nothing
+ return;
+ }
+
+ // We have a preference, lets update the summary
+ boolean rotationEnabled = Settings.System.getInt(getContentResolver(),
+ Settings.System.ACCELEROMETER_ROTATION, 0) != 0;
+
+ if (!rotationEnabled) {
+ mDisplayRotationPreference.setSummary(R.string.display_rotation_disabled);
+ return;
+ }
+
+ StringBuilder summary = new StringBuilder();
+ int mode = Settings.System.getInt(getContentResolver(),
+ Settings.System.ACCELEROMETER_ROTATION_ANGLES,
+ DisplayRotation.ROTATION_0_MODE
+ | DisplayRotation.ROTATION_90_MODE
+ | DisplayRotation.ROTATION_270_MODE);
+ ArrayList<String> rotationList = new ArrayList<String>();
+ String delim = "";
+
+ if ((mode & DisplayRotation.ROTATION_0_MODE) != 0) {
+ rotationList.add("0");
+ }
+ if ((mode & DisplayRotation.ROTATION_90_MODE) != 0) {
+ rotationList.add("90");
+ }
+ if ((mode & DisplayRotation.ROTATION_180_MODE) != 0) {
+ rotationList.add("180");
+ }
+ if ((mode & DisplayRotation.ROTATION_270_MODE) != 0) {
+ rotationList.add("270");
+ }
+ for (int i = 0; i < rotationList.size(); i++) {
+ summary.append(delim).append(rotationList.get(i));
+ if ((rotationList.size() - i) > 2) {
+ delim = ", ";
+ } else {
+ delim = " & ";
+ }
+ }
+ summary.append(" " + getString(R.string.display_rotation_unit));
+ mDisplayRotationPreference.setSummary(summary);
+ }
+
private void updateTimeoutPreferenceDescription(long currentTimeout) {
ListPreference preference = mScreenTimeoutPreference;
String summary;
@@ -359,7 +439,7 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
@Override
public void onResume() {
super.onResume();
-
+ updateDisplayRotationPreferenceDescription();
if (mAdaptiveBacklight != null) {
mAdaptiveBacklight.setChecked(AdaptiveBacklight.isEnabled());
}
@@ -381,6 +461,20 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
mTapToWake.setChecked(TapToWake.isEnabled());
}
+ RotationPolicy.registerRotationPolicyListener(getActivity(),
+ mRotationPolicyListener);
+
+ final ContentResolver resolver = getContentResolver();
+
+ // Display rotation observer
+ resolver.registerContentObserver(
+ Settings.System.getUriFor(Settings.System.ACCELEROMETER_ROTATION), true,
+ mAccelerometerRotationObserver);
+
+ if (mAdaptiveBacklight != null) {
+ mAdaptiveBacklight.setChecked(AdaptiveBacklight.isEnabled());
+ }
+
// Default value for wake-on-plug behavior from config.xml
boolean wakeUpWhenPluggedOrUnpluggedConfig = getResources().getBoolean(
com.android.internal.R.bool.config_unplugTurnsOnScreen);
@@ -393,6 +487,17 @@ public class DisplaySettings extends SettingsPreferenceFragment implements
}
@Override
+ public void onPause() {
+ super.onPause();
+
+ RotationPolicy.unregisterRotationPolicyListener(getActivity(),
+ mRotationPolicyListener);
+
+ // Display rotation observer
+ getContentResolver().unregisterContentObserver(mAccelerometerRotationObserver);
+ }
+
+ @Override
public Dialog onCreateDialog(int dialogId) {
if (dialogId == DLG_GLOBAL_CHANGE_WARNING) {
return Utils.buildGlobalChangeWarningDialog(getActivity(),