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