Merge "Add new constructors for mandatory fields in AppTarget.Builder" into qt-dev

This commit is contained in:
Mehdi Alizadeh
2019-04-16 00:34:13 +00:00
committed by Android (Google) Code Review
4 changed files with 48 additions and 25 deletions

View File

@@ -1092,12 +1092,11 @@ package android.app.prediction {
}
public static final class AppTarget.Builder {
ctor public AppTarget.Builder(@NonNull android.app.prediction.AppTargetId);
ctor public AppTarget.Builder(@NonNull android.app.prediction.AppTargetId, @NonNull String, @NonNull android.os.UserHandle);
ctor public AppTarget.Builder(@NonNull android.app.prediction.AppTargetId, @NonNull android.content.pm.ShortcutInfo);
method @NonNull public android.app.prediction.AppTarget build();
method @NonNull public android.app.prediction.AppTarget.Builder setClassName(@NonNull String);
method @NonNull public android.app.prediction.AppTarget.Builder setRank(@IntRange(from=0) int);
method @NonNull public android.app.prediction.AppTarget.Builder setTarget(@NonNull String, @NonNull android.os.UserHandle);
method @NonNull public android.app.prediction.AppTarget.Builder setTarget(@NonNull android.content.pm.ShortcutInfo);
}
public final class AppTargetEvent implements android.os.Parcelable {

View File

@@ -498,12 +498,11 @@ package android.app.prediction {
}
public static final class AppTarget.Builder {
ctor public AppTarget.Builder(@NonNull android.app.prediction.AppTargetId);
ctor public AppTarget.Builder(@NonNull android.app.prediction.AppTargetId, @NonNull String, @NonNull android.os.UserHandle);
ctor public AppTarget.Builder(@NonNull android.app.prediction.AppTargetId, @NonNull android.content.pm.ShortcutInfo);
method @NonNull public android.app.prediction.AppTarget build();
method @NonNull public android.app.prediction.AppTarget.Builder setClassName(@NonNull String);
method @NonNull public android.app.prediction.AppTarget.Builder setRank(@IntRange(from=0) int);
method @NonNull public android.app.prediction.AppTarget.Builder setTarget(@NonNull String, @NonNull android.os.UserHandle);
method @NonNull public android.app.prediction.AppTarget.Builder setTarget(@NonNull android.content.pm.ShortcutInfo);
}
public final class AppTargetEvent implements android.os.Parcelable {

View File

@@ -204,24 +204,49 @@ public final class AppTarget implements Parcelable {
private int mRank;
/**
* @param id A unique id for this launchable target.
* @deprecated Use the other Builder constructors.
* @hide
*/
@SystemApi
@TestApi
@Deprecated
public Builder(@NonNull AppTargetId id) {
mId = id;
}
/**
* Sets the target to be an app.
*
* @param packageName PackageName of the app
* @param id A unique id for this launchable target.
* @param packageName PackageName of the target.
* @param user The UserHandle of the user which this target belongs to.
*
* @throws IllegalArgumentException is the target is already set
* @hide
*/
@SystemApi
@TestApi
public Builder(@NonNull AppTargetId id, @NonNull String packageName,
@NonNull UserHandle user) {
mId = Preconditions.checkNotNull(id);
mPackageName = Preconditions.checkNotNull(packageName);
mUser = Preconditions.checkNotNull(user);
}
/**
* @param id A unique id for this launchable target.
* @param info The ShortcutInfo that represents this launchable target.
* @hide
*/
@SystemApi
@TestApi
public Builder(@NonNull AppTargetId id, @NonNull ShortcutInfo info) {
mId = Preconditions.checkNotNull(id);
mShortcutInfo = Preconditions.checkNotNull(info);
mPackageName = info.getPackage();
mUser = info.getUserHandle();
}
/**
* @deprecated Use the appropriate constructor.
* @hide
*/
@NonNull
@Deprecated
public Builder setTarget(@NonNull String packageName, @NonNull UserHandle user) {
if (mPackageName != null) {
throw new IllegalArgumentException("Target is already set");
@@ -232,11 +257,11 @@ public final class AppTarget implements Parcelable {
}
/**
* Sets the target to be a ShortcutInfo.
*
* @throws IllegalArgumentException is the target is already set
* @deprecated Use the appropriate constructor.
* @hide
*/
@NonNull
@Deprecated
public Builder setTarget(@NonNull ShortcutInfo info) {
setTarget(info.getPackage(), info.getUserHandle());
mShortcutInfo = Preconditions.checkNotNull(info);
@@ -244,7 +269,7 @@ public final class AppTarget implements Parcelable {
}
/**
* Sets the className for the target
* Sets the className for the target.
*/
@NonNull
public Builder setClassName(@NonNull String className) {
@@ -253,7 +278,7 @@ public final class AppTarget implements Parcelable {
}
/**
* Sets the rank of the for the target.
* Sets the rank of the target.
*/
@NonNull
public Builder setRank(@IntRange(from = 0) int rank) {
@@ -274,7 +299,7 @@ public final class AppTarget implements Parcelable {
@NonNull
public AppTarget build() {
if (mPackageName == null) {
throw new IllegalStateException("No target set");
throw new IllegalStateException("No target is set");
}
return new AppTarget(mId, mPackageName, mUser, mShortcutInfo, mClassName, mRank);
}

View File

@@ -1349,13 +1349,13 @@ public class ChooserActivity extends ResolverActivity {
appPredictor.notifyAppTargetEvent(
new AppTargetEvent.Builder(
// TODO(b/124404997) Send full shortcut info, not just Id with AppTargetId.
new AppTarget.Builder(new AppTargetId(shortcutId))
.setTarget(componentName.getPackageName(), getUser())
new AppTarget.Builder(new AppTargetId(shortcutId),
componentName.getPackageName(), getUser())
.setClassName(componentName.getClassName())
.build(),
AppTargetEvent.ACTION_LAUNCH
).setLaunchLocation(LAUNCH_LOCATON_DIRECT_SHARE)
.build());
AppTargetEvent.ACTION_LAUNCH)
.setLaunchLocation(LAUNCH_LOCATON_DIRECT_SHARE)
.build());
}
@Nullable