1 /* 2 * Copyright (C) 2021 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.os.Parcelable; 22 23 import com.android.car.internal.ExcludeFromCodeCoverageGeneratedReport; 24 import com.android.car.internal.util.DataClass; 25 26 /** 27 * User start results. 28 * 29 * @hide 30 */ 31 @DataClass( 32 genToString = true, 33 genHiddenConstructor = true, 34 genHiddenConstDefs = true) 35 public final class UserStartResult implements Parcelable, OperationResult { 36 37 /** 38 * When user start is successful. 39 * 40 * @hide 41 */ 42 @Status 43 public static final int STATUS_SUCCESSFUL = CommonResults.STATUS_SUCCESSFUL; 44 45 /** 46 * When user start failed. 47 * 48 * @hide 49 */ 50 @Status 51 public static final int STATUS_ANDROID_FAILURE = CommonResults.STATUS_ANDROID_FAILURE; 52 53 /** 54 * When user to start is same as current user. 55 * 56 * @hide 57 */ 58 @Status 59 public static final int STATUS_SUCCESSFUL_USER_IS_CURRENT_USER = 60 CommonResults.LAST_COMMON_STATUS + 1; 61 62 /** 63 * When user to start does not exist. 64 * 65 * @hide 66 */ 67 @Status 68 public static final int STATUS_USER_DOES_NOT_EXIST = CommonResults.LAST_COMMON_STATUS + 2; 69 70 /** 71 * Gets the user start result status. 72 * 73 * @return either {@link UserStartRsult#STATUS_SUCCESSFUL}, 74 * {@link UserStartResult#STATUS_SUCCESSFUL_USER_IS_CURRENT_USER}, 75 * {@link UserStartResult#STATUS_ANDROID_FAILURE}, 76 * {@link UserStartResult#STATUS_USER_DOES_NOT_EXIST}, or 77 */ 78 private final @Status int mStatus; 79 80 @Override isSuccess()81 public boolean isSuccess() { 82 return mStatus == STATUS_SUCCESSFUL || mStatus == STATUS_SUCCESSFUL_USER_IS_CURRENT_USER; 83 } 84 85 86 87 // Code below generated by codegen v1.0.23. 88 // 89 // DO NOT MODIFY! 90 // CHECKSTYLE:OFF Generated code 91 // 92 // To regenerate run: 93 // $ codegen $ANDROID_BUILD_TOP/packages/services/Car/car-lib/src/android/car/user/UserStartResult.java 94 // 95 // To exclude the generated code from IntelliJ auto-formatting enable (one-time): 96 // Settings > Editor > Code Style > Formatter Control 97 //@formatter:off 98 99 100 /** @hide */ 101 @android.annotation.IntDef(prefix = "STATUS_", value = { 102 STATUS_SUCCESSFUL, 103 STATUS_ANDROID_FAILURE, 104 STATUS_SUCCESSFUL_USER_IS_CURRENT_USER, 105 STATUS_USER_DOES_NOT_EXIST 106 }) 107 @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) 108 @DataClass.Generated.Member 109 public @interface Status {} 110 111 /** @hide */ 112 @DataClass.Generated.Member 113 @ExcludeFromCodeCoverageGeneratedReport(reason = BOILERPLATE_CODE) statusToString(@tatus int value)114 public static String statusToString(@Status int value) { 115 switch (value) { 116 case STATUS_SUCCESSFUL: 117 return "STATUS_SUCCESSFUL"; 118 case STATUS_ANDROID_FAILURE: 119 return "STATUS_ANDROID_FAILURE"; 120 case STATUS_SUCCESSFUL_USER_IS_CURRENT_USER: 121 return "STATUS_SUCCESSFUL_USER_IS_CURRENT_USER"; 122 case STATUS_USER_DOES_NOT_EXIST: 123 return "STATUS_USER_DOES_NOT_EXIST"; 124 default: return Integer.toHexString(value); 125 } 126 } 127 128 /** 129 * Creates a new UserStartResult. 130 * 131 * @param status 132 * Gets the user start result status. 133 * 134 * @return either {@link UserStartRsult#STATUS_SUCCESSFUL}, 135 * {@link UserStartResult#STATUS_ANDROID_FAILURE}, 136 * {@link UserStartResult#STATUS_SUCCESSFUL_USER_IS_CURRENT_USER}, 137 * {@link UserStartResult#STATUS_USER_DOES_NOT_EXIST}, or 138 * @hide 139 */ 140 @DataClass.Generated.Member UserStartResult( @tatus int status)141 public UserStartResult( 142 @Status int status) { 143 this.mStatus = status; 144 145 if (!(mStatus == STATUS_SUCCESSFUL) 146 && !(mStatus == STATUS_ANDROID_FAILURE) 147 && !(mStatus == STATUS_SUCCESSFUL_USER_IS_CURRENT_USER) 148 && !(mStatus == STATUS_USER_DOES_NOT_EXIST)) { 149 throw new java.lang.IllegalArgumentException( 150 "status was " + mStatus + " but must be one of: " 151 + "STATUS_SUCCESSFUL(" + STATUS_SUCCESSFUL + "), " 152 + "STATUS_ANDROID_FAILURE(" + STATUS_ANDROID_FAILURE + "), " 153 + "STATUS_SUCCESSFUL_USER_IS_CURRENT_USER(" + STATUS_SUCCESSFUL_USER_IS_CURRENT_USER + "), " 154 + "STATUS_USER_DOES_NOT_EXIST(" + STATUS_USER_DOES_NOT_EXIST + ")"); 155 } 156 157 158 // onConstructed(); // You can define this method to get a callback 159 } 160 161 /** 162 * Gets the user start result status. 163 * 164 * @return either {@link UserStartRsult#STATUS_SUCCESSFUL}, 165 * {@link UserStartResult#STATUS_ANDROID_FAILURE}, 166 * {@link UserStartResult#STATUS_SUCCESSFUL_USER_IS_CURRENT_USER}, 167 * {@link UserStartResult#STATUS_USER_DOES_NOT_EXIST}, or 168 */ 169 @DataClass.Generated.Member getStatus()170 public @Status int getStatus() { 171 return mStatus; 172 } 173 174 @Override 175 @DataClass.Generated.Member toString()176 public String toString() { 177 // You can override field toString logic by defining methods like: 178 // String fieldNameToString() { ... } 179 180 return "UserStartResult { " + 181 "status = " + statusToString(mStatus) + 182 " }"; 183 } 184 185 @Override 186 @DataClass.Generated.Member 187 @ExcludeFromCodeCoverageGeneratedReport(reason = BOILERPLATE_CODE) writeToParcel(@ndroid.annotation.NonNull android.os.Parcel dest, int flags)188 public void writeToParcel(@android.annotation.NonNull android.os.Parcel dest, int flags) { 189 // You can override field parcelling by defining methods like: 190 // void parcelFieldName(Parcel dest, int flags) { ... } 191 192 dest.writeInt(mStatus); 193 } 194 195 @Override 196 @DataClass.Generated.Member 197 @ExcludeFromCodeCoverageGeneratedReport(reason = BOILERPLATE_CODE) describeContents()198 public int describeContents() { return 0; } 199 200 /** @hide */ 201 @SuppressWarnings({"unchecked", "RedundantCast"}) 202 @DataClass.Generated.Member UserStartResult(@ndroid.annotation.NonNull android.os.Parcel in)203 /* package-private */ UserStartResult(@android.annotation.NonNull android.os.Parcel in) { 204 // You can override field unparcelling by defining methods like: 205 // static FieldType unparcelFieldName(Parcel in) { ... } 206 207 int status = in.readInt(); 208 209 this.mStatus = status; 210 211 if (!(mStatus == STATUS_SUCCESSFUL) 212 && !(mStatus == STATUS_ANDROID_FAILURE) 213 && !(mStatus == STATUS_SUCCESSFUL_USER_IS_CURRENT_USER) 214 && !(mStatus == STATUS_USER_DOES_NOT_EXIST)) { 215 throw new java.lang.IllegalArgumentException( 216 "status was " + mStatus + " but must be one of: " 217 + "STATUS_SUCCESSFUL(" + STATUS_SUCCESSFUL + "), " 218 + "STATUS_ANDROID_FAILURE(" + STATUS_ANDROID_FAILURE + "), " 219 + "STATUS_SUCCESSFUL_USER_IS_CURRENT_USER(" + STATUS_SUCCESSFUL_USER_IS_CURRENT_USER + "), " 220 + "STATUS_USER_DOES_NOT_EXIST(" + STATUS_USER_DOES_NOT_EXIST + ")"); 221 } 222 223 224 // onConstructed(); // You can define this method to get a callback 225 } 226 227 @DataClass.Generated.Member 228 public static final @android.annotation.NonNull Parcelable.Creator<UserStartResult> CREATOR 229 = new Parcelable.Creator<UserStartResult>() { 230 @Override 231 public UserStartResult[] newArray(int size) { 232 return new UserStartResult[size]; 233 } 234 235 @Override 236 public UserStartResult createFromParcel(@android.annotation.NonNull android.os.Parcel in) { 237 return new UserStartResult(in); 238 } 239 }; 240 241 @DataClass.Generated( 242 time = 1673056382532L, 243 codegenVersion = "1.0.23", 244 sourceFile = "packages/services/Car/car-lib/src/android/car/user/UserStartResult.java", 245 inputSignatures = "public static final @android.car.user.UserStartResult.Status @android.car.annotation.AddedInOrBefore int STATUS_SUCCESSFUL\npublic static final @android.car.user.UserStartResult.Status @android.car.annotation.AddedInOrBefore int STATUS_ANDROID_FAILURE\npublic static final @android.car.user.UserStartResult.Status @android.car.annotation.AddedInOrBefore int STATUS_SUCCESSFUL_USER_IS_CURRENT_USER\npublic static final @android.car.user.UserStartResult.Status @android.car.annotation.AddedInOrBefore int STATUS_USER_DOES_NOT_EXIST\nprivate final @android.car.user.UserStartResult.Status int mStatus\npublic @java.lang.Override @android.car.annotation.AddedInOrBefore boolean isSuccess()\nclass UserStartResult extends java.lang.Object implements [android.os.Parcelable, android.car.user.OperationResult]\n@com.android.car.internal.util.DataClass(genToString=true, genHiddenConstructor=true, genHiddenConstDefs=true)") 246 @Deprecated __metadata()247 private void __metadata() {} 248 249 250 //@formatter:on 251 // End of generated code 252 253 } 254