Merge "Account types at toplevel of Settings" into jb-dev
diff --git a/src/com/android/settings/BrightnessPreference.java b/src/com/android/settings/BrightnessPreference.java
index c80f66d..eff5c50 100644
--- a/src/com/android/settings/BrightnessPreference.java
+++ b/src/com/android/settings/BrightnessPreference.java
@@ -47,6 +47,8 @@
     private boolean mAutomaticAvailable;
     private boolean mAutomaticMode;
 
+    private int mCurBrightness = -1;
+
     private boolean mRestoredOldState;
 
     // Backlight range is from 0 - 255. Need to make sure that user
@@ -60,6 +62,7 @@
     private ContentObserver mBrightnessObserver = new ContentObserver(new Handler()) {
         @Override
         public void onChange(boolean selfChange) {
+            mCurBrightness = -1;
             onBrightnessChanged();
         }
     };
@@ -135,6 +138,7 @@
                 : Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
         mSeekBar.setProgress(getBrightness());
         mSeekBar.setEnabled(!mAutomaticMode);
+        setBrightness(mSeekBar.getProgress(), false);
     }
 
     private int getBrightness() {
@@ -145,8 +149,12 @@
                     Settings.System.SCREEN_AUTO_BRIGHTNESS_ADJ, 0);
             brightness = (brightness+1)/2;
         } else {
-            brightness = Settings.System.getInt(getContext().getContentResolver(),
-                    Settings.System.SCREEN_BRIGHTNESS, 100);
+            if (mCurBrightness < 0) {
+                brightness = Settings.System.getInt(getContext().getContentResolver(),
+                        Settings.System.SCREEN_BRIGHTNESS, 100);
+            } else {
+                brightness = mCurBrightness;
+            }
             brightness = (brightness - mScreenBrightnessDim)
                     / (MAXIMUM_BACKLIGHT - mScreenBrightnessDim);
         }
@@ -199,6 +207,7 @@
         }
         setBrightness(mOldBrightness, false);
         mRestoredOldState = true;
+        mCurBrightness = -1;
     }
 
     private void setBrightness(int brightness, boolean write) {
@@ -229,9 +238,12 @@
                     power.setBacklightBrightness(brightness);
                 }
                 if (write) {
+                    mCurBrightness = -1;
                     final ContentResolver resolver = getContext().getContentResolver();
                     Settings.System.putInt(resolver,
                             Settings.System.SCREEN_BRIGHTNESS, brightness);
+                } else {
+                    mCurBrightness = brightness;
                 }
             } catch (RemoteException doe) {
             }
@@ -255,6 +267,7 @@
         myState.progress = mSeekBar.getProgress();
         myState.oldAutomatic = mOldAutomatic == 1;
         myState.oldProgress = mOldBrightness;
+        myState.curBrightness = mCurBrightness;
 
         // Restore the old state when the activity or dialog is being paused
         restoreOldState();
@@ -275,6 +288,7 @@
         mOldAutomatic = myState.oldAutomatic ? 1 : 0;
         setMode(myState.automatic ? 1 : 0);
         setBrightness(myState.progress, false);
+        mCurBrightness = myState.curBrightness;
     }
 
     private static class SavedState extends BaseSavedState {
@@ -283,6 +297,7 @@
         boolean oldAutomatic;
         int progress;
         int oldProgress;
+        int curBrightness;
 
         public SavedState(Parcel source) {
             super(source);
@@ -290,6 +305,7 @@
             progress = source.readInt();
             oldAutomatic = source.readInt() == 1;
             oldProgress = source.readInt();
+            curBrightness = source.readInt();
         }
 
         @Override
@@ -299,6 +315,7 @@
             dest.writeInt(progress);
             dest.writeInt(oldAutomatic ? 1 : 0);
             dest.writeInt(oldProgress);
+            dest.writeInt(curBrightness);
         }
 
         public SavedState(Parcelable superState) {
diff --git a/src/com/android/settings/wifi/WifiConfigController.java b/src/com/android/settings/wifi/WifiConfigController.java
index 6bf4259..2598a0e 100644
--- a/src/com/android/settings/wifi/WifiConfigController.java
+++ b/src/com/android/settings/wifi/WifiConfigController.java
@@ -743,7 +743,9 @@
                     InputType.TYPE_CLASS_TEXT | (((CheckBox) view).isChecked() ?
                             InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD :
                                 InputType.TYPE_TEXT_VARIATION_PASSWORD));
-            ((EditText)mPasswordView).setSelection(pos);
+            if (pos >= 0) {
+                ((EditText)mPasswordView).setSelection(pos);
+            }
         } else if (view.getId() == R.id.wifi_advanced_togglebox) {
             if (((CheckBox) view).isChecked()) {
                 mView.findViewById(R.id.wifi_advanced_fields).setVisibility(View.VISIBLE);