15d4fb6accab3bcbe737d52747c328de5cc092d02Puneet Lall/* 25d4fb6accab3bcbe737d52747c328de5cc092d02Puneet Lall * Copyright (C) 2014 The Android Open Source Project 35d4fb6accab3bcbe737d52747c328de5cc092d02Puneet Lall * 45d4fb6accab3bcbe737d52747c328de5cc092d02Puneet Lall * Licensed under the Apache License, Version 2.0 (the "License"); 55d4fb6accab3bcbe737d52747c328de5cc092d02Puneet Lall * you may not use this file except in compliance with the License. 65d4fb6accab3bcbe737d52747c328de5cc092d02Puneet Lall * You may obtain a copy of the License at 75d4fb6accab3bcbe737d52747c328de5cc092d02Puneet Lall * 85d4fb6accab3bcbe737d52747c328de5cc092d02Puneet Lall * http://www.apache.org/licenses/LICENSE-2.0 95d4fb6accab3bcbe737d52747c328de5cc092d02Puneet Lall * 105d4fb6accab3bcbe737d52747c328de5cc092d02Puneet Lall * Unless required by applicable law or agreed to in writing, software 115d4fb6accab3bcbe737d52747c328de5cc092d02Puneet Lall * distributed under the License is distributed on an "AS IS" BASIS, 125d4fb6accab3bcbe737d52747c328de5cc092d02Puneet Lall * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135d4fb6accab3bcbe737d52747c328de5cc092d02Puneet Lall * See the License for the specific language governing permissions and 145d4fb6accab3bcbe737d52747c328de5cc092d02Puneet Lall * limitations under the License. 155d4fb6accab3bcbe737d52747c328de5cc092d02Puneet Lall */ 165d4fb6accab3bcbe737d52747c328de5cc092d02Puneet Lall 179c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lallpackage com.android.camera.async; 185d4fb6accab3bcbe737d52747c328de5cc092d02Puneet Lall 199c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lallimport java.util.concurrent.Executor; 209c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall 219c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lallimport android.os.Handler; 225d4fb6accab3bcbe737d52747c328de5cc092d02Puneet Lall 23386c5b885b99f67f9c0a7380f4be153f28333089Puneet Lallimport javax.annotation.ParametersAreNonnullByDefault; 24386c5b885b99f67f9c0a7380f4be153f28333089Puneet Lall 255d4fb6accab3bcbe737d52747c328de5cc092d02Puneet Lall/** 269c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall * An {@link Executor} which posts to a {@link Handler}. 275d4fb6accab3bcbe737d52747c328de5cc092d02Puneet Lall */ 28386c5b885b99f67f9c0a7380f4be153f28333089Puneet Lall@ParametersAreNonnullByDefault 299c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lallpublic class HandlerExecutor implements Executor { 309c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall private final Handler mHandler; 319c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall 329c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall public HandlerExecutor(Handler handler) { 339c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall mHandler = handler; 349c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall } 359c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall 369c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall @Override 379c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall public void execute(Runnable runnable) { 389c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall mHandler.post(runnable); 399c94ab32a69a1ad3642a0f1e38e68bcfd97d3511Puneet Lall } 405d4fb6accab3bcbe737d52747c328de5cc092d02Puneet Lall} 41