1 /*
2  * Copyright 2019 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 androidx.work.impl.foreground;
18 
19 import androidx.annotation.RestrictTo;
20 import androidx.work.ForegroundInfo;
21 
22 import org.jspecify.annotations.NonNull;
23 
24 /**
25  * An interface that provides {@link androidx.work.impl.WorkerWrapper} the hooks to move a
26  * {@link androidx.work.ListenableWorker}s execution to the foreground.
27  *
28  */
29 @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
30 public interface ForegroundProcessor {
31     /**
32      * Makes the foreground service aware of the {@link androidx.work.impl.model.WorkSpec} id.
33      *
34      * @param workSpecId     The {@link androidx.work.impl.model.WorkSpec} id
35      * @param foregroundInfo The {@link ForegroundInfo} associated
36      */
startForeground(@onNull String workSpecId, @NonNull ForegroundInfo foregroundInfo)37     void startForeground(@NonNull String workSpecId, @NonNull ForegroundInfo foregroundInfo);
38 }
39