File: ResolverTarget.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 (216 lines) | stat: -rw-r--r-- 6,845 bytes parent folder | download | duplicates (2)
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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
/*
 * Copyright (C) 2017 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.service.resolver;

import android.annotation.SystemApi;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
import android.util.ArrayMap;

import java.util.Map;

/**
 * A ResolverTarget contains features by which an app or option will be ranked, in
 * {@link ResolverRankerService}.
 * @hide
 */
@SystemApi
public final class ResolverTarget implements Parcelable {
    private static final String TAG = "ResolverTarget";

    /**
     * a float score for recency of last use.
     */
    private float mRecencyScore;

    /**
     * a float score for total time spent.
     */
    private float mTimeSpentScore;

    /**
     * a float score for number of launches.
     */
    private float mLaunchScore;

    /**
     * a float score for number of selected.
     */
    private float mChooserScore;

    /**
     * a float score for the probability to be selected.
     */
    private float mSelectProbability;

    // constructor for the class.
    public ResolverTarget() {}

    ResolverTarget(Parcel in) {
        mRecencyScore = in.readFloat();
        mTimeSpentScore = in.readFloat();
        mLaunchScore = in.readFloat();
        mChooserScore = in.readFloat();
        mSelectProbability = in.readFloat();
    }

    /**
     * Gets the score for how recently the target was used in the foreground.
     *
     * @return a float score whose range is [0, 1]. The higher the score is, the more recently the
     * target was used.
     */
    public float getRecencyScore() {
        return mRecencyScore;
    }

    /**
     * Sets the score for how recently the target was used in the foreground.
     *
     * @param recencyScore a float score whose range is [0, 1]. The higher the score is, the more
     *                     recently the target was used.
     */
    public void setRecencyScore(float recencyScore) {
        this.mRecencyScore = recencyScore;
    }

    /**
     * Gets the score for how long the target has been used in the foreground.
     *
     * @return a float score whose range is [0, 1]. The higher the score is, the longer the target
     * has been used for.
     */
    public float getTimeSpentScore() {
        return mTimeSpentScore;
    }

    /**
     * Sets the score for how long the target has been used in the foreground.
     *
     * @param timeSpentScore a float score whose range is [0, 1]. The higher the score is, the
     *                       longer the target has been used for.
     */
    public void setTimeSpentScore(float timeSpentScore) {
        this.mTimeSpentScore = timeSpentScore;
    }

    /**
     * Gets the score for how many times the target has been launched to the foreground.
     *
     * @return a float score whose range is [0, 1]. The higher the score is, the more times the
     * target has been launched.
     */
    public float getLaunchScore() {
        return mLaunchScore;
    }

    /**
     * Sets the score for how many times the target has been launched to the foreground.
     *
     * @param launchScore a float score whose range is [0, 1]. The higher the score is, the more
     *                    times the target has been launched.
     */
    public void setLaunchScore(float launchScore) {
        this.mLaunchScore = launchScore;
    }

    /**
     * Gets the score for how many times the target has been selected by the user to share the same
     * types of content.
     *
     * @return a float score whose range is [0, 1]. The higher the score is, the
     * more times the target has been selected by the user to share the same types of content for.
     */
    public float getChooserScore() {
        return mChooserScore;
    }

    /**
     * Sets the score for how many times the target has been selected by the user to share the same
     * types of content.
     *
     * @param chooserScore a float score whose range is [0, 1]. The higher the score is, the more
     *                     times the target has been selected by the user to share the same types
     *                     of content for.
     */
    public void setChooserScore(float chooserScore) {
        this.mChooserScore = chooserScore;
    }

    /**
     * Gets the probability of how likely this target will be selected by the user.
     *
     * @return a float score whose range is [0, 1]. The higher the score is, the more likely the
     * user is going to select this target.
     */
    public float getSelectProbability() {
        return mSelectProbability;
    }

    /**
     * Sets the probability for how like this target will be selected by the user.
     *
     * @param selectProbability a float score whose range is [0, 1]. The higher the score is, the
     *                          more likely tht user is going to select this target.
     */
    public void setSelectProbability(float selectProbability) {
        this.mSelectProbability = selectProbability;
    }

    // serialize the class to a string.
    @Override
    public String toString() {
        return "ResolverTarget{"
                + mRecencyScore + ", "
                + mTimeSpentScore + ", "
                + mLaunchScore + ", "
                + mChooserScore + ", "
                + mSelectProbability + "}";
    }

    // describes the kinds of special objects contained in this Parcelable instance's marshaled
    // representation.
    @Override
    public int describeContents() {
        return 0;
    }

    // flattens this object in to a Parcel.
    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeFloat(mRecencyScore);
        dest.writeFloat(mTimeSpentScore);
        dest.writeFloat(mLaunchScore);
        dest.writeFloat(mChooserScore);
        dest.writeFloat(mSelectProbability);
    }

    // creator definition for the class.
    public static final @android.annotation.NonNull Creator<ResolverTarget> CREATOR
            = new Creator<ResolverTarget>() {
        @Override
        public ResolverTarget createFromParcel(Parcel source) {
            return new ResolverTarget(source);
        }

        @Override
        public ResolverTarget[] newArray(int size) {
            return new ResolverTarget[size];
        }
    };
}