Left: | ||
Right: |
OLD | NEW |
---|---|
1 /* | 1 /* |
2 * This file is part of Adblock Plus <http://adblockplus.org/>, | 2 * This file is part of Adblock Plus <http://adblockplus.org/>, |
3 * Copyright (C) 2006-2013 Eyeo GmbH | 3 * Copyright (C) 2006-2013 Eyeo GmbH |
4 * | 4 * |
5 * Adblock Plus is free software: you can redistribute it and/or modify | 5 * Adblock Plus is free software: you can redistribute it and/or modify |
6 * it under the terms of the GNU General Public License version 3 as | 6 * it under the terms of the GNU General Public License version 3 as |
7 * published by the Free Software Foundation. | 7 * published by the Free Software Foundation. |
8 * | 8 * |
9 * Adblock Plus is distributed in the hope that it will be useful, | 9 * Adblock Plus is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
12 * GNU General Public License for more details. | 12 * GNU General Public License for more details. |
13 * | 13 * |
14 * You should have received a copy of the GNU General Public License | 14 * You should have received a copy of the GNU General Public License |
15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. | 15 * along with Adblock Plus. If not, see <http://www.gnu.org/licenses/>. |
16 */ | 16 */ |
17 | 17 |
18 package org.adblockplus.android; | 18 package org.adblockplus.android; |
19 | 19 |
20 import java.io.IOException; | 20 import java.io.IOException; |
21 import java.io.InputStream; | 21 import java.io.InputStream; |
22 import java.io.OutputStream; | 22 import java.io.OutputStream; |
23 import java.util.Calendar; | 23 import java.util.Calendar; |
24 import java.util.Date; | 24 import java.util.Date; |
25 import java.util.List; | |
26 | 25 |
27 import org.jraf.android.backport.switchwidget.SwitchPreference; | 26 import org.jraf.android.backport.switchwidget.SwitchPreference; |
28 | 27 |
29 import android.app.AlertDialog; | 28 import android.app.AlertDialog; |
30 import android.app.Dialog; | 29 import android.app.Dialog; |
31 import android.content.BroadcastReceiver; | 30 import android.content.BroadcastReceiver; |
32 import android.content.ComponentName; | 31 import android.content.ComponentName; |
33 import android.content.Context; | 32 import android.content.Context; |
34 import android.content.DialogInterface; | 33 import android.content.DialogInterface; |
35 import android.content.Intent; | 34 import android.content.Intent; |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
93 copyAssets(); | 92 copyAssets(); |
94 SharedPreferences.Editor editor = prefs.edit(); | 93 SharedPreferences.Editor editor = prefs.edit(); |
95 editor.putInt(getString(R.string.pref_version), thisVersion); | 94 editor.putInt(getString(R.string.pref_version), thisVersion); |
96 editor.commit(); | 95 editor.commit(); |
97 } | 96 } |
98 } | 97 } |
99 catch (NameNotFoundException e) | 98 catch (NameNotFoundException e) |
100 { | 99 { |
101 copyAssets(); | 100 copyAssets(); |
102 } | 101 } |
102 } | |
103 | 103 |
104 @Override | |
105 protected void onStart() | |
106 { | |
107 super.onStart(); | |
104 AdblockPlus application = AdblockPlus.getApplication(); | 108 AdblockPlus application = AdblockPlus.getApplication(); |
109 application.startEngine(); | |
105 | 110 |
106 // Initialize subscription list | 111 // Initialize subscription list |
107 subscriptionList = (RefreshableListPreference) findPreference(getString(R.st ring.pref_subscription)); | 112 subscriptionList = (RefreshableListPreference) findPreference(getString(R.st ring.pref_subscription)); |
108 List<Subscription> subscriptions = application.getSubscriptions(); | 113 Subscription[] subscriptions = application.getRecommendedSubscriptions(); |
109 String[] entries = new String[subscriptions.size()]; | 114 String[] entries = new String[subscriptions.length]; |
110 String[] entryValues = new String[subscriptions.size()]; | 115 String[] entryValues = new String[subscriptions.length]; |
111 int i = 0; | 116 int i = 0; |
112 for (Subscription subscription : subscriptions) | 117 for (Subscription subscription : subscriptions) |
113 { | 118 { |
114 entries[i] = subscription.title; | 119 entries[i] = subscription.title; |
115 entryValues[i] = subscription.url; | 120 entryValues[i] = subscription.url; |
116 i++; | 121 i++; |
117 } | 122 } |
118 subscriptionList.setEntries(entries); | 123 subscriptionList.setEntries(entries); |
119 subscriptionList.setEntryValues(entryValues); | 124 subscriptionList.setEntryValues(entryValues); |
Felix Dahlke
2013/09/13 14:40:39
Nit: Trailing whitespace.
| |
120 } | 125 } |
121 | 126 |
122 @Override | 127 @Override |
123 protected void onStart() | |
124 { | |
125 super.onStart(); | |
126 AdblockPlus application = AdblockPlus.getApplication(); | |
127 application.startEngine(); | |
128 application.startInteractive(); | |
129 } | |
130 | |
131 @Override | |
132 public void onResume() | 128 public void onResume() |
133 { | 129 { |
134 super.onResume(); | 130 super.onResume(); |
135 SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this ); | 131 SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this ); |
136 | 132 |
137 final AdblockPlus application = AdblockPlus.getApplication(); | 133 final AdblockPlus application = AdblockPlus.getApplication(); |
138 | 134 |
135 Subscription current = null; | |
136 Subscription[] subscriptions = application.getListedSubscriptions(); | |
137 if (subscriptions.length > 0) | |
138 { | |
139 current = subscriptions[0]; | |
140 } | |
141 | |
139 boolean firstRun = false; | 142 boolean firstRun = false; |
Wladimir Palant
2013/09/12 11:31:14
I don't think you need the firstRun variable, just
| |
140 | 143 if (application.isFirstRun()) |
141 // Get current subscription | |
142 String current = prefs.getString(getString(R.string.pref_subscription), (Str ing) null); | |
143 | |
144 // If there is no current subscription autoselect one | |
145 if (current == null) | |
146 { | 144 { |
147 firstRun = true; | 145 firstRun = true; |
148 Subscription offer = application.offerSubscription(); | 146 |
149 current = offer.url; | 147 if (current != null) |
150 if (offer != null) | |
151 { | 148 { |
152 subscriptionList.setValue(offer.url); | 149 new AlertDialog.Builder(this).setTitle(R.string.app_name).setMessage(Str ing.format(getString(R.string.msg_subscription_offer, current.title))).setIcon(a ndroid.R.drawable.ic_dialog_info) |
153 application.setSubscription(offer); | |
154 new AlertDialog.Builder(this).setTitle(R.string.app_name).setMessage(Str ing.format(getString(R.string.msg_subscription_offer, offer.title))).setIcon(and roid.R.drawable.ic_dialog_info) | |
155 .setPositiveButton(R.string.ok, null).create().show(); | 150 .setPositiveButton(R.string.ok, null).create().show(); |
156 } | 151 } |
157 } | 152 } |
158 | 153 |
159 // Enable manual subscription refresh | 154 // Enable manual subscription refresh |
160 subscriptionList.setOnRefreshClickListener(new View.OnClickListener() | 155 subscriptionList.setOnRefreshClickListener(new View.OnClickListener() |
161 { | 156 { |
162 @Override | 157 @Override |
163 public void onClick(View v) | 158 public void onClick(View v) |
164 { | 159 { |
165 application.refreshSubscription(); | 160 application.refreshSubscriptions(); |
166 } | 161 } |
167 }); | 162 }); |
168 | 163 |
169 // Set subscription status message | 164 // Set subscription status message |
170 if (subscriptionSummary != null) | 165 if (subscriptionSummary != null) |
171 subscriptionList.setSummary(subscriptionSummary); | 166 subscriptionList.setSummary(subscriptionSummary); |
172 else | 167 else |
173 setPrefSummary(subscriptionList); | 168 setPrefSummary(subscriptionList); |
174 | 169 |
175 // Time to start listening for events | 170 // Time to start listening for events |
176 registerReceiver(receiver, new IntentFilter(AdblockPlus.BROADCAST_SUBSCRIPTI ON_STATUS)); | 171 registerReceiver(receiver, new IntentFilter(AdblockPlus.BROADCAST_SUBSCRIPTI ON_STATUS)); |
177 registerReceiver(receiver, new IntentFilter(ProxyService.BROADCAST_STATE_CHA NGED)); | 172 registerReceiver(receiver, new IntentFilter(ProxyService.BROADCAST_STATE_CHA NGED)); |
178 registerReceiver(receiver, new IntentFilter(ProxyService.BROADCAST_PROXY_FAI LED)); | 173 registerReceiver(receiver, new IntentFilter(ProxyService.BROADCAST_PROXY_FAI LED)); |
179 | 174 |
180 final String url = current; | 175 // Update service and UI state according to user settings |
181 | 176 if (current != null) |
182 // Initialize subscription verification | |
183 (new Thread() | |
184 { | 177 { |
185 @Override | 178 subscriptionList.setValue(current.url); |
186 public void run() | 179 application.actualizeSubscriptionStatus(current.url); |
187 { | 180 } |
188 if (!application.verifySubscriptions()) | |
189 { | |
190 Subscription subscription = application.getSubscription(url); | |
191 application.setSubscription(subscription); | |
192 } | |
193 } | |
194 }).start(); | |
195 | |
196 // Update service and UI state according to user settings | |
197 boolean enabled = prefs.getBoolean(getString(R.string.pref_enabled), false); | 181 boolean enabled = prefs.getBoolean(getString(R.string.pref_enabled), false); |
198 boolean proxyenabled = prefs.getBoolean(getString(R.string.pref_proxyenabled ), true); | 182 boolean proxyenabled = prefs.getBoolean(getString(R.string.pref_proxyenabled ), true); |
199 boolean autoconfigured = prefs.getBoolean(getString(R.string.pref_proxyautoc onfigured), false); | 183 boolean autoconfigured = prefs.getBoolean(getString(R.string.pref_proxyautoc onfigured), false); |
184 | |
185 // This is weird but UI does not update on back button (when returning from advanced preferences) | |
186 ((SwitchPreference) findPreference(getString(R.string.pref_enabled))).setChe cked(enabled); | |
187 | |
200 if (enabled || firstRun) | 188 if (enabled || firstRun) |
201 setFilteringEnabled(true); | 189 setFilteringEnabled(true); |
202 if (enabled || firstRun || (proxyenabled && !autoconfigured)) | 190 if (enabled || firstRun || (proxyenabled && !autoconfigured)) |
203 setProxyEnabled(true); | 191 setProxyEnabled(true); |
204 | 192 |
205 bindService(new Intent(this, ProxyService.class), proxyServiceConnection, 0) ; | 193 bindService(new Intent(this, ProxyService.class), proxyServiceConnection, 0) ; |
206 } | 194 } |
207 | 195 |
208 @Override | 196 @Override |
209 public void onPause() | 197 public void onPause() |
(...skipping 12 matching lines...) Expand all Loading... | |
222 proxyService = null; | 210 proxyService = null; |
223 | 211 |
224 hideConfigurationMsg(); | 212 hideConfigurationMsg(); |
225 } | 213 } |
226 | 214 |
227 @Override | 215 @Override |
228 protected void onStop() | 216 protected void onStop() |
229 { | 217 { |
230 super.onStop(); | 218 super.onStop(); |
231 AdblockPlus application = AdblockPlus.getApplication(); | 219 AdblockPlus application = AdblockPlus.getApplication(); |
232 application.stopInteractive(); | |
233 if (!application.isFilteringEnabled()) | 220 if (!application.isFilteringEnabled()) |
234 application.stopEngine(true); | 221 application.stopEngine(); |
235 } | 222 } |
236 | 223 |
237 @Override | 224 @Override |
238 public boolean onCreateOptionsMenu(Menu menu) | 225 public boolean onCreateOptionsMenu(Menu menu) |
239 { | 226 { |
240 MenuInflater inflater = getSupportMenuInflater(); | 227 MenuInflater inflater = getSupportMenuInflater(); |
241 inflater.inflate(R.menu.menu_preferences, menu); | 228 inflater.inflate(R.menu.menu_preferences, menu); |
242 return true; | 229 return true; |
243 } | 230 } |
244 | 231 |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
386 setProxyEnabled(true); | 373 setProxyEnabled(true); |
387 } | 374 } |
388 else if (serviceRunning && autoconfigured) | 375 else if (serviceRunning && autoconfigured) |
389 { | 376 { |
390 // If user disabled filtering disable proxy only if it was autoconfigure d | 377 // If user disabled filtering disable proxy only if it was autoconfigure d |
391 stopService(new Intent(this, ProxyService.class)); | 378 stopService(new Intent(this, ProxyService.class)); |
392 } | 379 } |
393 } | 380 } |
394 else if (getString(R.string.pref_subscription).equals(key)) | 381 else if (getString(R.string.pref_subscription).equals(key)) |
395 { | 382 { |
396 String current = sharedPreferences.getString(key, null); | 383 String url = sharedPreferences.getString(key, null); |
397 Subscription subscription = application.getSubscription(current); | 384 if (url != null) |
398 application.setSubscription(subscription); | 385 application.setSubscription(url); |
399 } | 386 } |
400 else if (getString(R.string.pref_hideicon).equals(key)) | 387 else if (getString(R.string.pref_hideicon).equals(key)) |
401 { | 388 { |
402 boolean hideIcon = sharedPreferences.getBoolean(key, false); | 389 boolean hideIcon = sharedPreferences.getBoolean(key, false); |
403 if (hideIcon) | 390 if (hideIcon) |
404 showDialog(HIDEICONWARNING_DIALOG); | 391 showDialog(HIDEICONWARNING_DIALOG); |
405 if (proxyService != null) | 392 if (proxyService != null) |
406 proxyService.setEmptyIcon(hideIcon); | 393 proxyService.setEmptyIcon(hideIcon); |
407 } | 394 } |
408 super.onSharedPreferenceChanged(sharedPreferences, key); | 395 super.onSharedPreferenceChanged(sharedPreferences, key); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
450 } | 437 } |
451 } | 438 } |
452 if (action.equals(ProxyService.BROADCAST_PROXY_FAILED)) | 439 if (action.equals(ProxyService.BROADCAST_PROXY_FAILED)) |
453 { | 440 { |
454 String msg = extra.getString("msg"); | 441 String msg = extra.getString("msg"); |
455 new AlertDialog.Builder(Preferences.this).setTitle(R.string.error).setMe ssage(msg).setIcon(android.R.drawable.ic_dialog_alert).setPositiveButton(R.strin g.ok, null).create().show(); | 442 new AlertDialog.Builder(Preferences.this).setTitle(R.string.error).setMe ssage(msg).setIcon(android.R.drawable.ic_dialog_alert).setPositiveButton(R.strin g.ok, null).create().show(); |
456 setFilteringEnabled(false); | 443 setFilteringEnabled(false); |
457 } | 444 } |
458 if (action.equals(AdblockPlus.BROADCAST_SUBSCRIPTION_STATUS)) | 445 if (action.equals(AdblockPlus.BROADCAST_SUBSCRIPTION_STATUS)) |
459 { | 446 { |
460 final String text = extra.getString("text"); | 447 //TODO Should check if url matches active subscription |
448 final String text = extra.getString("status"); | |
461 final long time = extra.getLong("time"); | 449 final long time = extra.getLong("time"); |
462 runOnUiThread(new Runnable() | 450 runOnUiThread(new Runnable() |
463 { | 451 { |
464 public void run() | 452 public void run() |
465 { | 453 { |
466 setSubscriptionStatus(text, time); | 454 setSubscriptionStatus(text, time); |
467 } | 455 } |
468 }); | 456 }); |
469 } | 457 } |
470 } | 458 } |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
536 showConfigurationMsg(getString(R.string.msg_configuration)); | 524 showConfigurationMsg(getString(R.string.msg_configuration)); |
537 } | 525 } |
538 | 526 |
539 public void onServiceDisconnected(ComponentName className) | 527 public void onServiceDisconnected(ComponentName className) |
540 { | 528 { |
541 proxyService = null; | 529 proxyService = null; |
542 Log.d(TAG, "Proxy service disconnected"); | 530 Log.d(TAG, "Proxy service disconnected"); |
543 } | 531 } |
544 }; | 532 }; |
545 } | 533 } |
OLD | NEW |