script-astra/Android/Sdk/sources/android-35/android/app/ondeviceintelligence/OnDeviceIntelligenceException.java
localadmin 4380f00a78 init
2025-01-20 18:15:20 +03:00

199 lines
6.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.app.ondeviceintelligence;
import static android.app.ondeviceintelligence.flags.Flags.FLAG_ENABLE_ON_DEVICE_INTELLIGENCE;
import android.annotation.FlaggedApi;
import android.annotation.NonNull;
import android.annotation.SystemApi;
import android.os.PersistableBundle;
import androidx.annotation.IntDef;
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
/**
* Exception type to be used for errors related to on-device intelligence system service with
* appropriate error code.
*
* @hide
*/
@SystemApi
@FlaggedApi(FLAG_ENABLE_ON_DEVICE_INTELLIGENCE)
public class OnDeviceIntelligenceException extends Exception {
public static final int PROCESSING_ERROR_UNKNOWN = 1;
/** Request passed contains bad data for e.g. format. */
public static final int PROCESSING_ERROR_BAD_DATA = 2;
/** Bad request for inputs. */
public static final int PROCESSING_ERROR_BAD_REQUEST = 3;
/** Whole request was classified as not safe, and no response will be generated. */
public static final int PROCESSING_ERROR_REQUEST_NOT_SAFE = 4;
/** Underlying processing encountered an error and failed to compute results. */
public static final int PROCESSING_ERROR_COMPUTE_ERROR = 5;
/** Encountered an error while performing IPC */
public static final int PROCESSING_ERROR_IPC_ERROR = 6;
/** Request was cancelled either by user signal or by the underlying implementation. */
public static final int PROCESSING_ERROR_CANCELLED = 7;
/** Underlying processing in the remote implementation is not available. */
public static final int PROCESSING_ERROR_NOT_AVAILABLE = 8;
/** The service is currently busy. Callers should retry with exponential backoff. */
public static final int PROCESSING_ERROR_BUSY = 9;
/** Something went wrong with safety classification service. */
public static final int PROCESSING_ERROR_SAFETY_ERROR = 10;
/** Response generated was classified unsafe. */
public static final int PROCESSING_ERROR_RESPONSE_NOT_SAFE = 11;
/** Request is too large to be processed. */
public static final int PROCESSING_ERROR_REQUEST_TOO_LARGE = 12;
/** Inference suspended so that higher-priority inference can run. */
public static final int PROCESSING_ERROR_SUSPENDED = 13;
/**
* Underlying processing encountered an internal error, like a violated precondition
* .
*/
public static final int PROCESSING_ERROR_INTERNAL = 14;
/**
* The processing was not able to be passed on to the remote implementation, as the
* service
* was unavailable.
*/
public static final int PROCESSING_ERROR_SERVICE_UNAVAILABLE = 15;
/**
* Error code returned when the OnDeviceIntelligenceManager service is unavailable.
*/
public static final int ON_DEVICE_INTELLIGENCE_SERVICE_UNAVAILABLE = 100;
/**
* The connection to remote service failed and the processing state could not be updated.
*/
public static final int PROCESSING_UPDATE_STATUS_CONNECTION_FAILED = 200;
/**
* Error code associated with the on-device intelligence failure.
*
* @hide
*/
@IntDef(
value = {
PROCESSING_ERROR_UNKNOWN,
PROCESSING_ERROR_BAD_DATA,
PROCESSING_ERROR_BAD_REQUEST,
PROCESSING_ERROR_REQUEST_NOT_SAFE,
PROCESSING_ERROR_COMPUTE_ERROR,
PROCESSING_ERROR_IPC_ERROR,
PROCESSING_ERROR_CANCELLED,
PROCESSING_ERROR_NOT_AVAILABLE,
PROCESSING_ERROR_BUSY,
PROCESSING_ERROR_SAFETY_ERROR,
PROCESSING_ERROR_RESPONSE_NOT_SAFE,
PROCESSING_ERROR_REQUEST_TOO_LARGE,
PROCESSING_ERROR_SUSPENDED,
PROCESSING_ERROR_INTERNAL,
PROCESSING_ERROR_SERVICE_UNAVAILABLE,
ON_DEVICE_INTELLIGENCE_SERVICE_UNAVAILABLE,
PROCESSING_UPDATE_STATUS_CONNECTION_FAILED
}, open = true)
@Target({ElementType.TYPE_PARAMETER, ElementType.TYPE_USE})
@interface OnDeviceIntelligenceError {
}
private final int mErrorCode;
private final PersistableBundle mErrorParams;
/** Returns the error code of the exception. */
public int getErrorCode() {
return mErrorCode;
}
/** Returns the error params of the exception. */
@NonNull
public PersistableBundle getErrorParams() {
return mErrorParams;
}
/**
* Creates a new OnDeviceIntelligenceException with the specified error code, error message and
* error params.
*
* @param errorCode The error code.
* @param errorMessage The error message.
* @param errorParams The error params.
*/
public OnDeviceIntelligenceException(
@OnDeviceIntelligenceError int errorCode, @NonNull String errorMessage,
@NonNull PersistableBundle errorParams) {
super(errorMessage);
this.mErrorCode = errorCode;
this.mErrorParams = errorParams;
}
/**
* Creates a new OnDeviceIntelligenceException with the specified error code and error params.
*
* @param errorCode The error code.
* @param errorParams The error params.
*/
public OnDeviceIntelligenceException(
@OnDeviceIntelligenceError int errorCode,
@NonNull PersistableBundle errorParams) {
this.mErrorCode = errorCode;
this.mErrorParams = errorParams;
}
/**
* Creates a new OnDeviceIntelligenceException with the specified error code and error message.
*
* @param errorCode The error code.
* @param errorMessage The error message.
*/
public OnDeviceIntelligenceException(
@OnDeviceIntelligenceError int errorCode, @NonNull String errorMessage) {
super(errorMessage);
this.mErrorCode = errorCode;
this.mErrorParams = new PersistableBundle();
}
/**
* Creates a new OnDeviceIntelligenceException with the specified error code.
*
* @param errorCode The error code.
*/
public OnDeviceIntelligenceException(
@OnDeviceIntelligenceError int errorCode) {
this.mErrorCode = errorCode;
this.mErrorParams = new PersistableBundle();
}
}