@Override
protected void onNewIntent(Intent intent) {
+ // Run the default commands.
+ super.onNewIntent(intent);
+
// Replace the intent that started the app with this one.
setIntent(intent);
MenuItem selectedFontSizeMenuItem;
// Prepare the font size title and current size menu item.
+ //noinspection DuplicateBranchesInSwitch
switch (fontSize) {
case 25:
fontSizeTitle = getString(R.string.font_size) + " - " + getString(R.string.twenty_five_percent);
// Get the previous entry URL.
String previousUrl = webBackForwardList.getItemAtIndex(webBackForwardList.getCurrentIndex() - 1).getUrl();
- // Reset the current domain name so that navigation works if third-party requests are blocked.
- currentWebView.resetCurrentDomainName();
-
// Apply the domain settings.
applyDomainSettings(currentWebView, previousUrl, false, false);
// Get the next entry URL.
String nextUrl = webBackForwardList.getItemAtIndex(webBackForwardList.getCurrentIndex() + 1).getUrl();
- // Reset the current domain name so that navigation works if third-party requests are blocked.
- currentWebView.resetCurrentDomainName();
-
// Apply the domain settings.
applyDomainSettings(currentWebView, nextUrl, false, false);
}
@Override
- public void onConfigurationChanged(Configuration newConfig) {
+ public void onConfigurationChanged(@NonNull Configuration newConfig) {
// Run the default commands.
super.onConfigurationChanged(newConfig);
// Add an Open in New Tab entry.
menu.add(R.string.open_in_new_tab).setOnMenuItemClickListener((MenuItem item) -> {
- // Load the link URL in a new tab.
+ // Load the link URL in a new tab and move to it.
+ addNewTab(linkUrl, true);
+
+ // Consume the event.
+ return true;
+ });
+
+ // Add an Open in Background entry.
+ menu.add(R.string.open_in_background).setOnMenuItemClickListener((MenuItem item) -> {
+ // Load the link URL in a new tab but do not move to it.
addNewTab(linkUrl, false);
// Consume the event.
// Add an Open in New Tab entry.
menu.add(R.string.open_image_in_new_tab).setOnMenuItemClickListener((MenuItem item) -> {
// Load the image in a new tab.
- addNewTab(imageUrl, false);
+ addNewTab(imageUrl, true);
// Consume the event.
return true;
// Add an Open in New Tab entry.
menu.add(R.string.open_in_new_tab).setOnMenuItemClickListener((MenuItem item) -> {
- // Load the link URL in a new tab.
+ // Load the link URL in a new tab and move to it.
+ addNewTab(linkUrl, true);
+
+ // Consume the event.
+ return true;
+ });
+
+ // Add an Open in Background entry.
+ menu.add(R.string.open_in_background).setOnMenuItemClickListener((MenuItem item) -> {
+ // Lod the link URL in a new tab but do not move to it.
addNewTab(linkUrl, false);
// Consume the event.
// Add an Open Image in New Tab entry.
menu.add(R.string.open_image_in_new_tab).setOnMenuItemClickListener((MenuItem item) -> {
- // Load the image in a new tab.
- addNewTab(imageUrl, false);
+ // Load the image in a new tab and move to it.
+ addNewTab(imageUrl, true);
// Consume the event.
return true;
// Get a handle for the bookmarks list view.
ListView bookmarksListView = findViewById(R.id.bookmarks_drawer_listview);
+ // Get the dialog.
+ Dialog dialog = dialogFragment.getDialog();
+
+ // Remove the incorrect lint warning below that the dialog might be null.
+ assert dialog != null;
+
// Get the views from the dialog fragment.
- EditText createBookmarkNameEditText = dialogFragment.getDialog().findViewById(R.id.create_bookmark_name_edittext);
- EditText createBookmarkUrlEditText = dialogFragment.getDialog().findViewById(R.id.create_bookmark_url_edittext);
+ EditText createBookmarkNameEditText = dialog.findViewById(R.id.create_bookmark_name_edittext);
+ EditText createBookmarkUrlEditText = dialog.findViewById(R.id.create_bookmark_url_edittext);
// Extract the strings from the edit texts.
String bookmarkNameString = createBookmarkNameEditText.getText().toString();
// Get a handle for the bookmarks list view.
ListView bookmarksListView = findViewById(R.id.bookmarks_drawer_listview);
+ // Get the dialog.
+ Dialog dialog = dialogFragment.getDialog();
+
+ // Remove the incorrect lint warning below that the dialog might be null.
+ assert dialog != null;
+
// Get handles for the views in the dialog fragment.
- EditText createFolderNameEditText = dialogFragment.getDialog().findViewById(R.id.create_folder_name_edittext);
- RadioButton defaultFolderIconRadioButton = dialogFragment.getDialog().findViewById(R.id.create_folder_default_icon_radiobutton);
- ImageView folderIconImageView = dialogFragment.getDialog().findViewById(R.id.create_folder_default_icon);
+ EditText createFolderNameEditText = dialog.findViewById(R.id.create_folder_name_edittext);
+ RadioButton defaultFolderIconRadioButton = dialog.findViewById(R.id.create_folder_default_icon_radiobutton);
+ ImageView folderIconImageView = dialog.findViewById(R.id.create_folder_default_icon);
// Get new folder name string.
String folderNameString = createFolderNameEditText.getText().toString();
@Override
public void onSaveBookmark(DialogFragment dialogFragment, int selectedBookmarkDatabaseId, Bitmap favoriteIconBitmap) {
- // Get handles for the views from `dialogFragment`.
- EditText editBookmarkNameEditText = dialogFragment.getDialog().findViewById(R.id.edit_bookmark_name_edittext);
- EditText editBookmarkUrlEditText = dialogFragment.getDialog().findViewById(R.id.edit_bookmark_url_edittext);
- RadioButton currentBookmarkIconRadioButton = dialogFragment.getDialog().findViewById(R.id.edit_bookmark_current_icon_radiobutton);
+ // Get the dialog.
+ Dialog dialog = dialogFragment.getDialog();
+
+ // Remove the incorrect lint warning below that the dialog might be null.
+ assert dialog != null;
+
+ // Get handles for the views from the dialog.
+ EditText editBookmarkNameEditText = dialog.findViewById(R.id.edit_bookmark_name_edittext);
+ EditText editBookmarkUrlEditText = dialog.findViewById(R.id.edit_bookmark_url_edittext);
+ RadioButton currentBookmarkIconRadioButton = dialog.findViewById(R.id.edit_bookmark_current_icon_radiobutton);
// Store the bookmark strings.
String bookmarkNameString = editBookmarkNameEditText.getText().toString();
@Override
public void onSaveBookmarkFolder(DialogFragment dialogFragment, int selectedFolderDatabaseId, Bitmap favoriteIconBitmap) {
+ // Get the dialog.
+ Dialog dialog = dialogFragment.getDialog();
+
+ // Remove the incorrect lint warning below that the dialog might be null.
+ assert dialog != null;
+
// Get handles for the views from `dialogFragment`.
- EditText editFolderNameEditText = dialogFragment.getDialog().findViewById(R.id.edit_folder_name_edittext);
- RadioButton currentFolderIconRadioButton = dialogFragment.getDialog().findViewById(R.id.edit_folder_current_icon_radiobutton);
- RadioButton defaultFolderIconRadioButton = dialogFragment.getDialog().findViewById(R.id.edit_folder_default_icon_radiobutton);
- ImageView defaultFolderIconImageView = dialogFragment.getDialog().findViewById(R.id.edit_folder_default_icon_imageview);
+ EditText editFolderNameEditText = dialog.findViewById(R.id.edit_folder_name_edittext);
+ RadioButton currentFolderIconRadioButton = dialog.findViewById(R.id.edit_folder_current_icon_radiobutton);
+ RadioButton defaultFolderIconRadioButton = dialog.findViewById(R.id.edit_folder_default_icon_radiobutton);
+ ImageView defaultFolderIconImageView = dialog.findViewById(R.id.edit_folder_default_icon_imageview);
// Get the new folder name.
String newFolderNameString = editFolderNameEditText.getText().toString();
downloadRequest.addRequestHeader("Cookie", cookies);
}
+ // Get the dialog.
+ Dialog dialog = dialogFragment.getDialog();
+
+ // Remove the incorrect lint warning below that the dialog might be null.
+ assert dialog != null;
+
// Get the file name from the dialog fragment.
- EditText downloadImageNameEditText = dialogFragment.getDialog().findViewById(R.id.download_image_name);
+ EditText downloadImageNameEditText = dialog.findViewById(R.id.download_image_name);
String imageName = downloadImageNameEditText.getText().toString();
// Specify the download location.
downloadRequest.addRequestHeader("Cookie", cookies);
}
- // Get the file name from the dialog fragment.
- EditText downloadFileNameEditText = dialogFragment.getDialog().findViewById(R.id.download_file_name);
+ // Get the dialog.
+ Dialog dialog = dialogFragment.getDialog();
+
+ // Remove the incorrect lint warning below that the dialog might be null.
+ assert dialog != null;
+
+ // Get the file name from the dialog.
+ EditText downloadFileNameEditText = dialog.findViewById(R.id.download_file_name);
String fileName = downloadFileNameEditText.getText().toString();
// Specify the download location.
// Get the previous entry URL.
String previousUrl = webBackForwardList.getItemAtIndex(webBackForwardList.getCurrentIndex() - 1).getUrl();
- // Reset the current domain name so that navigation works if third-party requests are blocked.
- currentWebView.resetCurrentDomainName();
-
// Apply the domain settings.
applyDomainSettings(currentWebView, previousUrl, false, false);
// Close the current tab.
closeCurrentTab();
} else { // There isn't anything to do in Privacy Browser.
- // Run the default commands.
- super.onBackPressed();
+ // Close Privacy Browser. `finishAndRemoveTask()` also removes Privacy Browser from the recent app list.
+ if (Build.VERSION.SDK_INT >= 21) {
+ finishAndRemoveTask();
+ } else {
+ finish();
+ }
// Manually kill Privacy Browser. Otherwise, it is glitchy when restarted.
System.exit(0);
// Process the results of a file browse.
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
+ // Run the default commands.
+ super.onActivityResult(requestCode, resultCode, data);
+
// Run the commands that correlate to the specified request code.
switch (requestCode) {
case FILE_UPLOAD_REQUEST_CODE:
// Get a handle for the save webpage image dialog.
Dialog saveWebpageImageDialog = saveWebpageImageDialogFragment.getDialog();
+ // Remove the incorrect lint warning below that the dialog might be null.
+ assert saveWebpageImageDialog != null;
+
// Get a handle for the file name edit text.
EditText fileNameEditText = saveWebpageImageDialog.findViewById(R.id.file_name_edittext);
// Instantiate the file name helper.
FileNameHelper fileNameHelper = new FileNameHelper();
- // Convert the file name URI to a file name path.
- String fileNamePath = fileNameHelper.convertUriToFileNamePath(data.getData());
+ // Get the file path if it isn't null.
+ if (data.getData() != null) {
+ // Convert the file name URI to a file name path.
+ String fileNamePath = fileNameHelper.convertUriToFileNamePath(data.getData());
- // Set the file name path as the text of the file name edit text.
- fileNameEditText.setText(fileNamePath);
+ // Set the file name path as the text of the file name edit text.
+ fileNameEditText.setText(fileNamePath);
+ }
}
}
break;
@Override
public void onSaveWebpageImage(DialogFragment dialogFragment) {
+ // Get the dialog.
+ Dialog dialog = dialogFragment.getDialog();
+
+ // Remove the incorrect lint warning below that the dialog might be null.
+ assert dialog != null;
+
// Get a handle for the file name edit text.
- EditText fileNameEditText = dialogFragment.getDialog().findViewById(R.id.file_name_edittext);
+ EditText fileNameEditText = dialog.findViewById(R.id.file_name_edittext);
// Get the file path string.
saveWebsiteImageFilePath = fileNameEditText.getText().toString();
@Override
public void navigateHistory(String url, int steps) {
- // Reset the current domain name so that navigation works if third-party requests are blocked.
- currentWebView.resetCurrentDomainName();
-
// Apply the domain settings.
applyDomainSettings(currentWebView, url, false, false);
// Get the previous entry URL.
String previousUrl = webBackForwardList.getItemAtIndex(webBackForwardList.getCurrentIndex() - 1).getUrl();
- // Reset the current domain name so that navigation works if third-party requests are blocked.
- currentWebView.resetCurrentDomainName();
-
// Apply the domain settings.
applyDomainSettings(currentWebView, previousUrl, false, false);