Loading core/api/system-current.txt +23 −24 Original line number Original line Diff line number Diff line Loading @@ -1617,7 +1617,7 @@ package android.app.smartspace { ctor public SmartspaceConfig.Builder(@NonNull android.content.Context, @NonNull String); ctor public SmartspaceConfig.Builder(@NonNull android.content.Context, @NonNull String); method @NonNull public android.app.smartspace.SmartspaceConfig build(); method @NonNull public android.app.smartspace.SmartspaceConfig build(); method @NonNull public android.app.smartspace.SmartspaceConfig.Builder setExtras(@NonNull android.os.Bundle); method @NonNull public android.app.smartspace.SmartspaceConfig.Builder setExtras(@NonNull android.os.Bundle); method @NonNull public android.app.smartspace.SmartspaceConfig.Builder setSmartspaceTargetCount(int); method @NonNull public android.app.smartspace.SmartspaceConfig.Builder setSmartspaceTargetCount(@IntRange(from=0, to=50) int); } } public final class SmartspaceManager { public final class SmartspaceManager { Loading @@ -1625,23 +1625,22 @@ package android.app.smartspace { } } public final class SmartspaceSession implements java.lang.AutoCloseable { public final class SmartspaceSession implements java.lang.AutoCloseable { method public void addOnTargetsAvailableListener(@NonNull java.util.concurrent.Executor, @NonNull android.app.smartspace.SmartspaceSession.OnTargetsAvailableListener); method public void close(); method public void close(); method public void destroy(); method protected void finalize(); method protected void finalize(); method public void notifySmartspaceEvent(@NonNull android.app.smartspace.SmartspaceTargetEvent); method public void notifySmartspaceEvent(@NonNull android.app.smartspace.SmartspaceTargetEvent); method public void registerSmartspaceUpdates(@NonNull java.util.concurrent.Executor, @NonNull android.app.smartspace.SmartspaceSession.Callback); method public void removeOnTargetsAvailableListener(@NonNull android.app.smartspace.SmartspaceSession.OnTargetsAvailableListener); method public void requestSmartspaceUpdate(); method public void requestSmartspaceUpdate(); method public void unregisterSmartspaceUpdates(@NonNull android.app.smartspace.SmartspaceSession.Callback); } } public static interface SmartspaceSession.Callback { public static interface SmartspaceSession.OnTargetsAvailableListener { method public void onTargetsAvailable(@NonNull java.util.List<android.app.smartspace.SmartspaceTarget>); method public void onTargetsAvailable(@NonNull java.util.List<android.app.smartspace.SmartspaceTarget>); } } public final class SmartspaceSessionId implements android.os.Parcelable { public final class SmartspaceSessionId implements android.os.Parcelable { method public int describeContents(); method public int describeContents(); method @Nullable public String getId(); method @Nullable public String getId(); method @NonNull public int getUserId(); method @NonNull public android.os.UserHandle getUserHandle(); method public void writeToParcel(@NonNull android.os.Parcel, int); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.SmartspaceSessionId> CREATOR; field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.SmartspaceSessionId> CREATOR; } } Loading @@ -1652,19 +1651,19 @@ package android.app.smartspace { method @Nullable public String getAssociatedSmartspaceTargetId(); method @Nullable public String getAssociatedSmartspaceTargetId(); method @Nullable public android.app.smartspace.SmartspaceAction getBaseAction(); method @Nullable public android.app.smartspace.SmartspaceAction getBaseAction(); method @NonNull public android.content.ComponentName getComponentName(); method @NonNull public android.content.ComponentName getComponentName(); method @NonNull public long getCreationTimeMillis(); method public long getCreationTimeMillis(); method @NonNull public long getExpiryTimeMillis(); method public long getExpiryTimeMillis(); method @NonNull public int getFeatureType(); method public int getFeatureType(); method @Nullable public android.app.smartspace.SmartspaceAction getHeaderAction(); method @Nullable public android.app.smartspace.SmartspaceAction getHeaderAction(); method @NonNull public java.util.List<android.app.smartspace.SmartspaceAction> getIconGrid(); method @NonNull public java.util.List<android.app.smartspace.SmartspaceAction> getIconGrid(); method @NonNull public float getScore(); method public float getScore(); method @Nullable public android.net.Uri getSliceUri(); method @Nullable public android.net.Uri getSliceUri(); method @NonNull public String getSmartspaceTargetId(); method @NonNull public String getSmartspaceTargetId(); method @Nullable public String getSourceNotificationKey(); method @Nullable public String getSourceNotificationKey(); method @NonNull public android.os.UserHandle getUserHandle(); method @NonNull public android.os.UserHandle getUserHandle(); method @Nullable public android.appwidget.AppWidgetProviderInfo getWidgetId(); method @Nullable public android.appwidget.AppWidgetProviderInfo getWidget(); method @NonNull public boolean isSensitive(); method public boolean isSensitive(); method @NonNull public boolean shouldShowExpanded(); method public boolean shouldShowExpanded(); method public void writeToParcel(@NonNull android.os.Parcel, int); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.SmartspaceTarget> CREATOR; field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.SmartspaceTarget> CREATOR; field public static final int FEATURE_ALARM = 7; // 0x7 field public static final int FEATURE_ALARM = 7; // 0x7 Loading Loading @@ -1699,17 +1698,17 @@ package android.app.smartspace { method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setActionChips(@NonNull java.util.List<android.app.smartspace.SmartspaceAction>); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setActionChips(@NonNull java.util.List<android.app.smartspace.SmartspaceAction>); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setAssociatedSmartspaceTargetId(@NonNull String); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setAssociatedSmartspaceTargetId(@NonNull String); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setBaseAction(@NonNull android.app.smartspace.SmartspaceAction); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setBaseAction(@NonNull android.app.smartspace.SmartspaceAction); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setCreationTimeMillis(@NonNull long); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setCreationTimeMillis(long); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setExpiryTimeMillis(@NonNull long); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setExpiryTimeMillis(long); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setFeatureType(@NonNull int); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setFeatureType(int); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setHeaderAction(@NonNull android.app.smartspace.SmartspaceAction); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setHeaderAction(@NonNull android.app.smartspace.SmartspaceAction); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setIconGrid(@NonNull java.util.List<android.app.smartspace.SmartspaceAction>); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setIconGrid(@NonNull java.util.List<android.app.smartspace.SmartspaceAction>); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setScore(@NonNull float); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setScore(float); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setSensitive(@NonNull boolean); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setSensitive(boolean); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setShouldShowExpanded(@NonNull boolean); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setShouldShowExpanded(boolean); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setSliceUri(@NonNull android.net.Uri); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setSliceUri(@NonNull android.net.Uri); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setSourceNotificationKey(@NonNull String); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setSourceNotificationKey(@NonNull String); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setWidgetId(@NonNull android.appwidget.AppWidgetProviderInfo); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setWidget(@NonNull android.appwidget.AppWidgetProviderInfo); } } public final class SmartspaceTargetEvent implements android.os.Parcelable { public final class SmartspaceTargetEvent implements android.os.Parcelable { Loading @@ -1721,11 +1720,11 @@ package android.app.smartspace { field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.SmartspaceTargetEvent> CREATOR; field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.SmartspaceTargetEvent> CREATOR; field public static final int EVENT_TARGET_BLOCK = 5; // 0x5 field public static final int EVENT_TARGET_BLOCK = 5; // 0x5 field public static final int EVENT_TARGET_DISMISS = 4; // 0x4 field public static final int EVENT_TARGET_DISMISS = 4; // 0x4 field public static final int EVENT_TARGET_HIDDEN = 3; // 0x3 field public static final int EVENT_TARGET_INTERACTION = 1; // 0x1 field public static final int EVENT_TARGET_INTERACTION = 1; // 0x1 field public static final int EVENT_TARGET_IN_VIEW = 2; // 0x2 field public static final int EVENT_TARGET_SHOWN = 2; // 0x2 field public static final int EVENT_TARGET_OUT_OF_VIEW = 3; // 0x3 field public static final int EVENT_UI_SURFACE_HIDDEN = 7; // 0x7 field public static final int EVENT_UI_SURFACE_IN_VIEW = 6; // 0x6 field public static final int EVENT_UI_SURFACE_SHOWN = 6; // 0x6 field public static final int EVENT_UI_SURFACE_OUT_OF_VIEW = 7; // 0x7 } } public static final class SmartspaceTargetEvent.Builder { public static final class SmartspaceTargetEvent.Builder { Loading core/java/android/app/smartspace/SmartspaceConfig.java +11 −6 Original line number Original line Diff line number Diff line Loading @@ -15,6 +15,7 @@ */ */ package android.app.smartspace; package android.app.smartspace; import android.annotation.IntRange; import android.annotation.NonNull; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.Nullable; import android.annotation.SuppressLint; import android.annotation.SuppressLint; Loading @@ -41,6 +42,7 @@ public final class SmartspaceConfig implements Parcelable { * The least number of smartspace targets expected to be predicted by the backend. The backend * The least number of smartspace targets expected to be predicted by the backend. The backend * will always try to satisfy this threshold but it is not guaranteed to always meet it. * will always try to satisfy this threshold but it is not guaranteed to always meet it. */ */ @IntRange(from = 0, to = 50) private final int mSmartspaceTargetCount; private final int mSmartspaceTargetCount; /** /** Loading @@ -54,11 +56,13 @@ public final class SmartspaceConfig implements Parcelable { @NonNull @NonNull private String mPackageName; private String mPackageName; /** Send other client UI configurations in extras. /** * Send other client UI configurations in extras. * * * This can include: * This can include: * * * - Desired maximum update frequency * - Desired maximum update frequency (For example 1 minute update frequency for AoD, 1 second * update frequency for home screen etc). * - Request to get periodic updates * - Request to get periodic updates * - Request to support multiple clients for the same UISurface. * - Request to support multiple clients for the same UISurface. */ */ Loading Loading @@ -179,7 +183,8 @@ public final class SmartspaceConfig implements Parcelable { * Used to set the expected number of cards for this context. * Used to set the expected number of cards for this context. */ */ @NonNull @NonNull public Builder setSmartspaceTargetCount(int smartspaceTargetCount) { public Builder setSmartspaceTargetCount( @IntRange(from = 0, to = 50) int smartspaceTargetCount) { this.mSmartspaceTargetCount = smartspaceTargetCount; this.mSmartspaceTargetCount = smartspaceTargetCount; return this; return this; } } Loading core/java/android/app/smartspace/SmartspaceSession.java +24 −22 Original line number Original line Diff line number Diff line Loading @@ -63,7 +63,7 @@ import java.util.function.Consumer; * * * void onDestroy() { * void onDestroy() { * mSmartspaceSession.unregisterPredictionUpdates() * mSmartspaceSession.unregisterPredictionUpdates() * mSmartspaceSession.destroy(); * mSmartspaceSession.close(); * } * } * * * }</pre> * }</pre> Loading @@ -81,7 +81,8 @@ public final class SmartspaceSession implements AutoCloseable { private final AtomicBoolean mIsClosed = new AtomicBoolean(false); private final AtomicBoolean mIsClosed = new AtomicBoolean(false); private final SmartspaceSessionId mSessionId; private final SmartspaceSessionId mSessionId; private final ArrayMap<Callback, CallbackWrapper> mRegisteredCallbacks = new ArrayMap<>(); private final ArrayMap<OnTargetsAvailableListener, CallbackWrapper> mRegisteredCallbacks = new ArrayMap<>(); private final IBinder mToken = new Binder(); private final IBinder mToken = new Binder(); /** /** Loading @@ -98,11 +99,11 @@ public final class SmartspaceSession implements AutoCloseable { IBinder b = ServiceManager.getService(Context.SMARTSPACE_SERVICE); IBinder b = ServiceManager.getService(Context.SMARTSPACE_SERVICE); mInterface = android.app.smartspace.ISmartspaceManager.Stub.asInterface(b); mInterface = android.app.smartspace.ISmartspaceManager.Stub.asInterface(b); mSessionId = new SmartspaceSessionId( mSessionId = new SmartspaceSessionId( context.getPackageName() + ":" + UUID.randomUUID().toString(), context.getUserId()); context.getPackageName() + ":" + UUID.randomUUID().toString(), context.getUser()); try { try { mInterface.createSmartspaceSession(smartspaceConfig, mSessionId, mToken); mInterface.createSmartspaceSession(smartspaceConfig, mSessionId, mToken); } catch (RemoteException e) { } catch (RemoteException e) { Log.e(TAG, "Failed to cerate Smartspace session", e); Log.e(TAG, "Failed to create Smartspace session", e); e.rethrowFromSystemServer(); e.rethrowFromSystemServer(); } } Loading Loading @@ -145,24 +146,24 @@ public final class SmartspaceSession implements AutoCloseable { * Requests the smartspace service provide continuous updates of smartspace cards via the * Requests the smartspace service provide continuous updates of smartspace cards via the * provided callback, until the given callback is unregistered. * provided callback, until the given callback is unregistered. * * * @param callbackExecutor The callback executor to use when calling the callback. * @param listenerExecutor The listener executor to use when firing the listener. * @param callback The Callback to be called when updates of Smartspace targets are * @param listener The listener to be called when updates of Smartspace targets are * available. * available. */ */ public void registerSmartspaceUpdates(@NonNull @CallbackExecutor Executor callbackExecutor, public void addOnTargetsAvailableListener(@NonNull @CallbackExecutor Executor listenerExecutor, @NonNull Callback callback) { @NonNull OnTargetsAvailableListener listener) { if (mIsClosed.get()) { if (mIsClosed.get()) { throw new IllegalStateException("This client has already been destroyed."); throw new IllegalStateException("This client has already been destroyed."); } } if (mRegisteredCallbacks.containsKey(callback)) { if (mRegisteredCallbacks.containsKey(listener)) { // Skip if this callback is already registered // Skip if this callback is already registered return; return; } } try { try { final CallbackWrapper callbackWrapper = new CallbackWrapper(callbackExecutor, final CallbackWrapper callbackWrapper = new CallbackWrapper(listenerExecutor, callback::onTargetsAvailable); listener::onTargetsAvailable); mRegisteredCallbacks.put(callback, callbackWrapper); mRegisteredCallbacks.put(listener, callbackWrapper); mInterface.registerSmartspaceUpdates(mSessionId, callbackWrapper); mInterface.registerSmartspaceUpdates(mSessionId, callbackWrapper); mInterface.requestSmartspaceUpdate(mSessionId); mInterface.requestSmartspaceUpdate(mSessionId); } catch (RemoteException e) { } catch (RemoteException e) { Loading @@ -175,21 +176,21 @@ public final class SmartspaceSession implements AutoCloseable { * Requests the smartspace service to stop providing continuous updates to the provided * Requests the smartspace service to stop providing continuous updates to the provided * callback until the callback is re-registered. * callback until the callback is re-registered. * * * @see {@link SmartspaceSession#registerSmartspaceUpdates(Executor, Callback)}. * @param listener The callback to be unregistered. * * @see {@link SmartspaceSession#addOnTargetsAvailableListener(Executor, * @param callback The callback to be unregistered. * OnTargetsAvailableListener)}. */ */ public void unregisterSmartspaceUpdates(@NonNull Callback callback) { public void removeOnTargetsAvailableListener(@NonNull OnTargetsAvailableListener listener) { if (mIsClosed.get()) { if (mIsClosed.get()) { throw new IllegalStateException("This client has already been destroyed."); throw new IllegalStateException("This client has already been destroyed."); } } if (!mRegisteredCallbacks.containsKey(callback)) { if (!mRegisteredCallbacks.containsKey(listener)) { // Skip if this callback was never registered // Skip if this callback was never registered return; return; } } try { try { final CallbackWrapper callbackWrapper = mRegisteredCallbacks.remove(callback); final CallbackWrapper callbackWrapper = mRegisteredCallbacks.remove(listener); mInterface.unregisterSmartspaceUpdates(mSessionId, callbackWrapper); mInterface.unregisterSmartspaceUpdates(mSessionId, callbackWrapper); } catch (RemoteException e) { } catch (RemoteException e) { Log.e(TAG, "Failed to unregister for smartspace updates", e); Log.e(TAG, "Failed to unregister for smartspace updates", e); Loading @@ -201,7 +202,7 @@ public final class SmartspaceSession implements AutoCloseable { * Destroys the client and unregisters the callback. Any method on this class after this call * Destroys the client and unregisters the callback. Any method on this class after this call * will throw {@link IllegalStateException}. * will throw {@link IllegalStateException}. */ */ public void destroy() { private void destroy() { if (!mIsClosed.getAndSet(true)) { if (!mIsClosed.getAndSet(true)) { mCloseGuard.close(); mCloseGuard.close(); Loading Loading @@ -238,6 +239,7 @@ public final class SmartspaceSession implements AutoCloseable { @Override @Override public void close() { public void close() { try { try { destroy(); finalize(); finalize(); } catch (Throwable throwable) { } catch (Throwable throwable) { throwable.printStackTrace(); throwable.printStackTrace(); Loading @@ -245,14 +247,14 @@ public final class SmartspaceSession implements AutoCloseable { } } /** /** * Callback for receiving smartspace updates. * Listener to receive smartspace targets from the service. */ */ public interface Callback { public interface OnTargetsAvailableListener { /** /** * Called when a new set of smartspace targets are available. * Called when a new set of smartspace targets are available. * * * @param targets Sorted list of smartspace targets. * @param targets Ranked list of smartspace targets. */ */ void onTargetsAvailable(@NonNull List<SmartspaceTarget> targets); void onTargetsAvailable(@NonNull List<SmartspaceTarget> targets); } } Loading core/java/android/app/smartspace/SmartspaceSessionId.java +11 −10 Original line number Original line Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.annotation.Nullable; import android.annotation.SystemApi; import android.annotation.SystemApi; import android.os.Parcel; import android.os.Parcel; import android.os.Parcelable; import android.os.Parcelable; import android.os.UserHandle; import java.util.Objects; import java.util.Objects; Loading @@ -36,21 +37,21 @@ public final class SmartspaceSessionId implements Parcelable { private final String mId; private final String mId; @NonNull @NonNull private final int mUserId; private final UserHandle mUserHandle; /** /** * Creates a new id for a Smartspace session. * Creates a new id for a Smartspace session. * * * @hide * @hide */ */ public SmartspaceSessionId(@NonNull final String id, @NonNull final int userId) { public SmartspaceSessionId(@NonNull final String id, @NonNull final UserHandle userHandle) { mId = id; mId = id; mUserId = userId; mUserHandle = userHandle; } } private SmartspaceSessionId(Parcel p) { private SmartspaceSessionId(Parcel p) { mId = p.readString(); mId = p.readString(); mUserId = p.readInt(); mUserHandle = p.readTypedObject(UserHandle.CREATOR); } } /** /** Loading @@ -65,8 +66,8 @@ public final class SmartspaceSessionId implements Parcelable { * Returns the userId associated with this sessionId. * Returns the userId associated with this sessionId. */ */ @NonNull @NonNull public int getUserId() { public UserHandle getUserHandle() { return mUserId; return mUserHandle; } } @Override @Override Loading @@ -74,20 +75,20 @@ public final class SmartspaceSessionId implements Parcelable { if (!getClass().equals(o != null ? o.getClass() : null)) return false; if (!getClass().equals(o != null ? o.getClass() : null)) return false; SmartspaceSessionId other = (SmartspaceSessionId) o; SmartspaceSessionId other = (SmartspaceSessionId) o; return mId.equals(other.mId) && mUserId == other.mUserId; return mId.equals(other.mId) && mUserHandle == other.mUserHandle; } } @Override @Override public String toString() { public String toString() { return "SmartspaceSessionId{" return "SmartspaceSessionId{" + "mId='" + mId + '\'' + "mId='" + mId + '\'' + ", mUserId=" + mUserId + ", mUserId=" + mUserHandle.getIdentifier() + '}'; + '}'; } } @Override @Override public int hashCode() { public int hashCode() { return Objects.hash(mId, mUserId); return Objects.hash(mId, mUserHandle); } } @Override @Override Loading @@ -98,7 +99,7 @@ public final class SmartspaceSessionId implements Parcelable { @Override @Override public void writeToParcel(@NonNull Parcel dest, int flags) { public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeString(mId); dest.writeString(mId); dest.writeInt(mUserId); dest.writeTypedObject(this.mUserHandle, flags); } } public static final @NonNull Creator<SmartspaceSessionId> CREATOR = public static final @NonNull Creator<SmartspaceSessionId> CREATOR = Loading core/java/android/app/smartspace/SmartspaceTarget.java +37 −36 File changed.Preview size limit exceeded, changes collapsed. Show changes Loading
core/api/system-current.txt +23 −24 Original line number Original line Diff line number Diff line Loading @@ -1617,7 +1617,7 @@ package android.app.smartspace { ctor public SmartspaceConfig.Builder(@NonNull android.content.Context, @NonNull String); ctor public SmartspaceConfig.Builder(@NonNull android.content.Context, @NonNull String); method @NonNull public android.app.smartspace.SmartspaceConfig build(); method @NonNull public android.app.smartspace.SmartspaceConfig build(); method @NonNull public android.app.smartspace.SmartspaceConfig.Builder setExtras(@NonNull android.os.Bundle); method @NonNull public android.app.smartspace.SmartspaceConfig.Builder setExtras(@NonNull android.os.Bundle); method @NonNull public android.app.smartspace.SmartspaceConfig.Builder setSmartspaceTargetCount(int); method @NonNull public android.app.smartspace.SmartspaceConfig.Builder setSmartspaceTargetCount(@IntRange(from=0, to=50) int); } } public final class SmartspaceManager { public final class SmartspaceManager { Loading @@ -1625,23 +1625,22 @@ package android.app.smartspace { } } public final class SmartspaceSession implements java.lang.AutoCloseable { public final class SmartspaceSession implements java.lang.AutoCloseable { method public void addOnTargetsAvailableListener(@NonNull java.util.concurrent.Executor, @NonNull android.app.smartspace.SmartspaceSession.OnTargetsAvailableListener); method public void close(); method public void close(); method public void destroy(); method protected void finalize(); method protected void finalize(); method public void notifySmartspaceEvent(@NonNull android.app.smartspace.SmartspaceTargetEvent); method public void notifySmartspaceEvent(@NonNull android.app.smartspace.SmartspaceTargetEvent); method public void registerSmartspaceUpdates(@NonNull java.util.concurrent.Executor, @NonNull android.app.smartspace.SmartspaceSession.Callback); method public void removeOnTargetsAvailableListener(@NonNull android.app.smartspace.SmartspaceSession.OnTargetsAvailableListener); method public void requestSmartspaceUpdate(); method public void requestSmartspaceUpdate(); method public void unregisterSmartspaceUpdates(@NonNull android.app.smartspace.SmartspaceSession.Callback); } } public static interface SmartspaceSession.Callback { public static interface SmartspaceSession.OnTargetsAvailableListener { method public void onTargetsAvailable(@NonNull java.util.List<android.app.smartspace.SmartspaceTarget>); method public void onTargetsAvailable(@NonNull java.util.List<android.app.smartspace.SmartspaceTarget>); } } public final class SmartspaceSessionId implements android.os.Parcelable { public final class SmartspaceSessionId implements android.os.Parcelable { method public int describeContents(); method public int describeContents(); method @Nullable public String getId(); method @Nullable public String getId(); method @NonNull public int getUserId(); method @NonNull public android.os.UserHandle getUserHandle(); method public void writeToParcel(@NonNull android.os.Parcel, int); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.SmartspaceSessionId> CREATOR; field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.SmartspaceSessionId> CREATOR; } } Loading @@ -1652,19 +1651,19 @@ package android.app.smartspace { method @Nullable public String getAssociatedSmartspaceTargetId(); method @Nullable public String getAssociatedSmartspaceTargetId(); method @Nullable public android.app.smartspace.SmartspaceAction getBaseAction(); method @Nullable public android.app.smartspace.SmartspaceAction getBaseAction(); method @NonNull public android.content.ComponentName getComponentName(); method @NonNull public android.content.ComponentName getComponentName(); method @NonNull public long getCreationTimeMillis(); method public long getCreationTimeMillis(); method @NonNull public long getExpiryTimeMillis(); method public long getExpiryTimeMillis(); method @NonNull public int getFeatureType(); method public int getFeatureType(); method @Nullable public android.app.smartspace.SmartspaceAction getHeaderAction(); method @Nullable public android.app.smartspace.SmartspaceAction getHeaderAction(); method @NonNull public java.util.List<android.app.smartspace.SmartspaceAction> getIconGrid(); method @NonNull public java.util.List<android.app.smartspace.SmartspaceAction> getIconGrid(); method @NonNull public float getScore(); method public float getScore(); method @Nullable public android.net.Uri getSliceUri(); method @Nullable public android.net.Uri getSliceUri(); method @NonNull public String getSmartspaceTargetId(); method @NonNull public String getSmartspaceTargetId(); method @Nullable public String getSourceNotificationKey(); method @Nullable public String getSourceNotificationKey(); method @NonNull public android.os.UserHandle getUserHandle(); method @NonNull public android.os.UserHandle getUserHandle(); method @Nullable public android.appwidget.AppWidgetProviderInfo getWidgetId(); method @Nullable public android.appwidget.AppWidgetProviderInfo getWidget(); method @NonNull public boolean isSensitive(); method public boolean isSensitive(); method @NonNull public boolean shouldShowExpanded(); method public boolean shouldShowExpanded(); method public void writeToParcel(@NonNull android.os.Parcel, int); method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.SmartspaceTarget> CREATOR; field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.SmartspaceTarget> CREATOR; field public static final int FEATURE_ALARM = 7; // 0x7 field public static final int FEATURE_ALARM = 7; // 0x7 Loading Loading @@ -1699,17 +1698,17 @@ package android.app.smartspace { method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setActionChips(@NonNull java.util.List<android.app.smartspace.SmartspaceAction>); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setActionChips(@NonNull java.util.List<android.app.smartspace.SmartspaceAction>); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setAssociatedSmartspaceTargetId(@NonNull String); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setAssociatedSmartspaceTargetId(@NonNull String); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setBaseAction(@NonNull android.app.smartspace.SmartspaceAction); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setBaseAction(@NonNull android.app.smartspace.SmartspaceAction); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setCreationTimeMillis(@NonNull long); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setCreationTimeMillis(long); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setExpiryTimeMillis(@NonNull long); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setExpiryTimeMillis(long); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setFeatureType(@NonNull int); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setFeatureType(int); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setHeaderAction(@NonNull android.app.smartspace.SmartspaceAction); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setHeaderAction(@NonNull android.app.smartspace.SmartspaceAction); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setIconGrid(@NonNull java.util.List<android.app.smartspace.SmartspaceAction>); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setIconGrid(@NonNull java.util.List<android.app.smartspace.SmartspaceAction>); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setScore(@NonNull float); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setScore(float); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setSensitive(@NonNull boolean); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setSensitive(boolean); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setShouldShowExpanded(@NonNull boolean); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setShouldShowExpanded(boolean); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setSliceUri(@NonNull android.net.Uri); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setSliceUri(@NonNull android.net.Uri); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setSourceNotificationKey(@NonNull String); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setSourceNotificationKey(@NonNull String); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setWidgetId(@NonNull android.appwidget.AppWidgetProviderInfo); method @NonNull public android.app.smartspace.SmartspaceTarget.Builder setWidget(@NonNull android.appwidget.AppWidgetProviderInfo); } } public final class SmartspaceTargetEvent implements android.os.Parcelable { public final class SmartspaceTargetEvent implements android.os.Parcelable { Loading @@ -1721,11 +1720,11 @@ package android.app.smartspace { field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.SmartspaceTargetEvent> CREATOR; field @NonNull public static final android.os.Parcelable.Creator<android.app.smartspace.SmartspaceTargetEvent> CREATOR; field public static final int EVENT_TARGET_BLOCK = 5; // 0x5 field public static final int EVENT_TARGET_BLOCK = 5; // 0x5 field public static final int EVENT_TARGET_DISMISS = 4; // 0x4 field public static final int EVENT_TARGET_DISMISS = 4; // 0x4 field public static final int EVENT_TARGET_HIDDEN = 3; // 0x3 field public static final int EVENT_TARGET_INTERACTION = 1; // 0x1 field public static final int EVENT_TARGET_INTERACTION = 1; // 0x1 field public static final int EVENT_TARGET_IN_VIEW = 2; // 0x2 field public static final int EVENT_TARGET_SHOWN = 2; // 0x2 field public static final int EVENT_TARGET_OUT_OF_VIEW = 3; // 0x3 field public static final int EVENT_UI_SURFACE_HIDDEN = 7; // 0x7 field public static final int EVENT_UI_SURFACE_IN_VIEW = 6; // 0x6 field public static final int EVENT_UI_SURFACE_SHOWN = 6; // 0x6 field public static final int EVENT_UI_SURFACE_OUT_OF_VIEW = 7; // 0x7 } } public static final class SmartspaceTargetEvent.Builder { public static final class SmartspaceTargetEvent.Builder { Loading
core/java/android/app/smartspace/SmartspaceConfig.java +11 −6 Original line number Original line Diff line number Diff line Loading @@ -15,6 +15,7 @@ */ */ package android.app.smartspace; package android.app.smartspace; import android.annotation.IntRange; import android.annotation.NonNull; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.Nullable; import android.annotation.SuppressLint; import android.annotation.SuppressLint; Loading @@ -41,6 +42,7 @@ public final class SmartspaceConfig implements Parcelable { * The least number of smartspace targets expected to be predicted by the backend. The backend * The least number of smartspace targets expected to be predicted by the backend. The backend * will always try to satisfy this threshold but it is not guaranteed to always meet it. * will always try to satisfy this threshold but it is not guaranteed to always meet it. */ */ @IntRange(from = 0, to = 50) private final int mSmartspaceTargetCount; private final int mSmartspaceTargetCount; /** /** Loading @@ -54,11 +56,13 @@ public final class SmartspaceConfig implements Parcelable { @NonNull @NonNull private String mPackageName; private String mPackageName; /** Send other client UI configurations in extras. /** * Send other client UI configurations in extras. * * * This can include: * This can include: * * * - Desired maximum update frequency * - Desired maximum update frequency (For example 1 minute update frequency for AoD, 1 second * update frequency for home screen etc). * - Request to get periodic updates * - Request to get periodic updates * - Request to support multiple clients for the same UISurface. * - Request to support multiple clients for the same UISurface. */ */ Loading Loading @@ -179,7 +183,8 @@ public final class SmartspaceConfig implements Parcelable { * Used to set the expected number of cards for this context. * Used to set the expected number of cards for this context. */ */ @NonNull @NonNull public Builder setSmartspaceTargetCount(int smartspaceTargetCount) { public Builder setSmartspaceTargetCount( @IntRange(from = 0, to = 50) int smartspaceTargetCount) { this.mSmartspaceTargetCount = smartspaceTargetCount; this.mSmartspaceTargetCount = smartspaceTargetCount; return this; return this; } } Loading
core/java/android/app/smartspace/SmartspaceSession.java +24 −22 Original line number Original line Diff line number Diff line Loading @@ -63,7 +63,7 @@ import java.util.function.Consumer; * * * void onDestroy() { * void onDestroy() { * mSmartspaceSession.unregisterPredictionUpdates() * mSmartspaceSession.unregisterPredictionUpdates() * mSmartspaceSession.destroy(); * mSmartspaceSession.close(); * } * } * * * }</pre> * }</pre> Loading @@ -81,7 +81,8 @@ public final class SmartspaceSession implements AutoCloseable { private final AtomicBoolean mIsClosed = new AtomicBoolean(false); private final AtomicBoolean mIsClosed = new AtomicBoolean(false); private final SmartspaceSessionId mSessionId; private final SmartspaceSessionId mSessionId; private final ArrayMap<Callback, CallbackWrapper> mRegisteredCallbacks = new ArrayMap<>(); private final ArrayMap<OnTargetsAvailableListener, CallbackWrapper> mRegisteredCallbacks = new ArrayMap<>(); private final IBinder mToken = new Binder(); private final IBinder mToken = new Binder(); /** /** Loading @@ -98,11 +99,11 @@ public final class SmartspaceSession implements AutoCloseable { IBinder b = ServiceManager.getService(Context.SMARTSPACE_SERVICE); IBinder b = ServiceManager.getService(Context.SMARTSPACE_SERVICE); mInterface = android.app.smartspace.ISmartspaceManager.Stub.asInterface(b); mInterface = android.app.smartspace.ISmartspaceManager.Stub.asInterface(b); mSessionId = new SmartspaceSessionId( mSessionId = new SmartspaceSessionId( context.getPackageName() + ":" + UUID.randomUUID().toString(), context.getUserId()); context.getPackageName() + ":" + UUID.randomUUID().toString(), context.getUser()); try { try { mInterface.createSmartspaceSession(smartspaceConfig, mSessionId, mToken); mInterface.createSmartspaceSession(smartspaceConfig, mSessionId, mToken); } catch (RemoteException e) { } catch (RemoteException e) { Log.e(TAG, "Failed to cerate Smartspace session", e); Log.e(TAG, "Failed to create Smartspace session", e); e.rethrowFromSystemServer(); e.rethrowFromSystemServer(); } } Loading Loading @@ -145,24 +146,24 @@ public final class SmartspaceSession implements AutoCloseable { * Requests the smartspace service provide continuous updates of smartspace cards via the * Requests the smartspace service provide continuous updates of smartspace cards via the * provided callback, until the given callback is unregistered. * provided callback, until the given callback is unregistered. * * * @param callbackExecutor The callback executor to use when calling the callback. * @param listenerExecutor The listener executor to use when firing the listener. * @param callback The Callback to be called when updates of Smartspace targets are * @param listener The listener to be called when updates of Smartspace targets are * available. * available. */ */ public void registerSmartspaceUpdates(@NonNull @CallbackExecutor Executor callbackExecutor, public void addOnTargetsAvailableListener(@NonNull @CallbackExecutor Executor listenerExecutor, @NonNull Callback callback) { @NonNull OnTargetsAvailableListener listener) { if (mIsClosed.get()) { if (mIsClosed.get()) { throw new IllegalStateException("This client has already been destroyed."); throw new IllegalStateException("This client has already been destroyed."); } } if (mRegisteredCallbacks.containsKey(callback)) { if (mRegisteredCallbacks.containsKey(listener)) { // Skip if this callback is already registered // Skip if this callback is already registered return; return; } } try { try { final CallbackWrapper callbackWrapper = new CallbackWrapper(callbackExecutor, final CallbackWrapper callbackWrapper = new CallbackWrapper(listenerExecutor, callback::onTargetsAvailable); listener::onTargetsAvailable); mRegisteredCallbacks.put(callback, callbackWrapper); mRegisteredCallbacks.put(listener, callbackWrapper); mInterface.registerSmartspaceUpdates(mSessionId, callbackWrapper); mInterface.registerSmartspaceUpdates(mSessionId, callbackWrapper); mInterface.requestSmartspaceUpdate(mSessionId); mInterface.requestSmartspaceUpdate(mSessionId); } catch (RemoteException e) { } catch (RemoteException e) { Loading @@ -175,21 +176,21 @@ public final class SmartspaceSession implements AutoCloseable { * Requests the smartspace service to stop providing continuous updates to the provided * Requests the smartspace service to stop providing continuous updates to the provided * callback until the callback is re-registered. * callback until the callback is re-registered. * * * @see {@link SmartspaceSession#registerSmartspaceUpdates(Executor, Callback)}. * @param listener The callback to be unregistered. * * @see {@link SmartspaceSession#addOnTargetsAvailableListener(Executor, * @param callback The callback to be unregistered. * OnTargetsAvailableListener)}. */ */ public void unregisterSmartspaceUpdates(@NonNull Callback callback) { public void removeOnTargetsAvailableListener(@NonNull OnTargetsAvailableListener listener) { if (mIsClosed.get()) { if (mIsClosed.get()) { throw new IllegalStateException("This client has already been destroyed."); throw new IllegalStateException("This client has already been destroyed."); } } if (!mRegisteredCallbacks.containsKey(callback)) { if (!mRegisteredCallbacks.containsKey(listener)) { // Skip if this callback was never registered // Skip if this callback was never registered return; return; } } try { try { final CallbackWrapper callbackWrapper = mRegisteredCallbacks.remove(callback); final CallbackWrapper callbackWrapper = mRegisteredCallbacks.remove(listener); mInterface.unregisterSmartspaceUpdates(mSessionId, callbackWrapper); mInterface.unregisterSmartspaceUpdates(mSessionId, callbackWrapper); } catch (RemoteException e) { } catch (RemoteException e) { Log.e(TAG, "Failed to unregister for smartspace updates", e); Log.e(TAG, "Failed to unregister for smartspace updates", e); Loading @@ -201,7 +202,7 @@ public final class SmartspaceSession implements AutoCloseable { * Destroys the client and unregisters the callback. Any method on this class after this call * Destroys the client and unregisters the callback. Any method on this class after this call * will throw {@link IllegalStateException}. * will throw {@link IllegalStateException}. */ */ public void destroy() { private void destroy() { if (!mIsClosed.getAndSet(true)) { if (!mIsClosed.getAndSet(true)) { mCloseGuard.close(); mCloseGuard.close(); Loading Loading @@ -238,6 +239,7 @@ public final class SmartspaceSession implements AutoCloseable { @Override @Override public void close() { public void close() { try { try { destroy(); finalize(); finalize(); } catch (Throwable throwable) { } catch (Throwable throwable) { throwable.printStackTrace(); throwable.printStackTrace(); Loading @@ -245,14 +247,14 @@ public final class SmartspaceSession implements AutoCloseable { } } /** /** * Callback for receiving smartspace updates. * Listener to receive smartspace targets from the service. */ */ public interface Callback { public interface OnTargetsAvailableListener { /** /** * Called when a new set of smartspace targets are available. * Called when a new set of smartspace targets are available. * * * @param targets Sorted list of smartspace targets. * @param targets Ranked list of smartspace targets. */ */ void onTargetsAvailable(@NonNull List<SmartspaceTarget> targets); void onTargetsAvailable(@NonNull List<SmartspaceTarget> targets); } } Loading
core/java/android/app/smartspace/SmartspaceSessionId.java +11 −10 Original line number Original line Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.annotation.Nullable; import android.annotation.SystemApi; import android.annotation.SystemApi; import android.os.Parcel; import android.os.Parcel; import android.os.Parcelable; import android.os.Parcelable; import android.os.UserHandle; import java.util.Objects; import java.util.Objects; Loading @@ -36,21 +37,21 @@ public final class SmartspaceSessionId implements Parcelable { private final String mId; private final String mId; @NonNull @NonNull private final int mUserId; private final UserHandle mUserHandle; /** /** * Creates a new id for a Smartspace session. * Creates a new id for a Smartspace session. * * * @hide * @hide */ */ public SmartspaceSessionId(@NonNull final String id, @NonNull final int userId) { public SmartspaceSessionId(@NonNull final String id, @NonNull final UserHandle userHandle) { mId = id; mId = id; mUserId = userId; mUserHandle = userHandle; } } private SmartspaceSessionId(Parcel p) { private SmartspaceSessionId(Parcel p) { mId = p.readString(); mId = p.readString(); mUserId = p.readInt(); mUserHandle = p.readTypedObject(UserHandle.CREATOR); } } /** /** Loading @@ -65,8 +66,8 @@ public final class SmartspaceSessionId implements Parcelable { * Returns the userId associated with this sessionId. * Returns the userId associated with this sessionId. */ */ @NonNull @NonNull public int getUserId() { public UserHandle getUserHandle() { return mUserId; return mUserHandle; } } @Override @Override Loading @@ -74,20 +75,20 @@ public final class SmartspaceSessionId implements Parcelable { if (!getClass().equals(o != null ? o.getClass() : null)) return false; if (!getClass().equals(o != null ? o.getClass() : null)) return false; SmartspaceSessionId other = (SmartspaceSessionId) o; SmartspaceSessionId other = (SmartspaceSessionId) o; return mId.equals(other.mId) && mUserId == other.mUserId; return mId.equals(other.mId) && mUserHandle == other.mUserHandle; } } @Override @Override public String toString() { public String toString() { return "SmartspaceSessionId{" return "SmartspaceSessionId{" + "mId='" + mId + '\'' + "mId='" + mId + '\'' + ", mUserId=" + mUserId + ", mUserId=" + mUserHandle.getIdentifier() + '}'; + '}'; } } @Override @Override public int hashCode() { public int hashCode() { return Objects.hash(mId, mUserId); return Objects.hash(mId, mUserHandle); } } @Override @Override Loading @@ -98,7 +99,7 @@ public final class SmartspaceSessionId implements Parcelable { @Override @Override public void writeToParcel(@NonNull Parcel dest, int flags) { public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeString(mId); dest.writeString(mId); dest.writeInt(mUserId); dest.writeTypedObject(this.mUserHandle, flags); } } public static final @NonNull Creator<SmartspaceSessionId> CREATOR = public static final @NonNull Creator<SmartspaceSessionId> CREATOR = Loading
core/java/android/app/smartspace/SmartspaceTarget.java +37 −36 File changed.Preview size limit exceeded, changes collapsed. Show changes