X-Git-Url: https://gitweb.stoutner.com/?p=PrivacyBrowserAndroid.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fcom%2Fstoutner%2Fprivacybrowser%2Fdialogs%2FAboutViewSourceDialog.java;h=bc565a656037d8df278caedfd1eba6ae73d34300;hp=618406c20be0e74922bde980c8247f6b1190ff43;hb=81179d84ced6b43360d42a4b44eb8fb329532ff4;hpb=d420aa6be32a78b27905074edc3881a6e71d2263 diff --git a/app/src/main/java/com/stoutner/privacybrowser/dialogs/AboutViewSourceDialog.java b/app/src/main/java/com/stoutner/privacybrowser/dialogs/AboutViewSourceDialog.java index 618406c2..bc565a65 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/dialogs/AboutViewSourceDialog.java +++ b/app/src/main/java/com/stoutner/privacybrowser/dialogs/AboutViewSourceDialog.java @@ -1,5 +1,5 @@ /* - * Copyright © 2018 Soren Stoutner . + * Copyright © 2018-2019 Soren Stoutner . * * This file is part of Privacy Browser . * @@ -21,20 +21,39 @@ package com.stoutner.privacybrowser.dialogs; import android.app.AlertDialog; import android.app.Dialog; -import android.app.DialogFragment; +import android.content.Context; +import android.content.SharedPreferences; import android.os.Bundle; +import android.view.WindowManager; + +import androidx.annotation.NonNull; +import androidx.fragment.app.DialogFragment; +import androidx.preference.PreferenceManager; import com.stoutner.privacybrowser.R; -import com.stoutner.privacybrowser.activities.MainWebViewActivity; public class AboutViewSourceDialog extends DialogFragment { @Override + @NonNull public Dialog onCreateDialog(Bundle savedInstanceState) { + // Get the context. + Context context = getContext(); + + // Remove the incorrect lint warning below that the context might be null. + assert context != null; + + // Get a handle for the shared preferences. + SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context); + + // Get the screenshot and theme preferences. + boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false); + boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false); + // Use a builder to create the alert dialog. AlertDialog.Builder dialogBuilder; // Set the style and the icon according to the theme. - if (MainWebViewActivity.darkTheme) { + if (darkTheme) { dialogBuilder = new AlertDialog.Builder(getActivity(), R.style.PrivacyBrowserAlertDialogDark); dialogBuilder.setIcon(R.drawable.about_dark); } else { @@ -51,7 +70,19 @@ public class AboutViewSourceDialog extends DialogFragment { // Set the text. dialogBuilder.setMessage(R.string.about_view_source_message); - // `onCreateDialog` requires the return of an `AlertDialog`. - return dialogBuilder.create(); + // Create an alert dialog from the alert dialog builder. + AlertDialog alertDialog = dialogBuilder.create(); + + // Disable screenshots if not allowed. + if (!allowScreenshots) { + // Remove the warning below that `getWindow()` might be null. + assert alertDialog.getWindow() != null; + + // Disable screenshots. + alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE); + } + + // Return the alert dialog. + return alertDialog; } }