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