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 com.android.devicelockcontroller.provision.worker; 18 19 import android.util.ArraySet; 20 21 import androidx.annotation.NonNull; 22 import androidx.annotation.WorkerThread; 23 24 import com.android.devicelockcontroller.common.DeviceId; 25 import com.android.devicelockcontroller.provision.grpc.GetDeviceCheckInStatusGrpcResponse; 26 27 /** 28 * Base class that provides abstraction of utility APIs for device check-in. 29 */ 30 public abstract class AbstractDeviceCheckInHelper { 31 32 /** 33 * Enqueue the DeviceCheckIn work request to WorkManager 34 * 35 * @param isExpedited If true, the work request should be expedited; 36 */ enqueueDeviceCheckInWork(boolean isExpedited)37 public abstract void enqueueDeviceCheckInWork(boolean isExpedited); 38 39 @NonNull getDeviceUniqueIds()40 abstract ArraySet<DeviceId> getDeviceUniqueIds(); 41 42 @NonNull getCarrierInfo()43 abstract String getCarrierInfo(); 44 45 @WorkerThread handleGetDeviceCheckInStatusResponse( @onNull GetDeviceCheckInStatusGrpcResponse response)46 abstract boolean handleGetDeviceCheckInStatusResponse( 47 @NonNull GetDeviceCheckInStatusGrpcResponse response); 48 } 49