]> gitweb.stoutner.com Git - PrivacyBrowserAndroid.git/blob - app/src/main/java/com/stoutner/privacybrowser/dialogs/WaitingForProxyDialog.kt
Migrate the rest of the dialogs to Kotlin. https://redmine.stoutner.com/issues/683
[PrivacyBrowserAndroid.git] / app / src / main / java / com / stoutner / privacybrowser / dialogs / WaitingForProxyDialog.kt
1 /*
2  * Copyright © 2019-2021 Soren Stoutner <soren@stoutner.com>.
3  *
4  * This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
5  *
6  * Privacy Browser is free software: you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation, either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * Privacy Browser is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with Privacy Browser.  If not, see <http://www.gnu.org/licenses/>.
18  */
19
20 package com.stoutner.privacybrowser.dialogs
21
22 import android.annotation.SuppressLint
23 import android.app.Dialog
24 import android.os.Bundle
25 import android.view.WindowManager
26
27 import androidx.appcompat.app.AlertDialog
28 import androidx.fragment.app.DialogFragment
29 import androidx.preference.PreferenceManager
30
31 import com.stoutner.privacybrowser.R
32
33 class WaitingForProxyDialog : DialogFragment() {
34     // `@SuppressLint("InflateParams")` removes the warning about using `null` as the parent view group when inflating the alert dialog.
35     @SuppressLint("InflateParams")
36     override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
37         // Use a builder to create the alert dialog.
38         val dialogBuilder = AlertDialog.Builder(requireContext(), R.style.PrivacyBrowserAlertDialog)
39
40         // Set the layout.  The parent view is `null` because it will be assigned by the alert dialog.
41         dialogBuilder.setView(layoutInflater.inflate(R.layout.waiting_for_proxy_dialog, null))
42
43         // Create an alert dialog from the builder.
44         val alertDialog = dialogBuilder.create()
45
46         // Get a handle for the shared preferences.
47         val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context)
48
49         // Get the screenshot preference.
50         val allowScreenshots = sharedPreferences.getBoolean(getString(R.string.allow_screenshots_key), false)
51
52         // Disable screenshots if not allowed.
53         if (!allowScreenshots) {
54             // Disable screenshots.
55             alertDialog.window!!.addFlags(WindowManager.LayoutParams.FLAG_SECURE)
56         }
57
58         // Return the alert dialog.
59         return alertDialog
60     }
61 }