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

Delta Between Two Patch Sets: mobile/android/base/BrowserApp.java

Issue 5365916275572736: Issue 2351 - Add a custom menu item for whitelisting the current site (Closed)
Left Patch Set: Add missing break Created April 27, 2015, 9:47 a.m.
Right Patch Set: Address comments, rename location, change item label Created May 6, 2015, 4:41 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « adblockplus/Api.jsm ('k') | mobile/android/base/locales/en-US/android_strings.dtd » ('j') | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
1 /* -*- Mode: Java; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: nil; -*- 1 /* -*- Mode: Java; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: nil; -*-
2 * This Source Code Form is subject to the terms of the Mozilla Public 2 * This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 5
6 package org.mozilla.gecko; 6 package org.mozilla.gecko;
7 7
8 import java.io.File; 8 import java.io.File;
9 import java.io.FileNotFoundException; 9 import java.io.FileNotFoundException;
10 import java.lang.reflect.Method; 10 import java.lang.reflect.Method;
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 Log.d(LOGTAG, "BrowserApp.onTabChanged: " + tab.getId() + ": " + msg); 246 Log.d(LOGTAG, "BrowserApp.onTabChanged: " + tab.getId() + ": " + msg);
247 switch(msg) { 247 switch(msg) {
248 case LOCATION_CHANGE: 248 case LOCATION_CHANGE:
249 if (Tabs.getInstance().isSelectedTab(tab)) { 249 if (Tabs.getInstance().isSelectedTab(tab)) {
250 maybeCancelFaviconLoad(tab); 250 maybeCancelFaviconLoad(tab);
251 } 251 }
252 // fall through 252 // fall through
253 case SELECTED: 253 case SELECTED:
254 if (Tabs.getInstance().isSelectedTab(tab)) { 254 if (Tabs.getInstance().isSelectedTab(tab)) {
255 updateHomePagerForTab(tab); 255 updateHomePagerForTab(tab);
256 if (mMenu != null)
257 org.adblockplus.browser.BrowserAppUtils.updateBlockAdsMe nuItem(
258 mMenu.findItem(R.id.block_ads));
256 } 259 }
257 break; 260 break;
258 case START: 261 case START:
259 if (Tabs.getInstance().isSelectedTab(tab)) { 262 if (Tabs.getInstance().isSelectedTab(tab)) {
260 invalidateOptionsMenu(); 263 invalidateOptionsMenu();
261 264
262 if (mDynamicToolbar.isEnabled()) { 265 if (mDynamicToolbar.isEnabled()) {
263 mDynamicToolbar.setVisible(true, VisibilityTransition.AN IMATE); 266 mDynamicToolbar.setVisible(true, VisibilityTransition.AN IMATE);
264 } 267 }
265 } 268 }
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
552 "Feedback:MaybeLater", 555 "Feedback:MaybeLater",
553 "Feedback:OpenPlayStore", 556 "Feedback:OpenPlayStore",
554 "Menu:Add", 557 "Menu:Add",
555 "Menu:Remove", 558 "Menu:Remove",
556 "Reader:ListStatusRequest", 559 "Reader:ListStatusRequest",
557 "Reader:Removed", 560 "Reader:Removed",
558 "Reader:Share", 561 "Reader:Share",
559 "Settings:Show", 562 "Settings:Show",
560 "Telemetry:Gather", 563 "Telemetry:Gather",
561 "Updater:Launch", 564 "Updater:Launch",
562 "BrowserToolbar:Visibility", 565 "BrowserToolbar:Visibility");
563 "BlockAds:Update");
564 566
565 Distribution distribution = Distribution.init(this); 567 Distribution distribution = Distribution.init(this);
566 568
567 // Init suggested sites engine in BrowserDB. 569 // Init suggested sites engine in BrowserDB.
568 final SuggestedSites suggestedSites = new SuggestedSites(appContext, dis tribution); 570 final SuggestedSites suggestedSites = new SuggestedSites(appContext, dis tribution);
569 BrowserDB.setSuggestedSites(suggestedSites); 571 BrowserDB.setSuggestedSites(suggestedSites);
570 572
571 JavaAddonManager.getInstance().init(appContext); 573 JavaAddonManager.getInstance().init(appContext);
572 mSharedPreferencesHelper = new SharedPreferencesHelper(appContext); 574 mSharedPreferencesHelper = new SharedPreferencesHelper(appContext);
573 mOrderedBroadcastHelper = new OrderedBroadcastHelper(appContext); 575 mOrderedBroadcastHelper = new OrderedBroadcastHelper(appContext);
(...skipping 417 matching lines...) Expand 10 before | Expand all | Expand 10 after
991 "Feedback:MaybeLater", 993 "Feedback:MaybeLater",
992 "Feedback:OpenPlayStore", 994 "Feedback:OpenPlayStore",
993 "Menu:Add", 995 "Menu:Add",
994 "Menu:Remove", 996 "Menu:Remove",
995 "Reader:ListStatusRequest", 997 "Reader:ListStatusRequest",
996 "Reader:Removed", 998 "Reader:Removed",
997 "Reader:Share", 999 "Reader:Share",
998 "Settings:Show", 1000 "Settings:Show",
999 "Telemetry:Gather", 1001 "Telemetry:Gather",
1000 "Updater:Launch", 1002 "Updater:Launch",
1001 "BrowserToolbar:Visibility", 1003 "BrowserToolbar:Visibility");
1002 "BlockAds:Update");
1003 1004
1004 if (AppConstants.MOZ_ANDROID_BEAM) { 1005 if (AppConstants.MOZ_ANDROID_BEAM) {
1005 NfcAdapter nfc = NfcAdapter.getDefaultAdapter(this); 1006 NfcAdapter nfc = NfcAdapter.getDefaultAdapter(this);
1006 if (nfc != null) { 1007 if (nfc != null) {
1007 // null this out even though the docs say it's not needed, 1008 // null this out even though the docs say it's not needed,
1008 // because the source code looks like it will only do this 1009 // because the source code looks like it will only do this
1009 // automatically on API 14+ 1010 // automatically on API 14+
1010 nfc.setNdefPushMessageCallback(null, this); 1011 nfc.setNdefPushMessageCallback(null, this);
1011 } 1012 }
1012 } 1013 }
(...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after
1387 Telemetry.HistogramAdd("FENNEC_THUMBNAILS_COUNT", 1388 Telemetry.HistogramAdd("FENNEC_THUMBNAILS_COUNT",
1388 BrowserDB.getCount(getContentResolver(), "thumbnails")); 1389 BrowserDB.getCount(getContentResolver(), "thumbnails"));
1389 Telemetry.HistogramAdd("FENNEC_READING_LIST_COUNT", 1390 Telemetry.HistogramAdd("FENNEC_READING_LIST_COUNT",
1390 BrowserDB.getCount(getContentResolver(), "readinglist")); 1391 BrowserDB.getCount(getContentResolver(), "readinglist"));
1391 Telemetry.HistogramAdd("BROWSER_IS_USER_DEFAULT", (isDefaultBrowser( ) ? 1 : 0)); 1392 Telemetry.HistogramAdd("BROWSER_IS_USER_DEFAULT", (isDefaultBrowser( ) ? 1 : 0));
1392 } else if ("Updater:Launch".equals(event)) { 1393 } else if ("Updater:Launch".equals(event)) {
1393 handleUpdaterLaunch(); 1394 handleUpdaterLaunch();
1394 1395
1395 } else if ("BrowserToolbar:Visibility".equals(event)) { 1396 } else if ("BrowserToolbar:Visibility".equals(event)) {
1396 setBrowserToolbarVisible(message.getBoolean("visible")); 1397 setBrowserToolbarVisible(message.getBoolean("visible"));
1397
1398 } else if ("BlockAds:Update".equals(event)) {
1399 final Menu menu = mMenu;
1400 final boolean enabled = message.getBoolean("canBlockAds");
1401 final boolean checked = message.getBoolean("blockAds");
1402 ThreadUtils.postToUiThread(new Runnable() {
1403 @Override
1404 public void run() {
1405 if (menu == null)
1406 return;
1407 final MenuItem blockAdsItem = menu.findItem(R.id.block_a ds);
1408 blockAdsItem.setEnabled(enabled);
1409 blockAdsItem.setChecked(checked);
1410 }
1411 });
1412
1413 1398
1414 } else { 1399 } else {
1415 super.handleMessage(event, message, callback); 1400 super.handleMessage(event, message, callback);
1416 } 1401 }
1417 } 1402 }
1418 1403
1419 /** 1404 /**
1420 * Use a dummy Intent to do a default browser check. 1405 * Use a dummy Intent to do a default browser check.
1421 * 1406 *
1422 * @return true if this package is the default browser on this device, false otherwise. 1407 * @return true if this package is the default browser on this device, false otherwise.
(...skipping 869 matching lines...) Expand 10 before | Expand all | Expand 10 after
2292 } 2277 }
2293 2278
2294 return null; 2279 return null;
2295 } 2280 }
2296 2281
2297 /** 2282 /**
2298 * Add the provided item to the provided menu, which should be 2283 * Add the provided item to the provided menu, which should be
2299 * the root (mMenu). 2284 * the root (mMenu).
2300 */ 2285 */
2301 private void addAddonMenuItemToMenu(final Menu menu, final MenuItemInfo info ) { 2286 private void addAddonMenuItemToMenu(final Menu menu, final MenuItemInfo info ) {
2287 // Adblock Browser doesn't support add-ons, so the only menu item that
2288 // could be added is the one for whitelisting the current domain added
2289 // by ABP - Adblock Browser has its own item for that.
2290 if (true)
2291 return;
2292
2302 info.added = true; 2293 info.added = true;
2303 2294
2304 final Menu destination; 2295 final Menu destination;
2305 if (info.parent == 0) { 2296 if (info.parent == 0) {
2306 destination = menu; 2297 destination = menu;
2307 } else if (info.parent == GECKO_TOOLS_MENU) { 2298 } else if (info.parent == GECKO_TOOLS_MENU) {
2308 MenuItem tools = menu.findItem(R.id.tools); 2299 MenuItem tools = menu.findItem(R.id.tools);
2309 destination = tools != null ? tools.getSubMenu() : menu; 2300 destination = tools != null ? tools.getSubMenu() : menu;
2310 } else { 2301 } else {
2311 MenuItem parent = menu.findItem(info.parent); 2302 MenuItem parent = menu.findItem(info.parent);
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
2451 addAddonMenuItemToMenu(mMenu, item); 2442 addAddonMenuItemToMenu(mMenu, item);
2452 } 2443 }
2453 } 2444 }
2454 2445
2455 // Action providers are available only ICS+. 2446 // Action providers are available only ICS+.
2456 if (Versions.feature14Plus) { 2447 if (Versions.feature14Plus) {
2457 GeckoMenuItem share = (GeckoMenuItem) mMenu.findItem(R.id.share); 2448 GeckoMenuItem share = (GeckoMenuItem) mMenu.findItem(R.id.share);
2458 GeckoActionProvider provider = GeckoActionProvider.getForType(GeckoA ctionProvider.DEFAULT_MIME_TYPE, this); 2449 GeckoActionProvider provider = GeckoActionProvider.getForType(GeckoA ctionProvider.DEFAULT_MIME_TYPE, this);
2459 share.setActionProvider(provider); 2450 share.setActionProvider(provider);
2460 } 2451 }
2452
2453 org.adblockplus.browser.BrowserAppUtils.updateBlockAdsMenuItem(
2454 mMenu.findItem(R.id.block_ads));
2461 2455
2462 return true; 2456 return true;
2463 } 2457 }
2464 2458
2465 @Override 2459 @Override
2466 public void openOptionsMenu() { 2460 public void openOptionsMenu() {
2467 // Disable menu access (for hardware buttons) when the software menu but ton is inaccessible. 2461 // Disable menu access (for hardware buttons) when the software menu but ton is inaccessible.
2468 if (mBrowserToolbar.isEditing()) { 2462 if (mBrowserToolbar.isEditing()) {
2469 return; 2463 return;
2470 } 2464 }
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after
2795 args.put("desktopMode", !item.isChecked()); 2789 args.put("desktopMode", !item.isChecked());
2796 args.put("tabId", selectedTab.getId()); 2790 args.put("tabId", selectedTab.getId());
2797 } catch (JSONException e) { 2791 } catch (JSONException e) {
2798 Log.e(LOGTAG, "error building json arguments"); 2792 Log.e(LOGTAG, "error building json arguments");
2799 } 2793 }
2800 GeckoAppShell.sendEventToGecko(GeckoEvent.createBroadcastEvent("Desk topMode:Change", args.toString())); 2794 GeckoAppShell.sendEventToGecko(GeckoEvent.createBroadcastEvent("Desk topMode:Change", args.toString()));
2801 return true; 2795 return true;
2802 } 2796 }
2803 2797
2804 if (itemId == R.id.block_ads) { 2798 if (itemId == R.id.block_ads) {
2805 Tab selectedTab = Tabs.getInstance().getSelectedTab(); 2799 org.adblockplus.browser.BrowserAppUtils.updateCurrentTabWhitelisting (item);
2806 if (selectedTab == null)
2807 return true;
2808 JSONObject args = new JSONObject();
2809 try {
2810 args.put("blockAds", !item.isChecked());
2811 args.put("url", selectedTab.getURL());
2812 } catch (JSONException e) {
2813 Log.e(LOGTAG, "error building json arguments");
2814 }
2815 GeckoAppShell.sendEventToGecko(GeckoEvent.createBroadcastEvent("Bloc kAds:Change", args.toString()));
2816 return true; 2800 return true;
2817 } 2801 }
2818 2802
2819 if (itemId == R.id.new_tab) { 2803 if (itemId == R.id.new_tab) {
2820 addTab(); 2804 addTab();
2821 return true; 2805 return true;
2822 } 2806 }
2823 2807
2824 if (itemId == R.id.new_private_tab) { 2808 if (itemId == R.id.new_private_tab) {
2825 addPrivateTab(); 2809 addPrivateTab();
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after
3197 final SessionInformation previ ousSession) { 3181 final SessionInformation previ ousSession) {
3198 return new BrowserHealthRecorder(context, 3182 return new BrowserHealthRecorder(context,
3199 GeckoSharedPrefs.forApp(context), 3183 GeckoSharedPrefs.forApp(context),
3200 profilePath, 3184 profilePath,
3201 dispatcher, 3185 dispatcher,
3202 osLocale, 3186 osLocale,
3203 appLocale, 3187 appLocale,
3204 previousSession); 3188 previousSession);
3205 } 3189 }
3206 } 3190 }
LEFTRIGHT

Powered by Google App Engine
This is Rietveld