X-Git-Url: https://gitweb.stoutner.com/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fcom%2Fstoutner%2Fprivacybrowser%2Factivities%2FMainWebViewActivity.java;h=6b2d7eb0d8965ff055bc69c128a2a1aad12c8c65;hb=031def95c6d9bfc14113fe86b4a5690233d93ce2;hp=88d418677a12c3e2b4299a0433837451a5fe8e0b;hpb=d4f39c36beb5e6c3568a1e075274ad66defd8e8e;p=PrivacyBrowserAndroid.git diff --git a/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java b/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java index 88d41867..6b2d7eb0 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java +++ b/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.java @@ -94,6 +94,7 @@ import android.widget.RelativeLayout; import android.widget.TextView; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.ActionBarDrawerToggle; import androidx.appcompat.app.AppCompatActivity; @@ -1764,6 +1765,24 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook saveImageFragment.show(getSupportFragmentManager(), getString(R.string.save_dialog)); // Consume the event. + return true; + } else if (menuItemId == R.id.save_archive) { + /* TODO. + try { + // Create an MHT file. + File mhtFile = File.createTempFile("mht_file", ".mht", getCacheDir()); + + // Populate the MHT file. + currentWebView.saveWebArchive(mhtFile.toString()); + + // Check the file length. + Log.i("MHT", "MHT file size: " + mhtFile.length()); + } catch (Exception exception){ + Log.i("MHT", "MHT exception: " + exception.toString()); + } + + */ + return true; } else if (menuItemId == R.id.add_to_homescreen) { // Add to homescreen. // Instantiate the create home screen shortcut dialog. @@ -3008,35 +3027,37 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook } @Override - public void onSaveWebpage(int saveType, String originalUrlString, DialogFragment dialogFragment) { + public void onSaveWebpage(int saveType, @Nullable String originalUrlString, 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 edit texts. - EditText dialogUrlEditText = dialog.findViewById(R.id.url_edittext); + // Get a handle for the file name edit text. EditText fileNameEditText = dialog.findViewById(R.id.file_name_edittext); - // Define the save webpage URL. - String saveWebpageUrl; - - // Store the URL. - if ((originalUrlString != null) && originalUrlString.startsWith("data:")) { - // Save the original URL. - saveWebpageUrl = originalUrlString; - } else { - // Get the URL from the edit text, which may have been modified. - saveWebpageUrl = dialogUrlEditText.getText().toString(); - } - // Get the file path from the edit text. String saveWebpageFilePath = fileNameEditText.getText().toString(); //Save the webpage according to the save type. switch (saveType) { case SaveWebpageDialog.SAVE_URL: + // Get a handle for the dialog URL edit text. + EditText dialogUrlEditText = dialog.findViewById(R.id.url_edittext); + + // Define the save webpage URL. + String saveWebpageUrl; + + // Store the URL. + if ((originalUrlString != null) && originalUrlString.startsWith("data:")) { + // Save the original URL. + saveWebpageUrl = originalUrlString; + } else { + // Get the URL from the edit text, which may have been modified. + saveWebpageUrl = dialogUrlEditText.getText().toString(); + } + // Save the URL. new SaveUrl(this, this, saveWebpageFilePath, currentWebView.getSettings().getUserAgentString(), currentWebView.getAcceptFirstPartyCookies()).execute(saveWebpageUrl); break; @@ -3607,7 +3628,7 @@ public class MainWebViewActivity extends AppCompatActivity implements CreateBook } @Override - public void navigateHistory(String url, int steps) { + public void navigateHistory(@NonNull String url, int steps) { // Apply the domain settings. applyDomainSettings(currentWebView, url, false, false, false);