Loading api/system-current.txt +1 −1 Original line number Diff line number Diff line Loading @@ -4556,7 +4556,7 @@ package android.app { method public final void attachBaseContext(android.content.Context); 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 java.util.List<android.content.pm.EphemeralResolveInfo> onGetEphemeralIntentFilter(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"; core/java/android/app/EphemeralResolverService.java +7 −8 Original line number Diff line number Diff line Loading @@ -68,9 +68,9 @@ public abstract class EphemeralResolverService extends Service { /** * Called to retrieve intent filters for ephemeral applications. * * @param digestPrefix The hash prefix of the ephemeral's domain. * @param hostName The name of the host to get intent filters for. */ public List<EphemeralResolveInfo> onGetEphemeralIntentFilter(int digestPrefix[]) { public EphemeralResolveInfo onGetEphemeralIntentFilter(String hostName) { throw new IllegalStateException("Must define"); } Loading @@ -96,11 +96,11 @@ public abstract class EphemeralResolverService extends Service { @Override public void getEphemeralIntentFilterList( IRemoteCallback callback, int digestPrefix[], int sequence) { 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.putIntArray(EXTRA_PREFIX, digestPrefix); data.putString(EXTRA_HOSTNAME, hostName); msg.setData(data); msg.sendToTarget(); } Loading Loading @@ -136,12 +136,11 @@ public abstract class EphemeralResolverService extends Service { case MSG_GET_EPHEMERAL_INTENT_FILTER: { final IRemoteCallback callback = (IRemoteCallback) message.obj; final int[] digestPrefix = message.getData().getIntArray(EXTRA_PREFIX); final List<EphemeralResolveInfo> resolveInfo = onGetEphemeralIntentFilter(digestPrefix); 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.putParcelableList(EXTRA_RESOLVE_INFO, resolveInfo); data.putParcelable(EXTRA_RESOLVE_INFO, resolveInfo); try { callback.sendResult(data); } catch (RemoteException e) { Loading core/java/android/app/IEphemeralResolver.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -23,6 +23,6 @@ oneway interface IEphemeralResolver { void getEphemeralResolveInfoList(IRemoteCallback callback, in int[] digestPrefix, int sequence); void getEphemeralIntentFilterList(IRemoteCallback callback, in int[] digestPrefix, void getEphemeralIntentFilterList(IRemoteCallback callback, String hostName, int sequence); } services/core/java/com/android/server/pm/EphemeralResolver.java +9 −8 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import android.util.Slog; import com.android.server.pm.EphemeralResolverConnection.PhaseTwoCallback; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.UUID; Loading Loading @@ -72,19 +73,19 @@ public abstract class EphemeralResolver { EphemeralResolverConnection connection, EphemeralRequest requestObj, ActivityInfo ephemeralInstaller, Handler callbackHandler) { final Intent intent = requestObj.origIntent; final EphemeralDigest digest = new EphemeralDigest(intent.getData().getHost(), 5 /*maxDigests*/); final int[] shaPrefix = digest.getDigestPrefix(); final byte[][] digestBytes = digest.getDigestBytes(); final String hostName = intent.getData().getHost(); final EphemeralDigest digest = new EphemeralDigest(hostName, 5 /*maxDigests*/); final PhaseTwoCallback callback = new PhaseTwoCallback() { @Override void onPhaseTwoResolved(List<EphemeralResolveInfo> ephemeralResolveInfoList, void onPhaseTwoResolved(EphemeralResolveInfo ephemeralResolveInfo, int sequence) { final String packageName; final String splitName; if (ephemeralResolveInfoList != null && ephemeralResolveInfoList.size() > 0) { if (ephemeralResolveInfo != null) { final ArrayList<EphemeralResolveInfo> ephemeralResolveInfoList = new ArrayList<EphemeralResolveInfo>(1); ephemeralResolveInfoList.add(ephemeralResolveInfo); final EphemeralResponse ephemeralIntentInfo = EphemeralResolver.filterEphemeralIntent( ephemeralResolveInfoList, intent, null /*resolvedType*/, Loading Loading @@ -118,7 +119,7 @@ public abstract class EphemeralResolver { } }; connection.getEphemeralIntentFilterList( shaPrefix, callback, callbackHandler, 0 /*sequence*/); hostName, callback, callbackHandler, 0 /*sequence*/); } /** Loading services/core/java/com/android/server/pm/EphemeralResolverConnection.java +6 −7 Original line number Diff line number Diff line Loading @@ -84,24 +84,24 @@ final class EphemeralResolverConnection { return null; } public final void getEphemeralIntentFilterList(int digestPrefix[], PhaseTwoCallback callback, public final void getEphemeralIntentFilterList(String hostName, PhaseTwoCallback callback, Handler callbackHandler, final int sequence) { final IRemoteCallback remoteCallback = new IRemoteCallback.Stub() { @Override public void sendResult(Bundle data) throws RemoteException { final ArrayList<EphemeralResolveInfo> ephemeralResolveInfoList = data.getParcelableArrayList(EphemeralResolverService.EXTRA_RESOLVE_INFO); final EphemeralResolveInfo ephemeralResolveInfo = data.getParcelable(EphemeralResolverService.EXTRA_RESOLVE_INFO); callbackHandler.post(new Runnable() { @Override public void run() { callback.onPhaseTwoResolved(ephemeralResolveInfoList, sequence); callback.onPhaseTwoResolved(ephemeralResolveInfo, sequence); } }); } }; try { getRemoteInstanceLazy() .getEphemeralIntentFilterList(remoteCallback, digestPrefix, sequence); .getEphemeralIntentFilterList(remoteCallback, hostName, sequence); } catch (RemoteException re) { } catch (TimeoutException te) { } Loading Loading @@ -173,8 +173,7 @@ final class EphemeralResolverConnection { * Asynchronous callback when results come back from ephemeral resolution phase two. */ public abstract static class PhaseTwoCallback { abstract void onPhaseTwoResolved(List<EphemeralResolveInfo> ephemeralResolveInfoList, int sequence); abstract void onPhaseTwoResolved(EphemeralResolveInfo ephemeralResolveInfo, int sequence); } private final class MyServiceConnection implements ServiceConnection { Loading Loading
api/system-current.txt +1 −1 Original line number Diff line number Diff line Loading @@ -4556,7 +4556,7 @@ package android.app { method public final void attachBaseContext(android.content.Context); 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 java.util.List<android.content.pm.EphemeralResolveInfo> onGetEphemeralIntentFilter(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";
core/java/android/app/EphemeralResolverService.java +7 −8 Original line number Diff line number Diff line Loading @@ -68,9 +68,9 @@ public abstract class EphemeralResolverService extends Service { /** * Called to retrieve intent filters for ephemeral applications. * * @param digestPrefix The hash prefix of the ephemeral's domain. * @param hostName The name of the host to get intent filters for. */ public List<EphemeralResolveInfo> onGetEphemeralIntentFilter(int digestPrefix[]) { public EphemeralResolveInfo onGetEphemeralIntentFilter(String hostName) { throw new IllegalStateException("Must define"); } Loading @@ -96,11 +96,11 @@ public abstract class EphemeralResolverService extends Service { @Override public void getEphemeralIntentFilterList( IRemoteCallback callback, int digestPrefix[], int sequence) { 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.putIntArray(EXTRA_PREFIX, digestPrefix); data.putString(EXTRA_HOSTNAME, hostName); msg.setData(data); msg.sendToTarget(); } Loading Loading @@ -136,12 +136,11 @@ public abstract class EphemeralResolverService extends Service { case MSG_GET_EPHEMERAL_INTENT_FILTER: { final IRemoteCallback callback = (IRemoteCallback) message.obj; final int[] digestPrefix = message.getData().getIntArray(EXTRA_PREFIX); final List<EphemeralResolveInfo> resolveInfo = onGetEphemeralIntentFilter(digestPrefix); 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.putParcelableList(EXTRA_RESOLVE_INFO, resolveInfo); data.putParcelable(EXTRA_RESOLVE_INFO, resolveInfo); try { callback.sendResult(data); } catch (RemoteException e) { Loading
core/java/android/app/IEphemeralResolver.aidl +1 −1 Original line number Diff line number Diff line Loading @@ -23,6 +23,6 @@ oneway interface IEphemeralResolver { void getEphemeralResolveInfoList(IRemoteCallback callback, in int[] digestPrefix, int sequence); void getEphemeralIntentFilterList(IRemoteCallback callback, in int[] digestPrefix, void getEphemeralIntentFilterList(IRemoteCallback callback, String hostName, int sequence); }
services/core/java/com/android/server/pm/EphemeralResolver.java +9 −8 Original line number Diff line number Diff line Loading @@ -39,6 +39,7 @@ import android.util.Slog; import com.android.server.pm.EphemeralResolverConnection.PhaseTwoCallback; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.UUID; Loading Loading @@ -72,19 +73,19 @@ public abstract class EphemeralResolver { EphemeralResolverConnection connection, EphemeralRequest requestObj, ActivityInfo ephemeralInstaller, Handler callbackHandler) { final Intent intent = requestObj.origIntent; final EphemeralDigest digest = new EphemeralDigest(intent.getData().getHost(), 5 /*maxDigests*/); final int[] shaPrefix = digest.getDigestPrefix(); final byte[][] digestBytes = digest.getDigestBytes(); final String hostName = intent.getData().getHost(); final EphemeralDigest digest = new EphemeralDigest(hostName, 5 /*maxDigests*/); final PhaseTwoCallback callback = new PhaseTwoCallback() { @Override void onPhaseTwoResolved(List<EphemeralResolveInfo> ephemeralResolveInfoList, void onPhaseTwoResolved(EphemeralResolveInfo ephemeralResolveInfo, int sequence) { final String packageName; final String splitName; if (ephemeralResolveInfoList != null && ephemeralResolveInfoList.size() > 0) { if (ephemeralResolveInfo != null) { final ArrayList<EphemeralResolveInfo> ephemeralResolveInfoList = new ArrayList<EphemeralResolveInfo>(1); ephemeralResolveInfoList.add(ephemeralResolveInfo); final EphemeralResponse ephemeralIntentInfo = EphemeralResolver.filterEphemeralIntent( ephemeralResolveInfoList, intent, null /*resolvedType*/, Loading Loading @@ -118,7 +119,7 @@ public abstract class EphemeralResolver { } }; connection.getEphemeralIntentFilterList( shaPrefix, callback, callbackHandler, 0 /*sequence*/); hostName, callback, callbackHandler, 0 /*sequence*/); } /** Loading
services/core/java/com/android/server/pm/EphemeralResolverConnection.java +6 −7 Original line number Diff line number Diff line Loading @@ -84,24 +84,24 @@ final class EphemeralResolverConnection { return null; } public final void getEphemeralIntentFilterList(int digestPrefix[], PhaseTwoCallback callback, public final void getEphemeralIntentFilterList(String hostName, PhaseTwoCallback callback, Handler callbackHandler, final int sequence) { final IRemoteCallback remoteCallback = new IRemoteCallback.Stub() { @Override public void sendResult(Bundle data) throws RemoteException { final ArrayList<EphemeralResolveInfo> ephemeralResolveInfoList = data.getParcelableArrayList(EphemeralResolverService.EXTRA_RESOLVE_INFO); final EphemeralResolveInfo ephemeralResolveInfo = data.getParcelable(EphemeralResolverService.EXTRA_RESOLVE_INFO); callbackHandler.post(new Runnable() { @Override public void run() { callback.onPhaseTwoResolved(ephemeralResolveInfoList, sequence); callback.onPhaseTwoResolved(ephemeralResolveInfo, sequence); } }); } }; try { getRemoteInstanceLazy() .getEphemeralIntentFilterList(remoteCallback, digestPrefix, sequence); .getEphemeralIntentFilterList(remoteCallback, hostName, sequence); } catch (RemoteException re) { } catch (TimeoutException te) { } Loading Loading @@ -173,8 +173,7 @@ final class EphemeralResolverConnection { * Asynchronous callback when results come back from ephemeral resolution phase two. */ public abstract static class PhaseTwoCallback { abstract void onPhaseTwoResolved(List<EphemeralResolveInfo> ephemeralResolveInfoList, int sequence); abstract void onPhaseTwoResolved(EphemeralResolveInfo ephemeralResolveInfo, int sequence); } private final class MyServiceConnection implements ServiceConnection { Loading