]> gitweb.stoutner.com Git - PrivacyCell.git/blobdiff - app/src/main/java/com/stoutner/privacycell/activities/PrivacyCell.kt
Release 1.0.
[PrivacyCell.git] / app / src / main / java / com / stoutner / privacycell / activities / PrivacyCell.kt
index 8f482b06a9174581905cdb25248741a69530a180..c85c403f645e5de141b815952f191575c3419888 100644 (file)
@@ -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<DrawerLayout>(R.id.drawerlayout)
+        drawerLayout = findViewById(R.id.drawerlayout)
         val toolbar = findViewById<Toolbar>(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)
@@ -204,17 +314,17 @@ class PrivacyCell : AppCompatActivity(), NavigationView.OnNavigationItemSelected
 
                     // Set the text color.
                     secureFromStingrayTextView.setTextColor(getColor(R.color.red_text))
+                }
 
-                    // Get the strings that correspond to the network information.
-                    val dataNetworkType = getNetworkType(telephonyDisplayInfo.networkType)
-                    val additionalNetworkInfo = getAdditionalNetworkInfo(telephonyDisplayInfo.overrideNetworkType)
+                // Get the strings that correspond to the network information.
+                val dataNetworkType = getNetworkType(telephonyDisplayInfo.networkType)
+                val additionalNetworkInfo = getAdditionalNetworkInfo(telephonyDisplayInfo.overrideNetworkType)
 
-                    // Populate the data network text views.
-                    dataNetworkTextView.text = getString(R.string.data_network, dataNetworkType[0])
-                    dataNetworkDetailsTextView.text = dataNetworkType[1]
-                    additionalNetworkInfoTextView.text = getString(R.string.additional_network_info, additionalNetworkInfo[0])
-                    additionalNetworkInfoDetailsTextView.text = additionalNetworkInfo[1]
-                }
+                // Populate the data network text views.
+                dataNetworkTextView.text = getString(R.string.data_network, dataNetworkType[0])
+                dataNetworkDetailsTextView.text = dataNetworkType[1]
+                additionalNetworkInfoTextView.text = getString(R.string.additional_network_info, additionalNetworkInfo[0])
+                additionalNetworkInfoDetailsTextView.text = additionalNetworkInfo[1]
             }
 
             override fun onServiceStateChanged(serviceState: ServiceState) {
@@ -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