File: SelectionsRequest.java

package info (click to toggle)
android-platform-frameworks-base 1%3A10.0.0%2Br36-3
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 321,788 kB
  • sloc: java: 962,234; cpp: 274,314; xml: 242,770; python: 5,060; sh: 1,432; ansic: 494; makefile: 47; sed: 19
file content (141 lines) | stat: -rw-r--r-- 4,060 bytes parent folder | download | duplicates (4)
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);
        }
    }
}