1de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev/*
2de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev * Copyright (C) 2015 The Android Open Source Project
3de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev *
4de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev * Licensed under the Apache License, Version 2.0 (the "License");
5de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev * you may not use this file except in compliance with the License.
6de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev * You may obtain a copy of the License at
7de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev *
8de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev *      http://www.apache.org/licenses/LICENSE-2.0
9de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev *
10de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev * Unless required by applicable law or agreed to in writing, software
11de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev * distributed under the License is distributed on an "AS IS" BASIS,
12de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev * See the License for the specific language governing permissions and
14de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev * limitations under the License.
15de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev */
16de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev
17de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheevpackage android.support.v4.content;
18de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev
19de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheevimport android.os.Build;
20de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev
21de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheevimport java.util.concurrent.Executor;
22de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev
23de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev/**
24de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev * Helper for accessing a shared parallel Executor instance
25de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev * introduced after API level 4 in a backwards compatible fashion.
26de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev */
27c5847d13e40f5d52459f5c0dab32dc08f1a9a683Chris Banespublic final class ParallelExecutorCompat {
28de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev    public static Executor getParallelExecutor() {
29de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev        if (Build.VERSION.SDK_INT >= 11) {
30de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev            // From API 11 onwards, return AsyncTask.THREAD_POOL_EXECUTOR
31de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev            return ExecutorCompatHoneycomb.getParallelExecutor();
32de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev        } else {
33de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev            return ModernAsyncTask.THREAD_POOL_EXECUTOR;
34de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev        }
35de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev    }
36c5847d13e40f5d52459f5c0dab32dc08f1a9a683Chris Banes
37c5847d13e40f5d52459f5c0dab32dc08f1a9a683Chris Banes    private ParallelExecutorCompat() {}
38de8e2baf9504defe12972fbf60935a1148f1098fVladislav Kaznacheev}
39