am b1c07444: Implement intermediate brigthness control on header.

* commit 'b1c074442571c278421f3424d991124af1abf252':
  Implement intermediate brigthness control on header.
This commit is contained in:
Jorim Jaggi
2014-05-12 13:15:49 +00:00
committed by Android Git Automerger
8 changed files with 48 additions and 15 deletions

View File

@@ -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" />

View File

@@ -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"

View File

@@ -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" />

View File

@@ -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) {

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -460,6 +460,7 @@ class QuickSettingsModel implements BluetoothStateChangeCallback,
rebindMediaRouterAsCurrentUser();
}
};
mUserTracker.startTracking();
mNextAlarmObserver = new NextAlarmObserver(mHandler);
mNextAlarmObserver.startObserving();

View File

@@ -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;