Skip to content

Commit 3ed6f94

Browse files
author
Winson Chung
committed
Showing QuickContacts card, adding brightness bar timeout and width, fixing wifi display icon visibility. (Bug 7186309, Bug 7175023)
Change-Id: Iea717e97bf90301bef68b06e1a35644e24ab029d
1 parent 4187f92 commit 3ed6f94

File tree

9 files changed

+112
-24
lines changed

9 files changed

+112
-24
lines changed

packages/SystemUI/res/layout/quick_settings.xml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,6 @@
2929
android:id="@+id/quick_settings_container"
3030
android:layout_width="match_parent"
3131
android:layout_height="wrap_content"
32-
android:paddingBottom="@dimen/quick_settings_container_padding"
33-
android:paddingLeft="@dimen/quick_settings_container_padding"
34-
android:paddingRight="@dimen/quick_settings_container_padding"
3532
android:animateLayoutChanges="true"
3633
android:columnCount="@integer/quick_settings_num_columns"
3734
/>

packages/SystemUI/res/layout/quick_settings_brightness_dialog.xml

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,13 @@
1717
<LinearLayout
1818
xmlns:android="http://schemas.android.com/apk/res/android"
1919
xmlns:systemui="http://schemas.android.com/apk/res/com.android.systemui"
20-
android:layout_width="wrap_content"
21-
android:layout_height="wrap_content"
22-
android:padding="16dp">
20+
style="@style/BrightnessDialogContainer">
2321

2422
<ImageView
2523
android:id="@+id/brightness_icon"
26-
style="@style/SystemBarPanelSettingsIcon"
2724
android:layout_gravity="center_vertical"
2825
android:paddingRight="10dp"
29-
android:src="@drawable/ic_sysbar_brightness"
26+
android:src="@drawable/ic_qs_brightness_auto_off"
3027
/>
3128
<com.android.systemui.statusbar.policy.ToggleSlider
3229
android:id="@+id/brightness_slider"
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- Copyright (C) 2006 The Android Open Source Project
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
-->
16+
17+
<resources xmlns:android="http://schemas.android.com/apk/res/android">
18+
<style name="BrightnessDialogContainer" parent="@style/BaseBrightnessDialogContainer">
19+
<item name="android:layout_width">360dp</item>
20+
</style>
21+
</resources>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!-- Copyright (C) 2006 The Android Open Source Project
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
-->
16+
17+
<resources xmlns:android="http://schemas.android.com/apk/res/android">
18+
<style name="BrightnessDialogContainer" parent="@style/BaseBrightnessDialogContainer">
19+
<item name="android:layout_width">560dp</item>
20+
</style>
21+
</resources>

packages/SystemUI/res/values/config.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,5 +90,9 @@
9090

9191
<!-- Whether rotation lock shows up in quick settings or not -->
9292
<bool name="quick_settings_show_rotation_lock">false</bool>
93+
94+
<!-- Timeouts for brightness dialog to disappear -->
95+
<integer name="quick_settings_brightness_dialog_short_timeout">2000</integer>
96+
<integer name="quick_settings_brightness_dialog_long_timeout">4000</integer>
9397
</resources>
9498

packages/SystemUI/res/values/dimens.xml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -175,9 +175,6 @@
175175
<!-- The distance you can pull a notificaiton before it pops open -->
176176
<dimen name="one_finger_pop_limit">32dp</dimen>
177177

178-
<!-- The amount of padding around the QuickSettings tiles -->
179-
<dimen name="quick_settings_container_padding">12dp</dimen>
180-
181178
<!-- The fixed height of each tile -->
182179
<dimen name="quick_settings_cell_height">110dp</dimen>
183180

packages/SystemUI/res/values/styles.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,15 @@
100100
<item name="android:textColor">#ff3a3b39</item>
101101
</style>
102102

103+
<style name="BaseBrightnessDialogContainer">
104+
<item name="android:layout_width">match_parent</item>
105+
<item name="android:layout_height">wrap_content</item>
106+
<item name="android:layout_marginLeft">8dp</item>
107+
<item name="android:layout_marginRight">8dp</item>
108+
<item name="android:padding">16dp</item>
109+
</style>
110+
<style name="BrightnessDialogContainer" parent="@style/BaseBrightnessDialogContainer" />
111+
103112
<style name="Animation" />
104113

