Merge "Play CLICK sound effect when compound buttons are clicked" into lmp-mr1-dev
diff --git a/api/current.txt b/api/current.txt
index f7c47ff..aa8057d 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -2615,7 +2615,7 @@
field public static final int CAPABILITY_CAN_REQUEST_FILTER_KEY_EVENTS = 8; // 0x8
field public static final int CAPABILITY_CAN_REQUEST_TOUCH_EXPLORATION = 2; // 0x2
field public static final int CAPABILITY_CAN_RETRIEVE_WINDOW_CONTENT = 1; // 0x1
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.accessibilityservice.AccessibilityServiceInfo> CREATOR;
field public static final int DEFAULT = 1; // 0x1
field public static final int FEEDBACK_ALL_MASK = -1; // 0xffffffff
field public static final int FEEDBACK_AUDIBLE = 4; // 0x4
@@ -2661,7 +2661,7 @@
ctor public Account(android.os.Parcel);
method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.accounts.Account> CREATOR;
field public final java.lang.String name;
field public final java.lang.String type;
}
@@ -2678,7 +2678,7 @@
method public void onRequestContinued();
method public void onResult(android.os.Bundle);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.accounts.AccountAuthenticatorResponse> CREATOR;
}
public class AccountManager {
@@ -2770,7 +2770,7 @@
method public int describeContents();
method public static android.accounts.AuthenticatorDescription newKey(java.lang.String);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.accounts.AuthenticatorDescription> CREATOR;
field public final int accountPreferencesId;
field public final boolean customTokens;
field public final int iconId;
@@ -3529,7 +3529,7 @@
method public int describeContents();
method public void readFromParcel(android.os.Parcel);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.app.ActivityManager.MemoryInfo> CREATOR;
field public long availMem;
field public boolean lowMemory;
field public long threshold;
@@ -3542,7 +3542,7 @@
method public void readFromParcel(android.os.Parcel);
method public void writeToParcel(android.os.Parcel, int);
field public static final int CRASHED = 1; // 0x1
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.app.ActivityManager.ProcessErrorStateInfo> CREATOR;
field public static final int NOT_RESPONDING = 2; // 0x2
field public static final int NO_ERROR = 0; // 0x0
field public int condition;
@@ -3561,7 +3561,7 @@
method public int describeContents();
method public void readFromParcel(android.os.Parcel);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.app.ActivityManager.RecentTaskInfo> CREATOR;
field public int affiliatedTaskId;
field public android.content.Intent baseIntent;
field public java.lang.CharSequence description;
@@ -3577,7 +3577,7 @@
method public int describeContents();
method public void readFromParcel(android.os.Parcel);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.app.ActivityManager.RunningAppProcessInfo> CREATOR;
field public static final int IMPORTANCE_BACKGROUND = 400; // 0x190
field public static final int IMPORTANCE_EMPTY = 500; // 0x1f4
field public static final int IMPORTANCE_FOREGROUND = 100; // 0x64
@@ -3605,7 +3605,7 @@
method public int describeContents();
method public void readFromParcel(android.os.Parcel);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.app.ActivityManager.RunningServiceInfo> CREATOR;
field public static final int FLAG_FOREGROUND = 2; // 0x2
field public static final int FLAG_PERSISTENT_PROCESS = 8; // 0x8
field public static final int FLAG_STARTED = 1; // 0x1
@@ -3631,7 +3631,7 @@
method public int describeContents();
method public void readFromParcel(android.os.Parcel);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.app.ActivityManager.RunningTaskInfo> CREATOR;
field public android.content.ComponentName baseActivity;
field public java.lang.CharSequence description;
field public int id;
@@ -3653,7 +3653,7 @@
method public int getPrimaryColor();
method public void readFromParcel(android.os.Parcel);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.app.ActivityManager.TaskDescription> CREATOR;
}
public class ActivityOptions {
@@ -3696,7 +3696,7 @@
method public android.app.PendingIntent getShowIntent();
method public long getTriggerTime();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.app.AlarmManager.AlarmClockInfo> CREATOR;
}
public class AlertDialog extends android.app.Dialog implements android.content.DialogInterface {
@@ -3833,7 +3833,7 @@
method public static android.content.ComponentName getErrorReportReceiver(android.content.Context, java.lang.String, int);
method public void readFromParcel(android.os.Parcel);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.app.ApplicationErrorReport> CREATOR;
field public static final int TYPE_ANR = 2; // 0x2
field public static final int TYPE_BATTERY = 3; // 0x3
field public static final int TYPE_CRASH = 1; // 0x1
@@ -4214,7 +4214,7 @@
public static class Fragment.SavedState implements android.os.Parcelable {
method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.ClassLoaderCreator CREATOR;
+ field public static final android.os.Parcelable.ClassLoaderCreator<android.app.Fragment.SavedState> CREATOR;
}
public deprecated class FragmentBreadCrumbs extends android.view.ViewGroup implements android.app.FragmentManager.OnBackStackChangedListener {
@@ -4562,7 +4562,7 @@
field public static final java.lang.String CATEGORY_SYSTEM = "sys";
field public static final java.lang.String CATEGORY_TRANSPORT = "transport";
field public static final int COLOR_DEFAULT = 0; // 0x0
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.app.Notification> CREATOR;
field public static final int DEFAULT_ALL = -1; // 0xffffffff
field public static final int DEFAULT_LIGHTS = 4; // 0x4
field public static final int DEFAULT_SOUND = 1; // 0x1
@@ -4647,7 +4647,7 @@
method public android.os.Bundle getExtras();
method public android.app.RemoteInput[] getRemoteInputs();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.app.Notification.Action> CREATOR;
field public android.app.PendingIntent actionIntent;
field public int icon;
field public java.lang.CharSequence title;
@@ -4850,7 +4850,7 @@
method public void send(android.content.Context, int, android.content.Intent, android.app.PendingIntent.OnFinished, android.os.Handler, java.lang.String) throws android.app.PendingIntent.CanceledException;
method public static void writePendingIntentOrNullToParcel(android.app.PendingIntent, android.os.Parcel);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.app.PendingIntent> CREATOR;
field public static final int FLAG_CANCEL_CURRENT = 268435456; // 0x10000000
field public static final int FLAG_NO_CREATE = 536870912; // 0x20000000
field public static final int FLAG_ONE_SHOT = 1073741824; // 0x40000000
@@ -4913,7 +4913,7 @@
method public java.lang.String getResultKey();
method public static android.os.Bundle getResultsFromIntent(android.content.Intent);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.app.RemoteInput> CREATOR;
field public static final java.lang.String EXTRA_RESULTS_DATA = "android.remoteinput.resultsData";
field public static final java.lang.String RESULTS_CLIP_LABEL = "android.remoteinput.results";
}
@@ -5028,7 +5028,7 @@
method public boolean shouldRewriteQueryFromData();
method public boolean shouldRewriteQueryFromText();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.app.SearchableInfo> CREATOR;
}
public abstract class Service extends android.content.ContextWrapper implements android.content.ComponentCallbacks2 {
@@ -5174,7 +5174,7 @@
method public java.lang.CharSequence loadLabel(android.content.pm.PackageManager);
method public android.graphics.drawable.Drawable loadThumbnail(android.content.pm.PackageManager);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.app.WallpaperInfo> CREATOR;
}
public class WallpaperManager {
@@ -5229,7 +5229,7 @@
method public java.lang.CharSequence loadLabel(android.content.pm.PackageManager);
method public boolean usesPolicy(int);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.app.admin.DeviceAdminInfo> CREATOR;
field public static final int USES_ENCRYPTED_STORAGE = 7; // 0x7
field public static final int USES_POLICY_DISABLE_CAMERA = 8; // 0x8
field public static final int USES_POLICY_DISABLE_KEYGUARD_FEATURES = 9; // 0x9
@@ -5521,7 +5521,7 @@
method public void writeToParcel(android.os.Parcel, int);
field public static final int BACKOFF_POLICY_EXPONENTIAL = 1; // 0x1
field public static final int BACKOFF_POLICY_LINEAR = 0; // 0x0
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.app.job.JobInfo> CREATOR;
field public static final long DEFAULT_INITIAL_BACKOFF_MILLIS = 30000L; // 0x7530L
field public static final long MAX_BACKOFF_DELAY_MILLIS = 18000000L; // 0x112a880L
field public static final int NETWORK_TYPE_ANY = 1; // 0x1
@@ -5549,7 +5549,7 @@
method public int getJobId();
method public boolean isOverrideDeadlineExpired();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.app.job.JobParameters> CREATOR;
}
public abstract class JobScheduler {
@@ -5585,7 +5585,7 @@
method public long getLastTimeStamp();
method public long getTotalTimeActive();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.app.usage.ConfigurationStats> CREATOR;
}
public final class UsageEvents implements android.os.Parcelable {
@@ -5593,7 +5593,7 @@
method public boolean getNextEvent(android.app.usage.UsageEvents.Event);
method public boolean hasNextEvent();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.app.usage.UsageEvents> CREATOR;
}
public static final class UsageEvents.Event {
@@ -5619,7 +5619,7 @@
method public java.lang.String getPackageName();
method public long getTotalTimeInForeground();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.app.usage.UsageStats> CREATOR;
}
public final class UsageStatsManager {
@@ -5736,7 +5736,7 @@
method public final java.lang.String loadLabel(android.content.pm.PackageManager);
method public final android.graphics.drawable.Drawable loadPreviewImage(android.content.Context, int);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.appwidget.AppWidgetProviderInfo> CREATOR;
field public static final int RESIZE_BOTH = 3; // 0x3
field public static final int RESIZE_HORIZONTAL = 1; // 0x1
field public static final int RESIZE_NONE = 0; // 0x0
@@ -6077,7 +6077,7 @@
method public int getMajorDeviceClass();
method public boolean hasService(int);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothClass> CREATOR;
}
public static class BluetoothClass.Device {
@@ -6190,7 +6190,7 @@
field public static final int BOND_BONDED = 12; // 0xc
field public static final int BOND_BONDING = 11; // 0xb
field public static final int BOND_NONE = 10; // 0xa
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothDevice> CREATOR;
field public static final int DEVICE_TYPE_CLASSIC = 1; // 0x1
field public static final int DEVICE_TYPE_DUAL = 3; // 0x3
field public static final int DEVICE_TYPE_LE = 2; // 0x2
@@ -6308,7 +6308,7 @@
field public static final int WRITE_TYPE_DEFAULT = 2; // 0x2
field public static final int WRITE_TYPE_NO_RESPONSE = 1; // 0x1
field public static final int WRITE_TYPE_SIGNED = 4; // 0x4
- field protected java.util.List mDescriptors;
+ field protected java.util.List<android.bluetooth.BluetoothGattDescriptor> mDescriptors;
}
public class BluetoothGattDescriptor {
@@ -6371,8 +6371,8 @@
method public java.util.UUID getUuid();
field public static final int SERVICE_TYPE_PRIMARY = 0; // 0x0
field public static final int SERVICE_TYPE_SECONDARY = 1; // 0x1
- field protected java.util.List mCharacteristics;
- field protected java.util.List mIncludedServices;
+ field protected java.util.List<android.bluetooth.BluetoothGattCharacteristic> mCharacteristics;
+ field protected java.util.List<android.bluetooth.BluetoothGattService> mIncludedServices;
}
public final class BluetoothHeadset implements android.bluetooth.BluetoothProfile {
@@ -6430,7 +6430,7 @@
method public java.lang.String getName();
method public int getRole();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.bluetooth.BluetoothHealthAppConfiguration> CREATOR;
}
public abstract class BluetoothHealthCallback {
@@ -6507,7 +6507,7 @@
method public java.util.Map<android.os.ParcelUuid, byte[]> getServiceData();
method public java.util.List<android.os.ParcelUuid> getServiceUuids();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.bluetooth.le.AdvertiseData> CREATOR;
}
public static final class AdvertiseData.Builder {
@@ -6534,7 +6534,7 @@
field public static final int ADVERTISE_TX_POWER_LOW = 1; // 0x1
field public static final int ADVERTISE_TX_POWER_MEDIUM = 2; // 0x2
field public static final int ADVERTISE_TX_POWER_ULTRA_LOW = 0; // 0x0
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.bluetooth.le.AdvertiseSettings> CREATOR;
}
public static final class AdvertiseSettings.Builder {
@@ -6584,7 +6584,7 @@
method public android.os.ParcelUuid getServiceUuidMask();
method public boolean matches(android.bluetooth.le.ScanResult);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.bluetooth.le.ScanFilter> CREATOR;
}
public static final class ScanFilter.Builder {
@@ -6620,7 +6620,7 @@
method public android.bluetooth.le.ScanRecord getScanRecord();
method public long getTimestampNanos();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.bluetooth.le.ScanResult> CREATOR;
}
public final class ScanSettings implements android.os.Parcelable {
@@ -6631,7 +6631,7 @@
method public int getScanResultType();
method public void writeToParcel(android.os.Parcel, int);
field public static final int CALLBACK_TYPE_ALL_MATCHES = 1; // 0x1
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.bluetooth.le.ScanSettings> CREATOR;
field public static final int SCAN_MODE_BALANCED = 1; // 0x1
field public static final int SCAN_MODE_LOW_LATENCY = 2; // 0x2
field public static final int SCAN_MODE_LOW_POWER = 0; // 0x0
@@ -6756,7 +6756,7 @@
method public static android.content.ClipData newRawUri(java.lang.CharSequence, android.net.Uri);
method public static android.content.ClipData newUri(android.content.ContentResolver, java.lang.CharSequence, android.net.Uri);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.ClipData> CREATOR;
}
public static class ClipData.Item {
@@ -6786,7 +6786,7 @@
method public int getMimeTypeCount();
method public boolean hasMimeType(java.lang.String);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.ClipDescription> CREATOR;
field public static final java.lang.String MIMETYPE_TEXT_HTML = "text/html";
field public static final java.lang.String MIMETYPE_TEXT_INTENT = "text/vnd.android.intent";
field public static final java.lang.String MIMETYPE_TEXT_PLAIN = "text/plain";
@@ -6843,7 +6843,7 @@
method public static android.content.ComponentName unflattenFromString(java.lang.String);
method public void writeToParcel(android.os.Parcel, int);
method public static void writeToParcel(android.content.ComponentName, android.os.Parcel);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.ComponentName> CREATOR;
}
public abstract class ContentProvider implements android.content.ComponentCallbacks2 {
@@ -6927,7 +6927,7 @@
method public java.lang.String[] resolveSelectionArgsBackReferences(android.content.ContentProviderResult[], int);
method public android.content.ContentValues resolveValueBackReferences(android.content.ContentProviderResult[], int);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.ContentProviderOperation> CREATOR;
}
public static class ContentProviderOperation.Builder {
@@ -6948,7 +6948,7 @@
ctor public ContentProviderResult(android.os.Parcel);
method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.ContentProviderResult> CREATOR;
field public final java.lang.Integer count;
field public final android.net.Uri uri;
}
@@ -7083,7 +7083,7 @@
method public int size();
method public java.util.Set<java.util.Map.Entry<java.lang.String, java.lang.Object>> valueSet();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.ContentValues> CREATOR;
field public static final java.lang.String TAG = "ContentValues";
}
@@ -7699,7 +7699,7 @@
field public static final java.lang.String CATEGORY_TAB = "android.intent.category.TAB";
field public static final java.lang.String CATEGORY_TEST = "android.intent.category.TEST";
field public static final java.lang.String CATEGORY_UNIT_TEST = "android.intent.category.UNIT_TEST";
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.Intent> CREATOR;
field public static final java.lang.String EXTRA_ALARM_COUNT = "android.intent.extra.ALARM_COUNT";
field public static final java.lang.String EXTRA_ALLOW_MULTIPLE = "android.intent.extra.ALLOW_MULTIPLE";
field public static final deprecated java.lang.String EXTRA_ALLOW_REPLACE = "android.intent.extra.ALLOW_REPLACE";
@@ -7807,7 +7807,7 @@
method public int describeContents();
method public static android.content.Intent.ShortcutIconResource fromContext(android.content.Context, int);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.Intent.ShortcutIconResource> CREATOR;
field public java.lang.String packageName;
field public java.lang.String resourceName;
}
@@ -7866,7 +7866,7 @@
method public final java.util.Iterator<java.lang.String> typesIterator();
method public final void writeToParcel(android.os.Parcel, int);
method public void writeToXml(org.xmlpull.v1.XmlSerializer) throws java.io.IOException;
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.IntentFilter> CREATOR;
field public static final int MATCH_ADJUSTMENT_MASK = 65535; // 0xffff
field public static final int MATCH_ADJUSTMENT_NORMAL = 32768; // 0x8000
field public static final int MATCH_CATEGORY_EMPTY = 1048576; // 0x100000
@@ -7908,7 +7908,7 @@
method public void sendIntent(android.content.Context, int, android.content.Intent, android.content.IntentSender.OnFinished, android.os.Handler, java.lang.String) throws android.content.IntentSender.SendIntentException;
method public static void writeIntentSenderOrNullToParcel(android.content.IntentSender, android.os.Parcel);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.IntentSender> CREATOR;
}
public static abstract interface IntentSender.OnFinished {
@@ -7985,7 +7985,7 @@
ctor public PeriodicSync(android.accounts.Account, java.lang.String, android.os.Bundle, long);
method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.PeriodicSync> CREATOR;
field public final android.accounts.Account account;
field public final java.lang.String authority;
field public final android.os.Bundle extras;
@@ -8026,7 +8026,7 @@
method public void setTitle(java.lang.String);
method public void setType(int);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.RestrictionEntry> CREATOR;
field public static final int TYPE_BOOLEAN = 1; // 0x1
field public static final int TYPE_CHOICE = 2; // 0x2
field public static final int TYPE_INTEGER = 5; // 0x5
@@ -8134,7 +8134,7 @@
method public static android.content.SyncAdapterType newKey(java.lang.String, java.lang.String);
method public boolean supportsUploading();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.SyncAdapterType> CREATOR;
field public final java.lang.String accountType;
field public final java.lang.String authority;
field public final boolean isKey;
@@ -8156,7 +8156,7 @@
public class SyncRequest implements android.os.Parcelable {
method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.SyncRequest> CREATOR;
}
public static class SyncRequest.Builder {
@@ -8185,7 +8185,7 @@
method public java.lang.String toDebugString();
method public void writeToParcel(android.os.Parcel, int);
field public static final android.content.SyncResult ALREADY_IN_PROGRESS;
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.SyncResult> CREATOR;
field public boolean databaseError;
field public long delayUntil;
field public boolean fullSyncRequested;
@@ -8203,7 +8203,7 @@
method public void clear();
method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.SyncStats> CREATOR;
field public long numAuthExceptions;
field public long numConflictDetectedExceptions;
field public long numDeletes;
@@ -8233,7 +8233,7 @@
method public boolean isReadPermission();
method public boolean isWritePermission();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.UriPermission> CREATOR;
field public static final long INVALID_TIME = -9223372036854775808L; // 0x8000000000000000L
}
@@ -8262,7 +8262,7 @@
field public static final int CONFIG_SMALLEST_SCREEN_SIZE = 2048; // 0x800
field public static final int CONFIG_TOUCHSCREEN = 8; // 0x8
field public static final int CONFIG_UI_MODE = 512; // 0x200
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.pm.ActivityInfo> CREATOR;
field public static final int DOCUMENT_LAUNCH_ALWAYS = 2; // 0x2
field public static final int DOCUMENT_LAUNCH_INTO_EXISTING = 1; // 0x1
field public static final int DOCUMENT_LAUNCH_NEVER = 3; // 0x3
@@ -8328,7 +8328,7 @@
method public int describeContents();
method public void dump(android.util.Printer, java.lang.String);
method public java.lang.CharSequence loadDescription(android.content.pm.PackageManager);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.pm.ApplicationInfo> CREATOR;
field public static final int FLAG_ALLOW_BACKUP = 32768; // 0x8000
field public static final int FLAG_ALLOW_CLEAR_USER_DATA = 64; // 0x40
field public static final int FLAG_ALLOW_TASK_REPARENTING = 32; // 0x20
@@ -8408,7 +8408,7 @@
method public int describeContents();
method public java.lang.String getGlEsVersion();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.pm.ConfigurationInfo> CREATOR;
field public static final int GL_ES_VERSION_UNDEFINED = 0; // 0x0
field public static final int INPUT_FEATURE_FIVE_WAY_NAV = 2; // 0x2
field public static final int INPUT_FEATURE_HARD_KEYBOARD = 1; // 0x1
@@ -8424,7 +8424,7 @@
ctor public FeatureGroupInfo(android.content.pm.FeatureGroupInfo);
method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.pm.FeatureGroupInfo> CREATOR;
field public android.content.pm.FeatureInfo[] features;
}
@@ -8434,7 +8434,7 @@
method public int describeContents();
method public java.lang.String getGlEsVersion();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.pm.FeatureInfo> CREATOR;
field public static final int FLAG_REQUIRED = 1; // 0x1
field public static final int GL_ES_VERSION_UNDEFINED = 0; // 0x0
field public int flags;
@@ -8446,7 +8446,7 @@
ctor public InstrumentationInfo();
ctor public InstrumentationInfo(android.content.pm.InstrumentationInfo);
method public int describeContents();
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.pm.InstrumentationInfo> CREATOR;
field public java.lang.String dataDir;
field public boolean functionalTest;
field public boolean handleProfiling;
@@ -8468,7 +8468,7 @@
method public java.lang.String getSourcePackage();
method public android.graphics.drawable.Drawable loadIcon(android.content.pm.PackageManager);
method public java.lang.CharSequence loadLabel(android.content.pm.PackageManager);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.pm.LabeledIntent> CREATOR;
}
public class LauncherActivityInfo {
@@ -8507,7 +8507,7 @@
ctor public PackageInfo();
method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.pm.PackageInfo> CREATOR;
field public static final int INSTALL_LOCATION_AUTO = 0; // 0x0
field public static final int INSTALL_LOCATION_INTERNAL_ONLY = 1; // 0x1
field public static final int INSTALL_LOCATION_PREFER_EXTERNAL = 2; // 0x2
@@ -8600,7 +8600,7 @@
method public int getSessionId();
method public boolean isActive();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.pm.PackageInstaller.SessionInfo> CREATOR;
}
public static class PackageInstaller.SessionParams implements android.os.Parcelable {
@@ -8614,7 +8614,7 @@
method public void setReferrerUri(android.net.Uri);
method public void setSize(long);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.pm.PackageInstaller.SessionParams> CREATOR;
field public static final int MODE_FULL_INSTALL = 1; // 0x1
field public static final int MODE_INHERIT_EXISTING = 2; // 0x2
}
@@ -8848,7 +8848,7 @@
ctor public PackageStats(android.content.pm.PackageStats);
method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.pm.PackageStats> CREATOR;
field public long cacheSize;
field public long codeSize;
field public long dataSize;
@@ -8865,7 +8865,7 @@
ctor public PathPermission(android.os.Parcel);
method public java.lang.String getReadPermission();
method public java.lang.String getWritePermission();
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.pm.PathPermission> CREATOR;
}
public class PermissionGroupInfo extends android.content.pm.PackageItemInfo implements android.os.Parcelable {
@@ -8873,7 +8873,7 @@
ctor public PermissionGroupInfo(android.content.pm.PermissionGroupInfo);
method public int describeContents();
method public java.lang.CharSequence loadDescription(android.content.pm.PackageManager);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.pm.PermissionGroupInfo> CREATOR;
field public static final int FLAG_PERSONAL_INFO = 1; // 0x1
field public int descriptionRes;
field public int flags;
@@ -8886,7 +8886,7 @@
ctor public PermissionInfo(android.content.pm.PermissionInfo);
method public int describeContents();
method public java.lang.CharSequence loadDescription(android.content.pm.PackageManager);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.pm.PermissionInfo> CREATOR;
field public static final int FLAG_COSTS_MONEY = 1; // 0x1
field public static final int PROTECTION_DANGEROUS = 1; // 0x1
field public static final int PROTECTION_FLAG_APPOP = 64; // 0x40
@@ -8909,7 +8909,7 @@
ctor public ProviderInfo(android.content.pm.ProviderInfo);
method public int describeContents();
method public void dump(android.util.Printer, java.lang.String);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.pm.ProviderInfo> CREATOR;
field public static final int FLAG_SINGLE_USER = 1073741824; // 0x40000000
field public java.lang.String authority;
field public int flags;
@@ -8932,7 +8932,7 @@
method public android.graphics.drawable.Drawable loadIcon(android.content.pm.PackageManager);
method public java.lang.CharSequence loadLabel(android.content.pm.PackageManager);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.pm.ResolveInfo> CREATOR;
field public android.content.pm.ActivityInfo activityInfo;
field public android.content.IntentFilter filter;
field public int icon;
@@ -8958,7 +8958,7 @@
ctor public ServiceInfo(android.content.pm.ServiceInfo);
method public int describeContents();
method public void dump(android.util.Printer, java.lang.String);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.pm.ServiceInfo> CREATOR;
field public static final int FLAG_ISOLATED_PROCESS = 2; // 0x2
field public static final int FLAG_SINGLE_USER = 1073741824; // 0x40000000
field public static final int FLAG_STOP_WITH_TASK = 1; // 0x1
@@ -8975,7 +8975,7 @@
method public char[] toChars(char[], int[]);
method public java.lang.String toCharsString();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.pm.Signature> CREATOR;
}
}
@@ -8996,7 +8996,7 @@
method public android.os.ParcelFileDescriptor getParcelFileDescriptor();
method public long getStartOffset();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.res.AssetFileDescriptor> CREATOR;
field public static final long UNKNOWN_LENGTH = -1L; // 0xffffffffffffffffL
}
@@ -9048,7 +9048,7 @@
method public static android.content.res.ColorStateList valueOf(int);
method public android.content.res.ColorStateList withAlpha(int);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.res.ColorStateList> CREATOR;
}
public final class Configuration implements java.lang.Comparable android.os.Parcelable {
@@ -9068,7 +9068,7 @@
method public void setToDefaults();
method public int updateFrom(android.content.res.Configuration);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.res.Configuration> CREATOR;
field public static final int DENSITY_DPI_UNDEFINED = 0; // 0x0
field public static final int HARDKEYBOARDHIDDEN_NO = 1; // 0x1
field public static final int HARDKEYBOARDHIDDEN_UNDEFINED = 0; // 0x0
@@ -9150,7 +9150,7 @@
public class ObbInfo implements android.os.Parcelable {
method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.content.res.ObbInfo> CREATOR;
field public static final int OBB_OVERLAY = 1; // 0x1
field public java.lang.String filename;
field public int flags;
@@ -9326,7 +9326,7 @@
field protected deprecated java.lang.Long mCurrentRowID;
field protected int mPos;
field protected deprecated int mRowIdColumnIndex;
- field protected deprecated java.util.HashMap mUpdatedRows;
+ field protected deprecated java.util.HashMap<java.lang.Long, java.util.Map<java.lang.String, java.lang.Object>> mUpdatedRows;
}
protected static class AbstractCursor.SelfContentObserver extends android.database.ContentObserver {
@@ -9490,7 +9490,7 @@
method public boolean setNumColumns(int);
method public void setStartPosition(int);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.database.CursorWindow> CREATOR;
}
public class CursorWrapper implements android.database.Cursor {
@@ -9679,7 +9679,7 @@
method public void registerObserver(T);
method public void unregisterAll();
method public void unregisterObserver(T);
- field protected final java.util.ArrayList mObservers;
+ field protected final java.util.ArrayList<T> mObservers;
}
public class SQLException extends java.lang.RuntimeException {
@@ -10208,7 +10208,7 @@
method public android.graphics.Path toPath(int, int, int, int);
method public android.graphics.Path toPath(android.graphics.Path, int, int, int, int);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.gesture.Gesture> CREATOR;
}
public final class GestureLibraries {
@@ -10440,7 +10440,7 @@
method public final void setPremultiplied(boolean);
method public void setWidth(int);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.graphics.Bitmap> CREATOR;
field public static final int DENSITY_NONE = 0; // 0x0
}
@@ -11244,7 +11244,7 @@
method public void readFromParcel(android.os.Parcel);
method public void set(int, int);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.graphics.Point> CREATOR;
field public int x;
field public int y;
}
@@ -11263,7 +11263,7 @@
method public final void set(float, float);
method public final void set(android.graphics.PointF);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.graphics.PointF> CREATOR;
field public float x;
field public float y;
}
@@ -11347,7 +11347,7 @@
method public void union(int, int);
method public final int width();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.graphics.Rect> CREATOR;
field public int bottom;
field public int left;
field public int right;
@@ -11389,7 +11389,7 @@
method public void union(float, float);
method public final float width();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.graphics.RectF> CREATOR;
field public float bottom;
field public float left;
field public float right;
@@ -11429,7 +11429,7 @@
method public void translate(int, int, android.graphics.Region);
method public final boolean union(android.graphics.Rect);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.graphics.Region> CREATOR;
}
public static final class Region.Op extends java.lang.Enum {
@@ -12559,70 +12559,70 @@
method public T get(android.hardware.camera2.CameraCharacteristics.Key<T>);
method public java.util.List<android.hardware.camera2.CaptureRequest.Key<?>> getAvailableCaptureRequestKeys();
method public java.util.List<android.hardware.camera2.CaptureResult.Key<?>> getAvailableCaptureResultKeys();
- field public static final android.hardware.camera2.CameraCharacteristics.Key COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES;
- field public static final android.hardware.camera2.CameraCharacteristics.Key CONTROL_AE_AVAILABLE_ANTIBANDING_MODES;
- field public static final android.hardware.camera2.CameraCharacteristics.Key CONTROL_AE_AVAILABLE_MODES;
- field public static final android.hardware.camera2.CameraCharacteristics.Key CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES;
- field public static final android.hardware.camera2.CameraCharacteristics.Key CONTROL_AE_COMPENSATION_RANGE;
- field public static final android.hardware.camera2.CameraCharacteristics.Key CONTROL_AE_COMPENSATION_STEP;
- field public static final android.hardware.camera2.CameraCharacteristics.Key CONTROL_AF_AVAILABLE_MODES;
- field public static final android.hardware.camera2.CameraCharacteristics.Key CONTROL_AVAILABLE_EFFECTS;
- field public static final android.hardware.camera2.CameraCharacteristics.Key CONTROL_AVAILABLE_SCENE_MODES;
- field public static final android.hardware.camera2.CameraCharacteristics.Key CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES;
- field public static final android.hardware.camera2.CameraCharacteristics.Key CONTROL_AWB_AVAILABLE_MODES;
- field public static final android.hardware.camera2.CameraCharacteristics.Key CONTROL_MAX_REGIONS_AE;
- field public static final android.hardware.camera2.CameraCharacteristics.Key CONTROL_MAX_REGIONS_AF;
- field public static final android.hardware.camera2.CameraCharacteristics.Key CONTROL_MAX_REGIONS_AWB;
- field public static final android.hardware.camera2.CameraCharacteristics.Key EDGE_AVAILABLE_EDGE_MODES;
- field public static final android.hardware.camera2.CameraCharacteristics.Key FLASH_INFO_AVAILABLE;
- field public static final android.hardware.camera2.CameraCharacteristics.Key HOT_PIXEL_AVAILABLE_HOT_PIXEL_MODES;
- field public static final android.hardware.camera2.CameraCharacteristics.Key INFO_SUPPORTED_HARDWARE_LEVEL;
- field public static final android.hardware.camera2.CameraCharacteristics.Key JPEG_AVAILABLE_THUMBNAIL_SIZES;
- field public static final android.hardware.camera2.CameraCharacteristics.Key LENS_FACING;
- field public static final android.hardware.camera2.CameraCharacteristics.Key LENS_INFO_AVAILABLE_APERTURES;
- field public static final android.hardware.camera2.CameraCharacteristics.Key LENS_INFO_AVAILABLE_FILTER_DENSITIES;
- field public static final android.hardware.camera2.CameraCharacteristics.Key LENS_INFO_AVAILABLE_FOCAL_LENGTHS;
- field public static final android.hardware.camera2.CameraCharacteristics.Key LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION;
- field public static final android.hardware.camera2.CameraCharacteristics.Key LENS_INFO_FOCUS_DISTANCE_CALIBRATION;
- field public static final android.hardware.camera2.CameraCharacteristics.Key LENS_INFO_HYPERFOCAL_DISTANCE;
- field public static final android.hardware.camera2.CameraCharacteristics.Key LENS_INFO_MINIMUM_FOCUS_DISTANCE;
- field public static final android.hardware.camera2.CameraCharacteristics.Key NOISE_REDUCTION_AVAILABLE_NOISE_REDUCTION_MODES;
- field public static final android.hardware.camera2.CameraCharacteristics.Key REQUEST_AVAILABLE_CAPABILITIES;
- field public static final android.hardware.camera2.CameraCharacteristics.Key REQUEST_MAX_NUM_OUTPUT_PROC;
- field public static final android.hardware.camera2.CameraCharacteristics.Key REQUEST_MAX_NUM_OUTPUT_PROC_STALLING;
- field public static final android.hardware.camera2.CameraCharacteristics.Key REQUEST_MAX_NUM_OUTPUT_RAW;
- field public static final android.hardware.camera2.CameraCharacteristics.Key REQUEST_PARTIAL_RESULT_COUNT;
- field public static final android.hardware.camera2.CameraCharacteristics.Key REQUEST_PIPELINE_MAX_DEPTH;
- field public static final android.hardware.camera2.CameraCharacteristics.Key SCALER_AVAILABLE_MAX_DIGITAL_ZOOM;
- field public static final android.hardware.camera2.CameraCharacteristics.Key SCALER_CROPPING_TYPE;
- field public static final android.hardware.camera2.CameraCharacteristics.Key SCALER_STREAM_CONFIGURATION_MAP;
- field public static final android.hardware.camera2.CameraCharacteristics.Key SENSOR_AVAILABLE_TEST_PATTERN_MODES;
- field public static final android.hardware.camera2.CameraCharacteristics.Key SENSOR_BLACK_LEVEL_PATTERN;
- field public static final android.hardware.camera2.CameraCharacteristics.Key SENSOR_CALIBRATION_TRANSFORM1;
- field public static final android.hardware.camera2.CameraCharacteristics.Key SENSOR_CALIBRATION_TRANSFORM2;
- field public static final android.hardware.camera2.CameraCharacteristics.Key SENSOR_COLOR_TRANSFORM1;
- field public static final android.hardware.camera2.CameraCharacteristics.Key SENSOR_COLOR_TRANSFORM2;
- field public static final android.hardware.camera2.CameraCharacteristics.Key SENSOR_FORWARD_MATRIX1;
- field public static final android.hardware.camera2.CameraCharacteristics.Key SENSOR_FORWARD_MATRIX2;
- field public static final android.hardware.camera2.CameraCharacteristics.Key SENSOR_INFO_ACTIVE_ARRAY_SIZE;
- field public static final android.hardware.camera2.CameraCharacteristics.Key SENSOR_INFO_COLOR_FILTER_ARRANGEMENT;
- field public static final android.hardware.camera2.CameraCharacteristics.Key SENSOR_INFO_EXPOSURE_TIME_RANGE;
- field public static final android.hardware.camera2.CameraCharacteristics.Key SENSOR_INFO_MAX_FRAME_DURATION;
- field public static final android.hardware.camera2.CameraCharacteristics.Key SENSOR_INFO_PHYSICAL_SIZE;
- field public static final android.hardware.camera2.CameraCharacteristics.Key SENSOR_INFO_PIXEL_ARRAY_SIZE;
- field public static final android.hardware.camera2.CameraCharacteristics.Key SENSOR_INFO_SENSITIVITY_RANGE;
- field public static final android.hardware.camera2.CameraCharacteristics.Key SENSOR_INFO_TIMESTAMP_SOURCE;
- field public static final android.hardware.camera2.CameraCharacteristics.Key SENSOR_INFO_WHITE_LEVEL;
- field public static final android.hardware.camera2.CameraCharacteristics.Key SENSOR_MAX_ANALOG_SENSITIVITY;
- field public static final android.hardware.camera2.CameraCharacteristics.Key SENSOR_ORIENTATION;
- field public static final android.hardware.camera2.CameraCharacteristics.Key SENSOR_REFERENCE_ILLUMINANT1;
- field public static final android.hardware.camera2.CameraCharacteristics.Key SENSOR_REFERENCE_ILLUMINANT2;
- field public static final android.hardware.camera2.CameraCharacteristics.Key STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES;
- field public static final android.hardware.camera2.CameraCharacteristics.Key STATISTICS_INFO_AVAILABLE_HOT_PIXEL_MAP_MODES;
- field public static final android.hardware.camera2.CameraCharacteristics.Key STATISTICS_INFO_MAX_FACE_COUNT;
- field public static final android.hardware.camera2.CameraCharacteristics.Key SYNC_MAX_LATENCY;
- field public static final android.hardware.camera2.CameraCharacteristics.Key TONEMAP_AVAILABLE_TONE_MAP_MODES;
- field public static final android.hardware.camera2.CameraCharacteristics.Key TONEMAP_MAX_CURVE_POINTS;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> COLOR_CORRECTION_AVAILABLE_ABERRATION_MODES;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> CONTROL_AE_AVAILABLE_ANTIBANDING_MODES;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> CONTROL_AE_AVAILABLE_MODES;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<android.util.Range<java.lang.Integer>[]> CONTROL_AE_AVAILABLE_TARGET_FPS_RANGES;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<android.util.Range<java.lang.Integer>> CONTROL_AE_COMPENSATION_RANGE;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<android.util.Rational> CONTROL_AE_COMPENSATION_STEP;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> CONTROL_AF_AVAILABLE_MODES;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> CONTROL_AVAILABLE_EFFECTS;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> CONTROL_AVAILABLE_SCENE_MODES;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> CONTROL_AVAILABLE_VIDEO_STABILIZATION_MODES;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> CONTROL_AWB_AVAILABLE_MODES;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> CONTROL_MAX_REGIONS_AE;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> CONTROL_MAX_REGIONS_AF;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> CONTROL_MAX_REGIONS_AWB;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> EDGE_AVAILABLE_EDGE_MODES;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Boolean> FLASH_INFO_AVAILABLE;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> HOT_PIXEL_AVAILABLE_HOT_PIXEL_MODES;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> INFO_SUPPORTED_HARDWARE_LEVEL;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<android.util.Size[]> JPEG_AVAILABLE_THUMBNAIL_SIZES;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> LENS_FACING;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<float[]> LENS_INFO_AVAILABLE_APERTURES;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<float[]> LENS_INFO_AVAILABLE_FILTER_DENSITIES;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<float[]> LENS_INFO_AVAILABLE_FOCAL_LENGTHS;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> LENS_INFO_AVAILABLE_OPTICAL_STABILIZATION;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> LENS_INFO_FOCUS_DISTANCE_CALIBRATION;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Float> LENS_INFO_HYPERFOCAL_DISTANCE;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Float> LENS_INFO_MINIMUM_FOCUS_DISTANCE;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> NOISE_REDUCTION_AVAILABLE_NOISE_REDUCTION_MODES;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> REQUEST_AVAILABLE_CAPABILITIES;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> REQUEST_MAX_NUM_OUTPUT_PROC;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> REQUEST_MAX_NUM_OUTPUT_PROC_STALLING;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> REQUEST_MAX_NUM_OUTPUT_RAW;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> REQUEST_PARTIAL_RESULT_COUNT;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Byte> REQUEST_PIPELINE_MAX_DEPTH;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Float> SCALER_AVAILABLE_MAX_DIGITAL_ZOOM;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> SCALER_CROPPING_TYPE;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<android.hardware.camera2.params.StreamConfigurationMap> SCALER_STREAM_CONFIGURATION_MAP;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> SENSOR_AVAILABLE_TEST_PATTERN_MODES;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<android.hardware.camera2.params.BlackLevelPattern> SENSOR_BLACK_LEVEL_PATTERN;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<android.hardware.camera2.params.ColorSpaceTransform> SENSOR_CALIBRATION_TRANSFORM1;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<android.hardware.camera2.params.ColorSpaceTransform> SENSOR_CALIBRATION_TRANSFORM2;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<android.hardware.camera2.params.ColorSpaceTransform> SENSOR_COLOR_TRANSFORM1;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<android.hardware.camera2.params.ColorSpaceTransform> SENSOR_COLOR_TRANSFORM2;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<android.hardware.camera2.params.ColorSpaceTransform> SENSOR_FORWARD_MATRIX1;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<android.hardware.camera2.params.ColorSpaceTransform> SENSOR_FORWARD_MATRIX2;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<android.graphics.Rect> SENSOR_INFO_ACTIVE_ARRAY_SIZE;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> SENSOR_INFO_COLOR_FILTER_ARRANGEMENT;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<android.util.Range<java.lang.Long>> SENSOR_INFO_EXPOSURE_TIME_RANGE;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Long> SENSOR_INFO_MAX_FRAME_DURATION;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<android.util.SizeF> SENSOR_INFO_PHYSICAL_SIZE;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<android.util.Size> SENSOR_INFO_PIXEL_ARRAY_SIZE;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<android.util.Range<java.lang.Integer>> SENSOR_INFO_SENSITIVITY_RANGE;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> SENSOR_INFO_TIMESTAMP_SOURCE;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> SENSOR_INFO_WHITE_LEVEL;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> SENSOR_MAX_ANALOG_SENSITIVITY;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> SENSOR_ORIENTATION;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> SENSOR_REFERENCE_ILLUMINANT1;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Byte> SENSOR_REFERENCE_ILLUMINANT2;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<boolean[]> STATISTICS_INFO_AVAILABLE_HOT_PIXEL_MAP_MODES;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> STATISTICS_INFO_MAX_FACE_COUNT;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> SYNC_MAX_LATENCY;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<int[]> TONEMAP_AVAILABLE_TONE_MAP_MODES;
+ field public static final android.hardware.camera2.CameraCharacteristics.Key<java.lang.Integer> TONEMAP_MAX_CURVE_POINTS;
}
public static final class CameraCharacteristics.Key {
@@ -12865,56 +12865,56 @@
method public T get(android.hardware.camera2.CaptureRequest.Key<T>);
method public java.lang.Object getTag();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.hardware.camera2.CaptureRequest.Key BLACK_LEVEL_LOCK;
- field public static final android.hardware.camera2.CaptureRequest.Key COLOR_CORRECTION_ABERRATION_MODE;
- field public static final android.hardware.camera2.CaptureRequest.Key COLOR_CORRECTION_GAINS;
- field public static final android.hardware.camera2.CaptureRequest.Key COLOR_CORRECTION_MODE;
- field public static final android.hardware.camera2.CaptureRequest.Key COLOR_CORRECTION_TRANSFORM;
- field public static final android.hardware.camera2.CaptureRequest.Key CONTROL_AE_ANTIBANDING_MODE;
- field public static final android.hardware.camera2.CaptureRequest.Key CONTROL_AE_EXPOSURE_COMPENSATION;
- field public static final android.hardware.camera2.CaptureRequest.Key CONTROL_AE_LOCK;
- field public static final android.hardware.camera2.CaptureRequest.Key CONTROL_AE_MODE;
- field public static final android.hardware.camera2.CaptureRequest.Key CONTROL_AE_PRECAPTURE_TRIGGER;
- field public static final android.hardware.camera2.CaptureRequest.Key CONTROL_AE_REGIONS;
- field public static final android.hardware.camera2.CaptureRequest.Key CONTROL_AE_TARGET_FPS_RANGE;
- field public static final android.hardware.camera2.CaptureRequest.Key CONTROL_AF_MODE;
- field public static final android.hardware.camera2.CaptureRequest.Key CONTROL_AF_REGIONS;
- field public static final android.hardware.camera2.CaptureRequest.Key CONTROL_AF_TRIGGER;
- field public static final android.hardware.camera2.CaptureRequest.Key CONTROL_AWB_LOCK;
- field public static final android.hardware.camera2.CaptureRequest.Key CONTROL_AWB_MODE;
- field public static final android.hardware.camera2.CaptureRequest.Key CONTROL_AWB_REGIONS;
- field public static final android.hardware.camera2.CaptureRequest.Key CONTROL_CAPTURE_INTENT;
- field public static final android.hardware.camera2.CaptureRequest.Key CONTROL_EFFECT_MODE;
- field public static final android.hardware.camera2.CaptureRequest.Key CONTROL_MODE;
- field public static final android.hardware.camera2.CaptureRequest.Key CONTROL_SCENE_MODE;
- field public static final android.hardware.camera2.CaptureRequest.Key CONTROL_VIDEO_STABILIZATION_MODE;
- field public static final android.os.Parcelable.Creator CREATOR;
- field public static final android.hardware.camera2.CaptureRequest.Key EDGE_MODE;
- field public static final android.hardware.camera2.CaptureRequest.Key FLASH_MODE;
- field public static final android.hardware.camera2.CaptureRequest.Key HOT_PIXEL_MODE;
- field public static final android.hardware.camera2.CaptureRequest.Key JPEG_GPS_LOCATION;
- field public static final android.hardware.camera2.CaptureRequest.Key JPEG_ORIENTATION;
- field public static final android.hardware.camera2.CaptureRequest.Key JPEG_QUALITY;
- field public static final android.hardware.camera2.CaptureRequest.Key JPEG_THUMBNAIL_QUALITY;
- field public static final android.hardware.camera2.CaptureRequest.Key JPEG_THUMBNAIL_SIZE;
- field public static final android.hardware.camera2.CaptureRequest.Key LENS_APERTURE;
- field public static final android.hardware.camera2.CaptureRequest.Key LENS_FILTER_DENSITY;
- field public static final android.hardware.camera2.CaptureRequest.Key LENS_FOCAL_LENGTH;
- field public static final android.hardware.camera2.CaptureRequest.Key LENS_FOCUS_DISTANCE;
- field public static final android.hardware.camera2.CaptureRequest.Key LENS_OPTICAL_STABILIZATION_MODE;
- field public static final android.hardware.camera2.CaptureRequest.Key NOISE_REDUCTION_MODE;
- field public static final android.hardware.camera2.CaptureRequest.Key SCALER_CROP_REGION;
- field public static final android.hardware.camera2.CaptureRequest.Key SENSOR_EXPOSURE_TIME;
- field public static final android.hardware.camera2.CaptureRequest.Key SENSOR_FRAME_DURATION;
- field public static final android.hardware.camera2.CaptureRequest.Key SENSOR_SENSITIVITY;
- field public static final android.hardware.camera2.CaptureRequest.Key SENSOR_TEST_PATTERN_DATA;
- field public static final android.hardware.camera2.CaptureRequest.Key SENSOR_TEST_PATTERN_MODE;
- field public static final android.hardware.camera2.CaptureRequest.Key SHADING_MODE;
- field public static final android.hardware.camera2.CaptureRequest.Key STATISTICS_FACE_DETECT_MODE;
- field public static final android.hardware.camera2.CaptureRequest.Key STATISTICS_HOT_PIXEL_MAP_MODE;
- field public static final android.hardware.camera2.CaptureRequest.Key STATISTICS_LENS_SHADING_MAP_MODE;
- field public static final android.hardware.camera2.CaptureRequest.Key TONEMAP_CURVE;
- field public static final android.hardware.camera2.CaptureRequest.Key TONEMAP_MODE;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Boolean> BLACK_LEVEL_LOCK;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> COLOR_CORRECTION_ABERRATION_MODE;
+ field public static final android.hardware.camera2.CaptureRequest.Key<android.hardware.camera2.params.RggbChannelVector> COLOR_CORRECTION_GAINS;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> COLOR_CORRECTION_MODE;
+ field public static final android.hardware.camera2.CaptureRequest.Key<android.hardware.camera2.params.ColorSpaceTransform> COLOR_CORRECTION_TRANSFORM;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> CONTROL_AE_ANTIBANDING_MODE;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> CONTROL_AE_EXPOSURE_COMPENSATION;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Boolean> CONTROL_AE_LOCK;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> CONTROL_AE_MODE;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> CONTROL_AE_PRECAPTURE_TRIGGER;
+ field public static final android.hardware.camera2.CaptureRequest.Key<android.hardware.camera2.params.MeteringRectangle[]> CONTROL_AE_REGIONS;
+ field public static final android.hardware.camera2.CaptureRequest.Key<android.util.Range<java.lang.Integer>> CONTROL_AE_TARGET_FPS_RANGE;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> CONTROL_AF_MODE;
+ field public static final android.hardware.camera2.CaptureRequest.Key<android.hardware.camera2.params.MeteringRectangle[]> CONTROL_AF_REGIONS;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> CONTROL_AF_TRIGGER;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Boolean> CONTROL_AWB_LOCK;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> CONTROL_AWB_MODE;
+ field public static final android.hardware.camera2.CaptureRequest.Key<android.hardware.camera2.params.MeteringRectangle[]> CONTROL_AWB_REGIONS;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> CONTROL_CAPTURE_INTENT;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> CONTROL_EFFECT_MODE;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> CONTROL_MODE;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> CONTROL_SCENE_MODE;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> CONTROL_VIDEO_STABILIZATION_MODE;
+ field public static final android.os.Parcelable.Creator<android.hardware.camera2.CaptureRequest> CREATOR;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> EDGE_MODE;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> FLASH_MODE;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> HOT_PIXEL_MODE;
+ field public static final android.hardware.camera2.CaptureRequest.Key<android.location.Location> JPEG_GPS_LOCATION;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> JPEG_ORIENTATION;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Byte> JPEG_QUALITY;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Byte> JPEG_THUMBNAIL_QUALITY;
+ field public static final android.hardware.camera2.CaptureRequest.Key<android.util.Size> JPEG_THUMBNAIL_SIZE;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Float> LENS_APERTURE;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Float> LENS_FILTER_DENSITY;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Float> LENS_FOCAL_LENGTH;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Float> LENS_FOCUS_DISTANCE;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> LENS_OPTICAL_STABILIZATION_MODE;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> NOISE_REDUCTION_MODE;
+ field public static final android.hardware.camera2.CaptureRequest.Key<android.graphics.Rect> SCALER_CROP_REGION;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Long> SENSOR_EXPOSURE_TIME;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Long> SENSOR_FRAME_DURATION;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> SENSOR_SENSITIVITY;
+ field public static final android.hardware.camera2.CaptureRequest.Key<int[]> SENSOR_TEST_PATTERN_DATA;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> SENSOR_TEST_PATTERN_MODE;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> SHADING_MODE;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> STATISTICS_FACE_DETECT_MODE;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Boolean> STATISTICS_HOT_PIXEL_MAP_MODE;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> STATISTICS_LENS_SHADING_MAP_MODE;
+ field public static final android.hardware.camera2.CaptureRequest.Key<android.hardware.camera2.params.TonemapCurve> TONEMAP_CURVE;
+ field public static final android.hardware.camera2.CaptureRequest.Key<java.lang.Integer> TONEMAP_MODE;
}
public static final class CaptureRequest.Builder {
@@ -12937,71 +12937,71 @@
method public long getFrameNumber();
method public android.hardware.camera2.CaptureRequest getRequest();
method public int getSequenceId();
- field public static final android.hardware.camera2.CaptureResult.Key BLACK_LEVEL_LOCK;
- field public static final android.hardware.camera2.CaptureResult.Key COLOR_CORRECTION_ABERRATION_MODE;
- field public static final android.hardware.camera2.CaptureResult.Key COLOR_CORRECTION_GAINS;
- field public static final android.hardware.camera2.CaptureResult.Key COLOR_CORRECTION_MODE;
- field public static final android.hardware.camera2.CaptureResult.Key COLOR_CORRECTION_TRANSFORM;
- field public static final android.hardware.camera2.CaptureResult.Key CONTROL_AE_ANTIBANDING_MODE;
- field public static final android.hardware.camera2.CaptureResult.Key CONTROL_AE_EXPOSURE_COMPENSATION;
- field public static final android.hardware.camera2.CaptureResult.Key CONTROL_AE_LOCK;
- field public static final android.hardware.camera2.CaptureResult.Key CONTROL_AE_MODE;
- field public static final android.hardware.camera2.CaptureResult.Key CONTROL_AE_PRECAPTURE_TRIGGER;
- field public static final android.hardware.camera2.CaptureResult.Key CONTROL_AE_REGIONS;
- field public static final android.hardware.camera2.CaptureResult.Key CONTROL_AE_STATE;
- field public static final android.hardware.camera2.CaptureResult.Key CONTROL_AE_TARGET_FPS_RANGE;
- field public static final android.hardware.camera2.CaptureResult.Key CONTROL_AF_MODE;
- field public static final android.hardware.camera2.CaptureResult.Key CONTROL_AF_REGIONS;
- field public static final android.hardware.camera2.CaptureResult.Key CONTROL_AF_STATE;
- field public static final android.hardware.camera2.CaptureResult.Key CONTROL_AF_TRIGGER;
- field public static final android.hardware.camera2.CaptureResult.Key CONTROL_AWB_LOCK;
- field public static final android.hardware.camera2.CaptureResult.Key CONTROL_AWB_MODE;
- field public static final android.hardware.camera2.CaptureResult.Key CONTROL_AWB_REGIONS;
- field public static final android.hardware.camera2.CaptureResult.Key CONTROL_AWB_STATE;
- field public static final android.hardware.camera2.CaptureResult.Key CONTROL_CAPTURE_INTENT;
- field public static final android.hardware.camera2.CaptureResult.Key CONTROL_EFFECT_MODE;
- field public static final android.hardware.camera2.CaptureResult.Key CONTROL_MODE;
- field public static final android.hardware.camera2.CaptureResult.Key CONTROL_SCENE_MODE;
- field public static final android.hardware.camera2.CaptureResult.Key CONTROL_VIDEO_STABILIZATION_MODE;
- field public static final android.hardware.camera2.CaptureResult.Key EDGE_MODE;
- field public static final android.hardware.camera2.CaptureResult.Key FLASH_MODE;
- field public static final android.hardware.camera2.CaptureResult.Key FLASH_STATE;
- field public static final android.hardware.camera2.CaptureResult.Key HOT_PIXEL_MODE;
- field public static final android.hardware.camera2.CaptureResult.Key JPEG_GPS_LOCATION;
- field public static final android.hardware.camera2.CaptureResult.Key JPEG_ORIENTATION;
- field public static final android.hardware.camera2.CaptureResult.Key JPEG_QUALITY;
- field public static final android.hardware.camera2.CaptureResult.Key JPEG_THUMBNAIL_QUALITY;
- field public static final android.hardware.camera2.CaptureResult.Key JPEG_THUMBNAIL_SIZE;
- field public static final android.hardware.camera2.CaptureResult.Key LENS_APERTURE;
- field public static final android.hardware.camera2.CaptureResult.Key LENS_FILTER_DENSITY;
- field public static final android.hardware.camera2.CaptureResult.Key LENS_FOCAL_LENGTH;
- field public static final android.hardware.camera2.CaptureResult.Key LENS_FOCUS_DISTANCE;
- field public static final android.hardware.camera2.CaptureResult.Key LENS_FOCUS_RANGE;
- field public static final android.hardware.camera2.CaptureResult.Key LENS_OPTICAL_STABILIZATION_MODE;
- field public static final android.hardware.camera2.CaptureResult.Key LENS_STATE;
- field public static final android.hardware.camera2.CaptureResult.Key NOISE_REDUCTION_MODE;
- field public static final android.hardware.camera2.CaptureResult.Key REQUEST_PIPELINE_DEPTH;
- field public static final android.hardware.camera2.CaptureResult.Key SCALER_CROP_REGION;
- field public static final android.hardware.camera2.CaptureResult.Key SENSOR_EXPOSURE_TIME;
- field public static final android.hardware.camera2.CaptureResult.Key SENSOR_FRAME_DURATION;
- field public static final android.hardware.camera2.CaptureResult.Key SENSOR_GREEN_SPLIT;
- field public static final android.hardware.camera2.CaptureResult.Key SENSOR_NEUTRAL_COLOR_POINT;
- field public static final android.hardware.camera2.CaptureResult.Key SENSOR_NOISE_PROFILE;
- field public static final android.hardware.camera2.CaptureResult.Key SENSOR_ROLLING_SHUTTER_SKEW;
- field public static final android.hardware.camera2.CaptureResult.Key SENSOR_SENSITIVITY;
- field public static final android.hardware.camera2.CaptureResult.Key SENSOR_TEST_PATTERN_DATA;
- field public static final android.hardware.camera2.CaptureResult.Key SENSOR_TEST_PATTERN_MODE;
- field public static final android.hardware.camera2.CaptureResult.Key SENSOR_TIMESTAMP;
- field public static final android.hardware.camera2.CaptureResult.Key SHADING_MODE;
- field public static final android.hardware.camera2.CaptureResult.Key STATISTICS_FACES;
- field public static final android.hardware.camera2.CaptureResult.Key STATISTICS_FACE_DETECT_MODE;
- field public static final android.hardware.camera2.CaptureResult.Key STATISTICS_HOT_PIXEL_MAP;
- field public static final android.hardware.camera2.CaptureResult.Key STATISTICS_HOT_PIXEL_MAP_MODE;
- field public static final android.hardware.camera2.CaptureResult.Key STATISTICS_LENS_SHADING_CORRECTION_MAP;
- field public static final android.hardware.camera2.CaptureResult.Key STATISTICS_LENS_SHADING_MAP_MODE;
- field public static final android.hardware.camera2.CaptureResult.Key STATISTICS_SCENE_FLICKER;
- field public static final android.hardware.camera2.CaptureResult.Key TONEMAP_CURVE;
- field public static final android.hardware.camera2.CaptureResult.Key TONEMAP_MODE;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Boolean> BLACK_LEVEL_LOCK;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> COLOR_CORRECTION_ABERRATION_MODE;
+ field public static final android.hardware.camera2.CaptureResult.Key<android.hardware.camera2.params.RggbChannelVector> COLOR_CORRECTION_GAINS;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> COLOR_CORRECTION_MODE;
+ field public static final android.hardware.camera2.CaptureResult.Key<android.hardware.camera2.params.ColorSpaceTransform> COLOR_CORRECTION_TRANSFORM;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_AE_ANTIBANDING_MODE;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_AE_EXPOSURE_COMPENSATION;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Boolean> CONTROL_AE_LOCK;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_AE_MODE;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_AE_PRECAPTURE_TRIGGER;
+ field public static final android.hardware.camera2.CaptureResult.Key<android.hardware.camera2.params.MeteringRectangle[]> CONTROL_AE_REGIONS;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_AE_STATE;
+ field public static final android.hardware.camera2.CaptureResult.Key<android.util.Range<java.lang.Integer>> CONTROL_AE_TARGET_FPS_RANGE;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_AF_MODE;
+ field public static final android.hardware.camera2.CaptureResult.Key<android.hardware.camera2.params.MeteringRectangle[]> CONTROL_AF_REGIONS;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_AF_STATE;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_AF_TRIGGER;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Boolean> CONTROL_AWB_LOCK;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_AWB_MODE;
+ field public static final android.hardware.camera2.CaptureResult.Key<android.hardware.camera2.params.MeteringRectangle[]> CONTROL_AWB_REGIONS;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_AWB_STATE;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_CAPTURE_INTENT;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_EFFECT_MODE;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_MODE;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_SCENE_MODE;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> CONTROL_VIDEO_STABILIZATION_MODE;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> EDGE_MODE;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> FLASH_MODE;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> FLASH_STATE;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> HOT_PIXEL_MODE;
+ field public static final android.hardware.camera2.CaptureResult.Key<android.location.Location> JPEG_GPS_LOCATION;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> JPEG_ORIENTATION;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Byte> JPEG_QUALITY;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Byte> JPEG_THUMBNAIL_QUALITY;
+ field public static final android.hardware.camera2.CaptureResult.Key<android.util.Size> JPEG_THUMBNAIL_SIZE;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Float> LENS_APERTURE;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Float> LENS_FILTER_DENSITY;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Float> LENS_FOCAL_LENGTH;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Float> LENS_FOCUS_DISTANCE;
+ field public static final android.hardware.camera2.CaptureResult.Key<android.util.Pair<java.lang.Float, java.lang.Float>> LENS_FOCUS_RANGE;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> LENS_OPTICAL_STABILIZATION_MODE;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> LENS_STATE;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> NOISE_REDUCTION_MODE;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Byte> REQUEST_PIPELINE_DEPTH;
+ field public static final android.hardware.camera2.CaptureResult.Key<android.graphics.Rect> SCALER_CROP_REGION;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Long> SENSOR_EXPOSURE_TIME;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Long> SENSOR_FRAME_DURATION;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Float> SENSOR_GREEN_SPLIT;
+ field public static final android.hardware.camera2.CaptureResult.Key<android.util.Rational[]> SENSOR_NEUTRAL_COLOR_POINT;
+ field public static final android.hardware.camera2.CaptureResult.Key<android.util.Pair<java.lang.Double, java.lang.Double>[]> SENSOR_NOISE_PROFILE;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Long> SENSOR_ROLLING_SHUTTER_SKEW;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> SENSOR_SENSITIVITY;
+ field public static final android.hardware.camera2.CaptureResult.Key<int[]> SENSOR_TEST_PATTERN_DATA;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> SENSOR_TEST_PATTERN_MODE;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Long> SENSOR_TIMESTAMP;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> SHADING_MODE;
+ field public static final android.hardware.camera2.CaptureResult.Key<android.hardware.camera2.params.Face[]> STATISTICS_FACES;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> STATISTICS_FACE_DETECT_MODE;
+ field public static final android.hardware.camera2.CaptureResult.Key<android.graphics.Point[]> STATISTICS_HOT_PIXEL_MAP;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Boolean> STATISTICS_HOT_PIXEL_MAP_MODE;
+ field public static final android.hardware.camera2.CaptureResult.Key<android.hardware.camera2.params.LensShadingMap> STATISTICS_LENS_SHADING_CORRECTION_MAP;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> STATISTICS_LENS_SHADING_MAP_MODE;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> STATISTICS_SCENE_FLICKER;
+ field public static final android.hardware.camera2.CaptureResult.Key<android.hardware.camera2.params.TonemapCurve> TONEMAP_CURVE;
+ field public static final android.hardware.camera2.CaptureResult.Key<java.lang.Integer> TONEMAP_MODE;
}
public static final class CaptureResult.Key {
@@ -13204,7 +13204,7 @@
method public java.lang.String getUri();
method public java.lang.String getVersion();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.hardware.usb.UsbAccessory> CREATOR;
}
public class UsbConfiguration implements android.os.Parcelable {
@@ -13217,7 +13217,7 @@
method public boolean isRemoteWakeup();
method public boolean isSelfPowered();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.hardware.usb.UsbConfiguration> CREATOR;
}
public final class UsbConstants {
@@ -13276,7 +13276,7 @@
method public java.lang.String getSerialNumber();
method public int getVendorId();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.hardware.usb.UsbDevice> CREATOR;
}
public class UsbDeviceConnection {
@@ -13305,7 +13305,7 @@
method public int getMaxPacketSize();
method public int getType();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.hardware.usb.UsbEndpoint> CREATOR;
}
public class UsbInterface implements android.os.Parcelable {
@@ -13319,7 +13319,7 @@
method public int getInterfaceSubclass();
method public java.lang.String getName();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.hardware.usb.UsbInterface> CREATOR;
}
public class UsbManager {
@@ -13676,7 +13676,7 @@
method public void setThoroughfare(java.lang.String);
method public void setUrl(java.lang.String);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.location.Address> CREATOR;
}
public class Criteria implements android.os.Parcelable {
@@ -13709,7 +13709,7 @@
field public static final int ACCURACY_HIGH = 3; // 0x3
field public static final int ACCURACY_LOW = 1; // 0x1
field public static final int ACCURACY_MEDIUM = 2; // 0x2
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.location.Criteria> CREATOR;
field public static final int NO_REQUIREMENT = 0; // 0x0
field public static final int POWER_HIGH = 3; // 0x3
field public static final int POWER_LOW = 1; // 0x1
@@ -13795,7 +13795,7 @@
method public void setSpeed(float);
method public void setTime(long);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.location.Location> CREATOR;
field public static final int FORMAT_DEGREES = 0; // 0x0
field public static final int FORMAT_MINUTES = 1; // 0x1
field public static final int FORMAT_SECONDS = 2; // 0x2
@@ -13905,7 +13905,7 @@
field public static final int CONTENT_TYPE_SONIFICATION = 4; // 0x4
field public static final int CONTENT_TYPE_SPEECH = 1; // 0x1
field public static final int CONTENT_TYPE_UNKNOWN = 0; // 0x0
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.media.AudioAttributes> CREATOR;
field public static final int FLAG_AUDIBILITY_ENFORCED = 1; // 0x1
field public static final int FLAG_HW_AV_SYNC = 16; // 0x10
field public static final int USAGE_ALARM = 4; // 0x4
@@ -14776,7 +14776,7 @@
method public java.lang.CharSequence getSubtitle();
method public java.lang.CharSequence getTitle();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.media.MediaDescription> CREATOR;
}
public static class MediaDescription.Builder {
@@ -14976,7 +14976,7 @@
method public java.util.Set<java.lang.String> keySet();
method public int size();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.media.MediaMetadata> CREATOR;
field public static final java.lang.String METADATA_KEY_ALBUM = "android.media.metadata.ALBUM";
field public static final java.lang.String METADATA_KEY_ALBUM_ART = "android.media.metadata.ALBUM_ART";
field public static final java.lang.String METADATA_KEY_ALBUM_ARTIST = "android.media.metadata.ALBUM_ARTIST";
@@ -15477,7 +15477,7 @@
method public static android.media.Rating newThumbRating(boolean);
method public static android.media.Rating newUnratedRating(int);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.media.Rating> CREATOR;
field public static final int RATING_3_STARS = 3; // 0x3
field public static final int RATING_4_STARS = 4; // 0x4
field public static final int RATING_5_STARS = 5; // 0x5
@@ -16127,7 +16127,7 @@
method public boolean isBrowsable();
method public boolean isPlayable();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.media.browse.MediaBrowser.MediaItem> CREATOR;
field public static final int FLAG_BROWSABLE = 1; // 0x1
field public static final int FLAG_PLAYABLE = 2; // 0x2
}
@@ -16329,14 +16329,14 @@
method public android.media.MediaDescription getDescription();
method public long getQueueId();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.media.session.MediaSession.QueueItem> CREATOR;
field public static final int UNKNOWN_ID = -1; // 0xffffffff
}
public static final class MediaSession.Token implements android.os.Parcelable {
method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.media.session.MediaSession.Token> CREATOR;
}
public final class MediaSessionManager {
@@ -16375,7 +16375,7 @@
field public static final long ACTION_SKIP_TO_PREVIOUS = 16L; // 0x10L
field public static final long ACTION_SKIP_TO_QUEUE_ITEM = 4096L; // 0x1000L
field public static final long ACTION_STOP = 1L; // 0x1L
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.media.session.PlaybackState> CREATOR;
field public static final long PLAYBACK_POSITION_UNKNOWN = -1L; // 0xffffffffffffffffL
field public static final int STATE_BUFFERING = 6; // 0x6
field public static final int STATE_CONNECTING = 8; // 0x8
@@ -16412,7 +16412,7 @@
method public int getIcon();
method public java.lang.CharSequence getName();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.media.session.PlaybackState.CustomAction> CREATOR;
}
public static final class PlaybackState.CustomAction.Builder {
@@ -16581,7 +16581,7 @@
method public android.graphics.drawable.Drawable loadIcon(android.content.Context);
method public java.lang.CharSequence loadLabel(android.content.Context);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.media.tv.TvInputInfo> CREATOR;
field public static final java.lang.String EXTRA_INPUT_ID = "android.media.tv.extra.INPUT_ID";
field public static final int TYPE_COMPONENT = 1004; // 0x3ec
field public static final int TYPE_COMPOSITE = 1001; // 0x3e9
@@ -16679,7 +16679,7 @@
method public final int getVideoHeight();
method public final int getVideoWidth();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.media.tv.TvTrackInfo> CREATOR;
field public static final int TYPE_AUDIO = 0; // 0x0
field public static final int TYPE_SUBTITLE = 2; // 0x2
field public static final int TYPE_VIDEO = 1; // 0x1
@@ -16951,7 +16951,7 @@
method public int getPrefixLength();
method public byte[] getRawAddress();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.net.IpPrefix> CREATOR;
}
public class LinkAddress implements android.os.Parcelable {
@@ -16961,7 +16961,7 @@
method public int getPrefixLength();
method public int getScope();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.net.LinkAddress> CREATOR;
}
public final class LinkProperties implements android.os.Parcelable {
@@ -16973,7 +16973,7 @@
method public java.util.List<android.net.LinkAddress> getLinkAddresses();
method public java.util.List<android.net.RouteInfo> getRoutes();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.net.LinkProperties> CREATOR;
}
public class LocalServerSocket {
@@ -17053,7 +17053,7 @@
method public javax.net.SocketFactory getSocketFactory();
method public java.net.URLConnection openConnection(java.net.URL) throws java.io.IOException;
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.net.Network> CREATOR;
}
public final class NetworkCapabilities implements android.os.Parcelable {
@@ -17064,7 +17064,7 @@
method public boolean hasCapability(int);
method public boolean hasTransport(int);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.net.NetworkCapabilities> CREATOR;
field public static final int NET_CAPABILITY_CBS = 5; // 0x5
field public static final int NET_CAPABILITY_DUN = 2; // 0x2
field public static final int NET_CAPABILITY_EIMS = 10; // 0xa
@@ -17138,7 +17138,7 @@
public class NetworkRequest implements android.os.Parcelable {
method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.net.NetworkRequest> CREATOR;
}
public static class NetworkRequest.Builder {
@@ -17175,7 +17175,7 @@
method public android.net.Uri getPacFileUrl();
method public int getPort();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.net.ProxyInfo> CREATOR;
}
public abstract class PskKeyManager {
@@ -17199,7 +17199,7 @@
method public boolean isDefaultRoute();
method public boolean matches(java.net.InetAddress);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.net.RouteInfo> CREATOR;
}
public class SSLCertificateSocketFactory extends javax.net.ssl.SSLSocketFactory {
@@ -17298,7 +17298,7 @@
method public abstract java.lang.String toString();
method public static android.net.Uri withAppendedPath(android.net.Uri, java.lang.String);
method public static void writeToParcel(android.os.Parcel, android.net.Uri);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.net.Uri> CREATOR;
field public static final android.net.Uri EMPTY;
}
@@ -17572,7 +17572,7 @@
method public void setServiceName(java.lang.String);
method public void setServiceType(java.lang.String);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.net.nsd.NsdServiceInfo> CREATOR;
}
}
@@ -17737,7 +17737,7 @@
method public java.lang.String getUriString();
method public java.lang.String getUserName();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.net.sip.SipProfile> CREATOR;
}
public static class SipProfile.Builder {
@@ -17936,7 +17936,7 @@
method public void setPhase2Method(int);
method public void setSubjectMatch(java.lang.String);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.net.wifi.WifiEnterpriseConfig> CREATOR;
}
public static final class WifiEnterpriseConfig.Eap {
@@ -18072,7 +18072,7 @@
method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
field public java.lang.String BSSID;
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.net.wifi.WpsInfo> CREATOR;
field public static final int DISPLAY = 1; // 0x1
field public static final int INVALID = 4; // 0x4
field public static final int KEYPAD = 2; // 0x2
@@ -18091,7 +18091,7 @@
ctor public WifiP2pConfig(android.net.wifi.p2p.WifiP2pConfig);
method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.net.wifi.p2p.WifiP2pConfig> CREATOR;
field public java.lang.String deviceAddress;
field public int groupOwnerIntent;
field public android.net.wifi.WpsInfo wps;
@@ -18109,7 +18109,7 @@
method public void writeToParcel(android.os.Parcel, int);
field public static final int AVAILABLE = 3; // 0x3
field public static final int CONNECTED = 0; // 0x0
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.net.wifi.p2p.WifiP2pDevice> CREATOR;
field public static final int FAILED = 2; // 0x2
field public static final int INVITED = 1; // 0x1
field public static final int UNAVAILABLE = 4; // 0x4
@@ -18127,7 +18127,7 @@
method public android.net.wifi.p2p.WifiP2pDevice get(java.lang.String);
method public java.util.Collection<android.net.wifi.p2p.WifiP2pDevice> getDeviceList();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.net.wifi.p2p.WifiP2pDeviceList> CREATOR;
}
public class WifiP2pGroup implements android.os.Parcelable {
@@ -18141,7 +18141,7 @@
method public java.lang.String getPassphrase();
method public boolean isGroupOwner();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.net.wifi.p2p.WifiP2pGroup> CREATOR;
}
public class WifiP2pInfo implements android.os.Parcelable {
@@ -18149,7 +18149,7 @@
ctor public WifiP2pInfo(android.net.wifi.p2p.WifiP2pInfo);
method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.net.wifi.p2p.WifiP2pInfo> CREATOR;
field public boolean groupFormed;
field public java.net.InetAddress groupOwnerAddress;
field public boolean isGroupOwner;
@@ -18296,7 +18296,7 @@
method public android.nfc.NdefRecord[] getRecords();
method public byte[] toByteArray();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.nfc.NdefMessage> CREATOR;
}
public final class NdefRecord implements android.os.Parcelable {
@@ -18317,7 +18317,7 @@
method public java.lang.String toMimeType();
method public android.net.Uri toUri();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.nfc.NdefRecord> CREATOR;
field public static final byte[] RTD_ALTERNATIVE_CARRIER;
field public static final byte[] RTD_HANDOVER_CARRIER;
field public static final byte[] RTD_HANDOVER_REQUEST;
@@ -18401,7 +18401,7 @@
method public byte[] getId();
method public java.lang.String[] getTechList();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.nfc.Tag> CREATOR;
}
public class TagLostException extends java.io.IOException {
@@ -21486,7 +21486,7 @@
method public void readFromParcel(android.os.Parcel);
method public void setClassLoader(java.lang.ClassLoader);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.os.Bundle> CREATOR;
field public static final android.os.Bundle EMPTY;
}
@@ -21614,7 +21614,7 @@
method public int getTotalSwappablePss();
method public void readFromParcel(android.os.Parcel);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.os.Debug.MemoryInfo> CREATOR;
field public int dalvikPrivateDirty;
field public int dalvikPss;
field public int dalvikSharedDirty;
@@ -21655,7 +21655,7 @@
method public java.lang.String getText(int);
method public long getTimeMillis();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.os.DropBoxManager.Entry> CREATOR;
}
public class Environment {
@@ -21841,7 +21841,7 @@
method public void setData(android.os.Bundle);
method public void setTarget(android.os.Handler);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.os.Message> CREATOR;
field public int arg1;
field public int arg2;
field public java.lang.Object obj;
@@ -21868,7 +21868,7 @@
method public void send(android.os.Message) throws android.os.RemoteException;
method public static void writeMessengerOrNullToParcel(android.os.Messenger, android.os.Parcel);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.os.Messenger> CREATOR;
}
public class NetworkOnMainThreadException extends java.lang.RuntimeException {
@@ -21987,7 +21987,7 @@
method public final void writeTypedArray(T[], int);
method public final void writeTypedList(java.util.List<T>);
method public final void writeValue(java.lang.Object);
- field public static final android.os.Parcelable.Creator STRING_CREATOR;
+ field public static final android.os.Parcelable.Creator<java.lang.String> STRING_CREATOR;
}
public class ParcelFileDescriptor implements java.io.Closeable android.os.Parcelable {
@@ -22015,7 +22015,7 @@
method public static android.os.ParcelFileDescriptor open(java.io.File, int, android.os.Handler, android.os.ParcelFileDescriptor.OnCloseListener) throws java.io.IOException;
method public static int parseMode(java.lang.String);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.os.ParcelFileDescriptor> CREATOR;
field public static final int MODE_APPEND = 33554432; // 0x2000000
field public static final int MODE_CREATE = 134217728; // 0x8000000
field public static final int MODE_READ_ONLY = 268435456; // 0x10000000
@@ -22053,7 +22053,7 @@
method public static android.os.ParcelUuid fromString(java.lang.String);
method public java.util.UUID getUuid();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.os.ParcelUuid> CREATOR;
}
public abstract interface Parcelable {
@@ -22080,7 +22080,7 @@
method public final int getType();
method public boolean match(java.lang.String);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.os.PatternMatcher> CREATOR;
field public static final int PATTERN_LITERAL = 0; // 0x0
field public static final int PATTERN_PREFIX = 1; // 0x1
field public static final int PATTERN_SIMPLE_GLOB = 2; // 0x2
@@ -22095,7 +22095,7 @@
method public android.os.PersistableBundle getPersistableBundle(java.lang.String);
method public void putPersistableBundle(java.lang.String, android.os.PersistableBundle);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.os.PersistableBundle> CREATOR;
field public static final android.os.PersistableBundle EMPTY;
}
@@ -22199,7 +22199,7 @@
method protected void onReceiveResult(int, android.os.Bundle);
method public void send(int, android.os.Bundle);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.os.ResultReceiver> CREATOR;
}
public class StatFs {
@@ -22311,7 +22311,7 @@
method public static android.os.UserHandle readFromParcel(android.os.Parcel);
method public void writeToParcel(android.os.Parcel, int);
method public static void writeToParcel(android.os.UserHandle, android.os.Parcel);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.os.UserHandle> CREATOR;
}
public class UserManager {
@@ -22378,7 +22378,7 @@
method public boolean remove(android.os.WorkSource);
method public void set(android.os.WorkSource);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.os.WorkSource> CREATOR;
}
}
@@ -22583,7 +22583,7 @@
public static class Preference.BaseSavedState extends android.view.AbsSavedState {
ctor public Preference.BaseSavedState(android.os.Parcel);
ctor public Preference.BaseSavedState(android.os.Parcelable);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.preference.Preference.BaseSavedState> CREATOR;
}
public static abstract interface Preference.OnPreferenceChangeListener {
@@ -22643,7 +22643,7 @@
method public java.lang.CharSequence getTitle(android.content.res.Resources);
method public void readFromParcel(android.os.Parcel);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.preference.PreferenceActivity.Header> CREATOR;
field public java.lang.CharSequence breadCrumbShortTitle;
field public int breadCrumbShortTitleRes;
field public java.lang.CharSequence breadCrumbTitle;
@@ -22795,7 +22795,7 @@
method public int getStart();
method public void writeToParcel(android.os.Parcel, int);
field public static final android.print.PageRange ALL_PAGES;
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.print.PageRange> CREATOR;
}
public final class PrintAttributes implements android.os.Parcelable {
@@ -22807,7 +22807,7 @@
method public void writeToParcel(android.os.Parcel, int);
field public static final int COLOR_MODE_COLOR = 2; // 0x2
field public static final int COLOR_MODE_MONOCHROME = 1; // 0x1
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.print.PrintAttributes> CREATOR;
}
public static final class PrintAttributes.Builder {
@@ -22961,7 +22961,7 @@
field public static final int CONTENT_TYPE_DOCUMENT = 0; // 0x0
field public static final int CONTENT_TYPE_PHOTO = 1; // 0x1
field public static final int CONTENT_TYPE_UNKNOWN = -1; // 0xffffffff
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.print.PrintDocumentInfo> CREATOR;
field public static final int PAGE_COUNT_UNKNOWN = -1; // 0xffffffff
}
@@ -22988,7 +22988,7 @@
public final class PrintJobId implements android.os.Parcelable {
method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.print.PrintJobId> CREATOR;
}
public final class PrintJobInfo implements android.os.Parcelable {
@@ -23002,7 +23002,7 @@
method public android.print.PrinterId getPrinterId();
method public int getState();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.print.PrintJobInfo> CREATOR;
field public static final int STATE_BLOCKED = 4; // 0x4
field public static final int STATE_CANCELED = 7; // 0x7
field public static final int STATE_COMPLETED = 5; // 0x5
@@ -23035,7 +23035,7 @@
method public android.print.PrintAttributes.Margins getMinMargins();
method public java.util.List<android.print.PrintAttributes.Resolution> getResolutions();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.print.PrinterCapabilitiesInfo> CREATOR;
}
public static final class PrinterCapabilitiesInfo.Builder {
@@ -23051,7 +23051,7 @@
method public int describeContents();
method public java.lang.String getLocalId();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.print.PrinterId> CREATOR;
}
public final class PrinterInfo implements android.os.Parcelable {
@@ -23062,7 +23062,7 @@
method public java.lang.String getName();
method public int getStatus();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.print.PrinterInfo> CREATOR;
field public static final int STATUS_BUSY = 2; // 0x2
field public static final int STATUS_IDLE = 1; // 0x1
field public static final int STATUS_UNAVAILABLE = 3; // 0x3
@@ -26978,7 +26978,7 @@
method public java.lang.String[] getOrderedKeys();
method public boolean getRanking(java.lang.String, android.service.notification.NotificationListenerService.Ranking);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.service.notification.NotificationListenerService.RankingMap> CREATOR;
}
public class StatusBarNotification implements android.os.Parcelable {
@@ -26998,7 +26998,7 @@
method public boolean isClearable();
method public boolean isOngoing();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.service.notification.StatusBarNotification> CREATOR;
}
}
@@ -27414,7 +27414,7 @@
method public int getQuality();
method public boolean isNetworkConnectionRequired();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.speech.tts.Voice> CREATOR;
field public static final int LATENCY_HIGH = 400; // 0x190
field public static final int LATENCY_LOW = 200; // 0xc8
field public static final int LATENCY_NORMAL = 300; // 0x12c
@@ -28069,7 +28069,7 @@
ctor public AudioState(android.telecom.AudioState);
method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.telecom.AudioState> CREATOR;
field public static final int ROUTE_BLUETOOTH = 2; // 0x2
field public static final int ROUTE_EARPIECE = 1; // 0x1
field public static final int ROUTE_SPEAKER = 8; // 0x8
@@ -28172,7 +28172,7 @@
method public android.net.Uri getAddress();
method public android.os.Bundle getExtras();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.telecom.ConnectionRequest> CREATOR;
}
public abstract class ConnectionService extends android.app.Service {
@@ -28204,7 +28204,7 @@
method public void writeToParcel(android.os.Parcel, int);
field public static final int BUSY = 7; // 0x7
field public static final int CANCELED = 4; // 0x4
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.telecom.DisconnectCause> CREATOR;
field public static final int ERROR = 1; // 0x1
field public static final int LOCAL = 2; // 0x2
field public static final int MISSED = 5; // 0x5
@@ -28222,7 +28222,7 @@
method public android.net.Uri getOriginalAddress();
method public boolean isEmpty();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.telecom.GatewayInfo> CREATOR;
}
public class PhoneAccount implements android.os.Parcelable {
@@ -28244,7 +28244,7 @@
field public static final int CAPABILITY_CONNECTION_MANAGER = 1; // 0x1
field public static final int CAPABILITY_PLACE_EMERGENCY_CALLS = 16; // 0x10
field public static final int CAPABILITY_SIM_SUBSCRIPTION = 4; // 0x4
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.telecom.PhoneAccount> CREATOR;
field public static final int NO_COLOR = -1; // 0xffffffff
field public static final java.lang.String SCHEME_SIP = "sip";
field public static final java.lang.String SCHEME_TEL = "tel";
@@ -28270,7 +28270,7 @@
method public android.content.ComponentName getComponentName();
method public java.lang.String getId();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.telecom.PhoneAccountHandle> CREATOR;
}
public final class PhoneCapabilities {
@@ -28370,7 +28370,7 @@
method public java.lang.CharSequence getLabel();
method public android.content.ComponentName getPackageName();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.telecom.StatusHints> CREATOR;
}
public class TelecomManager {
@@ -28417,7 +28417,7 @@
method public int getNetworkId();
method public int getSystemId();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.telephony.CellIdentityCdma> CREATOR;
}
public final class CellIdentityGsm implements android.os.Parcelable {
@@ -28428,7 +28428,7 @@
method public int getMnc();
method public deprecated int getPsc();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.telephony.CellIdentityGsm> CREATOR;
}
public final class CellIdentityLte implements android.os.Parcelable {
@@ -28439,7 +28439,7 @@
method public int getPci();
method public int getTac();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.telephony.CellIdentityLte> CREATOR;
}
public final class CellIdentityWcdma implements android.os.Parcelable {
@@ -28450,7 +28450,7 @@
method public int getMnc();
method public int getPsc();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.telephony.CellIdentityWcdma> CREATOR;
}
public abstract class CellInfo implements android.os.Parcelable {
@@ -28458,35 +28458,35 @@
method public long getTimeStamp();
method public boolean isRegistered();
method public abstract void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.telephony.CellInfo> CREATOR;
}
public final class CellInfoCdma extends android.telephony.CellInfo implements android.os.Parcelable {
method public android.telephony.CellIdentityCdma getCellIdentity();
method public android.telephony.CellSignalStrengthCdma getCellSignalStrength();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.telephony.CellInfoCdma> CREATOR;
}
public final class CellInfoGsm extends android.telephony.CellInfo implements android.os.Parcelable {
method public android.telephony.CellIdentityGsm getCellIdentity();
method public android.telephony.CellSignalStrengthGsm getCellSignalStrength();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.telephony.CellInfoGsm> CREATOR;
}
public final class CellInfoLte extends android.telephony.CellInfo implements android.os.Parcelable {
method public android.telephony.CellIdentityLte getCellIdentity();
method public android.telephony.CellSignalStrengthLte getCellSignalStrength();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.telephony.CellInfoLte> CREATOR;
}
public final class CellInfoWcdma extends android.telephony.CellInfo implements android.os.Parcelable {
method public android.telephony.CellIdentityWcdma getCellIdentity();
method public android.telephony.CellSignalStrengthWcdma getCellSignalStrength();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.telephony.CellInfoWcdma> CREATOR;
}
public abstract class CellLocation {
@@ -28518,7 +28518,7 @@
method public int getLevel();
method public int hashCode();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.telephony.CellSignalStrengthCdma> CREATOR;
}
public final class CellSignalStrengthGsm extends android.telephony.CellSignalStrength implements android.os.Parcelable {
@@ -28529,7 +28529,7 @@
method public int getLevel();
method public int hashCode();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.telephony.CellSignalStrengthGsm> CREATOR;
}
public final class CellSignalStrengthLte extends android.telephony.CellSignalStrength implements android.os.Parcelable {
@@ -28541,7 +28541,7 @@
method public int getTimingAdvance();
method public int hashCode();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.telephony.CellSignalStrengthLte> CREATOR;
}
public final class CellSignalStrengthWcdma extends android.telephony.CellSignalStrength implements android.os.Parcelable {
@@ -28552,7 +28552,7 @@
method public int getLevel();
method public int hashCode();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.telephony.CellSignalStrengthWcdma> CREATOR;
}
public class IccOpenLogicalChannelResponse implements android.os.Parcelable {
@@ -28561,7 +28561,7 @@
method public byte[] getSelectResponse();
method public int getStatus();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.telephony.IccOpenLogicalChannelResponse> CREATOR;
field public static final int INVALID_CHANNEL = -1; // 0xffffffff
field public static final int STATUS_MISSING_RESOURCE = 2; // 0x2
field public static final int STATUS_NO_ERROR = 1; // 0x1
@@ -28583,7 +28583,7 @@
method public deprecated void setCid(int);
method public deprecated void setRssi(int);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.telephony.NeighboringCellInfo> CREATOR;
field public static final int UNKNOWN_CID = -1; // 0xffffffff
field public static final int UNKNOWN_RSSI = 99; // 0x63
}
@@ -28690,7 +28690,7 @@
method public void setStateOff();
method public void setStateOutOfService();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.telephony.ServiceState> CREATOR;
field public static final int STATE_EMERGENCY_ONLY = 2; // 0x2
field public static final int STATE_IN_SERVICE = 0; // 0x0
field public static final int STATE_OUT_OF_SERVICE = 1; // 0x1
@@ -28840,7 +28840,7 @@
method public android.graphics.drawable.BitmapDrawable getIconDrawable();
method public java.lang.String getLabel();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.telephony.SubInfoRecord> CREATOR;
field public int color;
field public int dataRoaming;
field public java.lang.String displayName;
@@ -30211,7 +30211,7 @@
field public static final int CAP_MODE_CHARACTERS = 4096; // 0x1000
field public static final int CAP_MODE_SENTENCES = 16384; // 0x4000
field public static final int CAP_MODE_WORDS = 8192; // 0x2000
- field public static final android.os.Parcelable.Creator CHAR_SEQUENCE_CREATOR;
+ field public static final android.os.Parcelable.Creator<java.lang.CharSequence> CHAR_SEQUENCE_CREATOR;
}
public static abstract interface TextUtils.EllipsizeCallback {
@@ -30935,7 +30935,7 @@
method public void updateDrawState(android.text.TextPaint);
method public void writeToParcel(android.os.Parcel, int);
field public static final java.lang.String ACTION_SUGGESTION_PICKED = "android.text.style.SUGGESTION_PICKED";
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.text.style.SuggestionSpan> CREATOR;
field public static final int FLAG_AUTO_CORRECTION = 4; // 0x4
field public static final int FLAG_EASY_CORRECT = 1; // 0x1
field public static final int FLAG_MISSPELLED = 2; // 0x2
@@ -31516,7 +31516,7 @@
public class TransitionValues {
ctor public TransitionValues();
- field public final java.util.Map values;
+ field public final java.util.Map<java.lang.String, java.lang.Object> values;
field public android.view.View view;
}
@@ -32224,7 +32224,7 @@
method public int describeContents();
method public final android.os.Parcelable getSuperState();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.AbsSavedState> CREATOR;
field public static final android.view.AbsSavedState EMPTY_STATE;
}
@@ -32357,7 +32357,7 @@
field public static final int ACTION_DRAG_LOCATION = 2; // 0x2
field public static final int ACTION_DRAG_STARTED = 1; // 0x1
field public static final int ACTION_DROP = 3; // 0x3
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.DragEvent> CREATOR;
}
public class FocusFinder {
@@ -32494,7 +32494,7 @@
method public boolean isVirtual();
method public boolean supportsSource(int);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.InputDevice> CREATOR;
field public static final int KEYBOARD_TYPE_ALPHABETIC = 2; // 0x2
field public static final int KEYBOARD_TYPE_NONE = 0; // 0x0
field public static final int KEYBOARD_TYPE_NON_ALPHABETIC = 1; // 0x1
@@ -32548,7 +32548,7 @@
method public abstract long getEventTime();
method public abstract int getSource();
method public boolean isFromSource(int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.InputEvent> CREATOR;
}
public final class InputQueue {
@@ -32580,7 +32580,7 @@
field public static final deprecated int BUILT_IN_KEYBOARD = 0; // 0x0
field public static final int COMBINING_ACCENT = -2147483648; // 0x80000000
field public static final int COMBINING_ACCENT_MASK = 2147483647; // 0x7fffffff
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.KeyCharacterMap> CREATOR;
field public static final int FULL = 4; // 0x4
field public static final char HEX_INPUT = 61184; // 0xef00 '\uef00'
field public static final int MODIFIER_BEHAVIOR_CHORDED = 0; // 0x0
@@ -32672,7 +32672,7 @@
field public static final int ACTION_DOWN = 0; // 0x0
field public static final int ACTION_MULTIPLE = 2; // 0x2
field public static final int ACTION_UP = 1; // 0x1
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.KeyEvent> CREATOR;
field public static final int FLAG_CANCELED = 32; // 0x20
field public static final int FLAG_CANCELED_LONG_PRESS = 256; // 0x100
field public static final int FLAG_EDITOR_ACTION = 16; // 0x10
@@ -33272,7 +33272,7 @@
field public static final int BUTTON_PRIMARY = 1; // 0x1
field public static final int BUTTON_SECONDARY = 2; // 0x2
field public static final int BUTTON_TERTIARY = 4; // 0x4
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.MotionEvent> CREATOR;
field public static final int EDGE_BOTTOM = 2; // 0x2
field public static final int EDGE_LEFT = 4; // 0x4
field public static final int EDGE_RIGHT = 8; // 0x8
@@ -33399,7 +33399,7 @@
method public deprecated void unlockCanvas(android.graphics.Canvas);
method public void unlockCanvasAndPost(android.graphics.Canvas);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.Surface> CREATOR;
field public static final int ROTATION_0 = 0; // 0x0
field public static final int ROTATION_180 = 2; // 0x2
field public static final int ROTATION_270 = 3; // 0x3
@@ -33993,7 +33993,7 @@
field public static final int ACCESSIBILITY_LIVE_REGION_ASSERTIVE = 2; // 0x2
field public static final int ACCESSIBILITY_LIVE_REGION_NONE = 0; // 0x0
field public static final int ACCESSIBILITY_LIVE_REGION_POLITE = 1; // 0x1
- field public static final android.util.Property ALPHA;
+ field public static final android.util.Property<android.view.View, java.lang.Float> ALPHA;
field public static final int DRAWING_CACHE_QUALITY_AUTO = 0; // 0x0
field public static final int DRAWING_CACHE_QUALITY_HIGH = 1048576; // 0x100000
field public static final int DRAWING_CACHE_QUALITY_LOW = 524288; // 0x80000
@@ -34059,11 +34059,11 @@
field protected static final int[] PRESSED_SELECTED_WINDOW_FOCUSED_STATE_SET;
field protected static final int[] PRESSED_STATE_SET;
field protected static final int[] PRESSED_WINDOW_FOCUSED_STATE_SET;
- field public static final android.util.Property ROTATION;
- field public static final android.util.Property ROTATION_X;
- field public static final android.util.Property ROTATION_Y;
- field public static final android.util.Property SCALE_X;
- field public static final android.util.Property SCALE_Y;
+ field public static final android.util.Property<android.view.View, java.lang.Float> ROTATION;
+ field public static final android.util.Property<android.view.View, java.lang.Float> ROTATION_X;
+ field public static final android.util.Property<android.view.View, java.lang.Float> ROTATION_Y;
+ field public static final android.util.Property<android.view.View, java.lang.Float> SCALE_X;
+ field public static final android.util.Property<android.view.View, java.lang.Float> SCALE_Y;
field public static final int SCREEN_STATE_OFF = 0; // 0x0
field public static final int SCREEN_STATE_ON = 1; // 0x1
field public static final int SCROLLBARS_INSIDE_INSET = 16777216; // 0x1000000
@@ -34104,15 +34104,15 @@
field public static final int TEXT_DIRECTION_LOCALE = 5; // 0x5
field public static final int TEXT_DIRECTION_LTR = 3; // 0x3
field public static final int TEXT_DIRECTION_RTL = 4; // 0x4
- field public static final android.util.Property TRANSLATION_X;
- field public static final android.util.Property TRANSLATION_Y;
- field public static final android.util.Property TRANSLATION_Z;
+ field public static final android.util.Property<android.view.View, java.lang.Float> TRANSLATION_X;
+ field public static final android.util.Property<android.view.View, java.lang.Float> TRANSLATION_Y;
+ field public static final android.util.Property<android.view.View, java.lang.Float> TRANSLATION_Z;
field protected static final java.lang.String VIEW_LOG_TAG = "View";
field public static final int VISIBLE = 0; // 0x0
field protected static final int[] WINDOW_FOCUSED_STATE_SET;
- field public static final android.util.Property X;
- field public static final android.util.Property Y;
- field public static final android.util.Property Z;
+ field public static final android.util.Property<android.view.View, java.lang.Float> X;
+ field public static final android.util.Property<android.view.View, java.lang.Float> Y;
+ field public static final android.util.Property<android.view.View, java.lang.Float> Z;
}
public static class View.AccessibilityDelegate {
@@ -34131,7 +34131,7 @@
public static class View.BaseSavedState extends android.view.AbsSavedState {
ctor public View.BaseSavedState(android.os.Parcel);
ctor public View.BaseSavedState(android.os.Parcelable);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.View.BaseSavedState> CREATOR;
}
public static class View.DragShadowBuilder {
@@ -34828,7 +34828,7 @@
public final class WindowAnimationFrameStats extends android.view.FrameStats implements android.os.Parcelable {
method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.WindowAnimationFrameStats> CREATOR;
}
public final class WindowContentFrameStats extends android.view.FrameStats implements android.os.Parcelable {
@@ -34836,7 +34836,7 @@
method public long getFramePostedTimeNano(int);
method public long getFrameReadyTimeNano(int);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.WindowContentFrameStats> CREATOR;
}
public class WindowId implements android.os.Parcelable {
@@ -34845,7 +34845,7 @@
method public void registerFocusObserver(android.view.WindowId.FocusObserver);
method public void unregisterFocusObserver(android.view.WindowId.FocusObserver);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.WindowId> CREATOR;
}
public static abstract class WindowId.FocusObserver {
@@ -34910,7 +34910,7 @@
field public static final float BRIGHTNESS_OVERRIDE_FULL = 1.0f;
field public static final float BRIGHTNESS_OVERRIDE_NONE = -1.0f;
field public static final float BRIGHTNESS_OVERRIDE_OFF = 0.0f;
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.WindowManager.LayoutParams> CREATOR;
field public static final int DIM_AMOUNT_CHANGED = 32; // 0x20
field public static final int FIRST_APPLICATION_WINDOW = 1; // 0x1
field public static final int FIRST_SUB_WINDOW = 1000; // 0x3e8
@@ -35058,7 +35058,7 @@
field public static final int CONTENT_CHANGE_TYPE_SUBTREE = 1; // 0x1
field public static final int CONTENT_CHANGE_TYPE_TEXT = 2; // 0x2
field public static final int CONTENT_CHANGE_TYPE_UNDEFINED = 0; // 0x0
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.accessibility.AccessibilityEvent> CREATOR;
field public static final int INVALID_POSITION = -1; // 0xffffffff
field public static final deprecated int MAX_TEXT_LENGTH = 500; // 0x1f4
field public static final int TYPES_ALL_MASK = -1; // 0xffffffff
@@ -35250,7 +35250,7 @@
field public static final int ACTION_SELECT = 4; // 0x4
field public static final int ACTION_SET_SELECTION = 131072; // 0x20000
field public static final int ACTION_SET_TEXT = 2097152; // 0x200000
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.accessibility.AccessibilityNodeInfo> CREATOR;
field public static final int FOCUS_ACCESSIBILITY = 2; // 0x2
field public static final int FOCUS_INPUT = 1; // 0x1
field public static final int MOVEMENT_GRANULARITY_CHARACTER = 1; // 0x1
@@ -35397,7 +35397,7 @@
method public static android.view.accessibility.AccessibilityWindowInfo obtain(android.view.accessibility.AccessibilityWindowInfo);
method public void recycle();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.accessibility.AccessibilityWindowInfo> CREATOR;
field public static final int TYPE_ACCESSIBILITY_OVERLAY = 4; // 0x4
field public static final int TYPE_APPLICATION = 1; // 0x1
field public static final int TYPE_INPUT_METHOD = 2; // 0x2
@@ -35764,7 +35764,7 @@
method public int getPosition();
method public java.lang.CharSequence getText();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.inputmethod.CompletionInfo> CREATOR;
}
public final class CorrectionInfo implements android.os.Parcelable {
@@ -35774,7 +35774,7 @@
method public int getOffset();
method public java.lang.CharSequence getOldText();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.inputmethod.CorrectionInfo> CREATOR;
}
public final class CursorAnchorInfo implements android.os.Parcelable {
@@ -35793,7 +35793,7 @@
method public int getSelectionEnd();
method public int getSelectionStart();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.inputmethod.CursorAnchorInfo> CREATOR;
field public static final int FLAG_HAS_INVISIBLE_REGION = 2; // 0x2
field public static final int FLAG_HAS_VISIBLE_REGION = 1; // 0x1
field public static final int FLAG_IS_RTL = 4; // 0x4
@@ -35816,7 +35816,7 @@
method public void dump(android.util.Printer, java.lang.String);
method public final void makeCompatible(int);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.inputmethod.EditorInfo> CREATOR;
field public static final int IME_ACTION_DONE = 6; // 0x6
field public static final int IME_ACTION_GO = 2; // 0x2
field public static final int IME_ACTION_NEXT = 5; // 0x5
@@ -35854,7 +35854,7 @@
ctor public ExtractedText();
method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.inputmethod.ExtractedText> CREATOR;
field public static final int FLAG_SELECTING = 2; // 0x2
field public static final int FLAG_SINGLE_LINE = 1; // 0x1
field public int flags;
@@ -35870,7 +35870,7 @@
ctor public ExtractedTextRequest();
method public int describeContents();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.inputmethod.ExtractedTextRequest> CREATOR;
field public int flags;
field public int hintMaxChars;
field public int hintMaxLines;
@@ -35886,7 +35886,7 @@
method public int getPid();
method public int getUid();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.inputmethod.InputBinding> CREATOR;
}
public abstract interface InputConnection {
@@ -35984,7 +35984,7 @@
method public android.graphics.drawable.Drawable loadIcon(android.content.pm.PackageManager);
method public java.lang.CharSequence loadLabel(android.content.pm.PackageManager);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.inputmethod.InputMethodInfo> CREATOR;
}
public final class InputMethodManager {
@@ -36071,7 +36071,7 @@
method public boolean isAuxiliary();
method public boolean overridesImplicitlyEnabledSubtype();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.inputmethod.InputMethodSubtype> CREATOR;
}
public static class InputMethodSubtype.InputMethodSubtypeBuilder {
@@ -36101,7 +36101,7 @@
method public int getSuggestionsCount();
method public android.view.textservice.SuggestionsInfo getSuggestionsInfoAt(int);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.textservice.SentenceSuggestionsInfo> CREATOR;
}
public final class SpellCheckerInfo implements android.os.Parcelable {
@@ -36116,7 +36116,7 @@
method public android.graphics.drawable.Drawable loadIcon(android.content.pm.PackageManager);
method public java.lang.CharSequence loadLabel(android.content.pm.PackageManager);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.textservice.SpellCheckerInfo> CREATOR;
}
public class SpellCheckerSession {
@@ -36145,7 +36145,7 @@
method public java.lang.String getLocale();
method public int getNameResId();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.textservice.SpellCheckerSubtype> CREATOR;
}
public final class SuggestionsInfo implements android.os.Parcelable {
@@ -36160,7 +36160,7 @@
method public int getSuggestionsCount();
method public void setCookieAndSequence(int, int);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.textservice.SuggestionsInfo> CREATOR;
field public static final int RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS = 4; // 0x4
field public static final int RESULT_ATTR_IN_THE_DICTIONARY = 1; // 0x1
field public static final int RESULT_ATTR_LOOKS_LIKE_TYPO = 2; // 0x2
@@ -36177,7 +36177,7 @@
method public int getSequence();
method public java.lang.String getText();
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.view.textservice.TextInfo> CREATOR;
}
public final class TextServicesManager {
@@ -38456,7 +38456,7 @@
method public void showNext(int);
method public void showPrevious(int);
method public void writeToParcel(android.os.Parcel, int);
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.widget.RemoteViews> CREATOR;
}
public static class RemoteViews.ActionException extends java.lang.RuntimeException {
@@ -39154,7 +39154,7 @@
}
public static class TextView.SavedState extends android.view.View.BaseSavedState {
- field public static final android.os.Parcelable.Creator CREATOR;
+ field public static final android.os.Parcelable.Creator<android.widget.TextView.SavedState> CREATOR;
}
public class TimePicker extends android.widget.FrameLayout {
@@ -40880,7 +40880,7 @@
method public static java.lang.Boolean valueOf(boolean);
field public static final java.lang.Boolean FALSE;
field public static final java.lang.Boolean TRUE;
- field public static final java.lang.Class TYPE;
+ field public static final java.lang.Class<java.lang.Boolean> TYPE;
}
public final class Byte extends java.lang.Number implements java.lang.Comparable {
@@ -40902,7 +40902,7 @@
field public static final byte MAX_VALUE = 127; // 0x7f
field public static final byte MIN_VALUE = -128; // 0xffffff80
field public static final int SIZE = 8; // 0x8
- field public static final java.lang.Class TYPE;
+ field public static final java.lang.Class<java.lang.Byte> TYPE;
}
public abstract interface CharSequence {
@@ -41058,7 +41058,7 @@
field public static final byte START_PUNCTUATION = 21; // 0x15
field public static final byte SURROGATE = 19; // 0x13
field public static final byte TITLECASE_LETTER = 3; // 0x3
- field public static final java.lang.Class TYPE;
+ field public static final java.lang.Class<java.lang.Character> TYPE;
field public static final byte UNASSIGNED = 0; // 0x0
field public static final byte UPPERCASE_LETTER = 1; // 0x1
}
@@ -41454,7 +41454,7 @@
field public static final double NaN = (0.0/0.0);
field public static final double POSITIVE_INFINITY = (1.0/0.0);
field public static final int SIZE = 64; // 0x40
- field public static final java.lang.Class TYPE;
+ field public static final java.lang.Class<java.lang.Double> TYPE;
}
public abstract class Enum implements java.lang.Comparable java.io.Serializable {
@@ -41528,7 +41528,7 @@
field public static final float NaN = (0.0f/0.0f);
field public static final float POSITIVE_INFINITY = (1.0f/0.0f);
field public static final int SIZE = 32; // 0x20
- field public static final java.lang.Class TYPE;
+ field public static final java.lang.Class<java.lang.Float> TYPE;
}
public class IllegalAccessError extends java.lang.IncompatibleClassChangeError {
@@ -41626,7 +41626,7 @@
field public static final int MAX_VALUE = 2147483647; // 0x7fffffff
field public static final int MIN_VALUE = -2147483648; // 0x80000000
field public static final int SIZE = 32; // 0x20
- field public static final java.lang.Class TYPE;
+ field public static final java.lang.Class<java.lang.Integer> TYPE;
}
public class InternalError extends java.lang.VirtualMachineError {
@@ -41685,7 +41685,7 @@
field public static final long MAX_VALUE = 9223372036854775807L; // 0x7fffffffffffffffL
field public static final long MIN_VALUE = -9223372036854775808L; // 0x8000000000000000L
field public static final int SIZE = 64; // 0x40
- field public static final java.lang.Class TYPE;
+ field public static final java.lang.Class<java.lang.Long> TYPE;
}
public final class Math {
@@ -41993,7 +41993,7 @@
field public static final short MAX_VALUE = 32767; // 0x7fff
field public static final short MIN_VALUE = -32768; // 0xffff8000
field public static final int SIZE = 16; // 0x10
- field public static final java.lang.Class TYPE;
+ field public static final java.lang.Class<java.lang.Short> TYPE;
}
public class StackOverflowError extends java.lang.VirtualMachineError {
@@ -42147,7 +42147,7 @@
method public static java.lang.String valueOf(long);
method public static java.lang.String valueOf(java.lang.Object);
method public static java.lang.String valueOf(boolean);
- field public static final java.util.Comparator CASE_INSENSITIVE_ORDER;
+ field public static final java.util.Comparator<java.lang.String> CASE_INSENSITIVE_ORDER;
}
public final class StringBuffer extends java.lang.AbstractStringBuilder implements java.lang.Appendable java.lang.CharSequence java.io.Serializable {
@@ -42434,7 +42434,7 @@
}
public final class Void {
- field public static final java.lang.Class TYPE;
+ field public static final java.lang.Class<java.lang.Void> TYPE;
}
}
@@ -48919,9 +48919,9 @@
method public java.util.ResourceBundle newBundle(java.lang.String, java.util.Locale, java.lang.String, java.lang.ClassLoader, boolean) throws java.io.IOException, java.lang.IllegalAccessException, java.lang.InstantiationException;
method public java.lang.String toBundleName(java.lang.String, java.util.Locale);
method public final java.lang.String toResourceName(java.lang.String, java.lang.String);
- field public static final java.util.List FORMAT_CLASS;
- field public static final java.util.List FORMAT_DEFAULT;
- field public static final java.util.List FORMAT_PROPERTIES;
+ field public static final java.util.List<java.lang.String> FORMAT_CLASS;
+ field public static final java.util.List<java.lang.String> FORMAT_DEFAULT;
+ field public static final java.util.List<java.lang.String> FORMAT_PROPERTIES;
field public static final long TTL_DONT_CACHE = -1L; // 0xffffffffffffffffL
field public static final long TTL_NO_EXPIRATION_CONTROL = -2L; // 0xfffffffffffffffeL
}
@@ -50511,7 +50511,7 @@
method public java.lang.Object remove(java.lang.Object);
method public int size();
method public java.util.Collection<java.lang.Object> values();
- field protected java.util.Map map;
+ field protected java.util.Map<java.lang.Object, java.lang.Object> map;
}
public static class Attributes.Name {
@@ -54332,9 +54332,9 @@
method public void startTest(junit.framework.Test);
method public synchronized void stop();
method public synchronized boolean wasSuccessful();
- field protected java.util.Vector fErrors;
- field protected java.util.Vector fFailures;
- field protected java.util.Vector fListeners;
+ field protected java.util.Vector<junit.framework.TestFailure> fErrors;
+ field protected java.util.Vector<junit.framework.TestFailure> fFailures;
+ field protected java.util.Vector<junit.framework.TestListener> fListeners;
field protected int fRunTests;
}
@@ -56545,10 +56545,10 @@
method public void shutdown();
field protected org.apache.http.impl.conn.IdleConnectionHandler idleConnHandler;
field protected volatile boolean isShutDown;
- field protected java.util.Set issuedConnections;
+ field protected java.util.Set<org.apache.http.impl.conn.tsccm.BasicPoolEntryRef> issuedConnections;
field protected int numConnections;
field protected final java.util.concurrent.locks.Lock poolLock;
- field protected java.lang.ref.ReferenceQueue refQueue;
+ field protected java.lang.ref.ReferenceQueue<java.lang.Object> refQueue;
}
public deprecated class BasicPoolEntry extends org.apache.http.impl.conn.AbstractPoolEntry {
@@ -56587,11 +56587,11 @@
method protected org.apache.http.impl.conn.tsccm.WaitingThread newWaitingThread(java.util.concurrent.locks.Condition, org.apache.http.impl.conn.tsccm.RouteSpecificPool);
method protected void notifyWaitingThread(org.apache.http.impl.conn.tsccm.RouteSpecificPool);
method public org.apache.http.impl.conn.tsccm.PoolEntryRequest requestPoolEntry(org.apache.http.conn.routing.HttpRoute, java.lang.Object);
- field protected java.util.Queue freeConnections;
+ field protected java.util.Queue<org.apache.http.impl.conn.tsccm.BasicPoolEntry> freeConnections;
field protected final int maxTotalConnections;
field protected final org.apache.http.conn.ClientConnectionOperator operator;
- field protected final java.util.Map routeToPool;
- field protected java.util.Queue waitingThreads;
+ field protected final java.util.Map<org.apache.http.conn.routing.HttpRoute, org.apache.http.impl.conn.tsccm.RouteSpecificPool> routeToPool;
+ field protected java.util.Queue<org.apache.http.impl.conn.tsccm.WaitingThread> waitingThreads;
}
public abstract deprecated interface PoolEntryRequest {
@@ -56608,7 +56608,7 @@
method public void run();
method public void shutdown();
field protected final org.apache.http.impl.conn.tsccm.RefQueueHandler refHandler;
- field protected final java.lang.ref.ReferenceQueue refQueue;
+ field protected final java.lang.ref.ReferenceQueue<?> refQueue;
field protected volatile java.lang.Thread workerThread;
}
@@ -56628,11 +56628,11 @@
method public org.apache.http.impl.conn.tsccm.WaitingThread nextThread();
method public void queueThread(org.apache.http.impl.conn.tsccm.WaitingThread);
method public void removeThread(org.apache.http.impl.conn.tsccm.WaitingThread);
- field protected final java.util.LinkedList freeEntries;
+ field protected final java.util.LinkedList<org.apache.http.impl.conn.tsccm.BasicPoolEntry> freeEntries;
field protected final int maxEntries;
field protected int numEntries;
field protected final org.apache.http.conn.routing.HttpRoute route;
- field protected final java.util.Queue waitingThreads;
+ field protected final java.util.Queue<org.apache.http.impl.conn.tsccm.WaitingThread> waitingThreads;
}
public deprecated class ThreadSafeClientConnManager implements org.apache.http.conn.ClientConnectionManager {
@@ -58924,7 +58924,7 @@
method public void setValidating(boolean);
field public static final java.lang.String PROPERTY_NAME = "org.xmlpull.v1.XmlPullParserFactory";
field protected java.lang.String classNamesLocation;
- field protected java.util.HashMap features;
+ field protected java.util.HashMap<java.lang.String, java.lang.Boolean> features;
field protected java.util.ArrayList parserClasses;
field protected java.util.ArrayList serializerClasses;
}
diff --git a/core/java/android/app/SharedElementCallback.java b/core/java/android/app/SharedElementCallback.java
index 060bbe6..6ac2401 100644
--- a/core/java/android/app/SharedElementCallback.java
+++ b/core/java/android/app/SharedElementCallback.java
@@ -18,13 +18,16 @@
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
-import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.RectF;
import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
+import android.os.Bundle;
import android.os.Parcelable;
import android.transition.TransitionUtils;
import android.view.View;
+import android.widget.ImageView;
+import android.widget.ImageView.ScaleType;
import java.util.List;
import java.util.Map;
@@ -40,6 +43,9 @@
*/
public abstract class SharedElementCallback {
private Matrix mTempMatrix;
+ private static final String BUNDLE_SNAPSHOT_BITMAP = "sharedElement:snapshot:bitmap";
+ private static final String BUNDLE_SNAPSHOT_IMAGE_SCALETYPE = "sharedElement:snapshot:imageScaleType";
+ private static final String BUNDLE_SNAPSHOT_IMAGE_MATRIX = "sharedElement:snapshot:imageMatrix";
static final SharedElementCallback NULL_CALLBACK = new SharedElementCallback() {
};
@@ -142,6 +148,27 @@
*/
public Parcelable onCaptureSharedElementSnapshot(View sharedElement, Matrix viewToGlobalMatrix,
RectF screenBounds) {
+ if (sharedElement instanceof ImageView) {
+ ImageView imageView = ((ImageView) sharedElement);
+ Drawable d = imageView.getDrawable();
+ Drawable bg = imageView.getBackground();
+ if (d != null && (bg == null || bg.getAlpha() == 0)) {
+ Bitmap bitmap = TransitionUtils.createDrawableBitmap(d);
+ if (bitmap != null) {
+ Bundle bundle = new Bundle();
+ bundle.putParcelable(BUNDLE_SNAPSHOT_BITMAP, bitmap);
+ bundle.putString(BUNDLE_SNAPSHOT_IMAGE_SCALETYPE,
+ imageView.getScaleType().toString());
+ if (imageView.getScaleType() == ScaleType.MATRIX) {
+ Matrix matrix = imageView.getImageMatrix();
+ float[] values = new float[9];
+ matrix.getValues(values);
+ bundle.putFloatArray(BUNDLE_SNAPSHOT_IMAGE_MATRIX, values);
+ }
+ return bundle;
+ }
+ }
+ }
if (mTempMatrix == null) {
mTempMatrix = new Matrix(viewToGlobalMatrix);
} else {
@@ -169,7 +196,24 @@
*/
public View onCreateSnapshotView(Context context, Parcelable snapshot) {
View view = null;
- if (snapshot instanceof Bitmap) {
+ if (snapshot instanceof Bundle) {
+ Bundle bundle = (Bundle) snapshot;
+ Bitmap bitmap = (Bitmap) bundle.getParcelable(BUNDLE_SNAPSHOT_BITMAP);
+ if (bitmap == null) {
+ return null;
+ }
+ ImageView imageView = new ImageView(context);
+ view = imageView;
+ imageView.setImageBitmap(bitmap);
+ imageView.setScaleType(
+ ScaleType.valueOf(bundle.getString(BUNDLE_SNAPSHOT_IMAGE_SCALETYPE)));
+ if (imageView.getScaleType() == ScaleType.MATRIX) {
+ float[] values = bundle.getFloatArray(BUNDLE_SNAPSHOT_IMAGE_MATRIX);
+ Matrix matrix = new Matrix();
+ matrix.setValues(values);
+ imageView.setImageMatrix(matrix);
+ }
+ } else if (snapshot instanceof Bitmap) {
Bitmap bitmap = (Bitmap) snapshot;
view = new View(context);
Resources resources = context.getResources();
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index ca4ff6a..8515520 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -74,7 +74,6 @@
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
-import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
@@ -380,7 +379,7 @@
*/
public static PackageInfo generatePackageInfo(PackageParser.Package p,
int gids[], int flags, long firstInstallTime, long lastUpdateTime,
- HashSet<String> grantedPermissions, PackageUserState state) {
+ ArraySet<String> grantedPermissions, PackageUserState state) {
return generatePackageInfo(p, gids, flags, firstInstallTime, lastUpdateTime,
grantedPermissions, state, UserHandle.getCallingUserId());
@@ -401,7 +400,7 @@
public static PackageInfo generatePackageInfo(PackageParser.Package p,
int gids[], int flags, long firstInstallTime, long lastUpdateTime,
- HashSet<String> grantedPermissions, PackageUserState state, int userId) {
+ ArraySet<String> grantedPermissions, PackageUserState state, int userId) {
if (!checkUseInstalledOrHidden(flags, state)) {
return null;
diff --git a/core/java/android/content/pm/PackageUserState.java b/core/java/android/content/pm/PackageUserState.java
index 4dcad6f..a9c7be3 100644
--- a/core/java/android/content/pm/PackageUserState.java
+++ b/core/java/android/content/pm/PackageUserState.java
@@ -18,7 +18,7 @@
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
-import java.util.HashSet;
+import android.util.ArraySet;
/**
* Per-user state information about a package.
@@ -34,8 +34,8 @@
public String lastDisableAppCaller;
- public HashSet<String> disabledComponents;
- public HashSet<String> enabledComponents;
+ public ArraySet<String> disabledComponents;
+ public ArraySet<String> enabledComponents;
public PackageUserState() {
installed = true;
@@ -51,9 +51,9 @@
hidden = o.hidden;
lastDisableAppCaller = o.lastDisableAppCaller;
disabledComponents = o.disabledComponents != null
- ? new HashSet<String>(o.disabledComponents) : null;
+ ? new ArraySet<String>(o.disabledComponents) : null;
enabledComponents = o.enabledComponents != null
- ? new HashSet<String>(o.enabledComponents) : null;
+ ? new ArraySet<String>(o.enabledComponents) : null;
blockUninstall = o.blockUninstall;
}
-}
\ No newline at end of file
+}
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index 98a1f05..a165279 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -3017,7 +3017,6 @@
MOVED_TO_GLOBAL.add(Settings.Global.NETSTATS_ENABLED);
MOVED_TO_GLOBAL.add(Settings.Global.NETSTATS_GLOBAL_ALERT_BYTES);
MOVED_TO_GLOBAL.add(Settings.Global.NETSTATS_POLL_INTERVAL);
- MOVED_TO_GLOBAL.add(Settings.Global.NETSTATS_REPORT_XT_OVER_DEV);
MOVED_TO_GLOBAL.add(Settings.Global.NETSTATS_SAMPLE_ENABLED);
MOVED_TO_GLOBAL.add(Settings.Global.NETSTATS_TIME_CACHE_MAX_AGE);
MOVED_TO_GLOBAL.add(Settings.Global.NETSTATS_UID_BUCKET_DURATION);
@@ -5462,8 +5461,6 @@
public static final String NETSTATS_GLOBAL_ALERT_BYTES = "netstats_global_alert_bytes";
/** {@hide} */
public static final String NETSTATS_SAMPLE_ENABLED = "netstats_sample_enabled";
- /** {@hide} */
- public static final String NETSTATS_REPORT_XT_OVER_DEV = "netstats_report_xt_over_dev";
/** {@hide} */
public static final String NETSTATS_DEV_BUCKET_DURATION = "netstats_dev_bucket_duration";
diff --git a/core/java/android/transition/TransitionUtils.java b/core/java/android/transition/TransitionUtils.java
index 03423ff..49ceb3b 100644
--- a/core/java/android/transition/TransitionUtils.java
+++ b/core/java/android/transition/TransitionUtils.java
@@ -22,8 +22,10 @@
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Matrix;
+import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.drawable.BitmapDrawable;
+import android.graphics.drawable.Drawable;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
@@ -109,6 +111,35 @@
}
/**
+ * Get a copy of bitmap of given drawable, return null if intrinsic size is zero
+ */
+ public static Bitmap createDrawableBitmap(Drawable drawable) {
+ int width = drawable.getIntrinsicWidth();
+ int height = drawable.getIntrinsicHeight();
+ if (width <= 0 || height <= 0) {
+ return null;
+ }
+ float scale = Math.min(1f, ((float)MAX_IMAGE_SIZE) / (width * height));
+ if (drawable instanceof BitmapDrawable && scale == 1f) {
+ // return same bitmap if scale down not needed
+ return ((BitmapDrawable) drawable).getBitmap();
+ }
+ int bitmapWidth = (int) (width * scale);
+ int bitmapHeight = (int) (height * scale);
+ Bitmap bitmap = Bitmap.createBitmap(bitmapWidth, bitmapHeight, Bitmap.Config.ARGB_8888);
+ Canvas canvas = new Canvas(bitmap);
+ Rect existingBounds = drawable.getBounds();
+ int left = existingBounds.left;
+ int top = existingBounds.top;
+ int right = existingBounds.right;
+ int bottom = existingBounds.bottom;
+ drawable.setBounds(0, 0, bitmapWidth, bitmapHeight);
+ drawable.draw(canvas);
+ drawable.setBounds(left, top, right, bottom);
+ return bitmap;
+ }
+
+ /**
* Creates a Bitmap of the given view, using the Matrix matrix to transform to the local
* coordinates. <code>matrix</code> will be modified during the bitmap creation.
*
diff --git a/core/java/android/util/ArraySet.java b/core/java/android/util/ArraySet.java
index 423e48b..68f725e 100644
--- a/core/java/android/util/ArraySet.java
+++ b/core/java/android/util/ArraySet.java
@@ -245,13 +245,20 @@
/**
* Create a new ArraySet with the mappings from the given ArraySet.
*/
- public ArraySet(ArraySet set) {
+ public ArraySet(ArraySet<E> set) {
this();
if (set != null) {
addAll(set);
}
}
+ /** {@hide} */
+ public ArraySet(Collection<E> set) {
+ this();
+ if (set != null) {
+ addAll(set);
+ }
+ }
/**
* Make the array map empty. All storage is released.
diff --git a/core/java/android/view/ThreadedRenderer.java b/core/java/android/view/ThreadedRenderer.java
index 1e46517..0711aed 100644
--- a/core/java/android/view/ThreadedRenderer.java
+++ b/core/java/android/view/ThreadedRenderer.java
@@ -255,6 +255,9 @@
mProfilingEnabled = wantProfiling;
changed = true;
}
+ if (changed) {
+ invalidateRoot();
+ }
return changed;
}
diff --git a/core/java/android/view/Window.java b/core/java/android/view/Window.java
index ef073b5..20edeb8 100644
--- a/core/java/android/view/Window.java
+++ b/core/java/android/view/Window.java
@@ -1130,31 +1130,31 @@
* Set an explicit Drawable value for feature of this window. You must
* have called requestFeature(featureId) before calling this function.
*
- * @param featureId The desired drawable feature to change.
- * Features are constants defined by Window.
+ * @param featureId The desired drawable feature to change. Features are
+ * constants defined by Window.
* @param drawable A Drawable object to display.
*/
public abstract void setFeatureDrawable(int featureId, Drawable drawable);
/**
- * Set a custom alpha value for the given drawale feature, controlling how
+ * Set a custom alpha value for the given drawable feature, controlling how
* much the background is visible through it.
*
- * @param featureId The desired drawable feature to change.
- * Features are constants defined by Window.
+ * @param featureId The desired drawable feature to change. Features are
+ * constants defined by Window.
* @param alpha The alpha amount, 0 is completely transparent and 255 is
* completely opaque.
*/
public abstract void setFeatureDrawableAlpha(int featureId, int alpha);
/**
- * Set the integer value for a feature. The range of the value depends on
- * the feature being set. For FEATURE_PROGRESSS, it should go from 0 to
- * 10000. At 10000 the progress is complete and the indicator hidden.
+ * Set the integer value for a feature. The range of the value depends on
+ * the feature being set. For {@link #FEATURE_PROGRESS}, it should go from
+ * 0 to 10000. At 10000 the progress is complete and the indicator hidden.
*
- * @param featureId The desired feature to change.
- * Features are constants defined by Window.
- * @param value The value for the feature. The interpretation of this
+ * @param featureId The desired feature to change. Features are constants
+ * defined by Window.
+ * @param value The value for the feature. The interpretation of this
* value is feature-specific.
*/
public abstract void setFeatureInt(int featureId, int value);
diff --git a/core/java/android/widget/DatePickerCalendarDelegate.java b/core/java/android/widget/DatePickerCalendarDelegate.java
index e71b383..64c81e0 100644
--- a/core/java/android/widget/DatePickerCalendarDelegate.java
+++ b/core/java/android/widget/DatePickerCalendarDelegate.java
@@ -21,13 +21,11 @@
import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.TypedArray;
-import android.graphics.drawable.Drawable;
import android.os.Parcel;
import android.os.Parcelable;
import android.text.format.DateFormat;
import android.text.format.DateUtils;
import android.util.AttributeSet;
-import android.util.SparseArray;
import android.view.HapticFeedbackConstants;
import android.view.LayoutInflater;
import android.view.View;
@@ -186,6 +184,8 @@
headerSelectedTextColor));
mDayPickerView = new DayPickerView(mContext, this);
+ mDayPickerView.setRange(mMinDate, mMaxDate);
+
mYearPickerView = new YearPickerView(mContext);
mYearPickerView.init(this);
@@ -411,7 +411,8 @@
updateDisplay(false);
}
mMinDate.setTimeInMillis(minDate);
- mDayPickerView.goTo(getSelectedDay(), false, true, true);
+ mDayPickerView.setRange(mMinDate, mMaxDate);
+ mYearPickerView.setRange(mMinDate, mMaxDate);
}
@Override
@@ -432,7 +433,8 @@
updateDisplay(false);
}
mMaxDate.setTimeInMillis(maxDate);
- mDayPickerView.goTo(getSelectedDay(), false, true, true);
+ mDayPickerView.setRange(mMinDate, mMaxDate);
+ mYearPickerView.setRange(mMinDate, mMaxDate);
}
@Override
@@ -454,36 +456,6 @@
}
@Override
- public int getMinYear() {
- return mMinDate.get(Calendar.YEAR);
- }
-
- @Override
- public int getMaxYear() {
- return mMaxDate.get(Calendar.YEAR);
- }
-
- @Override
- public int getMinMonth() {
- return mMinDate.get(Calendar.MONTH);
- }
-
- @Override
- public int getMaxMonth() {
- return mMaxDate.get(Calendar.MONTH);
- }
-
- @Override
- public int getMinDay() {
- return mMinDate.get(Calendar.DAY_OF_MONTH);
- }
-
- @Override
- public int getMaxDay() {
- return mMaxDate.get(Calendar.DAY_OF_MONTH);
- }
-
- @Override
public void setEnabled(boolean enabled) {
mMonthAndDayLayout.setEnabled(enabled);
mHeaderYearTextView.setEnabled(enabled);
diff --git a/core/java/android/widget/DatePickerController.java b/core/java/android/widget/DatePickerController.java
index 059709d..ea6ec61 100644
--- a/core/java/android/widget/DatePickerController.java
+++ b/core/java/android/widget/DatePickerController.java
@@ -38,20 +38,5 @@
void setFirstDayOfWeek(int firstDayOfWeek);
int getFirstDayOfWeek();
- int getMinYear();
- int getMaxYear();
-
- int getMinMonth();
- int getMaxMonth();
-
- int getMinDay();
- int getMaxDay();
-
- void setMinDate(long minDate);
- Calendar getMinDate();
-
- void setMaxDate(long maxDate);
- Calendar getMaxDate();
-
void tryVibrate();
}
diff --git a/core/java/android/widget/DayPickerView.java b/core/java/android/widget/DayPickerView.java
index ca4095e..fcf66f6 100644
--- a/core/java/android/widget/DayPickerView.java
+++ b/core/java/android/widget/DayPickerView.java
@@ -25,6 +25,7 @@
import android.os.Handler;
import android.util.AttributeSet;
import android.util.Log;
+import android.util.MathUtils;
import android.view.View;
import android.view.ViewConfiguration;
import android.view.accessibility.AccessibilityEvent;
@@ -57,9 +58,11 @@
// highlighted time
private Calendar mSelectedDay = Calendar.getInstance();
- private SimpleMonthAdapter mAdapter;
-
private Calendar mTempDay = Calendar.getInstance();
+ private Calendar mMinDate = Calendar.getInstance();
+ private Calendar mMaxDate = Calendar.getInstance();
+
+ private SimpleMonthAdapter mAdapter;
// which month should be displayed/highlighted [0-11]
private int mCurrentMonthDisplayed;
@@ -75,6 +78,7 @@
public DayPickerView(Context context, DatePickerController controller) {
super(context);
+
init();
setController(controller);
}
@@ -97,6 +101,41 @@
setUpListView();
}
+ public void setRange(Calendar minDate, Calendar maxDate) {
+ mMinDate.setTimeInMillis(minDate.getTimeInMillis());
+ mMaxDate.setTimeInMillis(maxDate.getTimeInMillis());
+
+ mAdapter.setRange(mMinDate, mMaxDate);
+
+ if (constrainCalendar(mSelectedDay, mMinDate, mMaxDate)) {
+ goTo(mSelectedDay, false, true, true);
+ }
+ }
+
+ /**
+ * Constrains the supplied calendar to stay within the min and max
+ * calendars, returning <code>true</code> if the supplied calendar
+ * was modified.
+ *
+ * @param value The calendar to constrain
+ * @param min The minimum calendar
+ * @param max The maximum calendar
+ * @return True if <code>value</code> was modified
+ */
+ private boolean constrainCalendar(Calendar value, Calendar min, Calendar max) {
+ if (value.compareTo(min) < 0) {
+ value.setTimeInMillis(min.getTimeInMillis());
+ return true;
+ }
+
+ if (value.compareTo(max) > 0) {
+ value.setTimeInMillis(max.getTimeInMillis());
+ return true;
+ }
+
+ return false;
+ }
+
public void onChange() {
setUpAdapter();
setAdapter(mAdapter);
@@ -137,23 +176,16 @@
setFriction(ViewConfiguration.getScrollFriction() * mFriction);
}
- private int getDiffMonths(Calendar start, Calendar end){
+ private int getDiffMonths(Calendar start, Calendar end) {
final int diffYears = end.get(Calendar.YEAR) - start.get(Calendar.YEAR);
final int diffMonths = end.get(Calendar.MONTH) - start.get(Calendar.MONTH) + 12 * diffYears;
return diffMonths;
}
private int getPositionFromDay(Calendar day) {
- final int diffMonthMax = getDiffMonths(mController.getMinDate(), mController.getMaxDate());
- int diffMonth = getDiffMonths(mController.getMinDate(), day);
-
- if (diffMonth < 0 ) {
- diffMonth = 0;
- } else if (diffMonth > diffMonthMax) {
- diffMonth = diffMonthMax;
- }
-
- return diffMonth;
+ final int diffMonthMax = getDiffMonths(mMinDate, mMaxDate);
+ final int diffMonth = getDiffMonths(mMinDate, day);
+ return MathUtils.constrain(diffMonth, 0, diffMonthMax);
}
/**
@@ -171,8 +203,7 @@
* visible
* @return Whether or not the view animated to the new location
*/
- public boolean goTo(Calendar day, boolean animate, boolean setSelected,
- boolean forceScroll) {
+ public boolean goTo(Calendar day, boolean animate, boolean setSelected, boolean forceScroll) {
// Set the selected day
if (setSelected) {
@@ -464,10 +495,10 @@
}
// Figure out what month is showing.
- int firstVisiblePosition = getFirstVisiblePosition();
- int month = firstVisiblePosition % 12;
- int year = firstVisiblePosition / 12 + mController.getMinYear();
- Calendar day = Calendar.getInstance();
+ final int firstVisiblePosition = getFirstVisiblePosition();
+ final int month = firstVisiblePosition % 12;
+ final int year = firstVisiblePosition / 12 + mMinDate.get(Calendar.YEAR);
+ final Calendar day = Calendar.getInstance();
day.set(year, month, 1);
// Scroll either forward or backward one month.
diff --git a/core/java/android/widget/SimpleMonthAdapter.java b/core/java/android/widget/SimpleMonthAdapter.java
index 3bad235..5aa78c8 100644
--- a/core/java/android/widget/SimpleMonthAdapter.java
+++ b/core/java/android/widget/SimpleMonthAdapter.java
@@ -28,21 +28,30 @@
* An adapter for a list of {@link android.widget.SimpleMonthView} items.
*/
class SimpleMonthAdapter extends BaseAdapter implements SimpleMonthView.OnDayClickListener {
- private static final String TAG = "SimpleMonthAdapter";
+ private final Calendar mMinDate = Calendar.getInstance();
+ private final Calendar mMaxDate = Calendar.getInstance();
private final Context mContext;
private final DatePickerController mController;
- private Calendar mSelectedDay;
+ private Calendar mSelectedDay;
private ColorStateList mCalendarTextColors;
public SimpleMonthAdapter(Context context, DatePickerController controller) {
mContext = context;
mController = controller;
+
init();
setSelectedDay(mController.getSelectedDay());
}
+ public void setRange(Calendar min, Calendar max) {
+ mMinDate.setTimeInMillis(min.getTimeInMillis());
+ mMaxDate.setTimeInMillis(max.getTimeInMillis());
+
+ notifyDataSetInvalidated();
+ }
+
/**
* Updates the selected day and related parameters.
*
@@ -68,10 +77,9 @@
@Override
public int getCount() {
- final int diffYear = mController.getMaxYear() - mController.getMinYear();
- final int diffMonth = 1 + mController.getMaxMonth() - mController.getMinMonth()
- + 12 * diffYear;
- return diffMonth;
+ final int diffYear = mMaxDate.get(Calendar.YEAR) - mMinDate.get(Calendar.YEAR);
+ final int diffMonth = mMaxDate.get(Calendar.MONTH) - mMinDate.get(Calendar.MONTH);
+ return diffMonth + 12 * diffYear + 1;
}
@Override
@@ -92,36 +100,34 @@
@SuppressWarnings("unchecked")
@Override
public View getView(int position, View convertView, ViewGroup parent) {
- SimpleMonthView v;
- HashMap<String, Integer> drawingParams = null;
+ final SimpleMonthView v;
if (convertView != null) {
v = (SimpleMonthView) convertView;
- // We store the drawing parameters in the view so it can be recycled
- drawingParams = (HashMap<String, Integer>) v.getTag();
} else {
v = new SimpleMonthView(mContext);
+
// Set up the new view
- AbsListView.LayoutParams params = new AbsListView.LayoutParams(
+ final AbsListView.LayoutParams params = new AbsListView.LayoutParams(
AbsListView.LayoutParams.MATCH_PARENT, AbsListView.LayoutParams.MATCH_PARENT);
v.setLayoutParams(params);
v.setClickable(true);
v.setOnDayClickListener(this);
+
if (mCalendarTextColors != null) {
v.setTextColor(mCalendarTextColors);
}
}
- if (drawingParams == null) {
- drawingParams = new HashMap<String, Integer>();
- } else {
- drawingParams.clear();
- }
- final int currentMonth = position + mController.getMinMonth();
- final int month = currentMonth % 12;
- final int year = currentMonth / 12 + mController.getMinYear();
- int selectedDay = -1;
+ final int minMonth = mMinDate.get(Calendar.MONTH);
+ final int minYear = mMinDate.get(Calendar.YEAR);
+ final int currentMonth = position + minMonth;
+ final int month = currentMonth % 12;
+ final int year = currentMonth / 12 + minYear;
+ final int selectedDay;
if (isSelectedDayInMonth(year, month)) {
selectedDay = mSelectedDay.get(Calendar.DAY_OF_MONTH);
+ } else {
+ selectedDay = -1;
}
// Invokes requestLayout() to ensure that the recycled view is set with the appropriate
@@ -129,15 +135,15 @@
v.reuse();
final int enabledDayRangeStart;
- if (mController.getMinMonth() == month && mController.getMinYear() == year) {
- enabledDayRangeStart = mController.getMinDay();
+ if (minMonth == month && minYear == year) {
+ enabledDayRangeStart = mMinDate.get(Calendar.DAY_OF_MONTH);
} else {
enabledDayRangeStart = 1;
}
final int enabledDayRangeEnd;
- if (mController.getMaxMonth() == month && mController.getMaxYear() == year) {
- enabledDayRangeEnd = mController.getMaxDay();
+ if (mMaxDate.get(Calendar.MONTH) == month && mMaxDate.get(Calendar.YEAR) == year) {
+ enabledDayRangeEnd = mMaxDate.get(Calendar.DAY_OF_MONTH);
} else {
enabledDayRangeEnd = 31;
}
@@ -155,20 +161,25 @@
@Override
public void onDayClick(SimpleMonthView view, Calendar day) {
- if (day != null) {
- onDayTapped(day);
+ if (day != null && isCalendarInRange(day)) {
+ onDaySelected(day);
}
}
+ private boolean isCalendarInRange(Calendar value) {
+ return value.compareTo(mMinDate) >= 0 && value.compareTo(mMaxDate) <= 0;
+ }
+
/**
* Maintains the same hour/min/sec but moves the day to the tapped day.
*
* @param day The day that was tapped
*/
- protected void onDayTapped(Calendar day) {
+ private void onDaySelected(Calendar day) {
mController.tryVibrate();
mController.onDayOfMonthSelected(day.get(Calendar.YEAR), day.get(Calendar.MONTH),
day.get(Calendar.DAY_OF_MONTH));
+
setSelectedDay(day);
}
}
diff --git a/core/java/android/widget/SimpleMonthView.java b/core/java/android/widget/SimpleMonthView.java
index 59baabae..d2a37ac 100644
--- a/core/java/android/widget/SimpleMonthView.java
+++ b/core/java/android/widget/SimpleMonthView.java
@@ -52,8 +52,6 @@
* within the specified month.
*/
class SimpleMonthView extends View {
- private static final String TAG = "SimpleMonthView";
-
private static final int DEFAULT_HEIGHT = 32;
private static final int MIN_HEIGHT = 10;
@@ -67,15 +65,15 @@
private static final int DAY_SEPARATOR_WIDTH = 1;
+ private final Formatter mFormatter;
+ private final StringBuilder mStringBuilder;
+
private final int mMiniDayNumberTextSize;
private final int mMonthLabelTextSize;
private final int mMonthDayLabelTextSize;
private final int mMonthHeaderSize;
private final int mDaySelectedCircleSize;
- // used for scaling to the device density
- private static float mScale = 0;
-
/** Single-letter (when available) formatter for the day of week label. */
private SimpleDateFormat mDayFormatter = new SimpleDateFormat("EEEEE", Locale.getDefault());
@@ -92,9 +90,6 @@
private Paint mMonthTitlePaint;
private Paint mMonthDayLabelPaint;
- private final Formatter mFormatter;
- private final StringBuilder mStringBuilder;
-
private int mMonth;
private int mYear;
@@ -155,11 +150,14 @@
this(context, attrs, R.attr.datePickerStyle);
}
- public SimpleMonthView(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs);
+ public SimpleMonthView(Context context, AttributeSet attrs, int defStyleAttr) {
+ this(context, attrs, defStyleAttr, 0);
+ }
+
+ public SimpleMonthView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
final Resources res = context.getResources();
-
mDayOfWeekTypeface = res.getString(R.string.day_of_week_label_typeface);
mMonthTitleTypeface = res.getString(R.string.sans_serif);
diff --git a/core/java/android/widget/YearPickerView.java b/core/java/android/widget/YearPickerView.java
index 2bf07f9..24ed7ce 100644
--- a/core/java/android/widget/YearPickerView.java
+++ b/core/java/android/widget/YearPickerView.java
@@ -18,7 +18,6 @@
import android.content.Context;
import android.content.res.Resources;
-import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
@@ -33,10 +32,15 @@
*/
class YearPickerView extends ListView implements AdapterView.OnItemClickListener,
OnDateChangedListener {
+ private final Calendar mMinDate = Calendar.getInstance();
+ private final Calendar mMaxDate = Calendar.getInstance();
+
+ private final YearAdapter mAdapter;
+ private final int mViewSize;
+ private final int mChildSize;
+
private DatePickerController mController;
- private YearAdapter mAdapter;
- private int mViewSize;
- private int mChildSize;
+
private int mSelectedPosition = -1;
private int mYearSelectedCircleColor;
@@ -72,15 +76,23 @@
setOnItemClickListener(this);
setDividerHeight(0);
+
+ mAdapter = new YearAdapter(getContext(), R.layout.year_label_text_view);
+ setAdapter(mAdapter);
+ }
+
+ public void setRange(Calendar min, Calendar max) {
+ mMinDate.setTimeInMillis(min.getTimeInMillis());
+ mMaxDate.setTimeInMillis(max.getTimeInMillis());
+
+ updateAdapterData();
}
public void init(DatePickerController controller) {
mController = controller;
mController.registerOnDateChangedListener(this);
- mAdapter = new YearAdapter(getContext(), R.layout.year_label_text_view);
updateAdapterData();
- setAdapter(mAdapter);
onDateChanged();
}
@@ -98,8 +110,9 @@
private void updateAdapterData() {
mAdapter.clear();
- final int maxYear = mController.getMaxYear();
- for (int year = mController.getMinYear(); year <= maxYear; year++) {
+
+ final int maxYear = mMaxDate.get(Calendar.YEAR);
+ for (int year = mMinDate.get(Calendar.YEAR); year <= maxYear; year++) {
mAdapter.add(year);
}
}
@@ -173,12 +186,13 @@
updateAdapterData();
mAdapter.notifyDataSetChanged();
postSetSelectionCentered(
- mController.getSelectedDay().get(Calendar.YEAR) - mController.getMinYear());
+ mController.getSelectedDay().get(Calendar.YEAR) - mMinDate.get(Calendar.YEAR));
}
@Override
public void onInitializeAccessibilityEvent(AccessibilityEvent event) {
super.onInitializeAccessibilityEvent(event);
+
if (event.getEventType() == AccessibilityEvent.TYPE_VIEW_SCROLLED) {
event.setFromIndex(0);
event.setToIndex(0);
diff --git a/libs/hwui/DeferredDisplayList.cpp b/libs/hwui/DeferredDisplayList.cpp
index a998594..fab4a1a 100644
--- a/libs/hwui/DeferredDisplayList.cpp
+++ b/libs/hwui/DeferredDisplayList.cpp
@@ -525,7 +525,7 @@
deferInfo.mergeable &= !recordingComplexClip();
deferInfo.opaqueOverBounds &= !recordingComplexClip() && mSaveStack.isEmpty();
- if (CC_LIKELY(mAvoidOverdraw) && mBatches.size() &&
+ if (mBatches.size() &&
state->mClipSideFlags != kClipSide_ConservativeFull &&
deferInfo.opaqueOverBounds && state->mBounds.contains(mBounds)) {
// avoid overdraw by resetting drawing state + discarding drawing ops
@@ -677,13 +677,12 @@
DrawModifiers restoreDrawModifiers = renderer.getDrawModifiers();
renderer.save(SkCanvas::kMatrix_SaveFlag | SkCanvas::kClip_SaveFlag);
- if (CC_LIKELY(mAvoidOverdraw)) {
- for (unsigned int i = 1; i < mBatches.size(); i++) {
- if (mBatches[i] && mBatches[i]->coversBounds(mBounds)) {
- discardDrawingBatches(i - 1);
- }
+ for (unsigned int i = 1; i < mBatches.size(); i++) {
+ if (mBatches[i] && mBatches[i]->coversBounds(mBounds)) {
+ discardDrawingBatches(i - 1);
}
}
+
// NOTE: depth of the save stack at this point, before playback, should be reflected in
// FLUSH_SAVE_STACK_DEPTH, so that save/restores match up correctly
status |= replayBatchList(mBatches, renderer, dirty);
diff --git a/libs/hwui/DeferredDisplayList.h b/libs/hwui/DeferredDisplayList.h
index 8a015b21..885b411 100644
--- a/libs/hwui/DeferredDisplayList.h
+++ b/libs/hwui/DeferredDisplayList.h
@@ -81,8 +81,8 @@
class DeferredDisplayList {
friend class DeferStateStruct; // used to give access to allocator
public:
- DeferredDisplayList(const Rect& bounds, bool avoidOverdraw = true) :
- mBounds(bounds), mAvoidOverdraw(avoidOverdraw) {
+ DeferredDisplayList(const Rect& bounds) :
+ mBounds(bounds) {
clear();
}
~DeferredDisplayList() { clear(); }
@@ -150,7 +150,6 @@
// layer space bounds of rendering
Rect mBounds;
- const bool mAvoidOverdraw;
/**
* At defer time, stores the *defer time* savecount of save/saveLayer ops that were deferred, so
diff --git a/libs/hwui/DrawProfiler.cpp b/libs/hwui/DrawProfiler.cpp
index 2409554..e590642 100644
--- a/libs/hwui/DrawProfiler.cpp
+++ b/libs/hwui/DrawProfiler.cpp
@@ -22,7 +22,8 @@
#define DEFAULT_MAX_FRAMES 128
-#define RETURN_IF_DISABLED() if (CC_LIKELY(mType == kNone)) return
+#define RETURN_IF_PROFILING_DISABLED() if (CC_LIKELY(mType == kNone)) return
+#define RETURN_IF_DISABLED() if (CC_LIKELY(mType == kNone && !mShowDirtyRegions)) return
#define NANOS_TO_MILLIS_FLOAT(nanos) ((nanos) * 0.000001f)
@@ -64,7 +65,9 @@
, mPreviousTime(0)
, mVerticalUnit(0)
, mHorizontalUnit(0)
- , mThresholdStroke(0) {
+ , mThresholdStroke(0)
+ , mShowDirtyRegions(false)
+ , mFlashToggle(false) {
setDensity(1);
}
@@ -82,27 +85,27 @@
}
void DrawProfiler::startFrame(nsecs_t recordDurationNanos) {
- RETURN_IF_DISABLED();
+ RETURN_IF_PROFILING_DISABLED();
mData[mCurrentFrame].record = NANOS_TO_MILLIS_FLOAT(recordDurationNanos);
mPreviousTime = systemTime(CLOCK_MONOTONIC);
}
void DrawProfiler::markPlaybackStart() {
- RETURN_IF_DISABLED();
+ RETURN_IF_PROFILING_DISABLED();
nsecs_t now = systemTime(CLOCK_MONOTONIC);
mData[mCurrentFrame].prepare = NANOS_TO_MILLIS_FLOAT(now - mPreviousTime);
mPreviousTime = now;
}
void DrawProfiler::markPlaybackEnd() {
- RETURN_IF_DISABLED();
+ RETURN_IF_PROFILING_DISABLED();
nsecs_t now = systemTime(CLOCK_MONOTONIC);
mData[mCurrentFrame].playback = NANOS_TO_MILLIS_FLOAT(now - mPreviousTime);
mPreviousTime = now;
}
void DrawProfiler::finishFrame() {
- RETURN_IF_DISABLED();
+ RETURN_IF_PROFILING_DISABLED();
nsecs_t now = systemTime(CLOCK_MONOTONIC);
mData[mCurrentFrame].swapBuffers = NANOS_TO_MILLIS_FLOAT(now - mPreviousTime);
mPreviousTime = now;
@@ -114,19 +117,30 @@
// Not worth worrying about minimizing the dirty region for debugging, so just
// dirty the entire viewport.
if (dirty) {
+ mDirtyRegion = *dirty;
dirty->setEmpty();
}
}
void DrawProfiler::draw(OpenGLRenderer* canvas) {
- if (CC_LIKELY(mType != kBars)) {
- return;
+ RETURN_IF_DISABLED();
+
+ if (mShowDirtyRegions) {
+ mFlashToggle = !mFlashToggle;
+ if (mFlashToggle) {
+ SkPaint paint;
+ paint.setColor(0x7fff0000);
+ canvas->drawRect(mDirtyRegion.fLeft, mDirtyRegion.fTop,
+ mDirtyRegion.fRight, mDirtyRegion.fBottom, &paint);
+ }
}
- prepareShapes(canvas->getViewportHeight());
- drawGraph(canvas);
- drawCurrentFrame(canvas);
- drawThreshold(canvas);
+ if (mType == kBars) {
+ prepareShapes(canvas->getViewportHeight());
+ drawGraph(canvas);
+ drawCurrentFrame(canvas);
+ drawThreshold(canvas);
+ }
}
void DrawProfiler::createData() {
@@ -217,6 +231,7 @@
}
bool DrawProfiler::loadSystemProperties() {
+ bool changed = false;
ProfileType newType = loadRequestedProfileType();
if (newType != mType) {
mType = newType;
@@ -225,13 +240,18 @@
} else {
createData();
}
- return true;
+ changed = true;
}
- return false;
+ bool showDirty = property_get_bool(PROPERTY_DEBUG_SHOW_DIRTY_REGIONS, false);
+ if (showDirty != mShowDirtyRegions) {
+ mShowDirtyRegions = showDirty;
+ changed = true;
+ }
+ return changed;
}
void DrawProfiler::dumpData(int fd) {
- RETURN_IF_DISABLED();
+ RETURN_IF_PROFILING_DISABLED();
// This method logs the last N frames (where N is <= mDataSize) since the
// last call to dumpData(). In other words if there's a dumpData(), draw frame,
diff --git a/libs/hwui/DrawProfiler.h b/libs/hwui/DrawProfiler.h
index 7c06e5d..de64088 100644
--- a/libs/hwui/DrawProfiler.h
+++ b/libs/hwui/DrawProfiler.h
@@ -88,6 +88,10 @@
* information.
*/
float** mRects;
+
+ bool mShowDirtyRegions;
+ SkRect mDirtyRegion;
+ bool mFlashToggle;
};
} /* namespace uirenderer */
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index 7a094fd..19fc9a3 100755
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -151,7 +151,6 @@
, mScissorOptimizationDisabled(false)
, mSuppressTiling(false)
, mFirstFrameAfterResize(true)
- , mCountOverdraw(false)
, mLightCenter((Vector3){FLT_MIN, FLT_MIN, FLT_MIN})
, mLightRadius(FLT_MIN)
, mAmbientShadowAlpha(0)
@@ -266,7 +265,7 @@
}
status_t OpenGLRenderer::clear(float left, float top, float right, float bottom, bool opaque) {
- if (!opaque || mCountOverdraw) {
+ if (!opaque) {
mCaches.enableScissor();
mCaches.setScissor(left, getViewportHeight() - bottom, right - left, bottom - top);
glClear(GL_COLOR_BUFFER_BIT);
@@ -347,10 +346,6 @@
#endif
}
- if (mCountOverdraw) {
- countOverdraw();
- }
-
mFrameStarted = false;
}
@@ -464,21 +459,6 @@
}
}
-void OpenGLRenderer::countOverdraw() {
- size_t count = getWidth() * getHeight();
- uint32_t* buffer = new uint32_t[count];
- glReadPixels(0, 0, getWidth(), getHeight(), GL_RGBA, GL_UNSIGNED_BYTE, &buffer[0]);
-
- size_t total = 0;
- for (size_t i = 0; i < count; i++) {
- total += buffer[i] & 0xff;
- }
-
- mOverdraw = total / float(count);
-
- delete[] buffer;
-}
-
///////////////////////////////////////////////////////////////////////////////
// Layers
///////////////////////////////////////////////////////////////////////////////
@@ -1647,8 +1627,6 @@
mDescription.hasDebugHighlight = !mCaches.debugOverdraw &&
mCaches.debugStencilClip == Caches::kStencilShowHighlight &&
mCaches.stencil.isTestEnabled();
-
- mDescription.emulateStencil = mCountOverdraw;
}
void OpenGLRenderer::setupDrawWithTexture(bool isAlpha8) {
@@ -1980,8 +1958,7 @@
return status | replayStruct.mDrawGlStatus;
}
- bool avoidOverdraw = !mCaches.debugOverdraw && !mCountOverdraw; // shh, don't tell devs!
- DeferredDisplayList deferredList(*currentClipRect(), avoidOverdraw);
+ DeferredDisplayList deferredList(*currentClipRect());
DeferStateStruct deferStruct(deferredList, *this, replayFlags);
renderNode->defer(deferStruct, 0);
@@ -3453,19 +3430,6 @@
}
mSkipOutlineClip = true;
- if (mCountOverdraw) {
- if (!mCaches.blend) glEnable(GL_BLEND);
- if (mCaches.lastSrcMode != GL_ONE || mCaches.lastDstMode != GL_ONE) {
- glBlendFunc(GL_ONE, GL_ONE);
- }
-
- mCaches.blend = true;
- mCaches.lastSrcMode = GL_ONE;
- mCaches.lastDstMode = GL_ONE;
-
- return;
- }
-
blend = blend || mode != SkXfermode::kSrcOver_Mode;
if (blend) {
diff --git a/libs/hwui/OpenGLRenderer.h b/libs/hwui/OpenGLRenderer.h
index 47ef1a9..c2c0b0e 100755
--- a/libs/hwui/OpenGLRenderer.h
+++ b/libs/hwui/OpenGLRenderer.h
@@ -136,14 +136,6 @@
virtual status_t prepareDirty(float left, float top, float right, float bottom, bool opaque);
virtual void finish();
- void setCountOverdrawEnabled(bool enabled) {
- mCountOverdraw = enabled;
- }
-
- float getOverdraw() {
- return mCountOverdraw ? mOverdraw : 0.0f;
- }
-
virtual status_t callDrawGLFunction(Functor* functor, Rect& dirty);
void pushLayerUpdate(Layer* layer);
@@ -1015,11 +1007,6 @@
bool mSuppressTiling;
bool mFirstFrameAfterResize;
- // If true, this renderer will setup drawing to emulate
- // an increment stencil buffer in the color buffer
- bool mCountOverdraw;
- float mOverdraw;
-
bool mSkipOutlineClip;
// Lighting + shadows
diff --git a/libs/hwui/Program.h b/libs/hwui/Program.h
index 56773f4..d05b331 100644
--- a/libs/hwui/Program.h
+++ b/libs/hwui/Program.h
@@ -84,8 +84,7 @@
#define PROGRAM_HAS_COLORS 42
#define PROGRAM_HAS_DEBUG_HIGHLIGHT 43
-#define PROGRAM_EMULATE_STENCIL 44
-#define PROGRAM_HAS_ROUND_RECT_CLIP 45
+#define PROGRAM_HAS_ROUND_RECT_CLIP 44
///////////////////////////////////////////////////////////////////////////////
// Types
@@ -161,7 +160,6 @@
float gamma;
bool hasDebugHighlight;
- bool emulateStencil;
bool hasRoundRectClip;
/**
@@ -204,7 +202,6 @@
gamma = 2.2f;
hasDebugHighlight = false;
- emulateStencil = false;
hasRoundRectClip = false;
}
@@ -272,7 +269,6 @@
if (isSimpleGradient) key |= programid(0x1) << PROGRAM_IS_SIMPLE_GRADIENT;
if (hasColors) key |= programid(0x1) << PROGRAM_HAS_COLORS;
if (hasDebugHighlight) key |= programid(0x1) << PROGRAM_HAS_DEBUG_HIGHLIGHT;
- if (emulateStencil) key |= programid(0x1) << PROGRAM_EMULATE_STENCIL;
if (hasRoundRectClip) key |= programid(0x1) << PROGRAM_HAS_ROUND_RECT_CLIP;
return key;
}
diff --git a/libs/hwui/ProgramCache.cpp b/libs/hwui/ProgramCache.cpp
index 06353c0..62835e0 100644
--- a/libs/hwui/ProgramCache.cpp
+++ b/libs/hwui/ProgramCache.cpp
@@ -347,12 +347,6 @@
const char* gFS_Main_DebugHighlight =
" gl_FragColor.rgb = vec3(0.0, gl_FragColor.a, 0.0);\n";
-const char* gFS_Main_EmulateStencil =
- " gl_FragColor.rgba = vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 1.0);\n"
- " return;\n"
- " /*\n";
-const char* gFS_Footer_EmulateStencil =
- " */\n";
const char* gFS_Footer =
"}\n\n";
@@ -617,7 +611,6 @@
&& !description.hasColors
&& description.colorOp == ProgramDescription::kColorNone
&& !description.hasDebugHighlight
- && !description.emulateStencil
&& !description.hasRoundRectClip) {
bool fast = false;
@@ -698,9 +691,6 @@
// Begin the shader
shader.append(gFS_Main); {
- if (description.emulateStencil) {
- shader.append(gFS_Main_EmulateStencil);
- }
// Stores the result in fragColor directly
if (description.hasTexture || description.hasExternalTexture) {
if (description.hasAlpha8Texture) {
@@ -779,9 +769,6 @@
shader.append(gFS_Main_DebugHighlight);
}
}
- if (description.emulateStencil) {
- shader.append(gFS_Footer_EmulateStencil);
- }
// End the shader
shader.append(gFS_Footer);
diff --git a/libs/hwui/Properties.h b/libs/hwui/Properties.h
index 7eb9a32..befed16 100644
--- a/libs/hwui/Properties.h
+++ b/libs/hwui/Properties.h
@@ -133,6 +133,15 @@
#define PROPERTY_DEBUG_STENCIL_CLIP "debug.hwui.show_non_rect_clip"
/**
+ * Turn on to draw dirty regions every other frame.
+ *
+ * Possible values:
+ * "true", to enable dirty regions debugging
+ * "false", to disable dirty regions debugging
+ */
+#define PROPERTY_DEBUG_SHOW_DIRTY_REGIONS "debug.hwui.show_dirty_regions"
+
+/**
* Disables draw operation deferral if set to "true", forcing draw
* commands to be issued to OpenGL in order, and processed in sequence
* with state-manipulation canvas commands.
diff --git a/media/java/android/media/AudioDevicePort.java b/media/java/android/media/AudioDevicePort.java
index 7975e04..b10736b 100644
--- a/media/java/android/media/AudioDevicePort.java
+++ b/media/java/android/media/AudioDevicePort.java
@@ -16,6 +16,8 @@
package android.media;
+import android.media.AudioSystem;
+
/**
* The AudioDevicePort is a specialized type of AudioPort
* describing an input (e.g microphone) or output device (e.g speaker)
@@ -85,8 +87,11 @@
@Override
public String toString() {
+ String type = (mRole == ROLE_SOURCE ?
+ AudioSystem.getInputDeviceName(mType) :
+ AudioSystem.getOutputDeviceName(mType));
return "{" + super.toString()
- + ", mType:" + mType
+ + ", mType: " + type
+ ", mAddress: " + mAddress
+ "}";
}
diff --git a/media/java/android/media/AudioManager.java b/media/java/android/media/AudioManager.java
index c100df2..716ff99 100644
--- a/media/java/android/media/AudioManager.java
+++ b/media/java/android/media/AudioManager.java
@@ -353,21 +353,6 @@
*/
@Deprecated public static final int NUM_STREAMS = AudioSystem.NUM_STREAMS;
-
- /** @hide Default volume index values for audio streams */
- public static final int[] DEFAULT_STREAM_VOLUME = new int[] {
- 4, // STREAM_VOICE_CALL
- 7, // STREAM_SYSTEM
- 5, // STREAM_RING
- 11, // STREAM_MUSIC
- 6, // STREAM_ALARM
- 5, // STREAM_NOTIFICATION
- 7, // STREAM_BLUETOOTH_SCO
- 7, // STREAM_SYSTEM_ENFORCED
- 11, // STREAM_DTMF
- 11 // STREAM_TTS
- };
-
/**
* Increase the ringer volume.
*
diff --git a/media/java/android/media/AudioPatch.java b/media/java/android/media/AudioPatch.java
index 81eceb1..acadb41 100644
--- a/media/java/android/media/AudioPatch.java
+++ b/media/java/android/media/AudioPatch.java
@@ -52,4 +52,25 @@
public AudioPortConfig[] sinks() {
return mSinks;
}
+
+ @Override
+ public String toString() {
+ StringBuilder s = new StringBuilder();
+ s.append("mHandle: ");
+ s.append(mHandle.toString());
+
+ s.append(" mSources: {");
+ for (AudioPortConfig source : mSources) {
+ s.append(source.toString());
+ s.append(", ");
+ }
+ s.append("} mSinks: {");
+ for (AudioPortConfig sink : mSinks) {
+ s.append(sink.toString());
+ s.append(", ");
+ }
+ s.append("}");
+
+ return s.toString();
+ }
}
diff --git a/media/java/android/media/AudioPort.java b/media/java/android/media/AudioPort.java
index 53212aa..1ab7e89 100644
--- a/media/java/android/media/AudioPort.java
+++ b/media/java/android/media/AudioPort.java
@@ -67,7 +67,7 @@
AudioHandle mHandle;
- private final int mRole;
+ protected final int mRole;
private final int[] mSamplingRates;
private final int[] mChannelMasks;
private final int[] mFormats;
@@ -176,8 +176,20 @@
@Override
public String toString() {
- return "{mHandle:" + mHandle
- + ", mRole:" + mRole
+ String role = Integer.toString(mRole);
+ switch (mRole) {
+ case ROLE_NONE:
+ role = "NONE";
+ break;
+ case ROLE_SOURCE:
+ role = "SOURCE";
+ break;
+ case ROLE_SINK:
+ role = "SINK";
+ break;
+ }
+ return "{mHandle: " + mHandle
+ + ", mRole: " + role
+ "}";
}
}
diff --git a/media/java/android/media/AudioService.java b/media/java/android/media/AudioService.java
index bbeeac0..a84fe44 100644
--- a/media/java/android/media/AudioService.java
+++ b/media/java/android/media/AudioService.java
@@ -248,7 +248,7 @@
private final int[][] SOUND_EFFECT_FILES_MAP = new int[AudioManager.NUM_SOUND_EFFECTS][2];
/** @hide Maximum volume index values for audio streams */
- private static final int[] MAX_STREAM_VOLUME = new int[] {
+ private static int[] MAX_STREAM_VOLUME = new int[] {
5, // STREAM_VOICE_CALL
7, // STREAM_SYSTEM
7, // STREAM_RING
@@ -260,6 +260,20 @@
15, // STREAM_DTMF
15 // STREAM_TTS
};
+
+ private static int[] DEFAULT_STREAM_VOLUME = new int[] {
+ 4, // STREAM_VOICE_CALL
+ 7, // STREAM_SYSTEM
+ 5, // STREAM_RING
+ 11, // STREAM_MUSIC
+ 6, // STREAM_ALARM
+ 5, // STREAM_NOTIFICATION
+ 7, // STREAM_BLUETOOTH_SCO
+ 7, // STREAM_SYSTEM_ENFORCED
+ 11, // STREAM_DTMF
+ 11 // STREAM_TTS
+ };
+
/* mStreamVolumeAlias[] indicates for each stream if it uses the volume settings
* of another stream: This avoids multiplying the volume settings for hidden
* stream types that follow other stream behavior for volume settings
@@ -541,12 +555,18 @@
mHasVibrator = vibrator == null ? false : vibrator.hasVibrator();
// Intialized volume
- MAX_STREAM_VOLUME[AudioSystem.STREAM_VOICE_CALL] = SystemProperties.getInt(
- "ro.config.vc_call_vol_steps",
- MAX_STREAM_VOLUME[AudioSystem.STREAM_VOICE_CALL]);
- MAX_STREAM_VOLUME[AudioSystem.STREAM_MUSIC] = SystemProperties.getInt(
- "ro.config.media_vol_steps",
- MAX_STREAM_VOLUME[AudioSystem.STREAM_MUSIC]);
+ int maxVolume = SystemProperties.getInt("ro.config.vc_call_vol_steps",
+ MAX_STREAM_VOLUME[AudioSystem.STREAM_VOICE_CALL]);
+ if (maxVolume != MAX_STREAM_VOLUME[AudioSystem.STREAM_VOICE_CALL]) {
+ MAX_STREAM_VOLUME[AudioSystem.STREAM_VOICE_CALL] = maxVolume;
+ DEFAULT_STREAM_VOLUME[AudioSystem.STREAM_VOICE_CALL] = (maxVolume * 3) / 4;
+ }
+ maxVolume = SystemProperties.getInt("ro.config.media_vol_steps",
+ MAX_STREAM_VOLUME[AudioSystem.STREAM_MUSIC]);
+ if (maxVolume != MAX_STREAM_VOLUME[AudioSystem.STREAM_MUSIC]) {
+ MAX_STREAM_VOLUME[AudioSystem.STREAM_MUSIC] = maxVolume;
+ DEFAULT_STREAM_VOLUME[AudioSystem.STREAM_MUSIC] = (maxVolume * 3) / 4;
+ }
sSoundEffectVolumeDb = context.getResources().getInteger(
com.android.internal.R.integer.config_soundEffectVolumeDb);
@@ -1625,6 +1645,10 @@
return MAX_STREAM_VOLUME[streamType];
}
+ public static int getDefaultStreamVolume(int streamType) {
+ return DEFAULT_STREAM_VOLUME[streamType];
+ }
+
/** @see AudioManager#getStreamVolume(int) */
public int getStreamVolume(int streamType) {
ensureValidStreamType(streamType);
@@ -3356,7 +3380,7 @@
// only be stale values
if ((mStreamType == AudioSystem.STREAM_SYSTEM) ||
(mStreamType == AudioSystem.STREAM_SYSTEM_ENFORCED)) {
- int index = 10 * AudioManager.DEFAULT_STREAM_VOLUME[mStreamType];
+ int index = 10 * DEFAULT_STREAM_VOLUME[mStreamType];
synchronized (mCameraSoundForced) {
if (mCameraSoundForced) {
index = mIndexMax;
@@ -3380,7 +3404,7 @@
// if no volume stored for current stream and device, use default volume if default
// device, continue otherwise
int defaultIndex = (device == AudioSystem.DEVICE_OUT_DEFAULT) ?
- AudioManager.DEFAULT_STREAM_VOLUME[mStreamType] : -1;
+ DEFAULT_STREAM_VOLUME[mStreamType] : -1;
int index = Settings.System.getIntForUser(
mContentResolver, name, defaultIndex, UserHandle.USER_CURRENT);
if (index == -1) {
diff --git a/media/java/android/media/AudioSystem.java b/media/java/android/media/AudioSystem.java
index 9a76f94..e795fa7 100644
--- a/media/java/android/media/AudioSystem.java
+++ b/media/java/android/media/AudioSystem.java
@@ -255,6 +255,7 @@
public static final int DEVICE_OUT_SPDIF = 0x80000;
public static final int DEVICE_OUT_FM = 0x100000;
public static final int DEVICE_OUT_AUX_LINE = 0x200000;
+ public static final int DEVICE_OUT_SPEAKER_SAFE = 0x400000;
public static final int DEVICE_OUT_DEFAULT = DEVICE_BIT_DEFAULT;
@@ -280,6 +281,7 @@
DEVICE_OUT_SPDIF |
DEVICE_OUT_FM |
DEVICE_OUT_AUX_LINE |
+ DEVICE_OUT_SPEAKER_SAFE |
DEVICE_OUT_DEFAULT);
public static final int DEVICE_OUT_ALL_A2DP = (DEVICE_OUT_BLUETOOTH_A2DP |
DEVICE_OUT_BLUETOOTH_A2DP_HEADPHONES |
@@ -372,6 +374,27 @@
public static final String DEVICE_OUT_SPDIF_NAME = "spdif";
public static final String DEVICE_OUT_FM_NAME = "fm_transmitter";
public static final String DEVICE_OUT_AUX_LINE_NAME = "aux_line";
+ public static final String DEVICE_OUT_SPEAKER_SAFE_NAME = "speaker_safe";
+
+ public static final String DEVICE_IN_COMMUNICATION_NAME = "communication";
+ public static final String DEVICE_IN_AMBIENT_NAME = "ambient";
+ public static final String DEVICE_IN_BUILTIN_MIC_NAME = "mic";
+ public static final String DEVICE_IN_BLUETOOTH_SCO_HEADSET_NAME = "bt_sco_hs";
+ public static final String DEVICE_IN_WIRED_HEADSET_NAME = "headset";
+ public static final String DEVICE_IN_AUX_DIGITAL_NAME = "aux_digital";
+ public static final String DEVICE_IN_TELEPHONY_RX_NAME = "telephony_rx";
+ public static final String DEVICE_IN_BACK_MIC_NAME = "back_mic";
+ public static final String DEVICE_IN_REMOTE_SUBMIX_NAME = "remote_submix";
+ public static final String DEVICE_IN_ANLG_DOCK_HEADSET_NAME = "analog_dock";
+ public static final String DEVICE_IN_DGTL_DOCK_HEADSET_NAME = "digital_dock";
+ public static final String DEVICE_IN_USB_ACCESSORY_NAME = "usb_accessory";
+ public static final String DEVICE_IN_USB_DEVICE_NAME = "usb_device";
+ public static final String DEVICE_IN_FM_TUNER_NAME = "fm_tuner";
+ public static final String DEVICE_IN_TV_TUNER_NAME = "tv_tuner";
+ public static final String DEVICE_IN_LINE_NAME = "line";
+ public static final String DEVICE_IN_SPDIF_NAME = "spdif";
+ public static final String DEVICE_IN_BLUETOOTH_A2DP_NAME = "bt_a2dp";
+ public static final String DEVICE_IN_LOOPBACK_NAME = "loopback";
public static String getOutputDeviceName(int device)
{
@@ -420,12 +443,60 @@
return DEVICE_OUT_FM_NAME;
case DEVICE_OUT_AUX_LINE:
return DEVICE_OUT_AUX_LINE_NAME;
+ case DEVICE_OUT_SPEAKER_SAFE:
+ return DEVICE_OUT_SPEAKER_SAFE_NAME;
case DEVICE_OUT_DEFAULT:
default:
- return "";
+ return Integer.toString(device);
}
}
+ public static String getInputDeviceName(int device)
+ {
+ switch(device) {
+ case DEVICE_IN_COMMUNICATION:
+ return DEVICE_IN_COMMUNICATION_NAME;
+ case DEVICE_IN_AMBIENT:
+ return DEVICE_IN_AMBIENT_NAME;
+ case DEVICE_IN_BUILTIN_MIC:
+ return DEVICE_IN_BUILTIN_MIC_NAME;
+ case DEVICE_IN_BLUETOOTH_SCO_HEADSET:
+ return DEVICE_IN_BLUETOOTH_SCO_HEADSET_NAME;
+ case DEVICE_IN_WIRED_HEADSET:
+ return DEVICE_IN_WIRED_HEADSET_NAME;
+ case DEVICE_IN_AUX_DIGITAL:
+ return DEVICE_IN_AUX_DIGITAL_NAME;
+ case DEVICE_IN_TELEPHONY_RX:
+ return DEVICE_IN_TELEPHONY_RX_NAME;
+ case DEVICE_IN_BACK_MIC:
+ return DEVICE_IN_BACK_MIC_NAME;
+ case DEVICE_IN_REMOTE_SUBMIX:
+ return DEVICE_IN_REMOTE_SUBMIX_NAME;
+ case DEVICE_IN_ANLG_DOCK_HEADSET:
+ return DEVICE_IN_ANLG_DOCK_HEADSET_NAME;
+ case DEVICE_IN_DGTL_DOCK_HEADSET:
+ return DEVICE_IN_DGTL_DOCK_HEADSET_NAME;
+ case DEVICE_IN_USB_ACCESSORY:
+ return DEVICE_IN_USB_ACCESSORY_NAME;
+ case DEVICE_IN_USB_DEVICE:
+ return DEVICE_IN_USB_DEVICE_NAME;
+ case DEVICE_IN_FM_TUNER:
+ return DEVICE_IN_FM_TUNER_NAME;
+ case DEVICE_IN_TV_TUNER:
+ return DEVICE_IN_TV_TUNER_NAME;
+ case DEVICE_IN_LINE:
+ return DEVICE_IN_LINE_NAME;
+ case DEVICE_IN_SPDIF:
+ return DEVICE_IN_SPDIF_NAME;
+ case DEVICE_IN_BLUETOOTH_A2DP:
+ return DEVICE_IN_BLUETOOTH_A2DP_NAME;
+ case DEVICE_IN_LOOPBACK:
+ return DEVICE_IN_LOOPBACK_NAME;
+ case DEVICE_IN_DEFAULT:
+ default:
+ return Integer.toString(device);
+ }
+ }
// phone state, match audio_mode???
public static final int PHONE_STATE_OFFCALL = 0;
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
index e56806a..eea97ea 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java
@@ -568,7 +568,7 @@
stmt = db.compileStatement("INSERT OR IGNORE INTO system(name,value)"
+ " VALUES(?,?);");
loadSetting(stmt, Settings.System.VOLUME_BLUETOOTH_SCO,
- AudioManager.DEFAULT_STREAM_VOLUME[AudioManager.STREAM_BLUETOOTH_SCO]);
+ AudioService.getDefaultStreamVolume(AudioManager.STREAM_BLUETOOTH_SCO));
db.setTransactionSuccessful();
} finally {
db.endTransaction();
@@ -2169,25 +2169,25 @@
+ " VALUES(?,?);");
loadSetting(stmt, Settings.System.VOLUME_MUSIC,
- AudioManager.DEFAULT_STREAM_VOLUME[AudioManager.STREAM_MUSIC]);
+ AudioService.getDefaultStreamVolume(AudioManager.STREAM_MUSIC));
loadSetting(stmt, Settings.System.VOLUME_RING,
- AudioManager.DEFAULT_STREAM_VOLUME[AudioManager.STREAM_RING]);
+ AudioService.getDefaultStreamVolume(AudioManager.STREAM_RING));
loadSetting(stmt, Settings.System.VOLUME_SYSTEM,
- AudioManager.DEFAULT_STREAM_VOLUME[AudioManager.STREAM_SYSTEM]);
+ AudioService.getDefaultStreamVolume(AudioManager.STREAM_SYSTEM));
loadSetting(
stmt,
Settings.System.VOLUME_VOICE,
- AudioManager.DEFAULT_STREAM_VOLUME[AudioManager.STREAM_VOICE_CALL]);
+ AudioService.getDefaultStreamVolume(AudioManager.STREAM_VOICE_CALL));
loadSetting(stmt, Settings.System.VOLUME_ALARM,
- AudioManager.DEFAULT_STREAM_VOLUME[AudioManager.STREAM_ALARM]);
+ AudioService.getDefaultStreamVolume(AudioManager.STREAM_ALARM));
loadSetting(
stmt,
Settings.System.VOLUME_NOTIFICATION,
- AudioManager.DEFAULT_STREAM_VOLUME[AudioManager.STREAM_NOTIFICATION]);
+ AudioService.getDefaultStreamVolume(AudioManager.STREAM_NOTIFICATION));
loadSetting(
stmt,
Settings.System.VOLUME_BLUETOOTH_SCO,
- AudioManager.DEFAULT_STREAM_VOLUME[AudioManager.STREAM_BLUETOOTH_SCO]);
+ AudioService.getDefaultStreamVolume(AudioManager.STREAM_BLUETOOTH_SCO));
// By default:
// - ringtones, notification, system and music streams are affected by ringer mode
diff --git a/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java b/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java
index 594eb0e..b4f62d5 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/model/RecentsTaskLoader.java
@@ -171,6 +171,9 @@
}
} else {
SystemServicesProxy ssp = mSystemServicesProxy;
+ // If we've stopped the loader, then fall thorugh to the above logic to wait on
+ // the load thread
+ if (ssp == null) continue;
// Load the next item from the queue
final Task t = mLoadQueue.nextTask();
diff --git a/services/core/java/com/android/server/IntentResolver.java b/services/core/java/com/android/server/IntentResolver.java
index 07cc864..387eabc 100644
--- a/services/core/java/com/android/server/IntentResolver.java
+++ b/services/core/java/com/android/server/IntentResolver.java
@@ -21,7 +21,6 @@
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
-import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -30,6 +29,7 @@
import android.net.Uri;
import android.util.FastImmutableArraySet;
import android.util.ArrayMap;
+import android.util.ArraySet;
import android.util.Log;
import android.util.PrintWriterPrinter;
import android.util.Slog;
@@ -736,7 +736,7 @@
/**
* All filters that have been registered.
*/
- private final HashSet<F> mFilters = new HashSet<F>();
+ private final ArraySet<F> mFilters = new ArraySet<F>();
/**
* All of the MIME types that have been registered, such as "image/jpeg",
diff --git a/services/core/java/com/android/server/SystemConfig.java b/services/core/java/com/android/server/SystemConfig.java
index cf2a49f..f4fb519 100644
--- a/services/core/java/com/android/server/SystemConfig.java
+++ b/services/core/java/com/android/server/SystemConfig.java
@@ -32,8 +32,6 @@
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
-import java.util.HashMap;
-import java.util.HashSet;
import static com.android.internal.util.ArrayUtils.appendInt;
@@ -50,7 +48,7 @@
// These are the built-in uid -> permission mappings that were read from the
// system configuration files.
- final SparseArray<HashSet<String>> mSystemPermissions = new SparseArray<>();
+ final SparseArray<ArraySet<String>> mSystemPermissions = new SparseArray<>();
// These are the built-in shared libraries that were read from the
// system configuration files. Keys are the library names; strings are the
@@ -59,7 +57,7 @@
// These are the features this devices supports that were read from the
// system configuration files.
- final HashMap<String, FeatureInfo> mAvailableFeatures = new HashMap<>();
+ final ArrayMap<String, FeatureInfo> mAvailableFeatures = new ArrayMap<>();
public static final class PermissionEntry {
public final String name;
@@ -94,7 +92,7 @@
return mGlobalGids;
}
- public SparseArray<HashSet<String>> getSystemPermissions() {
+ public SparseArray<ArraySet<String>> getSystemPermissions() {
return mSystemPermissions;
}
@@ -102,7 +100,7 @@
return mSharedLibraries;
}
- public HashMap<String, FeatureInfo> getAvailableFeatures() {
+ public ArrayMap<String, FeatureInfo> getAvailableFeatures() {
return mAvailableFeatures;
}
@@ -252,9 +250,9 @@
continue;
}
perm = perm.intern();
- HashSet<String> perms = mSystemPermissions.get(uid);
+ ArraySet<String> perms = mSystemPermissions.get(uid);
if (perms == null) {
- perms = new HashSet<String>();
+ perms = new ArraySet<String>();
mSystemPermissions.put(uid, perms);
}
perms.add(perm);
diff --git a/services/core/java/com/android/server/net/NetworkStatsService.java b/services/core/java/com/android/server/net/NetworkStatsService.java
index b5aa4d8..150ad34 100644
--- a/services/core/java/com/android/server/net/NetworkStatsService.java
+++ b/services/core/java/com/android/server/net/NetworkStatsService.java
@@ -45,7 +45,6 @@
import static android.provider.Settings.Global.NETSTATS_DEV_ROTATE_AGE;
import static android.provider.Settings.Global.NETSTATS_GLOBAL_ALERT_BYTES;
import static android.provider.Settings.Global.NETSTATS_POLL_INTERVAL;
-import static android.provider.Settings.Global.NETSTATS_REPORT_XT_OVER_DEV;
import static android.provider.Settings.Global.NETSTATS_SAMPLE_ENABLED;
import static android.provider.Settings.Global.NETSTATS_TIME_CACHE_MAX_AGE;
import static android.provider.Settings.Global.NETSTATS_UID_BUCKET_DURATION;
@@ -184,7 +183,6 @@
public long getPollInterval();
public long getTimeCacheMaxAge();
public boolean getSampleEnabled();
- public boolean getReportXtOverDev();
public static class Config {
public final long bucketDuration;
@@ -229,8 +227,6 @@
private NetworkStatsRecorder mUidRecorder;
private NetworkStatsRecorder mUidTagRecorder;
- /** Cached {@link #mDevRecorder} stats. */
- private NetworkStatsCollection mDevStatsCached;
/** Cached {@link #mXtRecorder} stats. */
private NetworkStatsCollection mXtStatsCached;
@@ -305,7 +301,6 @@
// read historical network stats from disk, since policy service
// might need them right away.
- mDevStatsCached = mDevRecorder.getOrLoadCompleteLocked();
mXtStatsCached = mXtRecorder.getOrLoadCompleteLocked();
// bootstrap initial stats to prevent double-counting later
@@ -386,7 +381,6 @@
mUidRecorder = null;
mUidTagRecorder = null;
- mDevStatsCached = null;
mXtStatsCached = null;
mSystemReady = false;
@@ -523,48 +517,24 @@
}
/**
- * Return network summary, splicing between {@link #mDevStatsCached}
- * and {@link #mXtStatsCached} when appropriate.
+ * Return network summary, splicing between DEV and XT stats when
+ * appropriate.
*/
private NetworkStats internalGetSummaryForNetwork(
NetworkTemplate template, long start, long end) {
- if (!mSettings.getReportXtOverDev()) {
- // shortcut when XT reporting disabled
- return mDevStatsCached.getSummary(template, start, end);
- }
-
- // splice stats between DEV and XT, switching over from DEV to XT at
- // first atomic bucket.
- final long firstAtomicBucket = mXtStatsCached.getFirstAtomicBucketMillis();
- final NetworkStats dev = mDevStatsCached.getSummary(
- template, Math.min(start, firstAtomicBucket), Math.min(end, firstAtomicBucket));
- final NetworkStats xt = mXtStatsCached.getSummary(
- template, Math.max(start, firstAtomicBucket), Math.max(end, firstAtomicBucket));
-
- xt.combineAllValues(dev);
- return xt;
+ // We've been using pure XT stats long enough that we no longer need to
+ // splice DEV and XT together.
+ return mXtStatsCached.getSummary(template, start, end);
}
/**
- * Return network history, splicing between {@link #mDevStatsCached}
- * and {@link #mXtStatsCached} when appropriate.
+ * Return network history, splicing between DEV and XT stats when
+ * appropriate.
*/
private NetworkStatsHistory internalGetHistoryForNetwork(NetworkTemplate template, int fields) {
- if (!mSettings.getReportXtOverDev()) {
- // shortcut when XT reporting disabled
- return mDevStatsCached.getHistory(template, UID_ALL, SET_ALL, TAG_NONE, fields);
- }
-
- // splice stats between DEV and XT, switching over from DEV to XT at
- // first atomic bucket.
- final long firstAtomicBucket = mXtStatsCached.getFirstAtomicBucketMillis();
- final NetworkStatsHistory dev = mDevStatsCached.getHistory(
- template, UID_ALL, SET_ALL, TAG_NONE, fields, Long.MIN_VALUE, firstAtomicBucket);
- final NetworkStatsHistory xt = mXtStatsCached.getHistory(
- template, UID_ALL, SET_ALL, TAG_NONE, fields, firstAtomicBucket, Long.MAX_VALUE);
-
- xt.recordEntireHistory(dev);
- return xt;
+ // We've been using pure XT stats long enough that we no longer need to
+ // splice DEV and XT together.
+ return mXtStatsCached.getHistory(template, UID_ALL, SET_ALL, TAG_NONE, fields);
}
@Override
@@ -1329,10 +1299,6 @@
return getGlobalBoolean(NETSTATS_SAMPLE_ENABLED, true);
}
@Override
- public boolean getReportXtOverDev() {
- return getGlobalBoolean(NETSTATS_REPORT_XT_OVER_DEV, true);
- }
- @Override
public Config getDevConfig() {
return new Config(getGlobalLong(NETSTATS_DEV_BUCKET_DURATION, HOUR_IN_MILLIS),
getGlobalLong(NETSTATS_DEV_ROTATE_AGE, 15 * DAY_IN_MILLIS),
diff --git a/services/core/java/com/android/server/pm/BackgroundDexOptService.java b/services/core/java/com/android/server/pm/BackgroundDexOptService.java
index a7eebf8..cb9a45e 100644
--- a/services/core/java/com/android/server/pm/BackgroundDexOptService.java
+++ b/services/core/java/com/android/server/pm/BackgroundDexOptService.java
@@ -23,9 +23,9 @@
import android.content.ComponentName;
import android.content.Context;
import android.os.ServiceManager;
+import android.util.ArraySet;
import android.util.Log;
-import java.util.HashSet;
import java.util.concurrent.atomic.AtomicBoolean;
/**
@@ -59,7 +59,7 @@
if (pm.isStorageLow()) {
return false;
}
- final HashSet<String> pkgs = pm.getPackagesThatNeedDexOpt();
+ final ArraySet<String> pkgs = pm.getPackagesThatNeedDexOpt();
if (pkgs == null) {
return false;
}
diff --git a/services/core/java/com/android/server/pm/GrantedPermissions.java b/services/core/java/com/android/server/pm/GrantedPermissions.java
index 14258a4..8f0f935 100644
--- a/services/core/java/com/android/server/pm/GrantedPermissions.java
+++ b/services/core/java/com/android/server/pm/GrantedPermissions.java
@@ -17,13 +17,12 @@
package com.android.server.pm;
import android.content.pm.ApplicationInfo;
-
-import java.util.HashSet;
+import android.util.ArraySet;
class GrantedPermissions {
int pkgFlags;
- HashSet<String> grantedPermissions = new HashSet<String>();
+ ArraySet<String> grantedPermissions = new ArraySet<String>();
int[] gids;
@@ -34,7 +33,7 @@
@SuppressWarnings("unchecked")
GrantedPermissions(GrantedPermissions base) {
pkgFlags = base.pkgFlags;
- grantedPermissions = (HashSet<String>) base.grantedPermissions.clone();
+ grantedPermissions = new ArraySet<>(base.grantedPermissions);
if (base.gids != null) {
gids = base.gids.clone();
diff --git a/services/core/java/com/android/server/pm/PackageKeySetData.java b/services/core/java/com/android/server/pm/PackageKeySetData.java
index 9f9bafd..8f12c03 100644
--- a/services/core/java/com/android/server/pm/PackageKeySetData.java
+++ b/services/core/java/com/android/server/pm/PackageKeySetData.java
@@ -16,10 +16,9 @@
package com.android.server.pm;
-import com.android.internal.util.ArrayUtils;
+import android.util.ArrayMap;
-import java.util.HashMap;
-import java.util.Map;
+import com.android.internal.util.ArrayUtils;
public class PackageKeySetData {
@@ -34,7 +33,7 @@
private long[] mDefinedKeySets;
- private final Map<String, Long> mKeySetAliases = new HashMap<String, Long>();
+ private final ArrayMap<String, Long> mKeySetAliases = new ArrayMap<String, Long>();
PackageKeySetData() {
mProperSigningKeySet = KEYSET_UNASSIGNED;
@@ -132,7 +131,7 @@
return mDefinedKeySets;
}
- protected Map<String, Long> getAliases() {
+ protected ArrayMap<String, Long> getAliases() {
return mKeySetAliases;
}
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 6b046f2..de6e82b 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -201,8 +201,6 @@
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -374,20 +372,20 @@
// Keys are String (package name), values are Package. This also serves
// as the lock for the global state. Methods that must be called with
// this lock held have the prefix "LP".
- final HashMap<String, PackageParser.Package> mPackages =
- new HashMap<String, PackageParser.Package>();
+ final ArrayMap<String, PackageParser.Package> mPackages =
+ new ArrayMap<String, PackageParser.Package>();
// Tracks available target package names -> overlay package paths.
- final HashMap<String, HashMap<String, PackageParser.Package>> mOverlays =
- new HashMap<String, HashMap<String, PackageParser.Package>>();
+ final ArrayMap<String, ArrayMap<String, PackageParser.Package>> mOverlays =
+ new ArrayMap<String, ArrayMap<String, PackageParser.Package>>();
final Settings mSettings;
boolean mRestoredSettings;
// System configuration read by SystemConfig.
final int[] mGlobalGids;
- final SparseArray<HashSet<String>> mSystemPermissions;
- final HashMap<String, FeatureInfo> mAvailableFeatures;
+ final SparseArray<ArraySet<String>> mSystemPermissions;
+ final ArrayMap<String, FeatureInfo> mAvailableFeatures;
// If mac_permissions.xml was found for seinfo labeling.
boolean mFoundPolicyFile;
@@ -406,8 +404,8 @@
}
// Currently known shared libraries.
- final HashMap<String, SharedLibraryEntry> mSharedLibraries =
- new HashMap<String, SharedLibraryEntry>();
+ final ArrayMap<String, SharedLibraryEntry> mSharedLibraries =
+ new ArrayMap<String, SharedLibraryEntry>();
// All available activities, for your resolving pleasure.
final ActivityIntentResolver mActivities =
@@ -425,23 +423,23 @@
// Mapping from provider base names (first directory in content URI codePath)
// to the provider information.
- final HashMap<String, PackageParser.Provider> mProvidersByAuthority =
- new HashMap<String, PackageParser.Provider>();
+ final ArrayMap<String, PackageParser.Provider> mProvidersByAuthority =
+ new ArrayMap<String, PackageParser.Provider>();
// Mapping from instrumentation class names to info about them.
- final HashMap<ComponentName, PackageParser.Instrumentation> mInstrumentation =
- new HashMap<ComponentName, PackageParser.Instrumentation>();
+ final ArrayMap<ComponentName, PackageParser.Instrumentation> mInstrumentation =
+ new ArrayMap<ComponentName, PackageParser.Instrumentation>();
// Mapping from permission names to info about them.
- final HashMap<String, PackageParser.PermissionGroup> mPermissionGroups =
- new HashMap<String, PackageParser.PermissionGroup>();
+ final ArrayMap<String, PackageParser.PermissionGroup> mPermissionGroups =
+ new ArrayMap<String, PackageParser.PermissionGroup>();
// Packages whose data we have transfered into another package, thus
// should no longer exist.
- final HashSet<String> mTransferedPackages = new HashSet<String>();
+ final ArraySet<String> mTransferedPackages = new ArraySet<String>();
// Broadcast actions that are only available to the system.
- final HashSet<String> mProtectedBroadcasts = new HashSet<String>();
+ final ArraySet<String> mProtectedBroadcasts = new ArraySet<String>();
/** List of packages waiting for verification. */
final SparseArray<PackageVerificationState> mPendingVerification
@@ -452,7 +450,7 @@
final PackageInstallerService mInstallerService;
- HashSet<PackageParser.Package> mDeferredDexOpt = null;
+ ArraySet<PackageParser.Package> mDeferredDexOpt = null;
// Cache of users who need badging.
SparseBooleanArray mUserNeedsBadging = new SparseBooleanArray();
@@ -476,24 +474,24 @@
// Set of pending broadcasts for aggregating enable/disable of components.
static class PendingPackageBroadcasts {
// for each user id, a map of <package name -> components within that package>
- final SparseArray<HashMap<String, ArrayList<String>>> mUidMap;
+ final SparseArray<ArrayMap<String, ArrayList<String>>> mUidMap;
public PendingPackageBroadcasts() {
- mUidMap = new SparseArray<HashMap<String, ArrayList<String>>>(2);
+ mUidMap = new SparseArray<ArrayMap<String, ArrayList<String>>>(2);
}
public ArrayList<String> get(int userId, String packageName) {
- HashMap<String, ArrayList<String>> packages = getOrAllocate(userId);
+ ArrayMap<String, ArrayList<String>> packages = getOrAllocate(userId);
return packages.get(packageName);
}
public void put(int userId, String packageName, ArrayList<String> components) {
- HashMap<String, ArrayList<String>> packages = getOrAllocate(userId);
+ ArrayMap<String, ArrayList<String>> packages = getOrAllocate(userId);
packages.put(packageName, components);
}
public void remove(int userId, String packageName) {
- HashMap<String, ArrayList<String>> packages = mUidMap.get(userId);
+ ArrayMap<String, ArrayList<String>> packages = mUidMap.get(userId);
if (packages != null) {
packages.remove(packageName);
}
@@ -511,7 +509,7 @@
return mUidMap.keyAt(n);
}
- public HashMap<String, ArrayList<String>> packagesForUserId(int userId) {
+ public ArrayMap<String, ArrayList<String>> packagesForUserId(int userId) {
return mUidMap.get(userId);
}
@@ -528,10 +526,10 @@
mUidMap.clear();
}
- private HashMap<String, ArrayList<String>> getOrAllocate(int userId) {
- HashMap<String, ArrayList<String>> map = mUidMap.get(userId);
+ private ArrayMap<String, ArrayList<String>> getOrAllocate(int userId) {
+ ArrayMap<String, ArrayList<String>> map = mUidMap.get(userId);
if (map == null) {
- map = new HashMap<String, ArrayList<String>>();
+ map = new ArrayMap<String, ArrayList<String>>();
mUidMap.put(userId, map);
}
return map;
@@ -568,7 +566,7 @@
static UserManagerService sUserManager;
// Stores a list of users whose package restrictions file needs to be updated
- private HashSet<Integer> mDirtyUsers = new HashSet<Integer>();
+ private ArraySet<Integer> mDirtyUsers = new ArraySet<Integer>();
final private DefaultContainerConnection mDefContainerConn =
new DefaultContainerConnection();
@@ -1396,7 +1394,7 @@
// scanning install directories.
final int scanFlags = SCAN_NO_PATHS | SCAN_DEFER_DEX | SCAN_BOOTING;
- final HashSet<String> alreadyDexOpted = new HashSet<String>();
+ final ArraySet<String> alreadyDexOpted = new ArraySet<String>();
/**
* Add everything in the in the boot class path to the
@@ -2381,7 +2379,7 @@
return PackageManager.PERMISSION_GRANTED;
}
} else {
- HashSet<String> perms = mSystemPermissions.get(uid);
+ ArraySet<String> perms = mSystemPermissions.get(uid);
if (perms != null && perms.contains(permName)) {
return PackageManager.PERMISSION_GRANTED;
}
@@ -2802,11 +2800,11 @@
PackageManager.SIGNATURE_NO_MATCH;
}
- HashSet<Signature> set1 = new HashSet<Signature>();
+ ArraySet<Signature> set1 = new ArraySet<Signature>();
for (Signature sig : s1) {
set1.add(sig);
}
- HashSet<Signature> set2 = new HashSet<Signature>();
+ ArraySet<Signature> set2 = new ArraySet<Signature>();
for (Signature sig : s2) {
set2.add(sig);
}
@@ -2841,11 +2839,11 @@
return PackageManager.SIGNATURE_NO_MATCH;
}
- HashSet<Signature> existingSet = new HashSet<Signature>();
+ ArraySet<Signature> existingSet = new ArraySet<Signature>();
for (Signature sig : existingSigs.mSignatures) {
existingSet.add(sig);
}
- HashSet<Signature> scannedCompatSet = new HashSet<Signature>();
+ ArraySet<Signature> scannedCompatSet = new ArraySet<Signature>();
for (Signature sig : scannedPkg.mSignatures) {
try {
Signature[] chainSignatures = sig.getChainSignatures();
@@ -4035,7 +4033,7 @@
}
private void createIdmapsForPackageLI(PackageParser.Package pkg) {
- HashMap<String, PackageParser.Package> overlays = mOverlays.get(pkg.packageName);
+ ArrayMap<String, PackageParser.Package> overlays = mOverlays.get(pkg.packageName);
if (overlays == null) {
Slog.w(TAG, "Unable to create idmap for " + pkg.packageName + ": no overlay packages");
return;
@@ -4056,7 +4054,7 @@
opkg.baseCodePath + ": overlay not trusted");
return false;
}
- HashMap<String, PackageParser.Package> overlaySet = mOverlays.get(pkg.packageName);
+ ArrayMap<String, PackageParser.Package> overlaySet = mOverlays.get(pkg.packageName);
if (overlaySet == null) {
Slog.e(TAG, "was about to create idmap for " + pkg.baseCodePath + " and " +
opkg.baseCodePath + " but target package has no known overlays");
@@ -4477,7 +4475,7 @@
public void performBootDexOpt() {
enforceSystemOrRoot("Only the system can request dexopt be performed");
- final HashSet<PackageParser.Package> pkgs;
+ final ArraySet<PackageParser.Package> pkgs;
synchronized (mPackages) {
pkgs = mDeferredDexOpt;
mDeferredDexOpt = null;
@@ -4500,7 +4498,7 @@
}
// Give priority to system apps that listen for pre boot complete.
Intent intent = new Intent(Intent.ACTION_PRE_BOOT_COMPLETED);
- HashSet<String> pkgNames = getPackageNamesForIntent(intent);
+ ArraySet<String> pkgNames = getPackageNamesForIntent(intent);
for (Iterator<PackageParser.Package> it = pkgs.iterator(); it.hasNext();) {
PackageParser.Package pkg = it.next();
if (pkgNames.contains(pkg.packageName)) {
@@ -4574,7 +4572,7 @@
}
}
- private void filterRecentlyUsedApps(HashSet<PackageParser.Package> pkgs) {
+ private void filterRecentlyUsedApps(ArraySet<PackageParser.Package> pkgs) {
// Filter out packages that aren't recently used.
//
// The exception is first boot of a non-eng device (aka !mLazyDexOpt), which
@@ -4601,14 +4599,14 @@
}
}
- private HashSet<String> getPackageNamesForIntent(Intent intent) {
+ private ArraySet<String> getPackageNamesForIntent(Intent intent) {
List<ResolveInfo> ris = null;
try {
ris = AppGlobals.getPackageManager().queryIntentReceivers(
intent, null, 0, UserHandle.USER_OWNER);
} catch (RemoteException e) {
}
- HashSet<String> pkgNames = new HashSet<String>();
+ ArraySet<String> pkgNames = new ArraySet<String>();
if (ris != null) {
for (ResolveInfo ri : ris) {
pkgNames.add(ri.activityInfo.packageName);
@@ -4686,8 +4684,8 @@
}
}
- public HashSet<String> getPackagesThatNeedDexOpt() {
- HashSet<String> pkgs = null;
+ public ArraySet<String> getPackagesThatNeedDexOpt() {
+ ArraySet<String> pkgs = null;
synchronized (mPackages) {
for (PackageParser.Package p : mPackages.values()) {
if (DEBUG_DEXOPT) {
@@ -4697,7 +4695,7 @@
continue;
}
if (pkgs == null) {
- pkgs = new HashSet<String>();
+ pkgs = new ArraySet<String>();
}
pkgs.add(p.packageName);
}
@@ -4710,7 +4708,7 @@
}
private void performDexOptLibsLI(ArrayList<String> libs, String[] instructionSets,
- boolean forceDex, boolean defer, HashSet<String> done) {
+ boolean forceDex, boolean defer, ArraySet<String> done) {
for (int i=0; i<libs.size(); i++) {
PackageParser.Package libPkg;
String libName;
@@ -4735,7 +4733,7 @@
static final int DEX_OPT_FAILED = -1;
private int performDexOptLI(PackageParser.Package pkg, String[] targetInstructionSets,
- boolean forceDex, boolean defer, HashSet<String> done) {
+ boolean forceDex, boolean defer, ArraySet<String> done) {
final String[] instructionSets = targetInstructionSets != null ?
targetInstructionSets : getAppDexInstructionSets(pkg.applicationInfo);
@@ -4813,7 +4811,7 @@
// our list of deferred dexopts.
if (defer && isDexOptNeeded != DexFile.UP_TO_DATE) {
if (mDeferredDexOpt == null) {
- mDeferredDexOpt = new HashSet<PackageParser.Package>();
+ mDeferredDexOpt = new ArraySet<PackageParser.Package>();
}
mDeferredDexOpt.add(pkg);
return DEX_OPT_DEFERRED;
@@ -4910,7 +4908,7 @@
}
private static String[] getDexCodeInstructionSets(String[] instructionSets) {
- HashSet<String> dexCodeInstructionSets = new HashSet<String>(instructionSets.length);
+ ArraySet<String> dexCodeInstructionSets = new ArraySet<String>(instructionSets.length);
for (String instructionSet : instructionSets) {
dexCodeInstructionSets.add(getDexCodeInstructionSet(instructionSet));
}
@@ -4953,9 +4951,9 @@
private int performDexOptLI(PackageParser.Package pkg, String[] instructionSets,
boolean forceDex, boolean defer, boolean inclDependencies) {
- HashSet<String> done;
+ ArraySet<String> done;
if (inclDependencies && (pkg.usesLibraries != null || pkg.usesOptionalLibraries != null)) {
- done = new HashSet<String>();
+ done = new ArraySet<String>();
done.add(pkg.packageName);
} else {
done = null;
@@ -6140,7 +6138,7 @@
r = null;
for (i=0; i<N; i++) {
PackageParser.Permission p = pkg.permissions.get(i);
- HashMap<String, BasePermission> permissionMap =
+ ArrayMap<String, BasePermission> permissionMap =
p.tree ? mSettings.mPermissionTrees
: mSettings.mPermissions;
p.group = mPermissionGroups.get(p.info.group);
@@ -6268,9 +6266,9 @@
if (pkg.mOverlayTarget != null && !pkg.mOverlayTarget.equals("android")) {
if (!mOverlays.containsKey(pkg.mOverlayTarget)) {
mOverlays.put(pkg.mOverlayTarget,
- new HashMap<String, PackageParser.Package>());
+ new ArrayMap<String, PackageParser.Package>());
}
- HashMap<String, PackageParser.Package> map = mOverlays.get(pkg.mOverlayTarget);
+ ArrayMap<String, PackageParser.Package> map = mOverlays.get(pkg.mOverlayTarget);
map.put(pkg.packageName, pkg);
PackageParser.Package orig = mPackages.get(pkg.mOverlayTarget);
if (orig != null && !createIdmapForPackagePairLI(orig, pkg)) {
@@ -6931,13 +6929,13 @@
return;
}
final GrantedPermissions gp = ps.sharedUser != null ? ps.sharedUser : ps;
- HashSet<String> origPermissions = gp.grantedPermissions;
+ ArraySet<String> origPermissions = gp.grantedPermissions;
boolean changedPermission = false;
if (replace) {
ps.permissionsFixed = false;
if (gp == ps) {
- origPermissions = new HashSet<String>(gp.grantedPermissions);
+ origPermissions = new ArraySet<String>(gp.grantedPermissions);
gp.grantedPermissions.clear();
gp.gids = mGlobalGids;
}
@@ -7084,7 +7082,7 @@
}
private boolean grantSignaturePermission(String perm, PackageParser.Package pkg,
- BasePermission bp, HashSet<String> origPermissions) {
+ BasePermission bp, ArraySet<String> origPermissions) {
boolean allowed;
allowed = (compareSignatures(
bp.packageSetting.signatures.mSignatures, pkg.mSignatures)
@@ -7342,8 +7340,8 @@
// }
// Keys are String (activity class name), values are Activity.
- private final HashMap<ComponentName, PackageParser.Activity> mActivities
- = new HashMap<ComponentName, PackageParser.Activity>();
+ private final ArrayMap<ComponentName, PackageParser.Activity> mActivities
+ = new ArrayMap<ComponentName, PackageParser.Activity>();
private int mFlags;
}
@@ -7541,8 +7539,8 @@
// }
// Keys are String (activity class name), values are Activity.
- private final HashMap<ComponentName, PackageParser.Service> mServices
- = new HashMap<ComponentName, PackageParser.Service>();
+ private final ArrayMap<ComponentName, PackageParser.Service> mServices
+ = new ArrayMap<ComponentName, PackageParser.Service>();
private int mFlags;
};
@@ -7735,8 +7733,8 @@
out.println(Integer.toHexString(System.identityHashCode(filter)));
}
- private final HashMap<ComponentName, PackageParser.Provider> mProviders
- = new HashMap<ComponentName, PackageParser.Provider>();
+ private final ArrayMap<ComponentName, PackageParser.Provider> mProviders
+ = new ArrayMap<ComponentName, PackageParser.Provider>();
private int mFlags;
};
@@ -10405,6 +10403,60 @@
String oldCodePath = null;
boolean systemApp = false;
synchronized (mPackages) {
+ // Check if installing already existing package
+ if ((installFlags & PackageManager.INSTALL_REPLACE_EXISTING) != 0) {
+ String oldName = mSettings.mRenamedPackages.get(pkgName);
+ if (pkg.mOriginalPackages != null
+ && pkg.mOriginalPackages.contains(oldName)
+ && mPackages.containsKey(oldName)) {
+ // This package is derived from an original package,
+ // and this device has been updating from that original
+ // name. We must continue using the original name, so
+ // rename the new package here.
+ pkg.setPackageName(oldName);
+ pkgName = pkg.packageName;
+ replace = true;
+ if (DEBUG_INSTALL) Slog.d(TAG, "Replacing existing renamed package: oldName="
+ + oldName + " pkgName=" + pkgName);
+ } else if (mPackages.containsKey(pkgName)) {
+ // This package, under its official name, already exists
+ // on the device; we should replace it.
+ replace = true;
+ if (DEBUG_INSTALL) Slog.d(TAG, "Replace existing pacakge: " + pkgName);
+ }
+ }
+
+ PackageSetting ps = mSettings.mPackages.get(pkgName);
+ if (ps != null) {
+ if (DEBUG_INSTALL) Slog.d(TAG, "Existing package: " + ps);
+
+ // Quick sanity check that we're signed correctly if updating;
+ // we'll check this again later when scanning, but we want to
+ // bail early here before tripping over redefined permissions.
+ if (!ps.keySetData.isUsingUpgradeKeySets() || ps.sharedUser != null) {
+ try {
+ verifySignaturesLP(ps, pkg);
+ } catch (PackageManagerException e) {
+ res.setError(e.error, e.getMessage());
+ return;
+ }
+ } else {
+ if (!checkUpgradeKeySetLP(ps, pkg)) {
+ res.setError(INSTALL_FAILED_UPDATE_INCOMPATIBLE, "Package "
+ + pkg.packageName + " upgrade keys do not match the "
+ + "previously installed version");
+ return;
+ }
+ }
+
+ oldCodePath = mSettings.mPackages.get(pkgName).codePathString;
+ if (ps.pkg != null && ps.pkg.applicationInfo != null) {
+ systemApp = (ps.pkg.applicationInfo.flags &
+ ApplicationInfo.FLAG_SYSTEM) != 0;
+ }
+ res.origUsers = ps.queryInstalledUsers(sUserManager.getUserIds(), true);
+ }
+
// Check whether the newly-scanned package wants to define an already-defined perm
int N = pkg.permissions.size();
for (int i = N-1; i >= 0; i--) {
@@ -10445,38 +10497,6 @@
}
}
- // Check if installing already existing package
- if ((installFlags & PackageManager.INSTALL_REPLACE_EXISTING) != 0) {
- String oldName = mSettings.mRenamedPackages.get(pkgName);
- if (pkg.mOriginalPackages != null
- && pkg.mOriginalPackages.contains(oldName)
- && mPackages.containsKey(oldName)) {
- // This package is derived from an original package,
- // and this device has been updating from that original
- // name. We must continue using the original name, so
- // rename the new package here.
- pkg.setPackageName(oldName);
- pkgName = pkg.packageName;
- replace = true;
- if (DEBUG_INSTALL) Slog.d(TAG, "Replacing existing renamed package: oldName="
- + oldName + " pkgName=" + pkgName);
- } else if (mPackages.containsKey(pkgName)) {
- // This package, under its official name, already exists
- // on the device; we should replace it.
- replace = true;
- if (DEBUG_INSTALL) Slog.d(TAG, "Replace existing pacakge: " + pkgName);
- }
- }
- PackageSetting ps = mSettings.mPackages.get(pkgName);
- if (ps != null) {
- if (DEBUG_INSTALL) Slog.d(TAG, "Existing package: " + ps);
- oldCodePath = mSettings.mPackages.get(pkgName).codePathString;
- if (ps.pkg != null && ps.pkg.applicationInfo != null) {
- systemApp = (ps.pkg.applicationInfo.flags &
- ApplicationInfo.FLAG_SYSTEM) != 0;
- }
- res.origUsers = ps.queryInstalledUsers(sUserManager.getUserIds(), true);
- }
}
if (systemApp && onSd) {
@@ -11838,8 +11858,8 @@
synchronized (mPackages) {
CrossProfileIntentResolver resolver =
mSettings.editCrossProfileIntentResolverLPw(sourceUserId);
- HashSet<CrossProfileIntentFilter> set =
- new HashSet<CrossProfileIntentFilter>(resolver.filterSet());
+ ArraySet<CrossProfileIntentFilter> set =
+ new ArraySet<CrossProfileIntentFilter>(resolver.filterSet());
for (CrossProfileIntentFilter filter : set) {
if (filter.getOwnerPackage().equals(ownerPackage)
&& filter.getOwnerUserId() == callingUserId) {
diff --git a/services/core/java/com/android/server/pm/PackageSettingBase.java b/services/core/java/com/android/server/pm/PackageSettingBase.java
index bf13fd9..1dcadb4 100644
--- a/services/core/java/com/android/server/pm/PackageSettingBase.java
+++ b/services/core/java/com/android/server/pm/PackageSettingBase.java
@@ -21,10 +21,10 @@
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
import android.content.pm.PackageUserState;
+import android.util.ArraySet;
import android.util.SparseArray;
import java.io.File;
-import java.util.HashSet;
/**
* Settings base class for pending and resolved classes.
@@ -321,8 +321,8 @@
void setUserState(int userId, int enabled, boolean installed, boolean stopped,
boolean notLaunched, boolean hidden,
- String lastDisableAppCaller, HashSet<String> enabledComponents,
- HashSet<String> disabledComponents, boolean blockUninstall) {
+ String lastDisableAppCaller, ArraySet<String> enabledComponents,
+ ArraySet<String> disabledComponents, boolean blockUninstall) {
PackageUserState state = modifyUserState(userId);
state.enabled = enabled;
state.installed = installed;
@@ -335,39 +335,39 @@
state.blockUninstall = blockUninstall;
}
- HashSet<String> getEnabledComponents(int userId) {
+ ArraySet<String> getEnabledComponents(int userId) {
return readUserState(userId).enabledComponents;
}
- HashSet<String> getDisabledComponents(int userId) {
+ ArraySet<String> getDisabledComponents(int userId) {
return readUserState(userId).disabledComponents;
}
- void setEnabledComponents(HashSet<String> components, int userId) {
+ void setEnabledComponents(ArraySet<String> components, int userId) {
modifyUserState(userId).enabledComponents = components;
}
- void setDisabledComponents(HashSet<String> components, int userId) {
+ void setDisabledComponents(ArraySet<String> components, int userId) {
modifyUserState(userId).disabledComponents = components;
}
- void setEnabledComponentsCopy(HashSet<String> components, int userId) {
+ void setEnabledComponentsCopy(ArraySet<String> components, int userId) {
modifyUserState(userId).enabledComponents = components != null
- ? new HashSet<String>(components) : null;
+ ? new ArraySet<String>(components) : null;
}
- void setDisabledComponentsCopy(HashSet<String> components, int userId) {
+ void setDisabledComponentsCopy(ArraySet<String> components, int userId) {
modifyUserState(userId).disabledComponents = components != null
- ? new HashSet<String>(components) : null;
+ ? new ArraySet<String>(components) : null;
}
PackageUserState modifyUserStateComponents(int userId, boolean disabled, boolean enabled) {
PackageUserState state = modifyUserState(userId);
if (disabled && state.disabledComponents == null) {
- state.disabledComponents = new HashSet<String>(1);
+ state.disabledComponents = new ArraySet<String>(1);
}
if (enabled && state.enabledComponents == null) {
- state.enabledComponents = new HashSet<String>(1);
+ state.enabledComponents = new ArraySet<String>(1);
}
return state;
}
diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java
index 7de56c8..200eb5f 100644
--- a/services/core/java/com/android/server/pm/Settings.java
+++ b/services/core/java/com/android/server/pm/Settings.java
@@ -63,6 +63,8 @@
import android.content.pm.UserInfo;
import android.content.pm.PackageUserState;
import android.content.pm.VerifierDeviceIdentity;
+import android.util.ArrayMap;
+import android.util.ArraySet;
import android.util.Log;
import android.util.Slog;
import android.util.SparseArray;
@@ -78,8 +80,6 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
-import java.util.HashMap;
-import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@@ -159,11 +159,11 @@
private final File mStoppedPackagesFilename;
private final File mBackupStoppedPackagesFilename;
- final HashMap<String, PackageSetting> mPackages =
- new HashMap<String, PackageSetting>();
+ final ArrayMap<String, PackageSetting> mPackages =
+ new ArrayMap<String, PackageSetting>();
// List of replaced system applications
- private final HashMap<String, PackageSetting> mDisabledSysPackages =
- new HashMap<String, PackageSetting>();
+ private final ArrayMap<String, PackageSetting> mDisabledSysPackages =
+ new ArrayMap<String, PackageSetting>();
private static int mFirstAvailableUid = 0;
@@ -206,8 +206,8 @@
final SparseArray<CrossProfileIntentResolver> mCrossProfileIntentResolvers =
new SparseArray<CrossProfileIntentResolver>();
- final HashMap<String, SharedUserSetting> mSharedUsers =
- new HashMap<String, SharedUserSetting>();
+ final ArrayMap<String, SharedUserSetting> mSharedUsers =
+ new ArrayMap<String, SharedUserSetting>();
private final ArrayList<Object> mUserIds = new ArrayList<Object>();
private final SparseArray<Object> mOtherUserIds =
new SparseArray<Object>();
@@ -217,12 +217,12 @@
new ArrayList<Signature>();
// Mapping from permission names to info about them.
- final HashMap<String, BasePermission> mPermissions =
- new HashMap<String, BasePermission>();
+ final ArrayMap<String, BasePermission> mPermissions =
+ new ArrayMap<String, BasePermission>();
// Mapping from permission tree names to info about them.
- final HashMap<String, BasePermission> mPermissionTrees =
- new HashMap<String, BasePermission>();
+ final ArrayMap<String, BasePermission> mPermissionTrees =
+ new ArrayMap<String, BasePermission>();
// Packages that have been uninstalled and still need their external
// storage data deleted.
@@ -232,7 +232,7 @@
// Keys are the new names of the packages, values are the original
// names. The packages appear everwhere else under their original
// names.
- final HashMap<String, String> mRenamedPackages = new HashMap<String, String>();
+ final ArrayMap<String, String> mRenamedPackages = new ArrayMap<String, String>();
final StringBuilder mReadMessages = new StringBuilder();
@@ -437,7 +437,7 @@
void transferPermissionsLPw(String origPkg, String newPkg) {
// Transfer ownership of permissions to the new package.
for (int i=0; i<2; i++) {
- HashMap<String, BasePermission> permissions =
+ ArrayMap<String, BasePermission> permissions =
i == 0 ? mPermissionTrees : mPermissions;
for (BasePermission bp : permissions.values()) {
if (origPkg.equals(bp.sourcePackage)) {
@@ -582,7 +582,7 @@
}
p.appId = dis.appId;
// Clone permissions
- p.grantedPermissions = new HashSet<String>(dis.grantedPermissions);
+ p.grantedPermissions = new ArraySet<String>(dis.grantedPermissions);
// Clone component info
List<UserInfo> users = getAllUsers();
if (users != null) {
@@ -1138,8 +1138,8 @@
final boolean blockUninstall = blockUninstallStr == null
? false : Boolean.parseBoolean(blockUninstallStr);
- HashSet<String> enabledComponents = null;
- HashSet<String> disabledComponents = null;
+ ArraySet<String> enabledComponents = null;
+ ArraySet<String> disabledComponents = null;
int packageDepth = parser.getDepth();
while ((type=parser.next()) != XmlPullParser.END_DOCUMENT
@@ -1189,9 +1189,9 @@
}
}
- private HashSet<String> readComponentsLPr(XmlPullParser parser)
+ private ArraySet<String> readComponentsLPr(XmlPullParser parser)
throws IOException, XmlPullParserException {
- HashSet<String> components = null;
+ ArraySet<String> components = null;
int type;
int outerDepth = parser.getDepth();
String tagName;
@@ -1207,7 +1207,7 @@
String componentName = parser.getAttributeValue(null, ATTR_NAME);
if (componentName != null) {
if (components == null) {
- components = new HashSet<String>();
+ components = new ArraySet<String>();
}
components.add(componentName);
}
@@ -1921,7 +1921,7 @@
}
ArrayList<PackageSetting> getListOfIncompleteInstallPackagesLPr() {
- final HashSet<String> kList = new HashSet<String>(mPackages.keySet());
+ final ArraySet<String> kList = new ArraySet<String>(mPackages.keySet());
final Iterator<String> its = kList.iterator();
final ArrayList<PackageSetting> ret = new ArrayList<PackageSetting>();
while (its.hasNext()) {
@@ -2511,7 +2511,7 @@
return defValue;
}
- private void readPermissionsLPw(HashMap<String, BasePermission> out, XmlPullParser parser)
+ private void readPermissionsLPw(ArrayMap<String, BasePermission> out, XmlPullParser parser)
throws IOException, XmlPullParserException {
int outerDepth = parser.getDepth();
int type;
@@ -3016,7 +3016,7 @@
}
}
- private void readGrantedPermissionsLPw(XmlPullParser parser, HashSet<String> outPerms)
+ private void readGrantedPermissionsLPw(XmlPullParser parser, ArraySet<String> outPerms)
throws IOException, XmlPullParserException {
int outerDepth = parser.getDepth();
int type;
@@ -3090,8 +3090,8 @@
int sourceUserId = mCrossProfileIntentResolvers.keyAt(i);
CrossProfileIntentResolver cpir = mCrossProfileIntentResolvers.get(sourceUserId);
boolean needsWriting = false;
- HashSet<CrossProfileIntentFilter> cpifs =
- new HashSet<CrossProfileIntentFilter>(cpir.filterSet());
+ ArraySet<CrossProfileIntentFilter> cpifs =
+ new ArraySet<CrossProfileIntentFilter>(cpir.filterSet());
for (CrossProfileIntentFilter cpif : cpifs) {
if (cpif.getTargetUserId() == userId) {
needsWriting = true;
@@ -3147,7 +3147,7 @@
return ps;
}
- private String compToString(HashSet<String> cmp) {
+ private String compToString(ArraySet<String> cmp) {
return cmp != null ? Arrays.toString(cmp.toArray()) : "[]";
}
@@ -3477,7 +3477,7 @@
pw.print(prefix); pw.print(" lastDisabledCaller: ");
pw.println(lastDisabledAppCaller);
}
- HashSet<String> cmp = ps.getDisabledComponents(user.id);
+ ArraySet<String> cmp = ps.getDisabledComponents(user.id);
if (cmp != null && cmp.size() > 0) {
pw.print(prefix); pw.println(" disabledComponents:");
for (String s : cmp) {
diff --git a/services/core/java/com/android/server/pm/SharedUserSetting.java b/services/core/java/com/android/server/pm/SharedUserSetting.java
index ca1eeea..2b406f7 100644
--- a/services/core/java/com/android/server/pm/SharedUserSetting.java
+++ b/services/core/java/com/android/server/pm/SharedUserSetting.java
@@ -16,7 +16,7 @@
package com.android.server.pm;
-import java.util.HashSet;
+import android.util.ArraySet;
/**
* Settings data for a particular shared user ID we know about.
@@ -29,7 +29,7 @@
// flags that are associated with this uid, regardless of any package flags
int uidFlags;
- final HashSet<PackageSetting> packages = new HashSet<PackageSetting>();
+ final ArraySet<PackageSetting> packages = new ArraySet<PackageSetting>();
final PackageSignatures signatures = new PackageSignatures();
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index 806f7c5..e5cf764 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -227,14 +227,34 @@
final Rect mCompatFrame = new Rect();
final Rect mContainingFrame = new Rect();
- final Rect mDisplayFrame = new Rect();
- final Rect mOverscanFrame = new Rect();
- final Rect mContentFrame = new Rect();
+
final Rect mParentFrame = new Rect();
- final Rect mVisibleFrame = new Rect();
- final Rect mDecorFrame = new Rect();
+
+ // The entire screen area of the device.
+ final Rect mDisplayFrame = new Rect();
+
+ // The region of the display frame that the display type supports displaying content on. This
+ // is mostly a special case for TV where some displays don’t have the entire display usable.
+ // {@link WindowManager.LayoutParams#FLAG_LAYOUT_IN_OVERSCAN} flag can be used to allow
+ // window display contents to extend into the overscan region.
+ final Rect mOverscanFrame = new Rect();
+
+ // The display frame minus the stable insets. This value is always constant regardless of if
+ // the status bar or navigation bar is visible.
final Rect mStableFrame = new Rect();
+ // The area not occupied by the status and navigation bars. So, if both status and navigation
+ // bars are visible, the decor frame is equal to the stable frame.
+ final Rect mDecorFrame = new Rect();
+
+ // Equal to the decor frame if the IME (e.g. keyboard) is not present. Equal to the decor frame
+ // minus the area occupied by the IME if the IME is present.
+ final Rect mContentFrame = new Rect();
+
+ // Legacy stuff. Generally equal to the content frame expect when the IME for older apps
+ // displays hint text.
+ final Rect mVisibleFrame = new Rect();
+
boolean mContentChanged;
// If a window showing a wallpaper: the requested offset for the
diff --git a/services/tests/servicestests/src/com/android/server/NetworkStatsServiceTest.java b/services/tests/servicestests/src/com/android/server/NetworkStatsServiceTest.java
index c3d4ed9..c115339 100644
--- a/services/tests/servicestests/src/com/android/server/NetworkStatsServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/NetworkStatsServiceTest.java
@@ -932,7 +932,6 @@
expect(mSettings.getPollInterval()).andReturn(HOUR_IN_MILLIS).anyTimes();
expect(mSettings.getTimeCacheMaxAge()).andReturn(DAY_IN_MILLIS).anyTimes();
expect(mSettings.getSampleEnabled()).andReturn(true).anyTimes();
- expect(mSettings.getReportXtOverDev()).andReturn(true).anyTimes();
final Config config = new Config(bucketDuration, deleteAge, deleteAge);
expect(mSettings.getDevConfig()).andReturn(config).anyTimes();
diff --git a/services/tests/servicestests/src/com/android/server/pm/PackageManagerSettingsTests.java b/services/tests/servicestests/src/com/android/server/pm/PackageManagerSettingsTests.java
index a70ebf4..b631331 100644
--- a/services/tests/servicestests/src/com/android/server/pm/PackageManagerSettingsTests.java
+++ b/services/tests/servicestests/src/com/android/server/pm/PackageManagerSettingsTests.java
@@ -21,22 +21,15 @@
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER;
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED;
-import com.android.internal.content.PackageHelper;
+import android.test.AndroidTestCase;
+import android.util.ArraySet;
+import android.util.Log;
+
import com.android.internal.os.AtomicFile;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
-import java.util.HashSet;
-
-import android.os.Debug;
-import android.os.Environment;
-import android.os.IBinder;
-import android.os.RemoteException;
-import android.os.ServiceManager;
-import android.os.storage.IMountService;
-import android.test.AndroidTestCase;
-import android.util.Log;
public class PackageManagerSettingsTests extends AndroidTestCase {
@@ -182,11 +175,11 @@
assertEquals(COMPONENT_ENABLED_STATE_ENABLED, ps.getEnabled(1));
// Enable/Disable a component
- HashSet<String> components = new HashSet<String>();
+ ArraySet<String> components = new ArraySet<String>();
String component1 = PACKAGE_NAME_1 + "/.Component1";
components.add(component1);
ps.setDisabledComponents(components, 0);
- HashSet<String> componentsDisabled = ps.getDisabledComponents(0);
+ ArraySet<String> componentsDisabled = ps.getDisabledComponents(0);
assertEquals(1, componentsDisabled.size());
assertEquals(component1, componentsDisabled.toArray()[0]);
boolean hasEnabled =