diff options
8 files changed, 48 insertions, 15 deletions
diff --git a/packages/SystemUI/res/layout/quick_settings_brightness_dialog.xml b/packages/SystemUI/res/layout/quick_settings_brightness_dialog.xml index b7df51d3777b..1efda8c54065 100644 --- a/packages/SystemUI/res/layout/quick_settings_brightness_dialog.xml +++ b/packages/SystemUI/res/layout/quick_settings_brightness_dialog.xml @@ -29,7 +29,7 @@ <com.android.systemui.settings.ToggleSlider android:id="@+id/brightness_slider" android:layout_width="0dp" - android:layout_height="40dp" + android:layout_height="44dp" android:layout_gravity="center_vertical" android:layout_weight="1" systemui:text="@string/status_bar_settings_auto_brightness_label" /> diff --git a/packages/SystemUI/res/layout/status_bar_expanded_header.xml b/packages/SystemUI/res/layout/status_bar_expanded_header.xml index 18cb11f9071b..89fa988bc8a5 100644 --- a/packages/SystemUI/res/layout/status_bar_expanded_header.xml +++ b/packages/SystemUI/res/layout/status_bar_expanded_header.xml @@ -98,6 +98,12 @@ android:layout_marginEnd="4dp" /> + <include + layout="@layout/quick_settings_brightness_dialog" + android:id="@+id/brightness_container" + android:layout_width="match_parent" + /> + <TextView android:id="@+id/header_debug_info" android:visibility="invisible" diff --git a/packages/SystemUI/res/values/styles.xml b/packages/SystemUI/res/values/styles.xml index ebd2daadf6e1..acf1f114eb4c 100644 --- a/packages/SystemUI/res/values/styles.xml +++ b/packages/SystemUI/res/values/styles.xml @@ -136,6 +136,7 @@ <item name="android:layout_width">match_parent</item> <item name="android:layout_height">wrap_content</item> <item name="android:padding">16dp</item> + <item name="android:layout_alignParentBottom">true</item> </style> <style name="BrightnessDialogContainer" parent="@style/BaseBrightnessDialogContainer" /> diff --git a/packages/SystemUI/src/com/android/systemui/settings/BrightnessController.java b/packages/SystemUI/src/com/android/systemui/settings/BrightnessController.java index 327e7158ee14..1747e6e53985 100644 --- a/packages/SystemUI/src/com/android/systemui/settings/BrightnessController.java +++ b/packages/SystemUI/src/com/android/systemui/settings/BrightnessController.java @@ -119,7 +119,6 @@ public class BrightnessController implements ToggleSlider.Listener { } }; mBrightnessObserver = new BrightnessObserver(mHandler); - mBrightnessObserver.startObserving(); PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE); mMinimumBacklight = pm.getMinimumScreenBrightnessSetting(); @@ -128,13 +127,6 @@ public class BrightnessController implements ToggleSlider.Listener { mAutomaticAvailable = context.getResources().getBoolean( com.android.internal.R.bool.config_automatic_brightness_available); mPower = IPowerManager.Stub.asInterface(ServiceManager.getService("power")); - - // Update the slider and mode before attaching the listener so we don't receive the - // onChanged notifications for the initial values. - updateMode(); - updateSlider(); - - control.setOnChangedListener(this); } public void addStateChangedCallback(BrightnessStateChangeCallback cb) { @@ -150,11 +142,24 @@ public class BrightnessController implements ToggleSlider.Listener { // Do nothing } + public void registerCallbacks() { + mBrightnessObserver.startObserving(); + mUserTracker.startTracking(); + + // Update the slider and mode before attaching the listener so we don't receive the + // onChanged notifications for the initial values. + updateMode(); + updateSlider(); + + mControl.setOnChangedListener(this); + } + /** Unregister all call backs, both to and from the controller */ public void unregisterCallbacks() { mBrightnessObserver.stopObserving(); mChangeCallbacks.clear(); mUserTracker.stopTracking(); + mControl.setOnChangedListener(null); } public void onChanged(ToggleSlider view, boolean tracking, boolean automatic, int value) { diff --git a/packages/SystemUI/src/com/android/systemui/settings/BrightnessDialog.java b/packages/SystemUI/src/com/android/systemui/settings/BrightnessDialog.java index bd5e5e8dffc8..27881c4f7d06 100644 --- a/packages/SystemUI/src/com/android/systemui/settings/BrightnessDialog.java +++ b/packages/SystemUI/src/com/android/systemui/settings/BrightnessDialog.java @@ -92,6 +92,7 @@ public class BrightnessDialog extends Dialog implements mBrightnessController = new BrightnessController(getContext(), (ImageView) findViewById(R.id.brightness_icon), (ToggleSlider) findViewById(R.id.brightness_slider)); + mBrightnessController.registerCallbacks(); dismissBrightnessDialog(mBrightnessDialogLongTimeout); mBrightnessController.addStateChangedCallback(this); } diff --git a/packages/SystemUI/src/com/android/systemui/settings/CurrentUserTracker.java b/packages/SystemUI/src/com/android/systemui/settings/CurrentUserTracker.java index 036bd4ff3dc9..f8ff616599cf 100644 --- a/packages/SystemUI/src/com/android/systemui/settings/CurrentUserTracker.java +++ b/packages/SystemUI/src/com/android/systemui/settings/CurrentUserTracker.java @@ -29,9 +29,6 @@ public abstract class CurrentUserTracker extends BroadcastReceiver { private int mCurrentUserId; public CurrentUserTracker(Context context) { - IntentFilter filter = new IntentFilter(Intent.ACTION_USER_SWITCHED); - context.registerReceiver(this, filter); - mCurrentUserId = ActivityManager.getCurrentUser(); mContext = context; } @@ -50,6 +47,12 @@ public abstract class CurrentUserTracker extends BroadcastReceiver { } } + public void startTracking() { + mCurrentUserId = ActivityManager.getCurrentUser(); + IntentFilter filter = new IntentFilter(Intent.ACTION_USER_SWITCHED); + mContext.registerReceiver(this, filter); + } + public void stopTracking() { mContext.unregisterReceiver(this); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java index e1ef83a9e754..005b0d14dcf3 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java @@ -460,6 +460,7 @@ class QuickSettingsModel implements BluetoothStateChangeCallback, rebindMediaRouterAsCurrentUser(); } }; + mUserTracker.startTracking(); mNextAlarmObserver = new NextAlarmObserver(mHandler); mNextAlarmObserver.startObserving(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java index 4512953c3f8c..2b78a15d6afb 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarHeaderView.java @@ -16,18 +16,18 @@ package com.android.systemui.statusbar.phone; -import android.app.ActivityManagerNative; import android.content.Context; import android.content.Intent; -import android.os.RemoteException; -import android.os.UserHandle; import android.util.AttributeSet; import android.view.View; import android.view.ViewGroup; +import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; import com.android.systemui.R; +import com.android.systemui.settings.BrightnessController; +import com.android.systemui.settings.ToggleSlider; import com.android.systemui.statusbar.policy.UserInfoController; /** @@ -47,6 +47,7 @@ public class StatusBarHeaderView extends RelativeLayout implements View.OnClickL private View mStatusIcons; private View mSignalCluster; private View mSettingsButton; + private View mBrightnessContainer; private int mCollapsedHeight; private int mExpandedHeight; @@ -56,6 +57,7 @@ public class StatusBarHeaderView extends RelativeLayout implements View.OnClickL private int mNormalWidth; private ActivityStarter mActivityStarter; + private BrightnessController mBrightnessController; public StatusBarHeaderView(Context context, AttributeSet attrs) { super(context, attrs); @@ -72,6 +74,10 @@ public class StatusBarHeaderView extends RelativeLayout implements View.OnClickL mDate = findViewById(R.id.date); mSettingsButton = findViewById(R.id.settings_button); mSettingsButton.setOnClickListener(this); + mBrightnessContainer = findViewById(R.id.brightness_container); + mBrightnessController = new BrightnessController(getContext(), + (ImageView) findViewById(R.id.brightness_icon), + (ToggleSlider) findViewById(R.id.brightness_slider)); loadDimens(); } @@ -103,6 +109,7 @@ public class StatusBarHeaderView extends RelativeLayout implements View.OnClickL updateHeights(); updateVisibilities(); updateSystemIconsLayoutParams(); + updateBrightnessControllerState(); } } @@ -148,6 +155,7 @@ public class StatusBarHeaderView extends RelativeLayout implements View.OnClickL mKeyguardCarrierText.setVisibility(mKeyguardShowing ? View.VISIBLE : View.GONE); mDate.setVisibility(mExpanded ? View.VISIBLE : View.GONE); mSettingsButton.setVisibility(mExpanded ? View.VISIBLE : View.GONE); + mBrightnessContainer.setVisibility(mExpanded ? View.VISIBLE : View.GONE); if (mStatusIcons != null) { mStatusIcons.setVisibility(!mExpanded ? View.VISIBLE : View.GONE); } @@ -163,6 +171,14 @@ public class StatusBarHeaderView extends RelativeLayout implements View.OnClickL : mMultiUserSwitch.getId()); } + private void updateBrightnessControllerState() { + if (mExpanded) { + mBrightnessController.registerCallbacks(); + } else { + mBrightnessController.unregisterCallbacks(); + } + } + public void setExpansion(float height) { if (height < mCollapsedHeight) { height = mCollapsedHeight; |