105114
<style name="Animation.ShirtPocketPanel">

packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java

Lines changed: 54 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@
1919
import android.app.AlertDialog;
2020
import android.app.Dialog;
2121
import android.app.PendingIntent;
22-
import android.app.AlertDialog.Builder;
23-
import android.bluetooth.BluetoothDevice;
2422
import android.content.BroadcastReceiver;
2523
import android.content.ComponentName;
2624
import android.content.Context;
@@ -33,13 +31,11 @@
3331
import android.content.res.Resources;
3432
import android.database.Cursor;
3533
import android.graphics.drawable.Drawable;
36-
import android.graphics.drawable.LayerDrawable;
3734
import android.graphics.drawable.LevelListDrawable;
3835
import android.hardware.display.DisplayManager;
39-
import android.hardware.display.WifiDisplay;
4036
import android.hardware.display.WifiDisplayStatus;
4137
import android.net.Uri;
42-
import android.os.Debug;
38+
import android.os.Handler;
4339
import android.os.SystemProperties;
4440
import android.provider.ContactsContract;
4541
import android.provider.Settings;
@@ -48,16 +44,11 @@
4844
import android.view.ViewGroup;
4945
import android.view.Window;
5046
import android.view.WindowManager;
51-
import android.widget.AdapterView;
52-
import android.widget.ArrayAdapter;
53-
import android.widget.Button;
5447
import android.widget.ImageView;
55-
import android.widget.ListView;
5648
import android.widget.TextView;
5749

5850
import com.android.internal.view.RotationPolicy;
5951
import com.android.systemui.R;
60-
import com.android.systemui.statusbar.phone.QuickSettingsModel.BrightnessState;
6152
import com.android.systemui.statusbar.phone.QuickSettingsModel.RSSIState;
6253
import com.android.systemui.statusbar.phone.QuickSettingsModel.State;
6354
import com.android.systemui.statusbar.phone.QuickSettingsModel.UserState;
@@ -69,8 +60,6 @@
6960
import com.android.systemui.statusbar.policy.ToggleSlider;
7061

7162
import java.util.ArrayList;
72-
import java.util.Comparator;
73-
import java.util.Set;
7463

7564

