| /* |
| * 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.NonNull; |
| import android.annotation.SystemApi; |
| import android.os.Parcel; |
| import android.os.Parcelable; |
| |
| /** |
| * 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. |
| @NonNull |
| @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]; |
| } |
| }; |
| } |