printManager.print(getString(R.string.privacy_browser_web_page), printDocumentAdapter, null);
return true;
+ case R.id.find_on_page:
+ // Hide the URL app bar.
+ supportAppBar.setVisibility(View.GONE);
+
+ // Show the Find on Page `RelativeLayout`.
+ findOnPageLinearLayout.setVisibility(View.VISIBLE);
+
+ // Display the keyboard. We have to wait 200 ms before running the command to work around a bug in Android.
+ // http://stackoverflow.com/questions/5520085/android-show-softkeyboard-with-showsoftinput-is-not-working
+ findOnPageEditText.postDelayed(() -> {
+ // Set the focus on `findOnPageEditText`.
+ findOnPageEditText.requestFocus();
+
+ // Display the keyboard. `0` sets no input flags.
+ inputMethodManager.showSoftInput(findOnPageEditText, 0);
+ }, 200);
+ return true;
+
+ case R.id.add_to_homescreen:
+ // Show the alert dialog.
+ AppCompatDialogFragment createHomeScreenShortcutDialogFragment = new CreateHomeScreenShortcutDialog();
+ createHomeScreenShortcutDialogFragment.show(getSupportFragmentManager(), getString(R.string.create_shortcut));
+
+ //Everything else will be handled by the alert dialog and the associated listener below.
+ return true;
+
case R.id.view_source:
// Launch the View Source activity.
Intent viewSourceIntent = new Intent(this, ViewSourceActivity.class);
startActivity(viewSourceIntent);
return true;
- case R.id.proxy_through_orbot:
- // Toggle the proxy through Orbot variable.
- proxyThroughOrbot = !proxyThroughOrbot;
-
- // Apply the proxy through Orbot settings.
- applyProxyThroughOrbot(true);
- return true;
-
- case R.id.share:
+ case R.id.share_url:
// Setup the share string.
String shareString = webViewTitle + " – " + urlTextBox.getText().toString();
startActivity(Intent.createChooser(shareIntent, getString(R.string.share_url)));
return true;
- case R.id.open_with:
- // Convert the URL to an URI.
- Uri shareUri = Uri.parse(formattedUrlString);
-
- // Get the host.
- String shareHost = shareUri.getHost();
-
+ case R.id.open_with_app:
// Create the open with intent with `ACTION_VIEW`.
- Intent openWithIntent = new Intent(Intent.ACTION_VIEW);
-
- // Set the data based on the host.
- if ((shareHost != null) && (shareHost.endsWith("youtube.com") || shareHost.equals("play.google.com") || shareHost.equals("f-droid.org"))) { // Handle App URLs.
- // Set the URI but not the MIME type. This should open all available apps.
- openWithIntent.setData(shareUri);
- } else { // Handle a generic URL.
- // Set the URI and the MIME type. `"text/html"` should load browser options.
- openWithIntent.setDataAndType(shareUri, "text/html");
- }
+ Intent openWithAppIntent = new Intent(Intent.ACTION_VIEW);
+
+ // Set the URI but not the MIME type. This should open all available apps.
+ openWithAppIntent.setData(Uri.parse(formattedUrlString));
// Flag the intent to open in a new task.
- openWithIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ openWithAppIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// Show the chooser.
- startActivity(Intent.createChooser(openWithIntent, getString(R.string.open_with)));
+ startActivity(Intent.createChooser(openWithAppIntent, getString(R.string.open_with)));
return true;
- case R.id.find_on_page:
- // Hide the URL app bar.
- supportAppBar.setVisibility(View.GONE);
+ case R.id.open_with_browser:
+ // Create the open with intent with `ACTION_VIEW`.
+ Intent openWithBrowserIntent = new Intent(Intent.ACTION_VIEW);
- // Show the Find on Page `RelativeLayout`.
- findOnPageLinearLayout.setVisibility(View.VISIBLE);
+ // Set the URI and the MIME type. `"text/html"` should load browser options.
+ openWithBrowserIntent.setDataAndType(Uri.parse(formattedUrlString), "text/html");
- // Display the keyboard. We have to wait 200 ms before running the command to work around a bug in Android.
- // http://stackoverflow.com/questions/5520085/android-show-softkeyboard-with-showsoftinput-is-not-working
- findOnPageEditText.postDelayed(() -> {
- // Set the focus on `findOnPageEditText`.
- findOnPageEditText.requestFocus();
+ // Flag the intent to open in a new task.
+ openWithBrowserIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- // Display the keyboard. `0` sets no input flags.
- inputMethodManager.showSoftInput(findOnPageEditText, 0);
- }, 200);
+ // Show the chooser.
+ startActivity(Intent.createChooser(openWithBrowserIntent, getString(R.string.open_with)));
return true;
- case R.id.add_to_homescreen:
- // Show the `CreateHomeScreenShortcutDialog` `AlertDialog` and name this instance `R.string.create_shortcut`.
- AppCompatDialogFragment createHomeScreenShortcutDialogFragment = new CreateHomeScreenShortcutDialog();
- createHomeScreenShortcutDialogFragment.show(getSupportFragmentManager(), getString(R.string.create_shortcut));
+ case R.id.proxy_through_orbot:
+ // Toggle the proxy through Orbot variable.
+ proxyThroughOrbot = !proxyThroughOrbot;
- //Everything else will be handled by `CreateHomeScreenShortcutDialog` and the associated listener below.
+ // Apply the proxy through Orbot settings.
+ applyProxyThroughOrbot(true);
return true;
case R.id.refresh:
android:orderInCategory="970"
app:showAsAction="never" />
+ <item
+ android:id="@+id/find_on_page"
+ android:title="@string/find_on_page"
+ android:orderInCategory="980"
+ app:showAsAction="never|collapseActionView" />
+
+ <item
+ android:id="@+id/add_to_homescreen"
+ android:title="@string/add_to_home_screen"
+ android:orderInCategory="990"
+ app:showAsAction="never" />
+
<item
android:id="@+id/view_source"
android:title="@string/view_source"
- android:orderInCategory="980"
+ android:orderInCategory="999"
app:showAsAction="never" />
</menu>
</item>
- <item
- android:id="@+id/proxy_through_orbot"
- android:title="@string/proxy_through_orbot"
- android:orderInCategory="1000"
- android:checkable="true"
- app:showAsAction="never" />
-
<item
android:id="@+id/share"
android:title="@string/share"
- android:orderInCategory="1100"
- app:showAsAction="never" />
+ android:orderInCategory="1000"
+ app:showAsAction="never" >
- <item
- android:id="@+id/open_with"
- android:title="@string/open_with"
- android:orderInCategory="1200"
- app:showAsAction="never" />
+ <menu>
+ <item
+ android:id="@+id/share_url"
+ android:title="@string/share_url"
+ android:orderInCategory="1010"
+ app:showAsAction="never" />
- <item
- android:id="@+id/find_on_page"
- android:title="@string/find_on_page"
- android:orderInCategory="1300"
- app:showAsAction="never|collapseActionView" />
+ <item
+ android:id="@+id/open_with_app"
+ android:title="@string/open_with_app"
+ android:orderInCategory="1020"
+ app:showAsAction="never" />
+
+ <item
+ android:id="@+id/open_with_browser"
+ android:title="@string/open_with_browser"
+ android:orderInCategory="1030"
+ app:showAsAction="never" />
+ </menu>
+ </item>
<item
- android:id="@+id/add_to_homescreen"
- android:title="@string/add_to_home_screen"
- android:orderInCategory="1400"
+ android:id="@+id/proxy_through_orbot"
+ android:title="@string/proxy_through_orbot"
+ android:orderInCategory="1100"
+ android:checkable="true"
app:showAsAction="never" />
<item
android:id="@+id/refresh"
android:title="@string/refresh"
- android:orderInCategory="1500"
+ android:orderInCategory="1200"
app:showAsAction="never" />
<item