1 /* 2 * Copyright (C) 2023 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package android.car.user; 18 19 import static com.android.car.internal.ExcludeFromCodeCoverageGeneratedReport.BOILERPLATE_CODE; 20 21 import android.annotation.IntDef; 22 import android.annotation.NonNull; 23 import android.annotation.SystemApi; 24 import android.os.Parcelable; 25 26 import com.android.car.internal.ExcludeFromCodeCoverageGeneratedReport; 27 import com.android.car.internal.util.DataClass; 28 29 import java.lang.annotation.Retention; 30 import java.lang.annotation.RetentionPolicy; 31 32 /** 33 * User stop response. 34 * 35 * @hide 36 */ 37 @DataClass( 38 genAidl = true, 39 genToString = true, 40 genHiddenConstructor = true, 41 genHiddenConstDefs = true) 42 @SystemApi 43 public final class UserStopResponse implements Parcelable, OperationResult { 44 45 /** 46 * When user stop is successful. 47 */ 48 @Status 49 public static final int STATUS_SUCCESSFUL = CommonResults.STATUS_SUCCESSFUL; 50 51 /** 52 * When user stop fails. 53 */ 54 @Status 55 public static final int STATUS_ANDROID_FAILURE = CommonResults.STATUS_ANDROID_FAILURE; 56 57 /** 58 * When user to stop doesn't exits. 59 */ 60 @Status 61 public static final int STATUS_USER_DOES_NOT_EXIST = CommonResults.LAST_COMMON_STATUS + 1; 62 63 /** 64 * When user to stop is the system user. 65 */ 66 @Status 67 public static final int STATUS_FAILURE_SYSTEM_USER = CommonResults.LAST_COMMON_STATUS + 2; 68 69 /** 70 * When user to stop is the current user. 71 */ 72 @Status 73 public static final int STATUS_FAILURE_CURRENT_USER = CommonResults.LAST_COMMON_STATUS + 3; 74 75 /** 76 * Gets the user switch result status. 77 * 78 * @return either {@link UserStopResponse#STATUS_SUCCESSFUL}, 79 * {@link UserStopResponse#STATUS_ANDROID_FAILURE}, 80 * {@link UserStopResponse#STATUS_USER_DOES_NOT_EXIST}, 81 * {@link UserStopResponse#STATUS_FAILURE_SYSTEM_USER}, or 82 * {@link UserStopResponse#STATUS_FAILURE_CURRENT_USER}. 83 */ 84 private final @Status int mStatus; 85 86 /** 87 * Checks if the {@code status} represents a success status. 88 * 89 * @param status to check 90 * @return true for a success status 91 */ isSuccess(@tatus int status)92 public static boolean isSuccess(@Status int status) { 93 return status == STATUS_SUCCESSFUL; 94 } 95 96 @Override isSuccess()97 public boolean isSuccess() { 98 return isSuccess(mStatus); 99 } 100 101 102 103 // Code below generated by codegen v1.0.23. 104 // 105 // DO NOT MODIFY! 106 // CHECKSTYLE:OFF Generated code 107 // 108 // To regenerate run: 109 // $ codegen $ANDROID_BUILD_TOP/packages/services/Car/car-lib/src/android/car/user/UserStopResponse.java 110 // 111 // To exclude the generated code from IntelliJ auto-formatting enable (one-time): 112 // Settings > Editor > Code Style > Formatter Control 113 //@formatter:off 114 115 116 /** @hide */ 117 @IntDef(prefix = "STATUS_", value = { 118 STATUS_SUCCESSFUL, 119 STATUS_ANDROID_FAILURE, 120 STATUS_USER_DOES_NOT_EXIST, 121 STATUS_FAILURE_SYSTEM_USER, 122 STATUS_FAILURE_CURRENT_USER 123 }) 124 @Retention(RetentionPolicy.SOURCE) 125 @DataClass.Generated.Member 126 public @interface Status {} 127 128 /** @hide */ 129 @DataClass.Generated.Member 130 @ExcludeFromCodeCoverageGeneratedReport(reason = BOILERPLATE_CODE) 131 @SystemApi statusToString(@tatus int value)132 public static @NonNull String statusToString(@Status int value) { 133 switch (value) { 134 case STATUS_SUCCESSFUL: 135 return "STATUS_SUCCESSFUL"; 136 case STATUS_ANDROID_FAILURE: 137 return "STATUS_ANDROID_FAILURE"; 138 case STATUS_USER_DOES_NOT_EXIST: 139 return "STATUS_USER_DOES_NOT_EXIST"; 140 case STATUS_FAILURE_SYSTEM_USER: 141 return "STATUS_FAILURE_SYSTEM_USER"; 142 case STATUS_FAILURE_CURRENT_USER: 143 return "STATUS_FAILURE_CURRENT_USER"; 144 default: return Integer.toHexString(value); 145 } 146 } 147 148 /** 149 * Creates a new UserStopResponse. 150 * 151 * @param status 152 * Gets the user switch result status. 153 * 154 * @return either {@link UserStopResponse#STATUS_SUCCESSFUL}, 155 * {@link UserStopResponse#STATUS_ANDROID_FAILURE}, 156 * {@link UserStopResponse#STATUS_USER_DOES_NOT_EXIST}, 157 * {@link UserStopResponse#STATUS_FAILURE_SYSTEM_USER}, or 158 * {@link UserStopResponse#STATUS_FAILURE_CURRENT_USER}. 159 * @hide 160 */ 161 @DataClass.Generated.Member UserStopResponse( @tatus int status)162 public UserStopResponse( 163 @Status int status) { 164 this.mStatus = status; 165 166 if (!(mStatus == STATUS_SUCCESSFUL) 167 && !(mStatus == STATUS_ANDROID_FAILURE) 168 && !(mStatus == STATUS_USER_DOES_NOT_EXIST) 169 && !(mStatus == STATUS_FAILURE_SYSTEM_USER) 170 && !(mStatus == STATUS_FAILURE_CURRENT_USER)) { 171 throw new java.lang.IllegalArgumentException( 172 "status was " + mStatus + " but must be one of: " 173 + "STATUS_SUCCESSFUL(" + STATUS_SUCCESSFUL + "), " 174 + "STATUS_ANDROID_FAILURE(" + STATUS_ANDROID_FAILURE + "), " 175 + "STATUS_USER_DOES_NOT_EXIST(" + STATUS_USER_DOES_NOT_EXIST + "), " 176 + "STATUS_FAILURE_SYSTEM_USER(" + STATUS_FAILURE_SYSTEM_USER + "), " 177 + "STATUS_FAILURE_CURRENT_USER(" + STATUS_FAILURE_CURRENT_USER + ")"); 178 } 179 180 181 // onConstructed(); // You can define this method to get a callback 182 } 183 184 /** 185 * Gets the user switch result status. 186 * 187 * @return either {@link UserStopResponse#STATUS_SUCCESSFUL}, 188 * {@link UserStopResponse#STATUS_ANDROID_FAILURE}, 189 * {@link UserStopResponse#STATUS_USER_DOES_NOT_EXIST}, 190 * {@link UserStopResponse#STATUS_FAILURE_SYSTEM_USER}, or 191 * {@link UserStopResponse#STATUS_FAILURE_CURRENT_USER}. 192 */ 193 @DataClass.Generated.Member getStatus()194 public @Status int getStatus() { 195 return mStatus; 196 } 197 198 @Override 199 @DataClass.Generated.Member toString()200 public String toString() { 201 // You can override field toString logic by defining methods like: 202 // String fieldNameToString() { ... } 203 204 return "UserStopResponse { " + 205 "status = " + statusToString(mStatus) + 206 " }"; 207 } 208 209 @Override 210 @DataClass.Generated.Member 211 @ExcludeFromCodeCoverageGeneratedReport(reason = BOILERPLATE_CODE) writeToParcel(@ndroid.annotation.NonNull android.os.Parcel dest, int flags)212 public void writeToParcel(@android.annotation.NonNull android.os.Parcel dest, int flags) { 213 // You can override field parcelling by defining methods like: 214 // void parcelFieldName(Parcel dest, int flags) { ... } 215 216 dest.writeInt(mStatus); 217 } 218 219 @Override 220 @DataClass.Generated.Member 221 @ExcludeFromCodeCoverageGeneratedReport(reason = BOILERPLATE_CODE) describeContents()222 public int describeContents() { return 0; } 223 224 /** @hide */ 225 @SuppressWarnings({"unchecked", "RedundantCast"}) 226 @DataClass.Generated.Member UserStopResponse(@ndroid.annotation.NonNull android.os.Parcel in)227 /* package-private */ UserStopResponse(@android.annotation.NonNull android.os.Parcel in) { 228 // You can override field unparcelling by defining methods like: 229 // static FieldType unparcelFieldName(Parcel in) { ... } 230 231 int status = in.readInt(); 232 233 this.mStatus = status; 234 235 if (!(mStatus == STATUS_SUCCESSFUL) 236 && !(mStatus == STATUS_ANDROID_FAILURE) 237 && !(mStatus == STATUS_USER_DOES_NOT_EXIST) 238 && !(mStatus == STATUS_FAILURE_SYSTEM_USER) 239 && !(mStatus == STATUS_FAILURE_CURRENT_USER)) { 240 throw new java.lang.IllegalArgumentException( 241 "status was " + mStatus + " but must be one of: " 242 + "STATUS_SUCCESSFUL(" + STATUS_SUCCESSFUL + "), " 243 + "STATUS_ANDROID_FAILURE(" + STATUS_ANDROID_FAILURE + "), " 244 + "STATUS_USER_DOES_NOT_EXIST(" + STATUS_USER_DOES_NOT_EXIST + "), " 245 + "STATUS_FAILURE_SYSTEM_USER(" + STATUS_FAILURE_SYSTEM_USER + "), " 246 + "STATUS_FAILURE_CURRENT_USER(" + STATUS_FAILURE_CURRENT_USER + ")"); 247 } 248 249 250 // onConstructed(); // You can define this method to get a callback 251 } 252 253 @DataClass.Generated.Member 254 public static final @android.annotation.NonNull Parcelable.Creator<UserStopResponse> CREATOR 255 = new Parcelable.Creator<UserStopResponse>() { 256 @Override 257 public UserStopResponse[] newArray(int size) { 258 return new UserStopResponse[size]; 259 } 260 261 @Override 262 public UserStopResponse createFromParcel(@android.annotation.NonNull android.os.Parcel in) { 263 return new UserStopResponse(in); 264 } 265 }; 266 267 @DataClass.Generated( 268 time = 1676571819851L, 269 codegenVersion = "1.0.23", 270 sourceFile = "packages/services/Car/car-lib/src/android/car/user/UserStopResponse.java", 271 inputSignatures = "public static final @android.car.user.UserStopResponse.Status @android.car.annotation.ApiRequirements int STATUS_SUCCESSFUL\npublic static final @android.car.user.UserStopResponse.Status @android.car.annotation.ApiRequirements int STATUS_ANDROID_FAILURE\npublic static final @android.car.user.UserStopResponse.Status @android.car.annotation.ApiRequirements int STATUS_USER_DOES_NOT_EXIST\npublic static final @android.car.user.UserStopResponse.Status @android.car.annotation.ApiRequirements int STATUS_FAILURE_SYSTEM_USER\npublic static final @android.car.user.UserStopResponse.Status @android.car.annotation.ApiRequirements int STATUS_FAILURE_CURRENT_USER\nprivate final @android.car.user.UserStopResponse.Status int mStatus\npublic static @android.car.annotation.ApiRequirements boolean isSuccess(int)\npublic @java.lang.Override @android.car.annotation.ApiRequirements boolean isSuccess()\nclass UserStopResponse extends java.lang.Object implements [android.os.Parcelable, android.car.user.OperationResult]\n@com.android.car.internal.util.DataClass(genAidl=true, genToString=true, genHiddenConstructor=true, genHiddenConstDefs=true)") 272 @Deprecated __metadata()273 private void __metadata() {} 274 275 276 //@formatter:on 277 // End of generated code 278 279 } 280