Merge "Fixing various QS issues. (Bug 7217102)" into jb-mr1-dev
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.6 KiB |
@@ -21,5 +21,4 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:gravity="center"
|
||||
android:text="@string/quick_settings_airplane_mode_label"
|
||||
/>
|
||||
@@ -21,5 +21,4 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:gravity="center"
|
||||
android:text="@string/quick_settings_bluetooth_label"
|
||||
/>
|
||||
@@ -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"
|
||||
/>
|
||||
@@ -21,5 +21,4 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:gravity="center"
|
||||
android:text="@string/quick_settings_rotation_unlocked_label"
|
||||
/>
|
||||
@@ -16,10 +16,10 @@
|
||||
<TextView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
style="@style/TextAppearance.QuickSettings.TileView"
|
||||
android:id="@+id/settings_tileview"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:gravity="center"
|
||||
android:drawableTop="@drawable/ic_qs_settings"
|
||||
android:text="@string/quick_settings_settings_label"
|
||||
/>
|
||||
@@ -18,6 +18,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
<ImageView
|
||||
android:id="@+id/user_imageview"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:src="@drawable/ic_qs_default_user"
|
||||
|
||||
21
packages/SystemUI/res/values-sw380dp/dimens.xml
Normal file
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
* Copyright (c) 2012, The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
-->
|
||||
<resources>
|
||||
<!-- The fixed height of each tile -->
|
||||
<dimen name="quick_settings_cell_height">124dp</dimen>
|
||||
</resources>
|
||||
@@ -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<Cursor> 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) {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||