Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: src/org/adblockplus/android/Preferences.java

Issue 11172036: ABP/Android libadblockplus integration (Closed)
Patch Set: Created July 22, 2013, 8:52 a.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/org/adblockplus/android/Preferences.java
===================================================================
--- a/src/org/adblockplus/android/Preferences.java
+++ b/src/org/adblockplus/android/Preferences.java
@@ -22,7 +22,6 @@
import java.io.OutputStream;
import java.util.Calendar;
import java.util.Date;
-import java.util.List;
import org.jraf.android.backport.switchwidget.SwitchPreference;
@@ -100,14 +99,20 @@
{
copyAssets();
}
+ }
+ @Override
+ protected void onStart()
+ {
+ super.onStart();
AdblockPlus application = AdblockPlus.getApplication();
+ application.startEngine();
// Initialize subscription list
subscriptionList = (RefreshableListPreference) findPreference(getString(R.string.pref_subscription));
- List<Subscription> subscriptions = application.getSubscriptions();
- String[] entries = new String[subscriptions.size()];
- String[] entryValues = new String[subscriptions.size()];
+ Subscription[] subscriptions = application.getRecommendedSubscriptions();
+ String[] entries = new String[subscriptions.length];
+ String[] entryValues = new String[subscriptions.length];
int i = 0;
for (Subscription subscription : subscriptions)
{
@@ -116,16 +121,7 @@
i++;
}
subscriptionList.setEntries(entries);
- subscriptionList.setEntryValues(entryValues);
- }
-
- @Override
- protected void onStart()
- {
- super.onStart();
- AdblockPlus application = AdblockPlus.getApplication();
- application.startEngine();
- application.startInteractive();
+ subscriptionList.setEntryValues(entryValues);
Felix Dahlke 2013/09/13 14:40:39 Nit: Trailing whitespace.
}
@Override
@@ -136,22 +132,21 @@
final AdblockPlus application = AdblockPlus.getApplication();
+ Subscription current = null;
+ Subscription[] subscriptions = application.getListedSubscriptions();
+ if (subscriptions.length > 0)
+ {
+ current = subscriptions[0];
+ }
+
boolean firstRun = false;
Wladimir Palant 2013/09/12 11:31:14 I don't think you need the firstRun variable, just
-
- // Get current subscription
- String current = prefs.getString(getString(R.string.pref_subscription), (String) null);
-
- // If there is no current subscription autoselect one
- if (current == null)
+ if (application.isFirstRun())
{
firstRun = true;
- Subscription offer = application.offerSubscription();
- current = offer.url;
- if (offer != null)
+
+ if (current != null)
{
- subscriptionList.setValue(offer.url);
- application.setSubscription(offer);
- new AlertDialog.Builder(this).setTitle(R.string.app_name).setMessage(String.format(getString(R.string.msg_subscription_offer, offer.title))).setIcon(android.R.drawable.ic_dialog_info)
+ new AlertDialog.Builder(this).setTitle(R.string.app_name).setMessage(String.format(getString(R.string.msg_subscription_offer, current.title))).setIcon(android.R.drawable.ic_dialog_info)
.setPositiveButton(R.string.ok, null).create().show();
}
}
@@ -162,7 +157,7 @@
@Override
public void onClick(View v)
{
- application.refreshSubscription();
+ application.refreshSubscriptions();
}
});
@@ -177,26 +172,19 @@
registerReceiver(receiver, new IntentFilter(ProxyService.BROADCAST_STATE_CHANGED));
registerReceiver(receiver, new IntentFilter(ProxyService.BROADCAST_PROXY_FAILED));
- final String url = current;
-
- // Initialize subscription verification
- (new Thread()
+ // Update service and UI state according to user settings
+ if (current != null)
{
- @Override
- public void run()
- {
- if (!application.verifySubscriptions())
- {
- Subscription subscription = application.getSubscription(url);
- application.setSubscription(subscription);
- }
- }
- }).start();
-
- // Update service and UI state according to user settings
+ subscriptionList.setValue(current.url);
+ application.actualizeSubscriptionStatus(current.url);
+ }
boolean enabled = prefs.getBoolean(getString(R.string.pref_enabled), false);
boolean proxyenabled = prefs.getBoolean(getString(R.string.pref_proxyenabled), true);
boolean autoconfigured = prefs.getBoolean(getString(R.string.pref_proxyautoconfigured), false);
+
+ // This is weird but UI does not update on back button (when returning from advanced preferences)
+ ((SwitchPreference) findPreference(getString(R.string.pref_enabled))).setChecked(enabled);
+
if (enabled || firstRun)
setFilteringEnabled(true);
if (enabled || firstRun || (proxyenabled && !autoconfigured))
@@ -229,9 +217,8 @@
{
super.onStop();
AdblockPlus application = AdblockPlus.getApplication();
- application.stopInteractive();
if (!application.isFilteringEnabled())
- application.stopEngine(true);
+ application.stopEngine();
}
@Override
@@ -393,9 +380,9 @@
}
else if (getString(R.string.pref_subscription).equals(key))
{
- String current = sharedPreferences.getString(key, null);
- Subscription subscription = application.getSubscription(current);
- application.setSubscription(subscription);
+ String url = sharedPreferences.getString(key, null);
+ if (url != null)
+ application.setSubscription(url);
}
else if (getString(R.string.pref_hideicon).equals(key))
{
@@ -457,7 +444,8 @@
}
if (action.equals(AdblockPlus.BROADCAST_SUBSCRIPTION_STATUS))
{
- final String text = extra.getString("text");
+ //TODO Should check if url matches active subscription
+ final String text = extra.getString("status");
final long time = extra.getLong("time");
runOnUiThread(new Runnable()
{

Powered by Google App Engine
This is Rietveld