• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 android.annotation.NonNull;
20 import android.annotation.SystemApi;
21 import android.car.annotation.ApiRequirements;
22 import android.os.Parcelable;
23 import android.os.UserHandle;
24 
25 import com.android.car.internal.util.DataClass;
26 
27 /**
28  * User stop request.
29  *
30  * @hide
31  */
32 @DataClass(
33         genParcelable = true,
34         genConstructor = false,
35         genAidl = true)
36 @SystemApi
37 public final class UserStopRequest implements Parcelable {
38 
39     private final @NonNull UserHandle mUserHandle;
40     private final boolean mWithDelayedLocking;
41     private final boolean mForce;
42 
43     /** Builder for {@link UserStopRequest}. */
44     public static final class Builder {
45         private final @NonNull UserHandle mUserHandle;
46         // withDelayedLocking is true by default, as it is the most common use case.
47         private boolean mWithDelayedLocking = true;
48         private boolean mForce;
49 
Builder(@onNull UserHandle userHandle)50         public Builder(@NonNull UserHandle userHandle) {
51             com.android.car.internal.util.AnnotationValidations.validate(
52                     NonNull.class, /* ignored= */ null, userHandle);
53             mUserHandle = userHandle;
54         }
55 
56         /**
57          * Sets the flag to stop the user with delayed locking.
58          *
59          * <p>The flag is {@code true} by default.
60          */
61         @ApiRequirements(minCarVersion = ApiRequirements.CarVersion.UPSIDE_DOWN_CAKE_0,
62                 minPlatformVersion = ApiRequirements.PlatformVersion.TIRAMISU_0)
withDelayedLocking(boolean value)63         public @NonNull Builder withDelayedLocking(boolean value) {
64             mWithDelayedLocking = value;
65             return this;
66         }
67 
68         /**
69          * Sets the flag to force-stop the user.
70          *
71          * <p>The flag is {@code false} by default.
72          */
73         @ApiRequirements(minCarVersion = ApiRequirements.CarVersion.UPSIDE_DOWN_CAKE_0,
74                 minPlatformVersion = ApiRequirements.PlatformVersion.TIRAMISU_0)
setForce()75         public @NonNull Builder setForce() {
76             mForce = true;
77             return this;
78         }
79 
80         /** Builds and returns a {@link UserStopRequest}. */
81         @ApiRequirements(minCarVersion = ApiRequirements.CarVersion.UPSIDE_DOWN_CAKE_0,
82                 minPlatformVersion = ApiRequirements.PlatformVersion.TIRAMISU_0)
build()83         public @NonNull UserStopRequest build() {
84             return new UserStopRequest(this);
85         }
86     }
87 
UserStopRequest(Builder builder)88     private UserStopRequest(Builder builder) {
89         mUserHandle = builder.mUserHandle;
90         mWithDelayedLocking = builder.mWithDelayedLocking;
91         mForce = builder.mForce;
92     }
93 
94 
95 
96     // Code below generated by codegen v1.0.23.
97     //
98     // DO NOT MODIFY!
99     // CHECKSTYLE:OFF Generated code
100     //
101     // To regenerate run:
102     // $ codegen $ANDROID_BUILD_TOP/packages/services/Car/car-lib/src/android/car/user/UserStopRequest.java
103     //
104     // To exclude the generated code from IntelliJ auto-formatting enable (one-time):
105     //   Settings > Editor > Code Style > Formatter Control
106     //@formatter:off
107 
108 
109     @DataClass.Generated.Member
110     @ApiRequirements(minCarVersion = ApiRequirements.CarVersion.UPSIDE_DOWN_CAKE_0,
111             minPlatformVersion = ApiRequirements.PlatformVersion.TIRAMISU_0)
getUserHandle()112     public @NonNull UserHandle getUserHandle() {
113         return mUserHandle;
114     }
115 
116     @DataClass.Generated.Member
117     @ApiRequirements(minCarVersion = ApiRequirements.CarVersion.UPSIDE_DOWN_CAKE_0,
118             minPlatformVersion = ApiRequirements.PlatformVersion.TIRAMISU_0)
isWithDelayedLocking()119     public boolean isWithDelayedLocking() {
120         return mWithDelayedLocking;
121     }
122 
123     @DataClass.Generated.Member
124     @ApiRequirements(minCarVersion = ApiRequirements.CarVersion.UPSIDE_DOWN_CAKE_0,
125             minPlatformVersion = ApiRequirements.PlatformVersion.TIRAMISU_0)
isForce()126     public boolean isForce() {
127         return mForce;
128     }
129 
130     @Override
131     @DataClass.Generated.Member
132     @ApiRequirements(minCarVersion = ApiRequirements.CarVersion.UPSIDE_DOWN_CAKE_0,
133             minPlatformVersion = ApiRequirements.PlatformVersion.TIRAMISU_0)
writeToParcel(@onNull android.os.Parcel dest, int flags)134     public void writeToParcel(@NonNull android.os.Parcel dest, int flags) {
135         // You can override field parcelling by defining methods like:
136         // void parcelFieldName(Parcel dest, int flags) { ... }
137 
138         byte flg = 0;
139         if (mWithDelayedLocking) flg |= 0x2;
140         if (mForce) flg |= 0x4;
141         dest.writeByte(flg);
142         dest.writeTypedObject(mUserHandle, flags);
143     }
144 
145     @Override
146     @DataClass.Generated.Member
147     @ApiRequirements(minCarVersion = ApiRequirements.CarVersion.UPSIDE_DOWN_CAKE_0,
148             minPlatformVersion = ApiRequirements.PlatformVersion.TIRAMISU_0)
describeContents()149     public int describeContents() { return 0; }
150 
151     /** @hide */
152     @SuppressWarnings({"unchecked", "RedundantCast"})
153     @DataClass.Generated.Member
UserStopRequest(@onNull android.os.Parcel in)154     /* package-private */ UserStopRequest(@NonNull android.os.Parcel in) {
155         // You can override field unparcelling by defining methods like:
156         // static FieldType unparcelFieldName(Parcel in) { ... }
157 
158         byte flg = in.readByte();
159         boolean withDelayedLocking = (flg & 0x2) != 0;
160         boolean force = (flg & 0x4) != 0;
161         UserHandle userHandle = (UserHandle) in.readTypedObject(UserHandle.CREATOR);
162 
163         this.mUserHandle = userHandle;
164         com.android.car.internal.util.AnnotationValidations.validate(
165                 NonNull.class, null, mUserHandle);
166         this.mWithDelayedLocking = withDelayedLocking;
167         this.mForce = force;
168 
169         // onConstructed(); // You can define this method to get a callback
170     }
171 
172     @DataClass.Generated.Member
173     @ApiRequirements(minCarVersion = ApiRequirements.CarVersion.UPSIDE_DOWN_CAKE_0,
174             minPlatformVersion = ApiRequirements.PlatformVersion.TIRAMISU_0)
175     public static final @NonNull Parcelable.Creator<UserStopRequest> CREATOR
176             = new Parcelable.Creator<UserStopRequest>() {
177         @Override
178         public UserStopRequest[] newArray(int size) {
179             return new UserStopRequest[size];
180         }
181 
182         @Override
183         public UserStopRequest createFromParcel(@NonNull android.os.Parcel in) {
184             return new UserStopRequest(in);
185         }
186     };
187 
188     @DataClass.Generated(
189             time = 1679068284217L,
190             codegenVersion = "1.0.23",
191             sourceFile = "packages/services/Car/car-lib/src/android/car/user/UserStopRequest.java",
192             inputSignatures = "private final @android.annotation.NonNull android.os.UserHandle mUserHandle\nprivate final  boolean mWithDelayedLocking\nprivate final  boolean mForce\nclass UserStopRequest extends java.lang.Object implements [android.os.Parcelable]\nprivate final @android.annotation.NonNull android.os.UserHandle mUserHandle\nprivate  boolean mWithDelayedLocking\nprivate  boolean mForce\npublic @android.car.annotation.ApiRequirements @android.annotation.NonNull android.car.user.UserStopRequest.Builder withDelayedLocking()\npublic @android.car.annotation.ApiRequirements @android.annotation.NonNull android.car.user.UserStopRequest.Builder setForce()\npublic @android.car.annotation.ApiRequirements @android.annotation.NonNull android.car.user.UserStopRequest build()\nclass Builder extends java.lang.Object implements []\n@com.android.car.internal.util.DataClass(genParcelable=true, genConstructor=false, genAidl=true)")
193     @Deprecated
__metadata()194     private void __metadata() {}
195 
196 
197     //@formatter:on
198     // End of generated code
199 
200 }
201