7665
/**
@@ -88,13 +77,18 @@ class QuickSettings {
8877

8978
private BrightnessController mBrightnessController;
9079
private BluetoothController mBluetoothController;
80+
9181
private Dialog mBrightnessDialog;
82+
private int mBrightnessDialogShortTimeout;
83+
private int mBrightnessDialogLongTimeout;
9284

9385
private CursorLoader mUserInfoLoader;
9486

9587
private LevelListDrawable mBatteryLevels;
9688
private LevelListDrawable mChargingBatteryLevels;
9789

90+
private Handler mHandler;
91+
9892
// The set of QuickSettingsTiles that have dynamic spans (and need to be updated on
9993
// configuration change)
10094
private final ArrayList<QuickSettingsTileView> mDynamicSpannedTiles =
@@ -114,11 +108,16 @@ public QuickSettings(Context context, QuickSettingsContainerView container) {
114108
mContainerView = container;
115109
mModel = new QuickSettingsModel(context);
116110
mWifiDisplayStatus = new WifiDisplayStatus();
111+
mHandler = new Handler();
117112

118113
Resources r = mContext.getResources();
119114
mBatteryLevels = (LevelListDrawable) r.getDrawable(R.drawable.qs_sys_battery);
120115
mChargingBatteryLevels =
121116
(LevelListDrawable) r.getDrawable(R.drawable.qs_sys_battery_charging);
117+
mBrightnessDialogLongTimeout =
118+
r.getInteger(R.integer.quick_settings_brightness_dialog_long_timeout);
119+
mBrightnessDialogShortTimeout =
120+
r.getInteger(R.integer.quick_settings_brightness_dialog_short_timeout);
122121

123122
IntentFilter filter = new IntentFilter();
124123
filter.addAction(DisplayManager.ACTION_WIFI_DISPLAY_STATUS_CHANGED);
@@ -213,6 +212,15 @@ private void addUserTiles(ViewGroup parent, LayoutInflater inflater) {
213212
QuickSettingsTileView userTile = (QuickSettingsTileView)
214213
inflater.inflate(R.layout.quick_settings_tile, parent, false);
215214
userTile.setContent(R.layout.quick_settings_tile_user, inflater);
215+
userTile.setOnClickListener(new View.OnClickListener() {
216+
@Override
217+
public void onClick(View v) {
218+
mBar.collapseAllPanels(true);
219+
ContactsContract.QuickContact.showQuickContact(mContext, v,
220+
ContactsContract.Profile.CONTENT_URI,
221+
ContactsContract.QuickContact.MODE_LARGE, null);
222+
}
223+
});
216224
mModel.addUserTile(userTile, new QuickSettingsModel.RefreshCallback() {
217225
@Override
218226
public void refreshView(QuickSettingsTileView view, State state) {
@@ -452,6 +460,7 @@ public void onClick(View v) {
452460
public void refreshView(QuickSettingsTileView view, State state) {
453461
TextView tv = (TextView) view.findViewById(R.id.brightness_textview);
454462
tv.setCompoundDrawablesWithIntrinsicBounds(0, state.iconId, 0, 0);
463+
dismissBrightnessDialog(mBrightnessDialogShortTimeout);
455464
}
456465
});
457466
parent.addView(brightnessTile);
@@ -570,8 +579,34 @@ void updateResources() {
570579
v.setColumnSpan(span);
571580
}
572581
mContainerView.requestLayout();
582+
583+
// Reset the dialog
584+
boolean isBrightnessDialogVisible = false;
585+
if (mBrightnessDialog != null) {
586+
removeAllBrightnessDialogCallbacks();
587+
588+
isBrightnessDialogVisible = mBrightnessDialog.isShowing();
589+
mBrightnessDialog.dismiss();
590+
}
591+
mBrightnessDialog = null;
592+
if (isBrightnessDialogVisible) {
593+
showBrightnessDialog();
594+
}
573595
}
574596

597+
private void removeAllBrightnessDialogCallbacks() {
598+
mHandler.removeCallbacks(mDismissBrightnessDialogRunnable);
599+
}
600+
601+
private Runnable mDismissBrightnessDialogRunnable = new Runnable() {
602+
public void run() {
603+
if (mBrightnessDialog != null && mBrightnessDialog.isShowing()) {
604+
mBrightnessDialog.dismiss();
605+
}
606+
removeAllBrightnessDialogCallbacks();
607+
};
608+
};
609+
575610
private void showBrightnessDialog() {
576611
if (mBrightnessDialog == null) {
577612
mBrightnessDialog = new Dialog(mContext);
@@ -594,6 +629,13 @@ public void onDismiss(DialogInterface dialog) {
594629
}
595630
if (!mBrightnessDialog.isShowing()) {
596631
mBrightnessDialog.show();
632+
dismissBrightnessDialog(mBrightnessDialogLongTimeout);
633+
}
634+
}
635+
636+
private void dismissBrightnessDialog(int timeout) {
637+
if (mBrightnessDialog != null) {
638+
mHandler.postDelayed(mDismissBrightnessDialogRunnable, timeout);
597639
}
598640
}
599641

packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,7 @@ void addWifiDisplayTile(QuickSettingsTileView view, RefreshCallback cb) {
391391
}
392392
public void onWifiDisplayStateChanged(WifiDisplayStatus status) {
393393
mWifiDisplayState.enabled =
394-
(status.getFeatureState() != WifiDisplayStatus.FEATURE_STATE_UNAVAILABLE);
394+
(status.getFeatureState() == WifiDisplayStatus.FEATURE_STATE_ON);
395395
if (status.getActiveDisplay() != null) {
396396
mWifiDisplayState.label = status.getActiveDisplay().getFriendlyDisplayName();
397397
} else {

0 commit comments

Comments
 (0)