X-Git-Url: https://gitweb.stoutner.com/?p=PrivacyCell.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fcom%2Fstoutner%2Fprivacycell%2Factivities%2FPrivacyCell.kt;h=84d8db663003a6d8e312cd1083583fa5e083611e;hp=8f482b06a9174581905cdb25248741a69530a180;hb=bfab9b01fcc75d413741664d8401a4e9d4785136;hpb=189a089931502d9fc23533b5c2ffcaf98da8ed6c diff --git a/app/src/main/java/com/stoutner/privacycell/activities/PrivacyCell.kt b/app/src/main/java/com/stoutner/privacycell/activities/PrivacyCell.kt index 8f482b0..84d8db6 100644 --- a/app/src/main/java/com/stoutner/privacycell/activities/PrivacyCell.kt +++ b/app/src/main/java/com/stoutner/privacycell/activities/PrivacyCell.kt @@ -21,7 +21,9 @@ package com.stoutner.privacycell.activities import android.Manifest import android.content.Context +import android.content.Intent import android.content.pm.PackageManager +import android.net.Uri import android.os.Bundle import android.telephony.PhoneStateListener import android.telephony.ServiceState @@ -38,13 +40,14 @@ import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.content.res.AppCompatResources import androidx.appcompat.widget.Toolbar import androidx.core.app.ActivityCompat +import androidx.core.view.GravityCompat import androidx.drawerlayout.widget.DrawerLayout -import androidx.fragment.app.DialogFragment import com.google.android.material.navigation.NavigationView import com.stoutner.privacycell.R import com.stoutner.privacycell.dialogs.PhonePermissionDialog +import com.stoutner.privacycell.dialogs.WebViewDialog class PrivacyCell : AppCompatActivity(), NavigationView.OnNavigationItemSelectedListener, PhonePermissionDialog.StoragePermissionDialogListener { // Declare the class variables. @@ -53,14 +56,15 @@ class PrivacyCell : AppCompatActivity(), NavigationView.OnNavigationItemSelected private lateinit var actionBarDrawerToggle: ActionBarDrawerToggle // Declare the views. - lateinit var secureFromStingrayImageView: ImageView - lateinit var secureFromStingrayTextView: TextView - lateinit var voiceNetworkTextView: TextView - lateinit var voiceNetworkDetailsTextView: TextView - lateinit var dataNetworkTextView: TextView - lateinit var dataNetworkDetailsTextView: TextView - lateinit var additionalNetworkInfoTextView: TextView - lateinit var additionalNetworkInfoDetailsTextView: TextView + private lateinit var drawerLayout: DrawerLayout + private lateinit var secureFromStingrayImageView: ImageView + private lateinit var secureFromStingrayTextView: TextView + private lateinit var voiceNetworkTextView: TextView + private lateinit var voiceNetworkDetailsTextView: TextView + private lateinit var dataNetworkTextView: TextView + private lateinit var dataNetworkDetailsTextView: TextView + private lateinit var additionalNetworkInfoTextView: TextView + private lateinit var additionalNetworkInfoDetailsTextView: TextView override fun onCreate(savedInstanceState: Bundle?) { // Run the default commands. @@ -70,7 +74,7 @@ class PrivacyCell : AppCompatActivity(), NavigationView.OnNavigationItemSelected setContentView(R.layout.privacy_cell_drawerlayout) // Get handles for the views. - val drawerLayout = findViewById(R.id.drawerlayout) + drawerLayout = findViewById(R.id.drawerlayout) val toolbar = findViewById(R.id.toolbar) secureFromStingrayImageView = findViewById(R.id.secure_from_stingray_imageview) secureFromStingrayTextView = findViewById(R.id.secure_from_stingray_textview) @@ -147,7 +151,7 @@ class PrivacyCell : AppCompatActivity(), NavigationView.OnNavigationItemSelected // Check to see if a phone permission dialog is already displayed. This happens if the app is restarted when the dialog is shown. if (supportFragmentManager.findFragmentByTag(getString(R.string.phone_permission)) == null) { // No dialog is currently shown. // Instantiate the phone permission dialog fragment. - val phonePermissionDialogFragment: DialogFragment = PhonePermissionDialog() + val phonePermissionDialogFragment = PhonePermissionDialog() // Show the phone permission alert dialog. The permission will be requested when the dialog is closed. phonePermissionDialogFragment.show(supportFragmentManager, getString(R.string.phone_permission)) @@ -159,6 +163,112 @@ class PrivacyCell : AppCompatActivity(), NavigationView.OnNavigationItemSelected } } + override fun onNavigationItemSelected(menuItem: MenuItem) : Boolean { + // Run the commands that correspond to the selected menu item. + when (menuItem.itemId) { + R.id.permissions -> { // Permissions. + // Instantiate the permissions dialog fragment. + val permissionsDialogFragment = WebViewDialog().type(WebViewDialog.PERMISSIONS) + + // Show the alert dialog. + permissionsDialogFragment.show(supportFragmentManager, getString(R.string.permissions)) + } + + R.id.privacy_policy -> { // Privacy Policy. + // Instantiate the privacy policy dialog fragment. + val privacyPolicyDialogFragment = WebViewDialog().type(WebViewDialog.PRIVACY_POLICY) + + // Show the alert dialog. + privacyPolicyDialogFragment.show(supportFragmentManager, getString(R.string.privacy_policy)) + } + + R.id.changelog -> { // Changelog. + // Instantiate the changelog dialog fragment. + val changelogDialogFragment = WebViewDialog().type(WebViewDialog.CHANGELOG) + + // Show the alert dialog. + changelogDialogFragment.show(supportFragmentManager, getString(R.string.changelog)) + } + + R.id.licenses -> { // Licenses. + // Instantiate the licenses dialog fragment. + val licensesDialogFragment = WebViewDialog().type(WebViewDialog.LICENSES) + + // Show the alert dialog. + licensesDialogFragment.show(supportFragmentManager, getString(R.string.licenses)) + } + + R.id.contributors -> { // Contributors. + // Instantiate the contributors dialog fragment. + val contributorsDialogFragment = WebViewDialog().type(WebViewDialog.CONTRIBUTORS) + + // Show the alert dialog. + contributorsDialogFragment.show(supportFragmentManager, getString(R.string.contributors)) + } + + R.id.news -> { // News. + // Create a news URL intent. + val newsUrlIntent = Intent(Intent.ACTION_VIEW) + + // Add the URL to the intent. + newsUrlIntent.data = Uri.parse("https://www.stoutner.com/category/privacy-cell/") + + // Make it so. + startActivity(newsUrlIntent) + } + + R.id.roadmap -> { // Roadmap. + // Create a roadmap URL intent. + val roadmapUrlIntent = Intent(Intent.ACTION_VIEW) + + // Add the URL to the intent. + roadmapUrlIntent.data = Uri.parse("https://www.stoutner.com/category/privacy-cell-roadmap/") + + // Make it so. + startActivity(roadmapUrlIntent) + } + + R.id.bug_tracker -> { // Bug tracker. + // Create a bug tracker URL intent. + val bugTrackerUrlIntent = Intent(Intent.ACTION_VIEW) + + // Add the URL to the intent. + bugTrackerUrlIntent.data = Uri.parse("https://redmine.stoutner.com/projects/privacy-cell/issues") + + // Make it so. + startActivity(bugTrackerUrlIntent) + } + + R.id.forum -> { // Forum. + // Create a forum URL intent. + val forumUrlIntent = Intent(Intent.ACTION_VIEW) + + // Add the URL to the intent. + forumUrlIntent.data = Uri.parse("https://redmine.stoutner.com/projects/privacy-cell/boards") + + // Make it so. + startActivity(forumUrlIntent) + } + + R.id.donations -> { // Donations. + // Create a donations URL intent. + val donationsUrlIntent = Intent(Intent.ACTION_VIEW) + + // Add the URL to the intent. + donationsUrlIntent.data = Uri.parse("https://www.stoutner.com/donations/") + + // Make it so. + startActivity(donationsUrlIntent) + } + } + + // Close the navigation drawer. + drawerLayout.closeDrawer(GravityCompat.START) + + // Consume the click. + return true + } + override fun onCloseStoragePermissionDialog() { // Request the read phone state permission. There is only one permission request in the app, so it has a request code of 0. ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.READ_PHONE_STATE), 0) @@ -269,9 +379,4 @@ class PrivacyCell : AppCompatActivity(), NavigationView.OnNavigationItemSelected else -> arrayOf(getString(R.string.error), "") } } - - override fun onNavigationItemSelected(menuItem: MenuItem) : Boolean { - // TODO. - return true - } } \ No newline at end of file