summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/current.txt14
-rw-r--r--core/java/android/bluetooth/BluetoothAdapter.java19
-rw-r--r--core/java/android/bluetooth/BluetoothSocket.java9
-rw-r--r--core/java/android/bluetooth/IBluetooth.aidl2
-rw-r--r--core/java/android/net/LocalSocketImpl.java8
-rw-r--r--core/java/android/nfc/cardemulation/HostApduService.java2
-rw-r--r--core/java/android/nfc/cardemulation/OffHostApduService.java67
-rw-r--r--core/java/android/nfc/cardemulation/SeApduService.java111
-rw-r--r--core/java/android/provider/Settings.java7
-rw-r--r--core/java/android/service/notification/StatusBarNotification.java11
-rw-r--r--core/jni/android/print/android_print_pdf_PdfDocument.cpp1
-rw-r--r--core/res/res/values/attrs.xml39
-rw-r--r--core/res/res/values/public.xml2
-rw-r--r--services/java/com/android/server/BluetoothManagerService.java12
-rw-r--r--services/java/com/android/server/ConnectivityService.java32
-rw-r--r--services/java/com/android/server/wm/WindowManagerService.java10
16 files changed, 161 insertions, 185 deletions
diff --git a/api/current.txt b/api/current.txt
index 2eb6ece1d2fc..161634271095 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -331,6 +331,7 @@ package android {
field public static final int canRetrieveWindowContent = 16843653; // 0x1010385
field public static final int candidatesTextStyleSpans = 16843312; // 0x1010230
field public static final deprecated int capitalize = 16843113; // 0x1010169
+ field public static final int category = 16843749; // 0x10103e5
field public static final int centerBright = 16842956; // 0x10100cc
field public static final int centerColor = 16843275; // 0x101020b
field public static final int centerDark = 16842952; // 0x10100c8
@@ -794,7 +795,6 @@ package android {
field public static final int path = 16842794; // 0x101002a
field public static final int pathPattern = 16842796; // 0x101002c
field public static final int pathPrefix = 16842795; // 0x101002b
- field public static final int paymentService = 16843749; // 0x10103e5
field public static final int permission = 16842758; // 0x1010006
field public static final int permissionFlags = 16843719; // 0x10103c7
field public static final int permissionGroup = 16842762; // 0x101000a
@@ -14795,13 +14795,11 @@ package android.nfc.cardemulation {
field public static final java.lang.String SERVICE_META_DATA = "android.nfc.HostApduService";
}
- public abstract class SeApduService extends android.app.Service {
- ctor public SeApduService();
- method public abstract void onAidSelected(byte[]);
- method public final android.os.IBinder onBind(android.content.Intent);
- method public abstract void onHciTransactionEvent(byte[], byte[]);
- field public static final java.lang.String SERVICE_INTERFACE = "android.nfc.SeApduService";
- field public static final java.lang.String SERVICE_META_DATA = "android.nfc.SeApduService";
+ public abstract class OffHostApduService extends android.app.Service {
+ ctor public OffHostApduService();
+ method public abstract android.os.IBinder onBind(android.content.Intent);
+ field public static final java.lang.String SERVICE_INTERFACE = "android.nfc.OffHostApduService";
+ field public static final java.lang.String SERVICE_META_DATA = "android.nfc.OffHostApduService";
}
}
diff --git a/core/java/android/bluetooth/BluetoothAdapter.java b/core/java/android/bluetooth/BluetoothAdapter.java
index 72ecda1211e5..1ea13e102617 100644
--- a/core/java/android/bluetooth/BluetoothAdapter.java
+++ b/core/java/android/bluetooth/BluetoothAdapter.java
@@ -600,6 +600,25 @@ public final class BluetoothAdapter {
}
/**
+ * enable or disable Bluetooth HCI snoop log.
+ *
+ * <p>Requires the {@link android.Manifest.permission#BLUETOOTH_ADMIN}
+ * permission
+ *
+ * @return true to indicate configure HCI log successfully, or false on
+ * immediate error
+ * @hide
+ */
+ public boolean configHciSnoopLog(boolean enable) {
+ try {
+ synchronized(mManagerCallback) {
+ if (mService != null) return mService.configHciSnoopLog(enable);
+ }
+ } catch (RemoteException e) {Log.e(TAG, "", e);}
+ return false;
+ }
+
+ /**
* Get the UUIDs supported by the local Bluetooth adapter.
*
* <p>Requires {@link android.Manifest.permission#BLUETOOTH}
diff --git a/core/java/android/bluetooth/BluetoothSocket.java b/core/java/android/bluetooth/BluetoothSocket.java
index 5c534a1e8c1d..d10eaea2fba1 100644
--- a/core/java/android/bluetooth/BluetoothSocket.java
+++ b/core/java/android/bluetooth/BluetoothSocket.java
@@ -461,13 +461,8 @@ public final class BluetoothSocket implements Closeable {
mSocket.close();
mSocket = null;
}
- if(mPfd != null) {
- try {
- mPfd.detachFd();
- } catch (IllegalArgumentException e) {
- Log.w(TAG, "ignore IllegalArgumentException");
- }
- }
+ if(mPfd != null)
+ mPfd.detachFd();
}
}
}
diff --git a/core/java/android/bluetooth/IBluetooth.aidl b/core/java/android/bluetooth/IBluetooth.aidl
index 80806f97d48b..07db8cc9c18a 100644
--- a/core/java/android/bluetooth/IBluetooth.aidl
+++ b/core/java/android/bluetooth/IBluetooth.aidl
@@ -80,4 +80,6 @@ interface IBluetooth
// For Socket
ParcelFileDescriptor connectSocket(in BluetoothDevice device, int type, in ParcelUuid uuid, int port, int flag);
ParcelFileDescriptor createSocketChannel(int type, in String serviceName, in ParcelUuid uuid, int port, int flag);
+
+ boolean configHciSnoopLog(boolean enable);
}
diff --git a/core/java/android/net/LocalSocketImpl.java b/core/java/android/net/LocalSocketImpl.java
index fa3cf58f1899..b2ee50afc608 100644
--- a/core/java/android/net/LocalSocketImpl.java
+++ b/core/java/android/net/LocalSocketImpl.java
@@ -39,6 +39,8 @@ class LocalSocketImpl
/** null if closed or not yet created */
private FileDescriptor fd;
+ /** whether fd is created internally */
+ private boolean mFdCreatedInternally;
// These fields are accessed by native code;
/** file descriptor array received during a previous read */
@@ -247,6 +249,7 @@ class LocalSocketImpl
}
try {
fd = Libcore.os.socket(OsConstants.AF_UNIX, osType, 0);
+ mFdCreatedInternally = true;
} catch (ErrnoException e) {
e.rethrowAsIOException();
}
@@ -260,7 +263,10 @@ class LocalSocketImpl
*/
public void close() throws IOException {
synchronized (LocalSocketImpl.this) {
- if (fd == null) return;
+ if ((fd == null) || (mFdCreatedInternally == false)) {
+ fd = null;
+ return;
+ }
try {
Libcore.os.close(fd);
} catch (ErrnoException e) {
diff --git a/core/java/android/nfc/cardemulation/HostApduService.java b/core/java/android/nfc/cardemulation/HostApduService.java
index e52c0c34c733..0624dc2123ef 100644
--- a/core/java/android/nfc/cardemulation/HostApduService.java
+++ b/core/java/android/nfc/cardemulation/HostApduService.java
@@ -28,7 +28,7 @@ import android.util.Log;
* &lt;meta-data android:name="android.nfc.HostApduService" android:resource="@xml/apduservice.xml"/&gt;
* &lt;/service&gt;</pre>
* <p>For more details refer to {@link #SERVICE_META_DATA},
- * <code>&lt;{@link android.R.styleable#ApduService apdu-service}&gt;</code> and
+ * <code>&lt;{@link android.R.styleable#HostApduService host-apdu-service}&gt;</code> and
* <code>&lt;{@link android.R.styleable#AidFilter aid-filter}&gt;</code>.
* <p class="note">The Android platform currently only supports a single
* logical channel.
diff --git a/core/java/android/nfc/cardemulation/OffHostApduService.java b/core/java/android/nfc/cardemulation/OffHostApduService.java
new file mode 100644
index 000000000000..56bb93ee29b8
--- /dev/null
+++ b/core/java/android/nfc/cardemulation/OffHostApduService.java
@@ -0,0 +1,67 @@
+package android.nfc.cardemulation;
+
+import android.annotation.SdkConstant;
+import android.annotation.SdkConstant.SdkConstantType;
+import android.app.Service;
+import android.content.Intent;
+import android.os.IBinder;
+
+/**
+ * <p>A convenience class that can be extended to implement
+ * a service that registers ISO7814-4 AIDs that reside off-host,
+ * for example on an embedded secure element or UICC.
+ *
+ * <p>This registration will allow the service to be included
+ * as an option for handling these AIDs on non-host execution
+ * environments. The Operating System will take care of correctly
+ * routing the AIDs, based on which service the user has selected
+ * to be the handler for an AID.
+ *
+ * <p>The service may define additional actions outside of the
+ * Android namespace that provide further interaction with
+ * the off-host execution environment.
+ *
+ * <p>To tell the platform which ISO7816 application ID (AIDs)
+ * are present and handled by the app containing this service,
+ * a {@link #SERVICE_META_DATA} entry must be included in the declaration
+ * of the service. An example of such a service declaration is shown below:
+ * <pre> &lt;service android:name=".MyOffHostApduService"&gt;
+ * &lt;intent-filter&gt;
+ * &lt;action android:name="android.nfc.OffHostApduService"/&gt;
+ * &lt;/intent-filter&gt;
+ * &lt;meta-data android:name="android.nfc.OffHostApduService" android:resource="@xml/apduservice.xml"/&gt;
+ * &lt;/service&gt;</pre>
+ * <p>For more details refer to {@link #SERVICE_META_DATA},
+ * <code>&lt;{@link android.R.styleable#OffHostApduService offhost-apdu-service}&gt;</code> and
+ * <code>&lt;{@link android.R.styleable#AidFilter aid-filter}&gt;</code>.
+ */
+public abstract class OffHostApduService extends Service {
+ /**
+ * The {@link Intent} that must be declared as handled by the service.
+ */
+ @SdkConstant(SdkConstantType.SERVICE_ACTION)
+ public static final String SERVICE_INTERFACE =
+ "android.nfc.OffHostApduService";
+
+ /**
+ * The name of the meta-data element that contains
+ * more information about this service.
+ */
+ public static final String SERVICE_META_DATA = "android.nfc.OffHostApduService";
+
+ /**
+ * The Android platform itself will not bind to this service,
+ * but merely uses its declaration to keep track of what AIDs
+ * the service is interested in. This information is then used
+ * to present the user with a list of applications that can handle
+ * an AID, as well as correctly route those AIDs either to the host (in case
+ * the user preferred a {@link HostApduService}), or to an off-host
+ * execution environment (in case the user preferred a {@link OffHostApduService}.
+ *
+ * Implementers may define additional actions outside of the
+ * Android namespace that allow further interactions with
+ * the off-host execution environment. Such implementations
+ * would need to override this method.
+ */
+ public abstract IBinder onBind(Intent intent);
+} \ No newline at end of file
diff --git a/core/java/android/nfc/cardemulation/SeApduService.java b/core/java/android/nfc/cardemulation/SeApduService.java
deleted file mode 100644
index 78f831248f8b..000000000000
--- a/core/java/android/nfc/cardemulation/SeApduService.java
+++ /dev/null
@@ -1,111 +0,0 @@
-package android.nfc.cardemulation;
-
-import android.annotation.SdkConstant;
-import android.annotation.SdkConstant.SdkConstantType;
-import android.app.Service;
-import android.content.Intent;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.IBinder;
-import android.os.Message;
-import android.os.Messenger;
-
-/**
- * <p>A convenience class that can be extended to implement
- * a service that registers and deals with events for
- * ISO7814-4 AIDs that reside on an embedded secure element
- * or UICC.
- *
- * <p>To tell the platform which ISO7816 application ID (AIDs)
- * are present on the Secure Element and handled by this service,
- * a {@link #SERVICE_META_DATA} entry must be included in the declaration
- * of the service. An example of such a service declaration is shown below:
- * <pre> &lt;service android:name=".MySeApduService"&gt;
- * &lt;intent-filter&gt;
- * &lt;action android:name="android.nfc.SeApduService"/&gt;
- * &lt;/intent-filter&gt;
- * &lt;meta-data android:name="android.nfc.SeApduService" android:resource="@xml/apduservice.xml"/&gt;
- * &lt;/service&gt;</pre>
- * <p>For more details refer to {@link #SERVICE_META_DATA},
- * <code>&lt;{@link android.R.styleable#ApduService apdu-service}&gt;</code> and
- * <code>&lt;{@link android.R.styleable#AidFilter aid-filter}&gt;</code>.
- */
-public abstract class SeApduService extends Service {
- /**
- * The {@link Intent} that must be declared as handled by the service.
- */
- @SdkConstant(SdkConstantType.SERVICE_ACTION)
- public static final String SERVICE_INTERFACE =
- "android.nfc.SeApduService";
-
- /**
- * The name of the meta-data element that contains
- * more information about this service.
- */
- public static final String SERVICE_META_DATA = "android.nfc.SeApduService";
-
- /**
- * @hide
- */
- public static final int MSG_AID_SELECTED = 0;
-
- /**
- * @hide
- */
- public static final int MSG_HCI_TRANSACTION_EVT = 1;
-
- /**
- * @hide
- */
- public static final String KEY_AID = "aid";
-
- /**
- * @hide
- */
- public static final String KEY_PARAMETERS = "parameters";
-
- final Messenger mMessenger = new Messenger(new MsgHandler());
-
- final class MsgHandler extends Handler {
- @Override
- public void handleMessage(Message msg) {
- switch (msg.what){
- case MSG_AID_SELECTED: {
- Bundle dataBundle = msg.getData();
- byte[] aid = dataBundle.getByteArray(KEY_AID);
- onAidSelected(aid);
- break;
- }
- case MSG_HCI_TRANSACTION_EVT: {
- Bundle dataBundle = msg.getData();
- byte[] aid = dataBundle.getByteArray(KEY_AID);
- byte[] parameters = dataBundle.getByteArray(KEY_PARAMETERS);
- onHciTransactionEvent(aid, parameters);
- break;
- }
- }
- }
- };
-
- @Override
- public final IBinder onBind(Intent intent) {
- return mMessenger.getBinder();
- }
-
- /**
- * This method is called when an AID that has been registered
- * in the manifest of this service has been selected on a
- * eSE/UICC.
- * @param aid The AID that has been selected
- */
- public abstract void onAidSelected(byte[] aid);
-
- /**
- * This method is called when a HCI transaction event has
- * been received for an AID that has been registered
- * in the manifest of this service.
- * @param aid The AID of the application that generated the event
- * @param parameters Parameters according to ETSI-TS 102 622
- */
- public abstract void onHciTransactionEvent(byte[] aid, byte[] parameters);
-} \ No newline at end of file
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index ed9f2189fc31..d20a798a3971 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -3192,6 +3192,13 @@ public final class Settings {
"input_method_selector_visibility";
/**
+ * bluetooth HCI snoop log configuration
+ * @hide
+ */
+ public static final String BLUETOOTH_HCI_LOG =
+ "bluetooth_hci_log";
+
+ /**
* @deprecated Use {@link android.provider.Settings.Global#DEVICE_PROVISIONED} instead
*/
@Deprecated
diff --git a/core/java/android/service/notification/StatusBarNotification.java b/core/java/android/service/notification/StatusBarNotification.java
index 19f8678a427a..b5b9e1429891 100644
--- a/core/java/android/service/notification/StatusBarNotification.java
+++ b/core/java/android/service/notification/StatusBarNotification.java
@@ -33,23 +33,12 @@ public class StatusBarNotification implements Parcelable {
private final int uid;
private final String basePkg;
private final int initialPid;
- // TODO: make this field private and move callers to an accessor that
- // ensures sourceUser is applied.
-
private final Notification notification;
private final UserHandle user;
private final long postTime;
private final int score;
- /** This is temporarily needed for the JB MR1 PDK.
- * @hide */
- @Deprecated
- public StatusBarNotification(String pkg, int id, String tag, int uid, int initialPid, int score,
- Notification notification) {
- this(pkg, id, tag, uid, initialPid, score, notification, UserHandle.OWNER);
- }
-
/** @hide */
public StatusBarNotification(String pkg, int id, String tag, int uid, int initialPid, int score,
Notification notification, UserHandle user) {
diff --git a/core/jni/android/print/android_print_pdf_PdfDocument.cpp b/core/jni/android/print/android_print_pdf_PdfDocument.cpp
index 745fe8aa0b79..3daad5c5acc6 100644
--- a/core/jni/android/print/android_print_pdf_PdfDocument.cpp
+++ b/core/jni/android/print/android_print_pdf_PdfDocument.cpp
@@ -24,6 +24,7 @@
#include "SkRect.h"
#include "SkSize.h"
#include "CreateJavaOutputStreamAdaptor.h"
+#include "JNIHelp.h"
namespace android {
diff --git a/core/res/res/values/attrs.xml b/core/res/res/values/attrs.xml
index 6a8381f00ace..15edacd7f41f 100644
--- a/core/res/res/values/attrs.xml
+++ b/core/res/res/values/attrs.xml
@@ -2578,29 +2578,36 @@
<attr name="vendor" format="string"/>
</declare-styleable>
- <!-- Use <code>apdu-service</code> as the root tag of the XML resource that
- describes an {@link android.nfc.cardemulation.HostApduService} or
- {@link android.nfc.cardemulation.SeApduService} service, which is referenced
- from its SERVICE_META_DATA entry. -->
- <declare-styleable name="ApduService">
- <!-- Set to true to let the NFC subsystem know that this service implements
- a payment instrument. That will allow this service to be enumerated in
- a list of payment services, where the user can pick his preferred payment
- service. The preferred service will be bound to persistently, to make sure
- it can immediately process APDUs without service startup delay. This is vital
- for existing payment infrastructure that has very strict timing requirements. -->
- <attr name="paymentService" format="boolean" />
- <!-- Short description of the functionality the serivce implements.-->
+ <!-- Use <code>host-apdu-service</code> as the root tag of the XML resource that
+ describes an {@link android.nfc.cardemulation.HostApduService} service, which
+ is referenced from its {@link android.nfc.cardemulation.HostApduService#SERVICE_META_DATA}
+ entry. -->
+ <declare-styleable name="HostApduService">
+ <!-- Short description of the functionality the service implements. This attribute
+ is mandatory.-->
+ <attr name="description" />
+ </declare-styleable>
+
+ <!-- Use <code>offhost-apdu-service</code> as the root tag of the XML resource that
+ describes an {@link android.nfc.cardemulation.OffHostApduService}
+ service, which is referenced from its
+ {@link android.nfc.cardemulation.OffHostApduService#SERVICE_META_DATA} entry. -->
+ <declare-styleable name="OffHostApduService">
+ <!-- Short description of the functionality the service implements. This attribute
+ is mandatory.-->
<attr name="description" />
</declare-styleable>
- <!-- Specify one or more <code>aid-filter</code> elements inside a <code>apdu-service</code>
+ <!-- Specify one or more <code>aid-filter</code> elements inside a
+ <code>host-apdu-service</code> or <code>offhost-apdu-service</code>
element to list the ISO7816 Application ID (AIDs) your service can handle.-->
<declare-styleable name="AidFilter">
- <!-- The ISO7816 Application ID -->
+ <!-- The ISO7816 Application ID. This attribute is mandatory. -->
<attr name="name" />
- <!-- Short description of what the AID implements.-->
+ <!-- Short description of what the AID implements. This attribute is mandatory.-->
<attr name="description" />
+ <!-- Category. This attribute is optional.-->
+ <attr name="category" format="string" />
</declare-styleable>
<declare-styleable name="ActionMenuItemView">
diff --git a/core/res/res/values/public.xml b/core/res/res/values/public.xml
index 7de27058fbff..4a04d3e1898c 100644
--- a/core/res/res/values/public.xml
+++ b/core/res/res/values/public.xml
@@ -2068,5 +2068,5 @@
<public type="attr" name="sspPattern" />
<public type="attr" name="addPrintersActivity" />
<public type="attr" name="vendor" />
- <public type="attr" name="paymentService" />
+ <public type="attr" name="category" />
</resources>
diff --git a/services/java/com/android/server/BluetoothManagerService.java b/services/java/com/android/server/BluetoothManagerService.java
index f0164cbd0139..a5cf36285648 100644
--- a/services/java/com/android/server/BluetoothManagerService.java
+++ b/services/java/com/android/server/BluetoothManagerService.java
@@ -788,11 +788,21 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
} // else must be SERVICE_IBLUETOOTH
//Remove timeout
- mHandler.removeMessages(MESSAGE_TIMEOUT_BIND);
+ mHandler.removeMessages(MESSAGE_TIMEOUT_BIND);
mBinding = false;
mBluetooth = IBluetooth.Stub.asInterface(service);
+ try {
+ boolean enableHciSnoopLog = (Settings.Secure.getInt(mContentResolver,
+ Settings.Secure.BLUETOOTH_HCI_LOG, 0) == 1);
+ if (!mBluetooth.configHciSnoopLog(enableHciSnoopLog)) {
+ Log.e(TAG,"IBluetooth.configHciSnoopLog return false");
+ }
+ } catch (RemoteException e) {
+ Log.e(TAG,"Unable to call configHciSnoopLog", e);
+ }
+
if (mConnection.isGetNameAddressOnly()) {
//Request GET NAME AND ADDRESS
Message getMsg = mHandler.obtainMessage(MESSAGE_GET_NAME_AND_ADDRESS);
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java
index f5e75f978f09..b341693245b6 100644
--- a/services/java/com/android/server/ConnectivityService.java
+++ b/services/java/com/android/server/ConnectivityService.java
@@ -235,7 +235,6 @@ public class ConnectivityService extends IConnectivityManager.Stub {
private Object mDnsLock = new Object();
private int mNumDnsEntries;
- private boolean mDnsOverridden = false;
private boolean mTestMode;
private static ConnectivityService sServiceInstance;
@@ -310,28 +309,22 @@ public class ConnectivityService extends IConnectivityManager.Stub {
private static final int EVENT_SET_DEPENDENCY_MET = 10;
/**
- * used internally to restore DNS properties back to the
- * default network
- */
- private static final int EVENT_RESTORE_DNS = 11;
-
- /**
* used internally to send a sticky broadcast delayed.
*/
- private static final int EVENT_SEND_STICKY_BROADCAST_INTENT = 12;
+ private static final int EVENT_SEND_STICKY_BROADCAST_INTENT = 11;
/**
* Used internally to
* {@link NetworkStateTracker#setPolicyDataEnable(boolean)}.
*/
- private static final int EVENT_SET_POLICY_DATA_ENABLE = 13;
+ private static final int EVENT_SET_POLICY_DATA_ENABLE = 12;
- private static final int EVENT_VPN_STATE_CHANGED = 14;
+ private static final int EVENT_VPN_STATE_CHANGED = 13;
/**
* Used internally to disable fail fast of mobile data
*/
- private static final int EVENT_ENABLE_FAIL_FAST_MOBILE_DATA = 15;
+ private static final int EVENT_ENABLE_FAIL_FAST_MOBILE_DATA = 14;
/** Handler used for internal events. */
private InternalHandler mHandler;
@@ -2661,9 +2654,7 @@ public class ConnectivityService extends IConnectivityManager.Stub {
if (mNetConfigs[netType].isDefault()) {
String network = nt.getNetworkInfo().getTypeName();
synchronized (mDnsLock) {
- if (!mDnsOverridden) {
- updateDnsLocked(network, p.getInterfaceName(), dnses, p.getDomains(), true);
- }
+ updateDnsLocked(network, p.getInterfaceName(), dnses, p.getDomains(), true);
}
} else {
try {
@@ -2916,13 +2907,6 @@ public class ConnectivityService extends IConnectivityManager.Stub {
handleSetDependencyMet(msg.arg2, met);
break;
}
- case EVENT_RESTORE_DNS:
- {
- if (mActiveDefaultNetwork != -1) {
- handleDnsConfigurationChange(mActiveDefaultNetwork);
- }
- break;
- }
case EVENT_SEND_STICKY_BROADCAST_INTENT:
{
Intent intent = (Intent)msg.obj;
@@ -3562,12 +3546,6 @@ public class ConnectivityService extends IConnectivityManager.Stub {
}
public void restore() {
- synchronized (mDnsLock) {
- if (mDnsOverridden) {
- mDnsOverridden = false;
- mHandler.sendEmptyMessage(EVENT_RESTORE_DNS);
- }
- }
synchronized (mProxyLock) {
mDefaultProxyDisabled = false;
if (mGlobalProxy == null && mDefaultProxy != null) {
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/java/com/android/server/wm/WindowManagerService.java
index f763068d980a..9a5026d0ebc2 100644
--- a/services/java/com/android/server/wm/WindowManagerService.java
+++ b/services/java/com/android/server/wm/WindowManagerService.java
@@ -6950,11 +6950,19 @@ public class WindowManagerService extends IWindowManager.Stub
synchronized(mWindowMap) {
final DisplayContent displayContent = getDefaultDisplayContentLocked();
readForcedDisplaySizeAndDensityLocked(displayContent);
-
mDisplayReady = true;
+ }
+
+ try {
+ mActivityManager.updateConfiguration(null);
+ } catch (RemoteException e) {
+ }
+
+ synchronized(mWindowMap) {
mIsTouchDevice = mContext.getPackageManager().hasSystemFeature(
PackageManager.FEATURE_TOUCHSCREEN);
+ final DisplayContent displayContent = getDefaultDisplayContentLocked();
mPolicy.setInitialDisplaySize(displayContent.getDisplay(),
displayContent.mInitialDisplayWidth,
displayContent.mInitialDisplayHeight,