diff --git a/packages/SystemUI/res/layout/quick_settings_brightness_dialog.xml b/packages/SystemUI/res/layout/quick_settings_brightness_dialog.xml
new file mode 100644
index 0000000000000..528121e919e57
--- /dev/null
+++ b/packages/SystemUI/res/layout/quick_settings_brightness_dialog.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
diff --git a/packages/SystemUI/res/values/strings.xml b/packages/SystemUI/res/values/strings.xml
index 2bcf951760b4d..8fb703fe65cb3 100644
--- a/packages/SystemUI/res/values/strings.xml
+++ b/packages/SystemUI/res/values/strings.xml
@@ -433,6 +433,10 @@
Wifi Display
No Wifi Display Connection
+
+ Brightness
+
+ AUTO
Scan
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java
index 746216741e85b..7056e03edefcc 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java
@@ -21,6 +21,7 @@ import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.CursorLoader;
+import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.Loader;
@@ -36,6 +37,7 @@ import android.provider.ContactsContract;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
@@ -47,8 +49,10 @@ import com.android.systemui.R;
import com.android.systemui.statusbar.phone.QuickSettingsModel.State;
import com.android.systemui.statusbar.policy.BatteryController;
import com.android.systemui.statusbar.policy.BluetoothController;
+import com.android.systemui.statusbar.policy.BrightnessController;
import com.android.systemui.statusbar.policy.LocationController;
import com.android.systemui.statusbar.policy.NetworkController;
+import com.android.systemui.statusbar.policy.ToggleSlider;
import java.util.ArrayList;
import java.util.Comparator;
@@ -67,6 +71,9 @@ class QuickSettings {
private DisplayManager mDisplayManager;
private WifiDisplayStatus mWifiDisplayStatus;
private WifiDisplayListAdapter mWifiDisplayListAdapter;
+
+ private BrightnessController mBrightnessController;
+ private Dialog mBrightnessDialog;
private CursorLoader mUserInfoLoader;
@@ -160,9 +167,9 @@ class QuickSettings {
startSettingsActivity(intent);
}
private void startSettingsActivity(Intent intent) {
- intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- mContext.startActivity(intent);
+ intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
mBar.collapseAllPanels(true);
+ mContext.startActivity(intent);
}
@@ -328,7 +335,9 @@ class QuickSettings {
brightnessTile.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- startSettingsActivity(android.provider.Settings.ACTION_DISPLAY_SETTINGS);
+ // startSettingsActivity(android.provider.Settings.ACTION_DISPLAY_SETTINGS);
+ mBar.collapseAllPanels(true);
+ showBrightnessDialog();
}
});
parent.addView(brightnessTile);
@@ -362,8 +371,8 @@ class QuickSettings {
wifiDisplayTile.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- showWifiDisplayDialog();
mBar.collapseAllPanels(true);
+ showWifiDisplayDialog();
}
});
mModel.addWifiDisplayTile(wifiDisplayTile, new QuickSettingsModel.RefreshCallback() {
@@ -404,6 +413,30 @@ class QuickSettings {
}
mContainerView.requestLayout();
}
+
+ private void showBrightnessDialog() {
+ if (mBrightnessDialog == null) {
+ mBrightnessDialog = new Dialog(mContext);
+ mBrightnessDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
+ mBrightnessDialog.setContentView(R.layout.quick_settings_brightness_dialog);
+ mBrightnessDialog.setCanceledOnTouchOutside(true);
+
+ mBrightnessController = new BrightnessController(mContext,
+ (ToggleSlider) mBrightnessDialog.findViewById(R.id.brightness_slider));
+ mBrightnessDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
+ @Override
+ public void onDismiss(DialogInterface dialog) {
+ mBrightnessController = null;
+ }
+ });
+
+ mBrightnessDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
+ mBrightnessDialog.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
+ }
+ if (!mBrightnessDialog.isShowing()) {
+ mBrightnessDialog.show();
+ }
+ }
// Wifi Display
private void showWifiDisplayDialog() {