Keep QS brightness slider icon in sync.

It now reflects auto-on or auto-off as it changes.

Bug:7303599
Change-Id: I1b1bd6a0545950795f83449c3778e91afa9d04a5
This commit is contained in:
John Spurlock
2012-10-12 15:24:36 -04:00
parent 957b27f62b
commit f5bc42dbf8
3 changed files with 17 additions and 1 deletions

View File

@@ -754,6 +754,7 @@ class QuickSettings {
mBrightnessDialog.setCanceledOnTouchOutside(true);
mBrightnessController = new BrightnessController(mContext,
(ImageView) mBrightnessDialog.findViewById(R.id.brightness_icon),
(ToggleSlider) mBrightnessDialog.findViewById(R.id.brightness_slider));
mBrightnessController.addStateChangedCallback(mModel);
mBrightnessDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {

View File

@@ -28,6 +28,7 @@ import android.provider.Settings.SettingNotFoundException;
import android.util.Slog;
import android.view.IWindowManager;
import android.widget.CompoundButton;
import android.widget.ImageView;
import com.android.systemui.statusbar.policy.BatteryController.BatteryStateChangeCallback;
@@ -40,6 +41,7 @@ public class BrightnessController implements ToggleSlider.Listener {
private final int mMaximumBacklight;
private final Context mContext;
private final ImageView mIcon;
private final ToggleSlider mControl;
private final boolean mAutomaticAvailable;
private final IPowerManager mPower;
@@ -52,8 +54,9 @@ public class BrightnessController implements ToggleSlider.Listener {
public void onBrightnessLevelChanged();
}
public BrightnessController(Context context, ToggleSlider control) {
public BrightnessController(Context context, ImageView icon, ToggleSlider control) {
mContext = context;
mIcon = icon;
mControl = control;
mUserTracker = new CurrentUserTracker(mContext);
@@ -84,8 +87,10 @@ public class BrightnessController implements ToggleSlider.Listener {
automatic = 0;
}
control.setChecked(automatic != 0);
updateIcon(automatic != 0);
} else {
control.setChecked(false);
updateIcon(false /*automatic*/);
//control.hideToggle();
}
@@ -105,6 +110,7 @@ public class BrightnessController implements ToggleSlider.Listener {
public void onChanged(ToggleSlider view, boolean tracking, boolean automatic, int value) {
setMode(automatic ? Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC
: Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
updateIcon(automatic);
if (!automatic) {
final int val = value + mMinimumBacklight;
setBrightness(val);
@@ -136,4 +142,12 @@ public class BrightnessController implements ToggleSlider.Listener {
} catch (RemoteException ex) {
}
}
private void updateIcon(boolean automatic) {
if (mIcon != null) {
mIcon.setImageResource(automatic ?
com.android.systemui.R.drawable.ic_qs_brightness_auto_on :
com.android.systemui.R.drawable.ic_qs_brightness_auto_off);
}
}
}

View File

@@ -78,6 +78,7 @@ public class SettingsView extends LinearLayout implements View.OnClickListener {
});
mBrightness = new BrightnessController(context,
(ImageView)findViewById(R.id.brightness_icon),
(ToggleSlider)findViewById(R.id.brightness));
mDoNotDisturb = new DoNotDisturbController(context,
(CompoundButton)findViewById(R.id.do_not_disturb_checkbox));