Index: src/org/adblockplus/sbrowser/contentblocker/ContentBlockerContentProvider.java |
=================================================================== |
--- a/src/org/adblockplus/sbrowser/contentblocker/ContentBlockerContentProvider.java |
+++ b/src/org/adblockplus/sbrowser/contentblocker/ContentBlockerContentProvider.java |
@@ -22,30 +22,28 @@ import java.io.FileNotFoundException; |
import java.io.IOException; |
import org.adblockplus.adblockplussbrowser.R; |
import org.adblockplus.sbrowser.contentblocker.engine.Engine; |
import org.adblockplus.sbrowser.contentblocker.engine.EngineService; |
import android.content.ContentProvider; |
import android.content.ContentValues; |
+import android.content.Intent; |
import android.content.SharedPreferences; |
import android.database.Cursor; |
import android.net.Uri; |
import android.os.Bundle; |
import android.os.ParcelFileDescriptor; |
import android.preference.PreferenceManager; |
import android.util.Log; |
-public class ContentBlockerContentProvider extends ContentProvider implements |
- EngineService.OnEngineCreatedCallback |
+public class ContentBlockerContentProvider extends ContentProvider |
{ |
private static final String TAG = ContentBlockerContentProvider.class.getSimpleName(); |
- private volatile Engine engine = null; |
- private volatile boolean engineInitDone = false; |
@Override |
public Bundle call(String method, String arg, Bundle extras) |
{ |
// As of SBC interface v1.4 we return `null` here to signal that we do not |
// use encryption |
return null; |
} |
@@ -76,60 +74,36 @@ public class ContentBlockerContentProvid |
.commit(); |
} |
} |
@Override |
public ParcelFileDescriptor openFile(final Uri uri, final String mode) |
throws FileNotFoundException |
{ |
- if (!this.engineInitDone) |
- { |
- Log.i(TAG, "Engine not ready yet, waiting..."); |
- while (!this.engineInitDone) |
- { |
- try |
- { |
- Thread.sleep(10); |
- } |
- catch (InterruptedException e) |
- { |
- Log.e(TAG, "Interrupted: " + e.getMessage(), e); |
- return null; |
- } |
- } |
- Log.i(TAG, "Engine ready"); |
- } |
- |
- if (this.engine == null) |
- { |
- Log.e(TAG, "Engine failed to initialize"); |
- return null; |
- } |
- |
try |
{ |
this.setApplicationActivated(); |
Log.d(TAG, "Writing filters..."); |
- final File filterFile = this.engine.createAndWriteFile(); |
+ final File filterFile = Engine.getOrCreateCachedFilterFile(getContext()); |
Log.d(TAG, "Delivering filters..."); |
return ParcelFileDescriptor.open(filterFile, ParcelFileDescriptor.MODE_READ_ONLY); |
} |
catch (IOException e) |
{ |
Log.e(TAG, "File creation failed: " + e.getMessage(), e); |
return null; |
} |
} |
@Override |
public boolean onCreate() |
{ |
Log.i(TAG, "onCreate() called"); |
- EngineService.startService(this.getContext().getApplicationContext(), this, false); |
+ getContext().startService(new Intent(getContext(), EngineService.class)); |
Log.i(TAG, "Requested service startup"); |
return true; |
} |
@Override |
public Cursor query(final Uri uri, final String[] projection, final String selection, |
final String[] selectionArgs, final String sortOrder) |
{ |
@@ -155,20 +129,9 @@ public class ContentBlockerContentProvid |
} |
@Override |
public int update(final Uri uri, final ContentValues values, final String selection, |
final String[] selectionArgs) |
{ |
return 0; |
} |
- |
- @Override |
- public void onEngineCreated(Engine engine, boolean success) |
- { |
- Log.i(TAG, "Service started, success: " + success); |
- this.engineInitDone = true; |
- if (success) |
- { |
- this.engine = engine; |
- } |
- } |
} |