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 17package android.car.user; 18 19/** 20 * 21 * @hide 22 */ 23@SystemApi 24public final class Test1 { 25 26 /** @hide */ 27 @AddedInOrBefore(majorVersion = 33) 28 public static final String FIELD_1 = "value1"; 29 30 public static final int FIELD_2 = 500; 31 32 /** 33 * @hide 34 */ 35 @SystemApi 36 37 @AddedIn(majorVersion = 33) 38 @RequiresApi(api=34) 39 public static final int FIELD_3; 40 41 /** 42 * @hide 43 */ 44 @SystemApi 45 @AddedIn(PlatformVersion.TIRAMISU_0) 46 @RequiresApi(api=Build.VERSION_CODES.UPSIDE_DOWN_CAKE) 47 public static final int FIELD_4 = 2; 48 49 /** 50 * @hide 51 */ 52 @SystemApi 53 @RequiresApi(34) 54 @ApiRequirements(minCarVersion = ApiRequirements.CarVersion.UPSIDE_DOWN_CAKE_0, 55 minPlatformVersion = ApiRequirements.PlatformVersion.UPSIDE_DOWN_CAKE_0) 56 public static final int FIELD_5 = 2; 57 58 /** 59 * @hide 60 */ 61 @SystemApi 62 @AddedInOrBefore(majorVersion = 33, minorVersion = 3) 63 @AddedIn(majorVersion = 33) 64 @AddedIn(value=PlatformVersion.TIRAMISU_0) 65 @ApiRequirements(minCarVersion = ApiRequirements.CarVersion.UPSIDE_DOWN_CAKE_0, 66 minPlatformVersion = ApiRequirements.PlatformVersion.UPSIDE_DOWN_CAKE_0) 67 @RequiresApi(Build.VERSION_CODES.UPSIDE_DOWN_CAKE) 68 public static final int FIELD_6 = 2; 69 70 /** 71 * @hide 72 */ 73 public Test1(@NonNull Car car, @NonNull IBinder service) { 74 this(car, ICarUserService.Stub.asInterface(service), 75 car.getContext().getSystemService(UserManager.class)); 76 } 77 78 /** 79 * @hide 80 */ 81 @SystemApi 82 @RequiresPermission(anyOf = {android.Manifest.permission.MANAGE_USERS, 83 android.Manifest.permission.INTERACT_ACROSS_USERS}) 84 @ApiRequirements(minCarVersion = ApiRequirements.CarVersion.UPSIDE_DOWN_CAKE_0, 85 minPlatformVersion = ApiRequirements.PlatformVersion.UPSIDE_DOWN_CAKE_0) 86 public void method_1(@NonNull UserStopRequest request, 87 @NonNull @CallbackExecutor Executor executor, 88 @NonNull ResultCallback<UserStopResponse> callback) { 89 UserStopResponse response = mService.stopUser(request); 90 executor.execute(() -> callback.onResult(response)); 91 } 92 93 private AndroidAsyncFuture<UserSwitchResult> privateMethod( 94 @UserSwitchResult.Status int status) { 95 AndroidFuture<UserSwitchResult> future = new AndroidFuture<>(); 96 future.complete(new UserSwitchResult(status, null)); 97 return new AndroidAsyncFuture<>(future); 98 } 99 100 101 /** 102 * @hide 103 */ 104 @Deprecated 105 @RequiresPermission(anyOf = {android.Manifest.permission.MANAGE_USERS, 106 android.Manifest.permission.CREATE_USERS}) 107 @AddedInOrBefore(majorVersion = 33) 108 public void method_2() { 109 Log.w(TAG, "updatePreCreatedUsers(): This method should not be called." 110 + " Pre-created users are no longer supported."); 111 } 112 113 @Deprecated 114 @RequiresPermission(anyOf = {android.Manifest.permission.MANAGE_USERS, 115 android.Manifest.permission.CREATE_USERS}) 116 @AddedInOrBefore(majorVersion = 33) 117 @RequiresApi(34) 118 public int method_3() { 119 Log.w(TAG, "updatePreCreatedUsers(): This method should not be called." 120 + " Pre-created users are no longer supported."); 121 return 0; 122 } 123 124 /** 125 * @hide 126 */ 127 @SystemApi 128 @ApiRequirements(minCarVersion = ApiRequirements.CarVersion.UPSIDE_DOWN_CAKE_0, 129 minPlatformVersion = ApiRequirements.PlatformVersion.UPSIDE_DOWN_CAKE_0) 130 public int method_4() { 131 assertPlatformVersionAtLeastU(); 132 return 0; 133 } 134 135 public static final class UserLifecycleEvent { 136 private final @UserLifecycleEventType int mEventType; 137 private final @UserIdInt int mUserId; 138 private final @UserIdInt int mPreviousUserId; 139 140 /** @hide */ 141 public UserLifecycleEvent(@UserLifecycleEventType int eventType, 142 @UserIdInt int from, @UserIdInt int to) { 143 mEventType = eventType; 144 mPreviousUserId = from; 145 mUserId = to; 146 } 147 148 public UserLifecycleEvent(@UserLifecycleEventType int eventType, @UserIdInt int to) { 149 this(eventType, UserManagerHelper.USER_NULL, to); 150 } 151 152 @UserLifecycleEventType 153 @AddedInOrBefore(majorVersion = 33) 154 public int getEventType() { 155 return mEventType; 156 } 157 158 /** 159 * @hide 160 */ 161 @SystemApi 162 public interface UserLifecycleListener2 { 163 @AddedInOrBefore(majorVersion = 33) 164 void onEvent(@NonNull UserLifecycleEvent event); 165 } 166 } 167 168 /** 169 * @hide 170 */ 171 @SystemApi 172 public interface UserLifecycleListener { 173 @AddedInOrBefore(majorVersion = 33) 174 void onEvent(@NonNull UserLifecycleEvent event); 175 } 176} 177