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