am b1c07444: Implement intermediate brigthness control on header.
* commit 'b1c074442571c278421f3424d991124af1abf252': Implement intermediate brigthness control on header.
This commit is contained in:
@@ -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" />
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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" />
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -460,6 +460,7 @@ class QuickSettingsModel implements BluetoothStateChangeCallback,
|
||||
rebindMediaRouterAsCurrentUser();
|
||||
}
|
||||
};
|
||||
mUserTracker.startTracking();
|
||||
|
||||
mNextAlarmObserver = new NextAlarmObserver(mHandler);
|
||||
mNextAlarmObserver.startObserving();
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user