diff options
| -rw-r--r-- | api/current.txt | 1 | ||||
| -rw-r--r-- | api/system-current.txt | 1 | ||||
| -rw-r--r-- | core/java/android/provider/ContactsContract.java | 8 | ||||
| -rw-r--r-- | core/java/android/provider/Settings.java | 1 | ||||
| -rw-r--r-- | core/java/com/android/internal/os/BatteryStatsImpl.java | 16 | ||||
| -rw-r--r-- | core/java/com/android/internal/view/menu/MenuPopupHelper.java | 45 | ||||
| -rw-r--r-- | packages/DocumentsUI/AndroidManifest.xml | 2 | ||||
| -rw-r--r-- | packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java | 19 | ||||
| -rw-r--r-- | preloaded-classes | 5 |
9 files changed, 83 insertions, 15 deletions
diff --git a/api/current.txt b/api/current.txt index a98f19fa5ae0..24cddd6fb98c 100644 --- a/api/current.txt +++ b/api/current.txt @@ -25796,6 +25796,7 @@ package android.provider { field public static final android.net.Uri CONTENT_URI; field public static final java.lang.String CONTENT_VCARD_TYPE = "text/x-vcard"; field public static final android.net.Uri CONTENT_VCARD_URI; + field public static final android.net.Uri CORP_CONTENT_FILTER_URI; field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX"; field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS"; field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES"; diff --git a/api/system-current.txt b/api/system-current.txt index d873925d4584..00d5745669de 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -27779,6 +27779,7 @@ package android.provider { field public static final android.net.Uri CONTENT_URI; field public static final java.lang.String CONTENT_VCARD_TYPE = "text/x-vcard"; field public static final android.net.Uri CONTENT_VCARD_URI; + field public static final android.net.Uri CORP_CONTENT_FILTER_URI; field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX = "android.provider.extra.ADDRESS_BOOK_INDEX"; field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_COUNTS = "android.provider.extra.ADDRESS_BOOK_INDEX_COUNTS"; field public static final java.lang.String EXTRA_ADDRESS_BOOK_INDEX_TITLES = "android.provider.extra.ADDRESS_BOOK_INDEX_TITLES"; diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java index 11ed5626d48b..b860bfb49f38 100644 --- a/core/java/android/provider/ContactsContract.java +++ b/core/java/android/provider/ContactsContract.java @@ -1640,6 +1640,14 @@ public final class ContactsContract { CONTENT_URI, "filter"); /** + * It supports the same semantics as {@link #CONTENT_FILTER_URI} and returns the same + * columns. If there is a corp profile linked to the current profile, it will query corp + * profile, otherwise it will return null. + */ + public static final Uri CORP_CONTENT_FILTER_URI = Uri.withAppendedPath( + CORP_CONTENT_URI, "filter"); + + /** * The content:// style URI for this table joined with useful data from * {@link ContactsContract.Data}, filtered to include only starred contacts * and the most frequently contacted contacts. diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java index 9034cc936941..f560f8ad7b15 100644 --- a/core/java/android/provider/Settings.java +++ b/core/java/android/provider/Settings.java @@ -7758,6 +7758,7 @@ public final class Settings { AUTO_TIME_ZONE, POWER_SOUNDS_ENABLED, DOCK_SOUNDS_ENABLED, + CHARGING_SOUNDS_ENABLED, USB_MASS_STORAGE_ENABLED, ENABLE_ACCESSIBILITY_GLOBAL_GESTURE_ENABLED, WIFI_NETWORKS_AVAILABLE_NOTIFICATION_ON, diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java index f73df005c7f1..9391c6038fbc 100644 --- a/core/java/com/android/internal/os/BatteryStatsImpl.java +++ b/core/java/com/android/internal/os/BatteryStatsImpl.java @@ -105,7 +105,7 @@ public final class BatteryStatsImpl extends BatteryStats { private static final int MAGIC = 0xBA757475; // 'BATSTATS' // Current on-disk Parcel version - private static final int VERSION = 135 + (USE_OLD_HISTORY ? 1000 : 0); + private static final int VERSION = 136 + (USE_OLD_HISTORY ? 1000 : 0); // Maximum number of items we will record in the history. private static final int MAX_HISTORY_ITEMS = 2000; @@ -1975,8 +1975,14 @@ public final class BatteryStatsImpl extends BatteryStats { private int buildBatteryLevelInt(HistoryItem h) { return ((((int)h.batteryLevel)<<25)&0xfe000000) - | ((((int)h.batteryTemperature)<<14)&0x01ff8000) - | ((((int)h.batteryVoltage)<<1)&0x00007fff); + | ((((int)h.batteryTemperature)<<15)&0x01ff8000) + | ((((int)h.batteryVoltage)<<1)&0x00007ffe); + } + + private void readBatteryLevelInt(int batteryLevelInt, HistoryItem out) { + out.batteryLevel = (byte)((batteryLevelInt & 0xfe000000) >>> 25); + out.batteryTemperature = (short)((batteryLevelInt & 0x01ff8000) >>> 15); + out.batteryVoltage = (char)((batteryLevelInt & 0x00007ffe) >>> 1); } private int buildStateInt(HistoryItem h) { @@ -2117,9 +2123,7 @@ public final class BatteryStatsImpl extends BatteryStats { final int batteryLevelInt; if ((firstToken&DELTA_BATTERY_LEVEL_FLAG) != 0) { batteryLevelInt = src.readInt(); - cur.batteryLevel = (byte)((batteryLevelInt>>25)&0x7f); - cur.batteryTemperature = (short)((batteryLevelInt<<7)>>21); - cur.batteryVoltage = (char)(batteryLevelInt&0x3fff); + readBatteryLevelInt(batteryLevelInt, cur); cur.numReadInts += 1; if (DEBUG) Slog.i(TAG, "READ DELTA: batteryToken=0x" + Integer.toHexString(batteryLevelInt) diff --git a/core/java/com/android/internal/view/menu/MenuPopupHelper.java b/core/java/com/android/internal/view/menu/MenuPopupHelper.java index e674eccd889d..b505ea0e0c10 100644 --- a/core/java/com/android/internal/view/menu/MenuPopupHelper.java +++ b/core/java/com/android/internal/view/menu/MenuPopupHelper.java @@ -38,13 +38,17 @@ public class MenuPopupHelper implements PopupWindow.OnDismissListener { private View mAnchorView; private MenuPopup mPopup; - private int mDropDownGravity = Gravity.NO_GRAVITY; + private int mDropDownGravity = Gravity.START; private boolean mForceShowIcon; private boolean mShowTitle; private Callback mPresenterCallback; + private int mInitXOffset; private int mInitYOffset; + /** Whether the popup has anchor-relative offsets. */ + private boolean mHasOffsets; + public MenuPopupHelper(Context context, MenuBuilder menu) { this(context, menu, null, false, com.android.internal.R.attr.popupMenuStyle, 0); } @@ -131,12 +135,31 @@ public class MenuPopupHelper implements PopupWindow.OnDismissListener { mInitXOffset = 0; mInitYOffset = 0; + mHasOffsets = false; mShowTitle = false; showPopup(); return true; } + /** + * Shows the popup menu and makes a best-effort to anchor it to the + * specified (x,y) coordinate relative to the anchor view. + * <p> + * If the popup's resolved gravity is {@link Gravity#LEFT}, this will + * display the popup with its top-left corner at (x,y) relative to the + * anchor view. If the resolved gravity is {@link Gravity#RIGHT}, the + * popup's top-right corner will be at (x,y). + * <p> + * If the popup cannot be displayed fully on-screen, this method will + * attempt to scroll the anchor view's ancestors and/or offset the popup + * such that it may be displayed fully on-screen. + * + * @param x x coordinate relative to the anchor view + * @param y y coordinate relative to the anchor view + * @return {@code true} if the popup was shown or was already showing prior + * to calling this method, {@code false} otherwise + */ public boolean tryShow(int x, int y) { if (isShowing()) { return true; @@ -148,6 +171,7 @@ public class MenuPopupHelper implements PopupWindow.OnDismissListener { mInitXOffset = x; mInitYOffset = y; + mHasOffsets = true; mShowTitle = true; showPopup(); @@ -160,9 +184,24 @@ public class MenuPopupHelper implements PopupWindow.OnDismissListener { mPopup.setCallback(mPresenterCallback); mPopup.setForceShowIcon(mForceShowIcon); mPopup.setGravity(mDropDownGravity); - mPopup.setHorizontalOffset(mInitXOffset); mPopup.setShowTitle(mShowTitle); - mPopup.setVerticalOffset(mInitYOffset); + + if (mHasOffsets) { + // If the resolved drop-down gravity is RIGHT, the popup's right + // edge will be aligned with the anchor view. Adjust by the anchor + // width such that the top-right corner is at the X offset. + final int hgrav = Gravity.getAbsoluteGravity(mDropDownGravity, + mAnchorView.getLayoutDirection()) & Gravity.HORIZONTAL_GRAVITY_MASK; + final int resolvedXOffset; + if (hgrav == Gravity.RIGHT) { + resolvedXOffset = mInitXOffset - mAnchorView.getWidth(); + } else { + resolvedXOffset = mInitXOffset; + } + + mPopup.setHorizontalOffset(resolvedXOffset); + mPopup.setVerticalOffset(mInitYOffset); + } // In order for subclasses of MenuPopupHelper to satisfy the OnDismissedListener interface, // we must set the listener to this outer Helper rather than to the inner MenuPopup. diff --git a/packages/DocumentsUI/AndroidManifest.xml b/packages/DocumentsUI/AndroidManifest.xml index d45345e41584..595928a373f9 100644 --- a/packages/DocumentsUI/AndroidManifest.xml +++ b/packages/DocumentsUI/AndroidManifest.xml @@ -71,7 +71,7 @@ <action android:name="android.intent.action.MAIN" /> </intent-filter> <intent-filter> - <action android:name="android.provider.action.BROWSE_DOCUMENT_ROOT" /> + <action android:name="android.provider.action.BROWSE" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="vnd.android.document/root" /> </intent-filter> diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java index b9a9c24576fc..2e96f18bedb2 100644 --- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java +++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsBackupAgent.java @@ -159,6 +159,7 @@ public class SettingsBackupAgent extends BackupAgentHelper { String key_mgmt = ""; boolean certUsed = false; boolean hasWepKey = false; + boolean isEap = false; final ArrayList<String> rawLines = new ArrayList<String>(); public static Network readFromStream(BufferedReader in) { @@ -189,6 +190,9 @@ public class SettingsBackupAgent extends BackupAgentHelper { ssid = line; } else if (line.startsWith("key_mgmt=")) { key_mgmt = line; + if (line.contains("EAP")) { + isEap = true; + } } else if (line.startsWith("client_cert=")) { certUsed = true; } else if (line.startsWith("ca_cert=")) { @@ -197,6 +201,8 @@ public class SettingsBackupAgent extends BackupAgentHelper { certUsed = true; } else if (line.startsWith("wep_")) { hasWepKey = true; + } else if (line.startsWith("eap=")) { + isEap = true; } } @@ -325,6 +331,13 @@ public class SettingsBackupAgent extends BackupAgentHelper { continue; } } + // Don't propagate EAP network definitions + if (net.isEap) { + if (DEBUG_BACKUP) { + Log.v(TAG, "Skipping EAP network " + net.ssid + " / " + net.key_mgmt); + } + continue; + } if (! mKnownNetworks.contains(net)) { if (DEBUG_BACKUP) { Log.v(TAG, "Adding " + net.ssid + " / " + net.key_mgmt); @@ -353,6 +366,12 @@ public class SettingsBackupAgent extends BackupAgentHelper { continue; } + if (net.isEap) { + // Similarly, omit EAP network definitions to avoid propagating + // controlled enterprise network definitions. + continue; + } + net.write(w); } } diff --git a/preloaded-classes b/preloaded-classes index e48255c1efa7..79c0957e48ae 100644 --- a/preloaded-classes +++ b/preloaded-classes @@ -3560,11 +3560,6 @@ org.apache.harmony.security.asn1.BerInputStream org.apache.harmony.security.asn1.BerOutputStream org.apache.harmony.security.asn1.DerInputStream org.apache.harmony.security.asn1.DerOutputStream -org.apache.harmony.security.fortress.Engine -org.apache.harmony.security.fortress.Engine$ServiceCacheEntry -org.apache.harmony.security.fortress.Engine$SpiAndProvider -org.apache.harmony.security.fortress.SecurityAccess -org.apache.harmony.security.fortress.Services org.apache.harmony.security.provider.crypto.CryptoProvider org.apache.harmony.security.utils.AlgNameMapper org.apache.harmony.security.utils.AlgNameMapperSource |