Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e7f4889b authored by Shashwat Razdan's avatar Shashwat Razdan Committed by Android (Google) Code Review
Browse files

Merge "Addressing the feedback received in the API review." into sc-dev

parents 692496d9 8c63ca65
Loading
Loading
Loading
Loading
+23 −24
Original line number Original line Diff line number Diff line
@@ -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 {
@@ -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;
  }
  }
@@ -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
@@ -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 {
@@ -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 {
+11 −6
Original line number Original line Diff line number Diff line
@@ -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;
@@ -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;


    /**
    /**
@@ -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.
     */
     */
@@ -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;
        }
        }
+24 −22
Original line number Original line Diff line number Diff line
@@ -63,7 +63,7 @@ import java.util.function.Consumer;
 *
 *
 *    void onDestroy() {
 *    void onDestroy() {
 *        mSmartspaceSession.unregisterPredictionUpdates()
 *        mSmartspaceSession.unregisterPredictionUpdates()
 *        mSmartspaceSession.destroy();
 *        mSmartspaceSession.close();
 *    }
 *    }
 *
 *
 * }</pre>
 * }</pre>
@@ -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();


    /**
    /**
@@ -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();
        }
        }


@@ -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) {
@@ -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);
@@ -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();


@@ -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();
@@ -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);
    }
    }
+11 −10
Original line number Original line Diff line number Diff line
@@ -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;


@@ -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);
    }
    }


    /**
    /**
@@ -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
@@ -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
@@ -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 =
+37 −36

File changed.

Preview size limit exceeded, changes collapsed.

Loading