1ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze/* 2ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze * Copyright (C) 2017 The Android Open Source Project 3ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze * 4ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze * Licensed under the Apache License, Version 2.0 (the "License"); 5ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze * you may not use this file except in compliance with the License. 6ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze * You may obtain a copy of the License at 7ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze * 8ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze * http://www.apache.org/licenses/LICENSE-2.0 9ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze * 10ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze * Unless required by applicable law or agreed to in writing, software 11ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze * distributed under the License is distributed on an "AS IS" BASIS, 12ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze * See the License for the specific language governing permissions and 14ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze * limitations under the License. 15ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze * 16ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze */ 17ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze 18ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritzepackage com.android.settings.testutils.shadow; 19ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze 20ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritzeimport android.os.AsyncTask; 21ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritzeimport org.robolectric.annotation.Implementation; 22ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritzeimport org.robolectric.annotation.Implements; 23ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritzeimport org.robolectric.shadows.ShadowAsyncTask; 24ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze 25ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritzeimport java.util.concurrent.Executor; 26ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze 27ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze/** 28ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze * Shadow async task to handle runnables in roboletric 29ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze */ 30ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze@Implements(AsyncTask.class) 31ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritzepublic class ShadowRunnableAsyncTask<Params, Progress, Result> extends 32ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze ShadowAsyncTask<Params, Progress, Result> { 33ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze 34ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze @Implementation 35ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze public AsyncTask<Params, Progress, Result> executeOnExecutor(Executor executor, 36ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze Params... params) { 37ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze return super.execute(params); 38ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze } 39ebb5b7f73d24e060ffb838d0fc4c6301eb900923Matthew Fritze}