diff --git a/api/current.txt b/api/current.txt index c37a6a8ad35d6..fd5c00893b8f7 100644 --- a/api/current.txt +++ b/api/current.txt @@ -8228,8 +8228,6 @@ package android.content { method public java.lang.String getPackageResourcePath(); method public android.content.res.Resources getResources(); method public android.content.SharedPreferences getSharedPreferences(java.lang.String, int); - method public android.content.SharedPreferences getSharedPreferences(java.io.File, int); - method public java.io.File getSharedPreferencesPath(java.lang.String); method public java.lang.Object getSystemService(java.lang.String); method public java.lang.String getSystemServiceName(java.lang.Class); method public android.content.res.Resources.Theme getTheme(); @@ -9997,7 +9995,7 @@ package android.content.pm { field public java.lang.String permission; } - public class ShortcutInfo implements android.os.Parcelable { + public final class ShortcutInfo implements android.os.Parcelable { method public int describeContents(); method public android.content.ComponentName getActivityComponent(); method public android.os.PersistableBundle getExtras(); @@ -29493,7 +29491,7 @@ package android.os.health { method public android.os.health.HealthStats[] takeUidSnapshots(int[]); } - public class TimerStat implements android.os.Parcelable { + public final class TimerStat implements android.os.Parcelable { ctor public TimerStat(); ctor public TimerStat(int, long); ctor public TimerStat(android.os.Parcel); @@ -37967,8 +37965,6 @@ package android.test.mock { method public java.lang.String getPackageResourcePath(); method public android.content.res.Resources getResources(); method public android.content.SharedPreferences getSharedPreferences(java.lang.String, int); - method public android.content.SharedPreferences getSharedPreferences(java.io.File, int); - method public java.io.File getSharedPreferencesPath(java.lang.String); method public java.lang.Object getSystemService(java.lang.String); method public java.lang.String getSystemServiceName(java.lang.Class); method public android.content.res.Resources.Theme getTheme(); diff --git a/api/system-current.txt b/api/system-current.txt index b85aa64a75f43..6a4d920199056 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -8539,8 +8539,6 @@ package android.content { method public java.lang.String getPackageResourcePath(); method public android.content.res.Resources getResources(); method public android.content.SharedPreferences getSharedPreferences(java.lang.String, int); - method public android.content.SharedPreferences getSharedPreferences(java.io.File, int); - method public java.io.File getSharedPreferencesPath(java.lang.String); method public java.lang.Object getSystemService(java.lang.String); method public java.lang.String getSystemServiceName(java.lang.Class); method public android.content.res.Resources.Theme getTheme(); @@ -10396,7 +10394,7 @@ package android.content.pm { field public java.lang.String permission; } - public class ShortcutInfo implements android.os.Parcelable { + public final class ShortcutInfo implements android.os.Parcelable { method public int describeContents(); method public android.content.ComponentName getActivityComponent(); method public android.os.PersistableBundle getExtras(); @@ -31809,7 +31807,7 @@ package android.os.health { method public android.os.health.HealthStats[] takeUidSnapshots(int[]); } - public class TimerStat implements android.os.Parcelable { + public final class TimerStat implements android.os.Parcelable { ctor public TimerStat(); ctor public TimerStat(int, long); ctor public TimerStat(android.os.Parcel); @@ -40710,8 +40708,6 @@ package android.test.mock { method public java.lang.String getPackageResourcePath(); method public android.content.res.Resources getResources(); method public android.content.SharedPreferences getSharedPreferences(java.lang.String, int); - method public android.content.SharedPreferences getSharedPreferences(java.io.File, int); - method public java.io.File getSharedPreferencesPath(java.lang.String); method public java.lang.Object getSystemService(java.lang.String); method public java.lang.String getSystemServiceName(java.lang.Class); method public android.content.res.Resources.Theme getTheme(); diff --git a/api/test-current.txt b/api/test-current.txt index 6e381202088ae..3e1d97265a3ed 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -8234,8 +8234,6 @@ package android.content { method public java.lang.String getPackageResourcePath(); method public android.content.res.Resources getResources(); method public android.content.SharedPreferences getSharedPreferences(java.lang.String, int); - method public android.content.SharedPreferences getSharedPreferences(java.io.File, int); - method public java.io.File getSharedPreferencesPath(java.lang.String); method public java.lang.Object getSystemService(java.lang.String); method public java.lang.String getSystemServiceName(java.lang.Class); method public android.content.res.Resources.Theme getTheme(); @@ -10007,7 +10005,7 @@ package android.content.pm { field public java.lang.String permission; } - public class ShortcutInfo implements android.os.Parcelable { + public final class ShortcutInfo implements android.os.Parcelable { method public int describeContents(); method public android.content.ComponentName getActivityComponent(); method public android.os.PersistableBundle getExtras(); @@ -29559,7 +29557,7 @@ package android.os.health { method public android.os.health.HealthStats[] takeUidSnapshots(int[]); } - public class TimerStat implements android.os.Parcelable { + public final class TimerStat implements android.os.Parcelable { ctor public TimerStat(); ctor public TimerStat(int, long); ctor public TimerStat(android.os.Parcel); @@ -38039,8 +38037,6 @@ package android.test.mock { method public java.lang.String getPackageResourcePath(); method public android.content.res.Resources getResources(); method public android.content.SharedPreferences getSharedPreferences(java.lang.String, int); - method public android.content.SharedPreferences getSharedPreferences(java.io.File, int); - method public java.io.File getSharedPreferencesPath(java.lang.String); method public java.lang.Object getSystemService(java.lang.String); method public java.lang.String getSystemServiceName(java.lang.Class); method public android.content.res.Resources.Theme getTheme(); diff --git a/core/java/android/content/ContextWrapper.java b/core/java/android/content/ContextWrapper.java index b2df207f8eb10..087ac47818033 100644 --- a/core/java/android/content/ContextWrapper.java +++ b/core/java/android/content/ContextWrapper.java @@ -164,6 +164,7 @@ public class ContextWrapper extends Context { return mBase.getSharedPreferences(name, mode); } + /** @removed */ @Override public SharedPreferences getSharedPreferences(File file, int mode) { return mBase.getSharedPreferences(file, mode); @@ -201,6 +202,7 @@ public class ContextWrapper extends Context { return mBase.getFileStreamPath(name); } + /** @removed */ @Override public File getSharedPreferencesPath(String name) { return mBase.getSharedPreferencesPath(name); diff --git a/core/java/android/content/pm/ShortcutInfo.java b/core/java/android/content/pm/ShortcutInfo.java index fbe35a65befb3..1812575a2272d 100644 --- a/core/java/android/content/pm/ShortcutInfo.java +++ b/core/java/android/content/pm/ShortcutInfo.java @@ -49,7 +49,7 @@ import java.lang.annotation.RetentionPolicy; * * @see {@link ShortcutManager}. */ -public class ShortcutInfo implements Parcelable { +public final class ShortcutInfo implements Parcelable { /* @hide */ public static final int FLAG_DYNAMIC = 1 << 0; diff --git a/core/java/android/os/health/TimerStat.java b/core/java/android/os/health/TimerStat.java index fc51b60ff5318..b9d8874e89385 100644 --- a/core/java/android/os/health/TimerStat.java +++ b/core/java/android/os/health/TimerStat.java @@ -27,7 +27,7 @@ import android.os.Parcelable; * object to be constructed, even internally, but the getTimers method on * {@link android.os.health.HealthStats} does require TimerStat objects. */ -public class TimerStat implements Parcelable { +public final class TimerStat implements Parcelable { private int mCount; private long mTime; diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 4d27ee1d44c96..ef6f2b045530c 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -4950,8 +4950,10 @@ public class PackageManagerService extends IPackageManager.Stub { if (DEBUG_PREFERRED || debug) Slog.v(TAG, "Skipping mAlways=false entry"); continue; } - final ActivityInfo ai = getActivityInfo(pa.mPref.mComponent, - flags | MATCH_DISABLED_COMPONENTS, userId); + final ActivityInfo ai = getActivityInfo( + pa.mPref.mComponent, flags | MATCH_DISABLED_COMPONENTS + | MATCH_DIRECT_BOOT_AWARE | MATCH_DIRECT_BOOT_UNAWARE, + userId); if (DEBUG_PREFERRED || debug) { Slog.v(TAG, "Found preferred activity:"); if (ai != null) { diff --git a/test-runner/src/android/test/mock/MockContext.java b/test-runner/src/android/test/mock/MockContext.java index b739eadc8862b..c7cbf977d7d71 100644 --- a/test-runner/src/android/test/mock/MockContext.java +++ b/test-runner/src/android/test/mock/MockContext.java @@ -145,6 +145,7 @@ public class MockContext extends Context { throw new UnsupportedOperationException(); } + /** @removed */ @Override public SharedPreferences getSharedPreferences(File file, int mode) { throw new UnsupportedOperationException(); @@ -180,6 +181,7 @@ public class MockContext extends Context { throw new UnsupportedOperationException(); } + /** @removed */ @Override public File getSharedPreferencesPath(String name) { throw new UnsupportedOperationException(); diff --git a/tools/apilint/apilint.py b/tools/apilint/apilint.py index a8a8c5c7236a3..ca2d2e75ee89a 100644 --- a/tools/apilint/apilint.py +++ b/tools/apilint/apilint.py @@ -980,6 +980,16 @@ def verify_files(clazz): warn(clazz, m, "M10", "Methods accepting File should also accept FileDescriptor or streams") +def verify_manager_list(clazz): + """Verifies that managers return List instead of arrays.""" + + if not clazz.name.endswith("Manager"): return + + for m in clazz.methods: + if m.typ.startswith("android.") and m.typ.endswith("[]"): + warn(clazz, m, None, "Methods should return List instead of Parcelable[] to support ParceledListSlice under the hood") + + def examine_clazz(clazz): """Find all style issues in the given class.""" if clazz.pkg.name.startswith("java"): return @@ -1025,6 +1035,7 @@ def examine_clazz(clazz): verify_listener_last(clazz) verify_resource_names(clazz) verify_files(clazz) + verify_manager_list(clazz) def examine_stream(stream):