1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
|
/*
* Copyright (C) 2018 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.app.contentsuggestions;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.graphics.Point;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
/**
* The request object used to request content selections from {@link ContentSuggestionsManager}.
*
* <p>Selections are requested for a given taskId as specified by
* {@link android.app.ActivityManager} and optionally take an interest point that specifies the
* point on the screen that should be considered as the most important.
*
* @hide
*/
@SystemApi
public final class SelectionsRequest implements Parcelable {
private final int mTaskId;
@Nullable
private final Point mInterestPoint;
@Nullable
private final Bundle mExtras;
private SelectionsRequest(int taskId, @Nullable Point interestPoint, @Nullable Bundle extras) {
mTaskId = taskId;
mInterestPoint = interestPoint;
mExtras = extras;
}
/**
* Return the request task id.
*/
public int getTaskId() {
return mTaskId;
}
/**
* Return the request point of interest or {@code null} if there is no point of interest for
* this request.
*/
public @Nullable Point getInterestPoint() {
return mInterestPoint;
}
/**
* Return the request extras, may be an empty bundle if there aren't any.
*/
public @NonNull Bundle getExtras() {
return mExtras == null ? new Bundle() : mExtras;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(mTaskId);
dest.writeTypedObject(mInterestPoint, flags);
dest.writeBundle(mExtras);
}
public static final @android.annotation.NonNull Creator<SelectionsRequest> CREATOR =
new Creator<SelectionsRequest>() {
@Override
public SelectionsRequest createFromParcel(Parcel source) {
return new SelectionsRequest(
source.readInt(), source.readTypedObject(Point.CREATOR), source.readBundle());
}
@Override
public SelectionsRequest[] newArray(int size) {
return new SelectionsRequest[size];
}
};
/**
* A builder for selections requests events.
* @hide
*/
@SystemApi
public static final class Builder {
private final int mTaskId;
private Point mInterestPoint;
private Bundle mExtras;
/**
* Default constructor.
*
* @param taskId of the type used by {@link android.app.ActivityManager}
*/
public Builder(int taskId) {
mTaskId = taskId;
}
/**
* Sets the request extras.
*/
public @NonNull Builder setExtras(@NonNull Bundle extras) {
mExtras = extras;
return this;
}
/**
* Sets the request interest point.
*/
public @NonNull Builder setInterestPoint(@NonNull Point interestPoint) {
mInterestPoint = interestPoint;
return this;
}
/**
* Builds a new request instance.
*/
public @NonNull SelectionsRequest build() {
return new SelectionsRequest(mTaskId, mInterestPoint, mExtras);
}
}
}
|