diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java
index 54a2273bf076f..b3ab3857374ef 100755
--- a/core/java/android/provider/ContactsContract.java
+++ b/core/java/android/provider/ContactsContract.java
@@ -37,6 +37,7 @@ import android.graphics.Rect;
import android.net.Uri;
import android.os.Bundle;
import android.os.RemoteException;
+import android.os.UserHandle;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.util.Pair;
@@ -7744,7 +7745,7 @@ public final class ContactsContract {
intent.setSourceBounds(target);
intent.putExtra(EXTRA_MODE, mode);
intent.putExtra(EXTRA_EXCLUDE_MIMES, excludeMimes);
- context.startActivity(intent);
+ context.startActivityAsUser(intent, new UserHandle(UserHandle.USER_CURRENT));
}
}
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_off.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_off.png
index d5650a76bfe95..7c6ca7534d817 100644
Binary files a/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_off.png and b/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_off.png differ
diff --git a/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_on.png b/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_on.png
index 7d6fed5bbd14f..ff0ba07cde09b 100644
Binary files a/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_on.png and b/packages/SystemUI/res/drawable-hdpi/ic_qs_bluetooth_on.png differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_off.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_off.png
index 19e4e409e1be1..61eff946df08e 100644
Binary files a/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_off.png and b/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_off.png differ
diff --git a/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_on.png b/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_on.png
index ec30791f39c95..b480a80bc638d 100644
Binary files a/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_on.png and b/packages/SystemUI/res/drawable-mdpi/ic_qs_bluetooth_on.png differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_off.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_off.png
index 65a873dd5b3d8..b4d9175a7a764 100644
Binary files a/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_off.png and b/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_off.png differ
diff --git a/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_on.png b/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_on.png
index 7ac301548e2b4..598d9676cb6bd 100644
Binary files a/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_on.png and b/packages/SystemUI/res/drawable-xhdpi/ic_qs_bluetooth_on.png differ
diff --git a/packages/SystemUI/res/layout/quick_settings_tile_airplane.xml b/packages/SystemUI/res/layout/quick_settings_tile_airplane.xml
index 6ae10d5db8926..ac87496c12f04 100644
--- a/packages/SystemUI/res/layout/quick_settings_tile_airplane.xml
+++ b/packages/SystemUI/res/layout/quick_settings_tile_airplane.xml
@@ -21,5 +21,4 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
- android:text="@string/quick_settings_airplane_mode_label"
/>
\ No newline at end of file
diff --git a/packages/SystemUI/res/layout/quick_settings_tile_bluetooth.xml b/packages/SystemUI/res/layout/quick_settings_tile_bluetooth.xml
index 565055c594e1f..2f3a9c6fe722d 100644
--- a/packages/SystemUI/res/layout/quick_settings_tile_bluetooth.xml
+++ b/packages/SystemUI/res/layout/quick_settings_tile_bluetooth.xml
@@ -21,5 +21,4 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
- android:text="@string/quick_settings_bluetooth_label"
/>
\ No newline at end of file
diff --git a/packages/SystemUI/res/layout/quick_settings_tile_brightness.xml b/packages/SystemUI/res/layout/quick_settings_tile_brightness.xml
index ac872e63e2f40..5b3ce1f6f8620 100644
--- a/packages/SystemUI/res/layout/quick_settings_tile_brightness.xml
+++ b/packages/SystemUI/res/layout/quick_settings_tile_brightness.xml
@@ -22,5 +22,4 @@
android:layout_gravity="center"
android:gravity="center"
android:drawableTop="@drawable/ic_qs_brightness_auto_off"
- android:text="@string/quick_settings_brightness_label"
/>
\ No newline at end of file
diff --git a/packages/SystemUI/res/layout/quick_settings_tile_rotation_lock.xml b/packages/SystemUI/res/layout/quick_settings_tile_rotation_lock.xml
index 4dbf6a0163562..6aecaea1380dc 100644
--- a/packages/SystemUI/res/layout/quick_settings_tile_rotation_lock.xml
+++ b/packages/SystemUI/res/layout/quick_settings_tile_rotation_lock.xml
@@ -21,5 +21,4 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
- android:text="@string/quick_settings_rotation_unlocked_label"
/>
\ No newline at end of file
diff --git a/packages/SystemUI/res/layout/quick_settings_tile_settings.xml b/packages/SystemUI/res/layout/quick_settings_tile_settings.xml
index 7026ebc6e90a5..d155935b09cbb 100644
--- a/packages/SystemUI/res/layout/quick_settings_tile_settings.xml
+++ b/packages/SystemUI/res/layout/quick_settings_tile_settings.xml
@@ -16,10 +16,10 @@
\ No newline at end of file
diff --git a/packages/SystemUI/res/layout/quick_settings_tile_user.xml b/packages/SystemUI/res/layout/quick_settings_tile_user.xml
index 08e8e20fdc76a..1732f6d289dc1 100644
--- a/packages/SystemUI/res/layout/quick_settings_tile_user.xml
+++ b/packages/SystemUI/res/layout/quick_settings_tile_user.xml
@@ -18,6 +18,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
+
+
+
+ 124dp
+
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 7077018af8377..1ee1c41980a41 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettings.java
@@ -31,6 +31,7 @@ import android.content.IntentFilter;
import android.content.Loader;
import android.content.res.Resources;
import android.database.Cursor;
+import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LevelListDrawable;
import android.hardware.display.DisplayManager;
@@ -40,6 +41,7 @@ import android.os.Handler;
import android.os.RemoteException;
import android.os.SystemProperties;
import android.os.UserHandle;
+import android.os.UserManager;
import android.provider.ContactsContract;
import android.provider.Settings;
import android.view.LayoutInflater;
@@ -160,6 +162,8 @@ class QuickSettings {
}
private void queryForUserInformation() {
+ System.out.println("queryForUserInformation");
+
Uri userContactUri = Uri.withAppendedPath(
ContactsContract.Profile.CONTENT_URI,
ContactsContract.Contacts.Data.CONTENT_DIRECTORY);
@@ -184,9 +188,11 @@ class QuickSettings {
@Override
public void onLoadComplete(Loader loader,
Cursor cursor) {
+ UserManager userManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
if (cursor != null && cursor.moveToFirst()) {
String name = cursor.getString(0); // DISPLAY_NAME
- mModel.setUserTileInfo(name, null);
+ BitmapDrawable d = new BitmapDrawable(userManager.getUserIcon(userManager.getUserHandle()));
+ mModel.setUserTileInfo(name, d);
/*
byte[] photoData = cursor.getBlob(0);
Bitmap b =
@@ -248,10 +254,11 @@ class QuickSettings {
@Override
public void refreshView(QuickSettingsTileView view, State state) {
UserState us = (UserState) state;
+ ImageView iv = (ImageView) view.findViewById(R.id.user_imageview);
TextView tv = (TextView) view.findViewById(R.id.user_textview);
tv.setText(state.label);
if (us.avatar != null) {
- tv.setCompoundDrawables(null, us.avatar, null, null);
+ iv.setImageDrawable(us.avatar);
}
}
});
@@ -290,6 +297,13 @@ class QuickSettings {
startSettingsActivity(android.provider.Settings.ACTION_SETTINGS);
}
});
+ mModel.addSettingsTile(settingsTile, new QuickSettingsModel.RefreshCallback() {
+ @Override
+ public void refreshView(QuickSettingsTileView view, State state) {
+ TextView tv = (TextView) view.findViewById(R.id.settings_tileview);
+ tv.setText(state.label);
+ }
+ });
parent.addView(settingsTile);
mDynamicSpannedTiles.add(settingsTile);
}
@@ -418,6 +432,7 @@ class QuickSettings {
public void refreshView(QuickSettingsTileView view, State state) {
TextView tv = (TextView) view.findViewById(R.id.airplane_mode_textview);
tv.setCompoundDrawablesWithIntrinsicBounds(0, state.iconId, 0, 0);
+ tv.setText(state.label);
}
});
parent.addView(airplaneTile);
@@ -476,6 +491,7 @@ class QuickSettings {
public void refreshView(QuickSettingsTileView view, State state) {
TextView tv = (TextView) view.findViewById(R.id.brightness_textview);
tv.setCompoundDrawablesWithIntrinsicBounds(0, state.iconId, 0, 0);
+ tv.setText(state.label);
dismissBrightnessDialog(mBrightnessDialogShortTimeout);
}
});
@@ -614,6 +630,9 @@ class QuickSettings {
void updateResources() {
Resources r = mContext.getResources();
+ // Update the model
+ mModel.updateResources();
+
// Update the User, Time, and Settings tiles spans, and reset everything else
int span = r.getInteger(R.integer.quick_settings_user_time_settings_tile_span);
for (QuickSettingsTileView v : mDynamicSpannedTiles) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java
index 04633bfe5e138..a4caabe4d1575 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java
@@ -188,6 +188,10 @@ class QuickSettingsModel implements BluetoothStateChangeCallback,
private RefreshCallback mBugreportCallback;
private State mBugreportState = new State();
+ private QuickSettingsTileView mSettingsTile;
+ private RefreshCallback mSettingsCallback;
+ private State mSettingsState = new State();
+
public QuickSettingsModel(Context context) {
mContext = context;
mHandler = new Handler();
@@ -201,6 +205,26 @@ class QuickSettingsModel implements BluetoothStateChangeCallback,
context.registerReceiver(mAlarmIntentReceiver, alarmIntentFilter);
}
+ void updateResources() {
+ refreshSettingsTile();
+ refreshBatteryTile();
+ refreshBluetoothTile();
+ refreshBrightnessTile();
+ refreshRotationLockTile();
+ }
+
+ // Settings
+ void addSettingsTile(QuickSettingsTileView view, RefreshCallback cb) {
+ mSettingsTile = view;
+ mSettingsCallback = cb;
+ refreshSettingsTile();
+ }
+ void refreshSettingsTile() {
+ Resources r = mContext.getResources();
+ mSettingsState.label = r.getString(R.string.quick_settings_settings_label);
+ mSettingsCallback.refreshView(mSettingsTile, mSettingsState);
+ }
+
// User
void addUserTile(QuickSettingsTileView view, RefreshCallback cb) {
mUserTile = view;
@@ -250,7 +274,9 @@ class QuickSettingsModel implements BluetoothStateChangeCallback,
}
});
mAirplaneModeCallback = cb;
- mAirplaneModeCallback.refreshView(mAirplaneModeTile, mAirplaneModeState);
+ int airplaneMode = Settings.Global.getInt(mContext.getContentResolver(),
+ Settings.Global.AIRPLANE_MODE_ON, 0);
+ onAirplaneModeChanged(airplaneMode != 0);
}
private void setAirplaneModeState(boolean enabled) {
// TODO: Sets the view to be "awaiting" if not already awaiting
@@ -273,6 +299,7 @@ class QuickSettingsModel implements BluetoothStateChangeCallback,
mAirplaneModeState.iconId = (enabled ?
R.drawable.ic_qs_airplane_on :
R.drawable.ic_qs_airplane_off);
+ mAirplaneModeState.label = r.getString(R.string.quick_settings_airplane_mode_label);
mAirplaneModeCallback.refreshView(mAirplaneModeTile, mAirplaneModeState);
}
@@ -307,7 +334,7 @@ class QuickSettingsModel implements BluetoothStateChangeCallback,
Resources r = mContext.getResources();
mWifiState.enabled = enabled;
boolean wifiConnected = enabled && (wifiSignalIconId > 0) && (enabledDesc != null);
- boolean wifiNotConnected = enabled && (enabledDesc == null);
+ boolean wifiNotConnected = (wifiSignalIconId > 0) && (enabledDesc == null);
if (wifiConnected) {
mWifiState.iconId = wifiSignalIconId;
mWifiState.label = removeDoubleQuotes(enabledDesc);
@@ -377,6 +404,11 @@ class QuickSettingsModel implements BluetoothStateChangeCallback,
}
mBluetoothCallback.refreshView(mBluetoothTile, mBluetoothState);
}
+ void refreshBluetoothTile() {
+ if (mBluetoothTile != null) {
+ onBluetoothStateChange(mBluetoothState.enabled);
+ }
+ }
// Battery
void addBatteryTile(QuickSettingsTileView view, RefreshCallback cb) {
@@ -391,6 +423,9 @@ class QuickSettingsModel implements BluetoothStateChangeCallback,
mBatteryState.pluggedIn = pluggedIn;
mBatteryCallback.refreshView(mBatteryTile, mBatteryState);
}
+ void refreshBatteryTile() {
+ mBatteryCallback.refreshView(mBatteryTile, mBatteryState);
+ }
// Location
void addLocationTile(QuickSettingsTileView view, RefreshCallback cb) {
@@ -544,6 +579,11 @@ class QuickSettingsModel implements BluetoothStateChangeCallback,
mRotationLockCallback.refreshView(mRotationLockTile, mRotationLockState);
}
}
+ void refreshRotationLockTile() {
+ if (mRotationLockTile != null) {
+ onRotationLockChanged();
+ }
+ }
// Brightness
void addBrightnessTile(QuickSettingsTileView view, RefreshCallback cb) {
@@ -553,6 +593,7 @@ class QuickSettingsModel implements BluetoothStateChangeCallback,
}
@Override
public void onBrightnessLevelChanged() {
+ Resources r = mContext.getResources();
int mode = Settings.System.getInt(mContext.getContentResolver(),
Settings.System.SCREEN_BRIGHTNESS_MODE,
Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL);
@@ -561,7 +602,11 @@ class QuickSettingsModel implements BluetoothStateChangeCallback,
mBrightnessState.iconId = mBrightnessState.autoBrightness
? R.drawable.ic_qs_brightness_auto_on
: R.drawable.ic_qs_brightness_auto_off;
+ mBrightnessState.label = r.getString(R.string.quick_settings_brightness_label);
mBrightnessCallback.refreshView(mBrightnessTile, mBrightnessState);
}
+ void refreshBrightnessTile() {
+ onBrightnessLevelChanged();
+ }
}
\ No newline at end of file