Loading Android.mk +1 −0 Original line number Diff line number Diff line Loading @@ -84,6 +84,7 @@ LOCAL_SRC_FILES += \ core/java/android/app/ITaskStackListener.aidl \ core/java/android/app/IBackupAgent.aidl \ core/java/android/app/IEphemeralResolver.aidl \ core/java/android/app/IInstantAppResolver.aidl \ core/java/android/app/IInstrumentationWatcher.aidl \ core/java/android/app/INotificationManager.aidl \ core/java/android/app/IProcessObserver.aidl \ Loading api/system-current.txt +49 −7 Original line number Diff line number Diff line Loading @@ -4662,16 +4662,12 @@ package android.app { field public static final int VISIBILITY_VISIBLE_NOTIFY_ONLY_COMPLETION = 3; // 0x3 } public abstract class EphemeralResolverService extends android.app.Service { public abstract deprecated class EphemeralResolverService extends android.app.InstantAppResolverService { ctor public EphemeralResolverService(); method public final void attachBaseContext(android.content.Context); method public android.os.Looper getLooper(); method public final android.os.IBinder onBind(android.content.Intent); method public abstract deprecated java.util.List<android.content.pm.EphemeralResolveInfo> onEphemeralResolveInfoList(int[], int); method public android.content.pm.EphemeralResolveInfo onGetEphemeralIntentFilter(java.lang.String); method public java.util.List<android.content.pm.EphemeralResolveInfo> onGetEphemeralResolveInfo(int[]); field public static final java.lang.String EXTRA_RESOLVE_INFO = "android.app.extra.RESOLVE_INFO"; field public static final java.lang.String EXTRA_SEQUENCE = "android.app.extra.SEQUENCE"; } public class ExpandableListActivity extends android.app.Activity implements android.widget.ExpandableListView.OnChildClickListener android.widget.ExpandableListView.OnGroupCollapseListener android.widget.ExpandableListView.OnGroupExpandListener android.view.View.OnCreateContextMenuListener { Loading Loading @@ -4992,6 +4988,20 @@ package android.app { field public static final int TRANSIT_UNSET = -1; // 0xffffffff } public abstract class InstantAppResolverService extends android.app.Service { ctor public InstantAppResolverService(); method public final void attachBaseContext(android.content.Context); method public final android.os.IBinder onBind(android.content.Intent); method public void onGetInstantAppIntentFilter(int[], android.app.InstantAppResolverService.InstantAppResolutionCallback); method public void onGetInstantAppResolveInfo(int[], android.app.InstantAppResolverService.InstantAppResolutionCallback); field public static final java.lang.String EXTRA_RESOLVE_INFO = "android.app.extra.RESOLVE_INFO"; field public static final java.lang.String EXTRA_SEQUENCE = "android.app.extra.SEQUENCE"; } public static final class InstantAppResolverService.InstantAppResolutionCallback { method public void onInstantAppResolveInfo(java.util.List<android.content.pm.InstantAppResolveInfo>); } public class Instrumentation { ctor public Instrumentation(); method public void addMonitor(android.app.Instrumentation.ActivityMonitor); Loading Loading @@ -10528,7 +10538,7 @@ package android.content.pm { field public int reqTouchScreen; } public final class EphemeralIntentFilter implements android.os.Parcelable { public final deprecated class EphemeralIntentFilter implements android.os.Parcelable { ctor public EphemeralIntentFilter(java.lang.String, java.util.List<android.content.IntentFilter>); method public int describeContents(); method public java.util.List<android.content.IntentFilter> getFilters(); Loading @@ -10537,7 +10547,7 @@ package android.content.pm { field public static final android.os.Parcelable.Creator<android.content.pm.EphemeralIntentFilter> CREATOR; } public final class EphemeralResolveInfo implements android.os.Parcelable { public final deprecated class EphemeralResolveInfo implements android.os.Parcelable { ctor public deprecated EphemeralResolveInfo(android.net.Uri, java.lang.String, java.util.List<android.content.IntentFilter>); ctor public deprecated EphemeralResolveInfo(android.content.pm.EphemeralResolveInfo.EphemeralDigest, java.lang.String, java.util.List<android.content.pm.EphemeralIntentFilter>); ctor public EphemeralResolveInfo(android.content.pm.EphemeralResolveInfo.EphemeralDigest, java.lang.String, java.util.List<android.content.pm.EphemeralIntentFilter>, int); Loading Loading @@ -10587,6 +10597,38 @@ package android.content.pm { field public int version; } public final class InstantAppIntentFilter implements android.os.Parcelable { ctor public InstantAppIntentFilter(java.lang.String, java.util.List<android.content.IntentFilter>); method public int describeContents(); method public java.util.List<android.content.IntentFilter> getFilters(); method public java.lang.String getSplitName(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.content.pm.InstantAppIntentFilter> CREATOR; } public final class InstantAppResolveInfo implements android.os.Parcelable { ctor public InstantAppResolveInfo(android.content.pm.InstantAppResolveInfo.InstantAppDigest, java.lang.String, java.util.List<android.content.pm.InstantAppIntentFilter>, int); ctor public InstantAppResolveInfo(java.lang.String, java.lang.String, java.util.List<android.content.pm.InstantAppIntentFilter>); method public int describeContents(); method public byte[] getDigestBytes(); method public int getDigestPrefix(); method public java.util.List<android.content.pm.InstantAppIntentFilter> getIntentFilters(); method public java.lang.String getPackageName(); method public int getVersionCode(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.content.pm.InstantAppResolveInfo> CREATOR; field public static final java.lang.String SHA_ALGORITHM = "SHA-256"; } public static final class InstantAppResolveInfo.InstantAppDigest implements android.os.Parcelable { ctor public InstantAppResolveInfo.InstantAppDigest(java.lang.String); method public int describeContents(); method public byte[][] getDigestBytes(); method public int[] getDigestPrefix(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.content.pm.InstantAppResolveInfo.InstantAppDigest> CREATOR; } public class InstrumentationInfo extends android.content.pm.PackageItemInfo implements android.os.Parcelable { ctor public InstrumentationInfo(); ctor public InstrumentationInfo(android.content.pm.InstrumentationInfo); core/java/android/app/EphemeralResolveInfo.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -16,4 +16,5 @@ package android.app; /** @deprecated */ parcelable EphemeralResolveInfo; core/java/android/app/EphemeralResolverService.java +22 −85 Original line number Diff line number Diff line Loading @@ -18,9 +18,11 @@ package android.app; import android.annotation.SystemApi; import android.app.Service; import android.app.InstantAppResolverService.InstantAppResolutionCallback; import android.content.Context; import android.content.Intent; import android.content.pm.EphemeralResolveInfo; import android.content.pm.InstantAppResolveInfo; import android.os.Bundle; import android.os.Handler; import android.os.IBinder; Loading @@ -29,20 +31,17 @@ import android.os.Looper; import android.os.Message; import android.os.RemoteException; import java.util.ArrayList; import java.util.List; /** * Base class for implementing the resolver service. * @hide * @deprecated use InstantAppResolverService instead */ @Deprecated @SystemApi public abstract class EphemeralResolverService extends Service { public static final String EXTRA_RESOLVE_INFO = "android.app.extra.RESOLVE_INFO"; public static final String EXTRA_SEQUENCE = "android.app.extra.SEQUENCE"; private static final String EXTRA_PREFIX = "android.app.PREFIX"; private static final String EXTRA_HOSTNAME = "android.app.HOSTNAME"; private Handler mHandler; public abstract class EphemeralResolverService extends InstantAppResolverService { /** * Called to retrieve resolve info for ephemeral applications. * Loading Loading @@ -74,90 +73,28 @@ public abstract class EphemeralResolverService extends Service { throw new IllegalStateException("Must define"); } /** * Returns a {@link Looper} to perform service operations on. */ public Looper getLooper() { return getBaseContext().getMainLooper(); } @Override public final void attachBaseContext(Context base) { super.attachBaseContext(base); mHandler = new ServiceHandler(getLooper()); } @Override public final IBinder onBind(Intent intent) { return new IEphemeralResolver.Stub() { @Override public void getEphemeralResolveInfoList( IRemoteCallback callback, int digestPrefix[], int sequence) { final Message msg = mHandler.obtainMessage( ServiceHandler.MSG_GET_EPHEMERAL_RESOLVE_INFO, sequence, 0, callback); final Bundle data = new Bundle(); data.putIntArray(EXTRA_PREFIX, digestPrefix); msg.setData(data); msg.sendToTarget(); public Looper getLooper() { return super.getLooper(); } @Override public void getEphemeralIntentFilterList( IRemoteCallback callback, String hostName, int sequence) { final Message msg = mHandler.obtainMessage( ServiceHandler.MSG_GET_EPHEMERAL_INTENT_FILTER, sequence, 0, callback); final Bundle data = new Bundle(); data.putString(EXTRA_HOSTNAME, hostName); msg.setData(data); msg.sendToTarget(); } }; void _onGetInstantAppResolveInfo(int[] digestPrefix, InstantAppResolutionCallback callback) { final List<EphemeralResolveInfo> response = onGetEphemeralResolveInfo(digestPrefix); final int responseSize = response == null ? 0 : response.size(); final List<InstantAppResolveInfo> resultList = new ArrayList<>(responseSize); for (int i = 0; i < responseSize; i++) { resultList.add(response.get(i).getInstantAppResolveInfo()); } private final class ServiceHandler extends Handler { public static final int MSG_GET_EPHEMERAL_RESOLVE_INFO = 1; public static final int MSG_GET_EPHEMERAL_INTENT_FILTER = 2; public ServiceHandler(Looper looper) { super(looper, null /*callback*/, true /*async*/); callback.onInstantAppResolveInfo(resultList); } @Override @SuppressWarnings("unchecked") public void handleMessage(Message message) { final int action = message.what; switch (action) { case MSG_GET_EPHEMERAL_RESOLVE_INFO: { final IRemoteCallback callback = (IRemoteCallback) message.obj; final int[] digestPrefix = message.getData().getIntArray(EXTRA_PREFIX); final List<EphemeralResolveInfo> resolveInfo = onGetEphemeralResolveInfo(digestPrefix); final Bundle data = new Bundle(); data.putInt(EXTRA_SEQUENCE, message.arg1); data.putParcelableList(EXTRA_RESOLVE_INFO, resolveInfo); try { callback.sendResult(data); } catch (RemoteException e) { } } break; case MSG_GET_EPHEMERAL_INTENT_FILTER: { final IRemoteCallback callback = (IRemoteCallback) message.obj; final String hostName = message.getData().getString(EXTRA_HOSTNAME); final EphemeralResolveInfo resolveInfo = onGetEphemeralIntentFilter(hostName); final Bundle data = new Bundle(); data.putInt(EXTRA_SEQUENCE, message.arg1); data.putParcelable(EXTRA_RESOLVE_INFO, resolveInfo); try { callback.sendResult(data); } catch (RemoteException e) { } } break; default: { throw new IllegalArgumentException("Unknown message: " + action); } } } void _onGetInstantAppIntentFilter(int[] digestPrefix, String hostName, InstantAppResolutionCallback callback) { final EphemeralResolveInfo response = onGetEphemeralIntentFilter(hostName); final List<InstantAppResolveInfo> resultList = new ArrayList<>(1); resultList.add(response.getInstantAppResolveInfo()); callback.onInstantAppResolveInfo(resultList); } } core/java/android/app/IEphemeralResolver.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ package android.app; import android.os.IRemoteCallback; /** @hide */ /** @hide @deprecated */ oneway interface IEphemeralResolver { void getEphemeralResolveInfoList(IRemoteCallback callback, in int[] digestPrefix, int sequence); Loading Loading
Android.mk +1 −0 Original line number Diff line number Diff line Loading @@ -84,6 +84,7 @@ LOCAL_SRC_FILES += \ core/java/android/app/ITaskStackListener.aidl \ core/java/android/app/IBackupAgent.aidl \ core/java/android/app/IEphemeralResolver.aidl \ core/java/android/app/IInstantAppResolver.aidl \ core/java/android/app/IInstrumentationWatcher.aidl \ core/java/android/app/INotificationManager.aidl \ core/java/android/app/IProcessObserver.aidl \ Loading
api/system-current.txt +49 −7 Original line number Diff line number Diff line Loading @@ -4662,16 +4662,12 @@ package android.app { field public static final int VISIBILITY_VISIBLE_NOTIFY_ONLY_COMPLETION = 3; // 0x3 } public abstract class EphemeralResolverService extends android.app.Service { public abstract deprecated class EphemeralResolverService extends android.app.InstantAppResolverService { ctor public EphemeralResolverService(); method public final void attachBaseContext(android.content.Context); method public android.os.Looper getLooper(); method public final android.os.IBinder onBind(android.content.Intent); method public abstract deprecated java.util.List<android.content.pm.EphemeralResolveInfo> onEphemeralResolveInfoList(int[], int); method public android.content.pm.EphemeralResolveInfo onGetEphemeralIntentFilter(java.lang.String); method public java.util.List<android.content.pm.EphemeralResolveInfo> onGetEphemeralResolveInfo(int[]); field public static final java.lang.String EXTRA_RESOLVE_INFO = "android.app.extra.RESOLVE_INFO"; field public static final java.lang.String EXTRA_SEQUENCE = "android.app.extra.SEQUENCE"; } public class ExpandableListActivity extends android.app.Activity implements android.widget.ExpandableListView.OnChildClickListener android.widget.ExpandableListView.OnGroupCollapseListener android.widget.ExpandableListView.OnGroupExpandListener android.view.View.OnCreateContextMenuListener { Loading Loading @@ -4992,6 +4988,20 @@ package android.app { field public static final int TRANSIT_UNSET = -1; // 0xffffffff } public abstract class InstantAppResolverService extends android.app.Service { ctor public InstantAppResolverService(); method public final void attachBaseContext(android.content.Context); method public final android.os.IBinder onBind(android.content.Intent); method public void onGetInstantAppIntentFilter(int[], android.app.InstantAppResolverService.InstantAppResolutionCallback); method public void onGetInstantAppResolveInfo(int[], android.app.InstantAppResolverService.InstantAppResolutionCallback); field public static final java.lang.String EXTRA_RESOLVE_INFO = "android.app.extra.RESOLVE_INFO"; field public static final java.lang.String EXTRA_SEQUENCE = "android.app.extra.SEQUENCE"; } public static final class InstantAppResolverService.InstantAppResolutionCallback { method public void onInstantAppResolveInfo(java.util.List<android.content.pm.InstantAppResolveInfo>); } public class Instrumentation { ctor public Instrumentation(); method public void addMonitor(android.app.Instrumentation.ActivityMonitor); Loading Loading @@ -10528,7 +10538,7 @@ package android.content.pm { field public int reqTouchScreen; } public final class EphemeralIntentFilter implements android.os.Parcelable { public final deprecated class EphemeralIntentFilter implements android.os.Parcelable { ctor public EphemeralIntentFilter(java.lang.String, java.util.List<android.content.IntentFilter>); method public int describeContents(); method public java.util.List<android.content.IntentFilter> getFilters(); Loading @@ -10537,7 +10547,7 @@ package android.content.pm { field public static final android.os.Parcelable.Creator<android.content.pm.EphemeralIntentFilter> CREATOR; } public final class EphemeralResolveInfo implements android.os.Parcelable { public final deprecated class EphemeralResolveInfo implements android.os.Parcelable { ctor public deprecated EphemeralResolveInfo(android.net.Uri, java.lang.String, java.util.List<android.content.IntentFilter>); ctor public deprecated EphemeralResolveInfo(android.content.pm.EphemeralResolveInfo.EphemeralDigest, java.lang.String, java.util.List<android.content.pm.EphemeralIntentFilter>); ctor public EphemeralResolveInfo(android.content.pm.EphemeralResolveInfo.EphemeralDigest, java.lang.String, java.util.List<android.content.pm.EphemeralIntentFilter>, int); Loading Loading @@ -10587,6 +10597,38 @@ package android.content.pm { field public int version; } public final class InstantAppIntentFilter implements android.os.Parcelable { ctor public InstantAppIntentFilter(java.lang.String, java.util.List<android.content.IntentFilter>); method public int describeContents(); method public java.util.List<android.content.IntentFilter> getFilters(); method public java.lang.String getSplitName(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.content.pm.InstantAppIntentFilter> CREATOR; } public final class InstantAppResolveInfo implements android.os.Parcelable { ctor public InstantAppResolveInfo(android.content.pm.InstantAppResolveInfo.InstantAppDigest, java.lang.String, java.util.List<android.content.pm.InstantAppIntentFilter>, int); ctor public InstantAppResolveInfo(java.lang.String, java.lang.String, java.util.List<android.content.pm.InstantAppIntentFilter>); method public int describeContents(); method public byte[] getDigestBytes(); method public int getDigestPrefix(); method public java.util.List<android.content.pm.InstantAppIntentFilter> getIntentFilters(); method public java.lang.String getPackageName(); method public int getVersionCode(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.content.pm.InstantAppResolveInfo> CREATOR; field public static final java.lang.String SHA_ALGORITHM = "SHA-256"; } public static final class InstantAppResolveInfo.InstantAppDigest implements android.os.Parcelable { ctor public InstantAppResolveInfo.InstantAppDigest(java.lang.String); method public int describeContents(); method public byte[][] getDigestBytes(); method public int[] getDigestPrefix(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.content.pm.InstantAppResolveInfo.InstantAppDigest> CREATOR; } public class InstrumentationInfo extends android.content.pm.PackageItemInfo implements android.os.Parcelable { ctor public InstrumentationInfo(); ctor public InstrumentationInfo(android.content.pm.InstrumentationInfo);
core/java/android/app/EphemeralResolveInfo.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -16,4 +16,5 @@ package android.app; /** @deprecated */ parcelable EphemeralResolveInfo;
core/java/android/app/EphemeralResolverService.java +22 −85 Original line number Diff line number Diff line Loading @@ -18,9 +18,11 @@ package android.app; import android.annotation.SystemApi; import android.app.Service; import android.app.InstantAppResolverService.InstantAppResolutionCallback; import android.content.Context; import android.content.Intent; import android.content.pm.EphemeralResolveInfo; import android.content.pm.InstantAppResolveInfo; import android.os.Bundle; import android.os.Handler; import android.os.IBinder; Loading @@ -29,20 +31,17 @@ import android.os.Looper; import android.os.Message; import android.os.RemoteException; import java.util.ArrayList; import java.util.List; /** * Base class for implementing the resolver service. * @hide * @deprecated use InstantAppResolverService instead */ @Deprecated @SystemApi public abstract class EphemeralResolverService extends Service { public static final String EXTRA_RESOLVE_INFO = "android.app.extra.RESOLVE_INFO"; public static final String EXTRA_SEQUENCE = "android.app.extra.SEQUENCE"; private static final String EXTRA_PREFIX = "android.app.PREFIX"; private static final String EXTRA_HOSTNAME = "android.app.HOSTNAME"; private Handler mHandler; public abstract class EphemeralResolverService extends InstantAppResolverService { /** * Called to retrieve resolve info for ephemeral applications. * Loading Loading @@ -74,90 +73,28 @@ public abstract class EphemeralResolverService extends Service { throw new IllegalStateException("Must define"); } /** * Returns a {@link Looper} to perform service operations on. */ public Looper getLooper() { return getBaseContext().getMainLooper(); } @Override public final void attachBaseContext(Context base) { super.attachBaseContext(base); mHandler = new ServiceHandler(getLooper()); } @Override public final IBinder onBind(Intent intent) { return new IEphemeralResolver.Stub() { @Override public void getEphemeralResolveInfoList( IRemoteCallback callback, int digestPrefix[], int sequence) { final Message msg = mHandler.obtainMessage( ServiceHandler.MSG_GET_EPHEMERAL_RESOLVE_INFO, sequence, 0, callback); final Bundle data = new Bundle(); data.putIntArray(EXTRA_PREFIX, digestPrefix); msg.setData(data); msg.sendToTarget(); public Looper getLooper() { return super.getLooper(); } @Override public void getEphemeralIntentFilterList( IRemoteCallback callback, String hostName, int sequence) { final Message msg = mHandler.obtainMessage( ServiceHandler.MSG_GET_EPHEMERAL_INTENT_FILTER, sequence, 0, callback); final Bundle data = new Bundle(); data.putString(EXTRA_HOSTNAME, hostName); msg.setData(data); msg.sendToTarget(); } }; void _onGetInstantAppResolveInfo(int[] digestPrefix, InstantAppResolutionCallback callback) { final List<EphemeralResolveInfo> response = onGetEphemeralResolveInfo(digestPrefix); final int responseSize = response == null ? 0 : response.size(); final List<InstantAppResolveInfo> resultList = new ArrayList<>(responseSize); for (int i = 0; i < responseSize; i++) { resultList.add(response.get(i).getInstantAppResolveInfo()); } private final class ServiceHandler extends Handler { public static final int MSG_GET_EPHEMERAL_RESOLVE_INFO = 1; public static final int MSG_GET_EPHEMERAL_INTENT_FILTER = 2; public ServiceHandler(Looper looper) { super(looper, null /*callback*/, true /*async*/); callback.onInstantAppResolveInfo(resultList); } @Override @SuppressWarnings("unchecked") public void handleMessage(Message message) { final int action = message.what; switch (action) { case MSG_GET_EPHEMERAL_RESOLVE_INFO: { final IRemoteCallback callback = (IRemoteCallback) message.obj; final int[] digestPrefix = message.getData().getIntArray(EXTRA_PREFIX); final List<EphemeralResolveInfo> resolveInfo = onGetEphemeralResolveInfo(digestPrefix); final Bundle data = new Bundle(); data.putInt(EXTRA_SEQUENCE, message.arg1); data.putParcelableList(EXTRA_RESOLVE_INFO, resolveInfo); try { callback.sendResult(data); } catch (RemoteException e) { } } break; case MSG_GET_EPHEMERAL_INTENT_FILTER: { final IRemoteCallback callback = (IRemoteCallback) message.obj; final String hostName = message.getData().getString(EXTRA_HOSTNAME); final EphemeralResolveInfo resolveInfo = onGetEphemeralIntentFilter(hostName); final Bundle data = new Bundle(); data.putInt(EXTRA_SEQUENCE, message.arg1); data.putParcelable(EXTRA_RESOLVE_INFO, resolveInfo); try { callback.sendResult(data); } catch (RemoteException e) { } } break; default: { throw new IllegalArgumentException("Unknown message: " + action); } } } void _onGetInstantAppIntentFilter(int[] digestPrefix, String hostName, InstantAppResolutionCallback callback) { final EphemeralResolveInfo response = onGetEphemeralIntentFilter(hostName); final List<InstantAppResolveInfo> resultList = new ArrayList<>(1); resultList.add(response.getInstantAppResolveInfo()); callback.onInstantAppResolveInfo(resultList); } }
core/java/android/app/IEphemeralResolver.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -18,7 +18,7 @@ package android.app; import android.os.IRemoteCallback; /** @hide */ /** @hide @deprecated */ oneway interface IEphemeralResolver { void getEphemeralResolveInfoList(IRemoteCallback callback, in int[] digestPrefix, int sequence); Loading