156 lines
4.9 KiB
Java
156 lines
4.9 KiB
Java
![]() |
/*
|
||
|
* Copyright (C) 2024 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.credentials.selection;
|
||
|
|
||
|
import android.annotation.NonNull;
|
||
|
import android.annotation.Nullable;
|
||
|
import android.content.Intent;
|
||
|
|
||
|
/**
|
||
|
* Result of creating a Credential Manager UI intent.
|
||
|
*
|
||
|
* @hide
|
||
|
*/
|
||
|
public final class IntentCreationResult {
|
||
|
@NonNull
|
||
|
private final Intent mIntent;
|
||
|
@Nullable
|
||
|
private final String mFallbackUiPackageName;
|
||
|
@Nullable
|
||
|
private final String mOemUiPackageName;
|
||
|
@NonNull
|
||
|
private final OemUiUsageStatus mOemUiUsageStatus;
|
||
|
|
||
|
private IntentCreationResult(@NonNull Intent intent, @Nullable String fallbackUiPackageName,
|
||
|
@Nullable String oemUiPackageName, OemUiUsageStatus oemUiUsageStatus) {
|
||
|
mIntent = intent;
|
||
|
mFallbackUiPackageName = fallbackUiPackageName;
|
||
|
mOemUiPackageName = oemUiPackageName;
|
||
|
mOemUiUsageStatus = oemUiUsageStatus;
|
||
|
}
|
||
|
|
||
|
/** Returns the UI intent. */
|
||
|
@NonNull
|
||
|
public Intent getIntent() {
|
||
|
return mIntent;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns the result of attempting to use the config_oemCredentialManagerDialogComponent
|
||
|
* as the Credential Manager UI.
|
||
|
*/
|
||
|
@NonNull
|
||
|
public OemUiUsageStatus getOemUiUsageStatus() {
|
||
|
return mOemUiUsageStatus;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns the package name of the ui component specified in
|
||
|
* config_fallbackCredentialManagerDialogComponent, or null if unspecified / not parsable
|
||
|
* successfully.
|
||
|
*/
|
||
|
@Nullable
|
||
|
public String getFallbackUiPackageName() {
|
||
|
return mFallbackUiPackageName;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Returns the package name of the oem ui component specified in
|
||
|
* config_oemCredentialManagerDialogComponent, or null if unspecified / not parsable.
|
||
|
*/
|
||
|
@Nullable
|
||
|
public String getOemUiPackageName() {
|
||
|
return mOemUiPackageName;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Result of attempting to use the config_oemCredentialManagerDialogComponent as the Credential
|
||
|
* Manager UI.
|
||
|
*/
|
||
|
public enum OemUiUsageStatus {
|
||
|
UNKNOWN,
|
||
|
// Success: the UI specified in config_oemCredentialManagerDialogComponent was used to
|
||
|
// fulfill the request.
|
||
|
SUCCESS,
|
||
|
// The config value was not specified (e.g. left empty).
|
||
|
OEM_UI_CONFIG_NOT_SPECIFIED,
|
||
|
// The config value component was specified but not found (e.g. component doesn't exist or
|
||
|
// component isn't a system app).
|
||
|
OEM_UI_CONFIG_SPECIFIED_BUT_NOT_FOUND,
|
||
|
// The config value component was found but not enabled.
|
||
|
OEM_UI_CONFIG_SPECIFIED_FOUND_BUT_NOT_ENABLED,
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Builder for {@link IntentCreationResult}.
|
||
|
*
|
||
|
* @hide
|
||
|
*/
|
||
|
public static final class Builder {
|
||
|
@NonNull
|
||
|
private Intent mIntent;
|
||
|
@Nullable
|
||
|
private String mFallbackUiPackageName = null;
|
||
|
@Nullable
|
||
|
private String mOemUiPackageName = null;
|
||
|
@NonNull
|
||
|
private OemUiUsageStatus mOemUiUsageStatus = OemUiUsageStatus.UNKNOWN;
|
||
|
|
||
|
public Builder(Intent intent) {
|
||
|
mIntent = intent;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Sets the package name of the ui component specified in
|
||
|
* config_fallbackCredentialManagerDialogComponent, or null if unspecified / not parsable
|
||
|
* successfully.
|
||
|
*/
|
||
|
@NonNull
|
||
|
public Builder setFallbackUiPackageName(@Nullable String fallbackUiPackageName) {
|
||
|
mFallbackUiPackageName = fallbackUiPackageName;
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Sets the package name of the oem ui component specified in
|
||
|
* config_oemCredentialManagerDialogComponent, or null if unspecified / not parsable.
|
||
|
*/
|
||
|
@NonNull
|
||
|
public Builder setOemUiPackageName(@Nullable String oemUiPackageName) {
|
||
|
mOemUiPackageName = oemUiPackageName;
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Sets the result of attempting to use the config_oemCredentialManagerDialogComponent
|
||
|
* as the Credential Manager UI.
|
||
|
*/
|
||
|
@NonNull
|
||
|
public Builder setOemUiUsageStatus(OemUiUsageStatus oemUiUsageStatus) {
|
||
|
mOemUiUsageStatus = oemUiUsageStatus;
|
||
|
return this;
|
||
|
}
|
||
|
|
||
|
/** Builds a {@link IntentCreationResult}. */
|
||
|
@NonNull
|
||
|
public IntentCreationResult build() {
|
||
|
return new IntentCreationResult(mIntent, mFallbackUiPackageName, mOemUiPackageName,
|
||
|
mOemUiUsageStatus);
|
||
|
}
|
||
|
}
|
||
|
}
|