1 /*
2  * Copyright (C) 2017 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.dialer.common.concurrent;
18 
19 import android.content.Context;
20 import android.support.annotation.NonNull;
21 import com.android.dialer.common.Assert;
22 import java.util.concurrent.ExecutorService;
23 
24 /** Shared application executors. */
25 public final class DialerExecutors {
26 
27   /**
28    * An application-wide thread pool used for low priority (non-UI) tasks.
29    *
30    * <p>This exists to prevent each individual dialer component from having to create its own
31    * threads/pools, which would result in the application having more threads than really necessary.
32    *
33    * @param context any valid context object from which the application context can be retrieved
34    */
getLowPriorityThreadPool(@onNull Context context)35   public static ExecutorService getLowPriorityThreadPool(@NonNull Context context) {
36     return DialerExecutorComponent.get(Assert.isNotNull(context)).lowPriorityThreadPool();
37   }
38 }
39