Merge "Preserve window sizes when rebatching alarms" into klp-dev
diff --git a/core/java/android/bluetooth/BluetoothDevice.java b/core/java/android/bluetooth/BluetoothDevice.java
index 5822e46..d789a944 100644
--- a/core/java/android/bluetooth/BluetoothDevice.java
+++ b/core/java/android/bluetooth/BluetoothDevice.java
@@ -322,7 +322,7 @@
/**
* Broadcast Action: This intent is used to broadcast PAIRING REQUEST
- * <p>Requires {@link android.Manifest.permission#BLUETOOTH_PRIVILEGED} to
+ * <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN} to
* receive.
*/
@SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
@@ -465,7 +465,7 @@
/**
* The user will be prompted to enter a pin or
- * a privileged app will enter a pin for user.
+ * an app will enter a pin for user.
*/
public static final int PAIRING_VARIANT_PIN = 0;
@@ -477,7 +477,7 @@
/**
* The user will be prompted to confirm the passkey displayed on the screen or
- * a privileged app will confirm the passkey for the user.
+ * an app will confirm the passkey for the user.
*/
public static final int PAIRING_VARIANT_PASSKEY_CONFIRMATION = 2;
@@ -725,7 +725,7 @@
* the bonding process completes, and its result.
* <p>Android system services will handle the necessary user interactions
* to confirm and complete the bonding process.
- * <p>Requires {@link android.Manifest.permission#BLUETOOTH_PRIVILEGED}.
+ * <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}.
*
* @return false on immediate error, true if bonding will begin
*/
@@ -965,7 +965,7 @@
/**
* Set the pin during pairing when the pairing method is {@link #PAIRING_VARIANT_PIN}
- * <p>Requires {@link android.Manifest.permission#BLUETOOTH_PRIVILEGED}.
+ * <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}.
*
* @return true pin has been set
* false for error
@@ -993,7 +993,7 @@
/**
* Confirm passkey for {@link #PAIRING_VARIANT_PASSKEY_CONFIRMATION} pairing.
- * <p>Requires {@link android.Manifest.permission#BLUETOOTH_PRIVILEGED}.
+ * <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}.
*
* @return true confirmation has been sent out
* false for error
diff --git a/packages/Keyguard/res/layout-land/keyguard_host_view.xml b/packages/Keyguard/res/layout-land/keyguard_host_view.xml
index eeb9ee7..9f1c1f0 100644
--- a/packages/Keyguard/res/layout-land/keyguard_host_view.xml
+++ b/packages/Keyguard/res/layout-land/keyguard_host_view.xml
@@ -60,6 +60,8 @@
android:id="@+id/keyguard_security_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:clipChildren="false"
+ android:clipToPadding="false"
androidprv:layout_childType="challenge"
androidprv:layout_centerWithinArea="0.55">
<com.android.keyguard.KeyguardSecurityViewFlipper
diff --git a/packages/Keyguard/res/layout-port/keyguard_host_view.xml b/packages/Keyguard/res/layout-port/keyguard_host_view.xml
index 8498dcf..136b296 100644
--- a/packages/Keyguard/res/layout-port/keyguard_host_view.xml
+++ b/packages/Keyguard/res/layout-port/keyguard_host_view.xml
@@ -31,7 +31,8 @@
<com.android.keyguard.SlidingChallengeLayout
android:id="@+id/sliding_layout"
android:layout_width="match_parent"
- android:layout_height="match_parent">
+ android:layout_height="match_parent"
+ android:clipChildren="false">
<FrameLayout
android:layout_width="match_parent"
@@ -64,6 +65,8 @@
android:id="@+id/keyguard_security_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:clipChildren="false"
+ android:clipToPadding="false"
androidprv:layout_maxHeight="@dimen/keyguard_security_height"
androidprv:layout_childType="challenge"
android:padding="0dp"
diff --git a/packages/Keyguard/res/layout-sw600dp-port/keyguard_host_view.xml b/packages/Keyguard/res/layout-sw600dp-port/keyguard_host_view.xml
index 77bc9b5..85f6b6d 100644
--- a/packages/Keyguard/res/layout-sw600dp-port/keyguard_host_view.xml
+++ b/packages/Keyguard/res/layout-sw600dp-port/keyguard_host_view.xml
@@ -61,6 +61,8 @@
android:id="@+id/keyguard_security_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:clipChildren="false"
+ android:clipToPadding="false"
androidprv:layout_centerWithinArea="0.5"
androidprv:layout_childType="challenge"
android:layout_gravity="center_horizontal|bottom">
diff --git a/packages/Keyguard/src/com/android/keyguard/KeyguardTransportControlView.java b/packages/Keyguard/src/com/android/keyguard/KeyguardTransportControlView.java
index a7af6a4..2e35439 100644
--- a/packages/Keyguard/src/com/android/keyguard/KeyguardTransportControlView.java
+++ b/packages/Keyguard/src/com/android/keyguard/KeyguardTransportControlView.java
@@ -65,7 +65,7 @@
protected static final boolean DEBUG = false;
protected static final String TAG = "TransportControlView";
- private static final boolean ANIMATE_TRANSITIONS = true;
+ private static final boolean ANIMATE_TRANSITIONS = false;
private ViewGroup mMetadataContainer;
private ViewGroup mInfoContainer;
@@ -134,6 +134,7 @@
private final Runnable mUpdateSeekBars = new Runnable() {
public void run() {
if (updateSeekBars()) {
+ removeCallbacks(this);
postDelayed(this, 1000);
}
}
@@ -249,7 +250,6 @@
}
if (enabled) {
mUpdateSeekBars.run();
- postDelayed(mUpdateSeekBars, 1000);
} else {
removeCallbacks(mUpdateSeekBars);
}
@@ -437,8 +437,7 @@
setSeekBarsEnabled(false);
}
- KeyguardUpdateMonitor.getInstance(getContext()).dispatchSetBackground(
- mMetadata.bitmap);
+ KeyguardUpdateMonitor.getInstance(getContext()).dispatchSetBackground(mMetadata.bitmap);
final int flags = mTransportControlFlags;
setVisibilityBasedOnFlag(mBtnPrev, flags, RemoteControlClient.FLAG_KEY_MEDIA_PREVIOUS);
setVisibilityBasedOnFlag(mBtnNext, flags, RemoteControlClient.FLAG_KEY_MEDIA_NEXT);
@@ -539,7 +538,7 @@
imageResId = R.drawable.ic_media_pause;
imageDescId = R.string.keyguard_transport_pause_description;
if (mSeekEnabled) {
- postDelayed(mUpdateSeekBars, 1000);
+ mUpdateSeekBars.run();
}
break;
@@ -567,6 +566,7 @@
boolean updateSeekBars() {
final int position = (int) mRemoteController.getEstimatedMediaPosition();
if (position >= 0) {
+ if (DEBUG) Log.v(TAG, "Seek to " + position);
if (!mUserSeeking) {
mTransientSeekBar.setProgress(position);
}
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 2026102..15d655c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java
@@ -280,7 +280,7 @@
mUserTracker = new CurrentUserTracker(mContext) {
public void onUserSwitched(int newUserId) {
mBrightnessObserver.startObserving();
- onRotationLockChanged();
+ refreshRotationLockTile();
onBrightnessLevelChanged();
onNextAlarmChanged();
onBugreportChanged();
diff --git a/services/java/com/android/server/wifi/WifiService.java b/services/java/com/android/server/wifi/WifiService.java
index 86c68f3..d471b57 100644
--- a/services/java/com/android/server/wifi/WifiService.java
+++ b/services/java/com/android/server/wifi/WifiService.java
@@ -35,6 +35,7 @@
import android.net.wifi.BatchedScanResult;
import android.net.wifi.BatchedScanSettings;
import android.net.wifi.WifiConfiguration;
+import android.net.wifi.WifiConfiguration.ProxySettings;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.net.wifi.WifiStateMachine;
@@ -175,8 +176,19 @@
WifiConfiguration config = (WifiConfiguration) msg.obj;
int networkId = msg.arg1;
if (config != null && config.isValid()) {
- if (DBG) Slog.d(TAG, "Connect with config" + config);
- mWifiStateMachine.sendMessage(Message.obtain(msg));
+ // This is restricted because there is no UI for the user to
+ // monitor/control PAC.
+ if (config.proxySettings != ProxySettings.PAC) {
+ if (DBG) Slog.d(TAG, "Connect with config" + config);
+ mWifiStateMachine.sendMessage(Message.obtain(msg));
+ } else {
+ Slog.e(TAG, "ClientHandler.handleMessage cannot process msg with PAC");
+ if (msg.what == WifiManager.CONNECT_NETWORK) {
+ replyFailed(msg, WifiManager.CONNECT_NETWORK_FAILED);
+ } else {
+ replyFailed(msg, WifiManager.SAVE_NETWORK_FAILED);
+ }
+ }
} else if (config == null
&& networkId != WifiConfiguration.INVALID_NETWORK_ID) {
if (DBG) Slog.d(TAG, "Connect with networkId" + networkId);
@@ -685,6 +697,9 @@
*/
public int addOrUpdateNetwork(WifiConfiguration config) {
enforceChangePermission();
+ if (config.proxySettings == ProxySettings.PAC) {
+ enforceConnectivityInternalPermission();
+ }
if (config.isValid()) {
if (mWifiStateMachineChannel != null) {
return mWifiStateMachine.syncAddOrUpdateNetwork(mWifiStateMachineChannel, config);
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java
index cfb10a0..55d2e5d 100644
--- a/services/java/com/android/server/wm/WindowManagerService.java
+++ b/services/java/com/android/server/wm/WindowManagerService.java
@@ -8407,6 +8407,20 @@
&& !mWallpaperTarget.mWinAnimator.isDummyAnimation()
? null : mWallpaperTarget;
+ // If there is a wallpaper target and the target is neither opening nor closing, then
+ // there exists an app on top of the wallpaper target that has a translucent
+ // background.
+ // If the pending transition is an exit, we should add the wallpaper target to the list
+ // of opening apps so that the translucent app on top of it will animate correctly.
+ final AppWindowToken wallpaperTargetAppToken =
+ mWallpaperTarget != null ? mWallpaperTarget.mAppToken : null;
+ if (wallpaperTargetAppToken != null
+ && !mClosingApps.contains(wallpaperTargetAppToken)
+ && !mOpeningApps.contains(wallpaperTargetAppToken)
+ && (transit & AppTransition.TRANSIT_EXIT_MASK) != 0) {
+ mOpeningApps.add(wallpaperTargetAppToken);
+ NN++;
+ }
mInnerFields.mWallpaperMayChange = false;
// The top-most window will supply the layout params,
diff --git a/telephony/java/com/android/internal/telephony/CallerInfo.java b/telephony/java/com/android/internal/telephony/CallerInfo.java
index e3c664b..f6143ed 100644
--- a/telephony/java/com/android/internal/telephony/CallerInfo.java
+++ b/telephony/java/com/android/internal/telephony/CallerInfo.java
@@ -581,6 +581,10 @@
return countryIso;
}
+ protected static String getCurrentCountryIso(Context context) {
+ return getCurrentCountryIso(context, Locale.getDefault());
+ }
+
/**
* @return a string debug representation of this instance.
*/
diff --git a/telephony/java/com/android/internal/telephony/CallerInfoAsyncQuery.java b/telephony/java/com/android/internal/telephony/CallerInfoAsyncQuery.java
index dd5f644..c63be91 100644
--- a/telephony/java/com/android/internal/telephony/CallerInfoAsyncQuery.java
+++ b/telephony/java/com/android/internal/telephony/CallerInfoAsyncQuery.java
@@ -20,7 +20,6 @@
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
-import android.location.CountryDetector;
import android.net.Uri;
import android.os.Handler;
import android.os.Looper;
@@ -271,11 +270,9 @@
// Use the number entered by the user for display.
if (!TextUtils.isEmpty(cw.number)) {
- CountryDetector detector = (CountryDetector) mQueryContext.getSystemService(
- Context.COUNTRY_DETECTOR);
mCallerInfo.phoneNumber = PhoneNumberUtils.formatNumber(cw.number,
mCallerInfo.normalizedNumber,
- detector.detectCountry().getCountryIso());
+ CallerInfo.getCurrentCountryIso(mQueryContext));
}
}