| Index: adblockplussbrowser/src/main/java/org/adblockplus/sbrowser/contentblocker/engine/EngineService.java |
| =================================================================== |
| deleted file mode 100644 |
| --- a/adblockplussbrowser/src/main/java/org/adblockplus/sbrowser/contentblocker/engine/EngineService.java |
| +++ /dev/null |
| @@ -1,189 +0,0 @@ |
| -/* |
| - * This file is part of Adblock Plus <https://adblockplus.org/>, |
| - * Copyright (C) 2006-present eyeo GmbH |
| - * |
| - * Adblock Plus is free software: you can redistribute it and/or modify |
| - * it under the terms of the GNU General Public License version 3 as |
| - * published by the Free Software Foundation. |
| - * |
| - * Adblock Plus is distributed in the hope that it will be useful, |
| - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| - * GNU General Public License for more details. |
| - * |
| - * You should have received a copy of the GNU General Public License |
| - * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
| - */ |
| - |
| -package org.adblockplus.sbrowser.contentblocker.engine; |
| - |
| -import java.util.concurrent.LinkedBlockingQueue; |
| - |
| -import android.app.Service; |
| -import android.content.Context; |
| -import android.content.Intent; |
| -import android.os.IBinder; |
| -import android.util.Log; |
| - |
| -public final class EngineService extends Service |
| -{ |
| - private static final String TAG = EngineService.class.getSimpleName(); |
| - |
| - private volatile Engine engine = null; |
| - private volatile boolean isInitialized = false; |
| - private Throwable failureCause = null; |
| - private static final LinkedBlockingQueue<EngineCreatedCallbackWrapper> ON_CREATED_CALLBACKS = |
| - new LinkedBlockingQueue<>(); |
| - |
| - @Override |
| - public int onStartCommand(Intent intent, int flags, int startId) |
| - { |
| - return Service.START_NOT_STICKY; |
| - } |
| - |
| - /** |
| - * The callback gets executed on the UI thread. |
| - * |
| - * @param context |
| - * @param callback |
| - */ |
| - public static void startService(final Context context, final OnEngineCreatedCallback callback) |
| - { |
| - startService(context, callback, true); |
| - } |
| - |
| - /** |
| - * |
| - * @param context |
| - * @param callback |
| - * @param runOnUiThread |
| - * {@code true} if the callback should be executed on the UI thread |
| - */ |
| - public static void startService(final Context context, final OnEngineCreatedCallback callback, |
| - final boolean runOnUiThread) |
| - { |
| - context.startService(new Intent(context, EngineService.class)); |
| - ON_CREATED_CALLBACKS.offer(new EngineCreatedCallbackWrapper(callback, runOnUiThread)); |
| - } |
| - |
| - @Override |
| - public void onCreate() |
| - { |
| - super.onCreate(); |
| - startDaemonThread(new Initializer(this)); |
| - startDaemonThread(new CreationNotifier(this)); |
| - } |
| - |
| - @Override |
| - public IBinder onBind(Intent intent) |
| - { |
| - return null; |
| - } |
| - |
| - private static void startDaemonThread(final Runnable runnable) |
| - { |
| - final Thread t = new Thread(runnable); |
| - t.setDaemon(true); |
| - t.start(); |
| - } |
| - |
| - private static class Initializer implements Runnable |
| - { |
| - private final EngineService service; |
| - |
| - public Initializer(final EngineService service) |
| - { |
| - this.service = service; |
| - } |
| - |
| - @Override |
| - public void run() |
| - { |
| - try |
| - { |
| - this.service.engine = Engine.create(this.service.getApplicationContext()); |
| - } |
| - catch (Throwable t) |
| - { |
| - Log.e(TAG, "Initialization failed: " + t.getMessage(), t); |
| - this.service.failureCause = t; |
| - } |
| - finally |
| - { |
| - this.service.isInitialized = true; |
| - } |
| - } |
| - } |
| - |
| - private static class CreationNotifier implements Runnable |
| - { |
| - private static final String TAG = CreationNotifier.class.getSimpleName(); |
| - private final EngineService service; |
| - |
| - public CreationNotifier(final EngineService service) |
| - { |
| - this.service = service; |
| - } |
| - |
| - @Override |
| - public void run() |
| - { |
| - try |
| - { |
| - while (!this.service.isInitialized) |
| - { |
| - Thread.sleep(250); |
| - } |
| - |
| - for (;;) |
| - { |
| - final EngineCreatedCallbackWrapper wrapper = EngineService.ON_CREATED_CALLBACKS.take(); |
| - if (wrapper != null) |
| - { |
| - if (wrapper.runOnUiThread) |
| - { |
| - Engine.runOnUiThread(new Runnable() |
| - { |
| - private final EngineService service = CreationNotifier.this.service; |
| - |
| - @Override |
| - public void run() |
| - { |
| - wrapper.callback.onEngineCreated(this.service.engine, |
| - this.service.failureCause == null); |
| - } |
| - }); |
| - } |
| - else |
| - { |
| - wrapper.callback.onEngineCreated(this.service.engine, |
| - this.service.failureCause == null); |
| - } |
| - } |
| - } |
| - } |
| - catch (final Throwable t) |
| - { |
| - Log.e(TAG, "Notifier died: " + t.getMessage(), t); |
| - } |
| - } |
| - } |
| - |
| - public interface OnEngineCreatedCallback |
| - { |
| - void onEngineCreated(Engine engine, boolean success); |
| - } |
| - |
| - private static class EngineCreatedCallbackWrapper |
| - { |
| - final OnEngineCreatedCallback callback; |
| - final boolean runOnUiThread; |
| - |
| - public EngineCreatedCallbackWrapper(final OnEngineCreatedCallback callback, |
| - final boolean runOnUiThread) |
| - { |
| - this.callback = callback; |
| - this.runOnUiThread = runOnUiThread; |
| - } |
| - } |
| -} |