]> gitweb.stoutner.com Git - PrivacyCell.git/blobdiff - app/src/main/java/com/stoutner/privacycell/activities/PrivacyCell.kt
Format the main activity.
[PrivacyCell.git] / app / src / main / java / com / stoutner / privacycell / activities / PrivacyCell.kt
index 2bbaa7cf7a77162f19dc873b7dbabb4be6da85e4..b45701832350f774b513dca3664f393164567380 100644 (file)
@@ -26,9 +26,11 @@ import android.os.Bundle
 import android.telephony.PhoneStateListener
 import android.telephony.TelephonyDisplayInfo
 import android.telephony.TelephonyManager
+import android.widget.ImageView
 import android.widget.TextView
 
 import androidx.appcompat.app.AppCompatActivity
+import androidx.appcompat.content.res.AppCompatResources
 import androidx.core.app.ActivityCompat
 
 import com.stoutner.privacycell.R
@@ -42,10 +44,14 @@ class PrivacyCell : AppCompatActivity() {
         setContentView(R.layout.privacy_cell_linearlayout)
 
         // Get handles for the views.
+        val secureFromStingrayImageView = findViewById<ImageView>(R.id.secure_from_stingray_imageview)
+        val secureFromStingrayTextView = findViewById<TextView>(R.id.secure_from_stingray_textview)
         val voiceNetworkTextView = findViewById<TextView>(R.id.voice_network)
+        val voiceNetworkDetailsTextView = findViewById<TextView>(R.id.voice_network_details)
         val dataNetworkTextView = findViewById<TextView>(R.id.data_network)
+        val dataNetworkDetailsTextView = findViewById<TextView>(R.id.data_network_details)
         val additionalNetworkInfoTextView = findViewById<TextView>(R.id.additional_network_info)
-        val secureFromStingrayTextView = findViewById<TextView>(R.id.secure_from_stingray)
+        val additionalNetworkInfoDetailsTextView = findViewById<TextView>(R.id.additional_network_info_details)
 
         // TODO.
         if (ActivityCompat.checkSelfPermission(
@@ -63,72 +69,90 @@ class PrivacyCell : AppCompatActivity() {
             return
         }
 
-        // Get a handle for the the telephone Manager.
+        // Get a handle for the the telephone Manager and the context.
         val telephonyManager = getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager
+        val context: Context = this
 
         // Get the voice network type.
         val voiceNetworkType = getNetworkType(telephonyManager.voiceNetworkType)
 
-        // Populate the voice network text view.
-        voiceNetworkTextView.text = getString(R.string.voice_network, voiceNetworkType)
+        // Populate the voice network text views.
+        voiceNetworkTextView.text = getString(R.string.voice_network, voiceNetworkType[0])
+        voiceNetworkDetailsTextView.text = voiceNetworkType[1]
 
         // Listen to changes in the cell network state.
         telephonyManager.listen(object : PhoneStateListener() {
-            override fun onDisplayInfoChanged(telephonyDisplayInfo: TelephonyDisplayInfo) {
+            override fun onDisplayInfoChanged(telephonyDisplayInfo: TelephonyDisplayInfo) {// Populate the secure from stingray text view.  <https://source.android.com/devices/tech/connect/acts-5g-testing>
+                // Populate the stingray security information.
+                if (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_NR) {  // This is a secure 5G NR SA network.
+                    // Populate the image view.
+                    secureFromStingrayImageView.setImageDrawable(AppCompatResources.getDrawable(context, R.drawable.secure_5g_nr_sa))
+
+                    // Set the text.
+                    secureFromStingrayTextView.text = getString(R.string.secure_from_stingray)
+
+                    // Set the text color.
+                    secureFromStingrayTextView.setTextColor(getColor(R.color.blue_700))
+                } else {  // This is not a secure 5G NR SA network.
+                    // Populate the image view.
+                    secureFromStingrayImageView.setImageDrawable(AppCompatResources.getDrawable(context, R.drawable.not_secure))
+
+                    // Set the text.
+                    secureFromStingrayTextView.text = getString(R.string.not_secure_from_stingray)
+
+                    // Set the text color.
+                    secureFromStingrayTextView.setTextColor(getColor(R.color.red_700))
+
                 // Get the strings that correspond to the network information.
                 val dataNetworkType = getNetworkType(telephonyDisplayInfo.networkType)
                 val additionalNetworkInfo = getAdditionalNetworkInfo(telephonyDisplayInfo.overrideNetworkType)
 
-                // Populate the network text views.
-                dataNetworkTextView.text = getString(R.string.data_network, dataNetworkType)
-                additionalNetworkInfoTextView.text = getString(R.string.additional_network_info, additionalNetworkInfo)
-
-                // Populate the secure from stingray text view.  <https://source.android.com/devices/tech/connect/acts-5g-testing>
-                if (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_NR) {
-                    secureFromStingrayTextView.text = getString(R.string.secure_from_stingray)
-                } else {
-                    secureFromStingrayTextView.text = getString(R.string.not_secure_from_stingray)
+                // 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]
                 }
             }
         }, PhoneStateListener.LISTEN_DISPLAY_INFO_CHANGED)
     }
 
-    private fun getNetworkType(networkType: Int) : String {
+    private fun getNetworkType(networkType: Int) : Array<String> {
         // Return the string that corresponds to the network type.
         return when(networkType) {
-            TelephonyManager.NETWORK_TYPE_UNKNOWN -> getString(R.string.unknown)
-            TelephonyManager.NETWORK_TYPE_GPRS -> getString(R.string.gprs)
-            TelephonyManager.NETWORK_TYPE_EDGE -> getString(R.string.edge)
-            TelephonyManager.NETWORK_TYPE_UMTS -> getString(R.string.umts)
-            TelephonyManager.NETWORK_TYPE_CDMA -> getString(R.string.cdma)
-            TelephonyManager.NETWORK_TYPE_EVDO_0 -> getString(R.string.evdo_0)
-            TelephonyManager.NETWORK_TYPE_EVDO_A -> getString(R.string.evdo_a)
-            TelephonyManager.NETWORK_TYPE_1xRTT -> getString(R.string.rtt)
-            TelephonyManager.NETWORK_TYPE_HSDPA -> getString(R.string.hsdpa)
-            TelephonyManager.NETWORK_TYPE_HSUPA -> getString(R.string.hsupa)
-            TelephonyManager.NETWORK_TYPE_HSPA -> getString(R.string.hspa)
-            TelephonyManager.NETWORK_TYPE_IDEN -> getString(R.string.iden)
-            TelephonyManager.NETWORK_TYPE_EVDO_B -> getString(R.string.evdo_b)
-            TelephonyManager.NETWORK_TYPE_LTE -> getString(R.string.lte)
-            TelephonyManager.NETWORK_TYPE_EHRPD -> getString(R.string.ehrpd)
-            TelephonyManager.NETWORK_TYPE_HSPAP -> getString(R.string.hspap)
-            TelephonyManager.NETWORK_TYPE_GSM -> getString(R.string.gsm)
-            TelephonyManager.NETWORK_TYPE_TD_SCDMA -> getString(R.string.td_scdma)
-            TelephonyManager.NETWORK_TYPE_IWLAN -> getString(R.string.iwlan)
-            TelephonyManager.NETWORK_TYPE_NR -> getString(R.string.nr)
-            else -> getString(R.string.error)
+            TelephonyManager.NETWORK_TYPE_UNKNOWN -> arrayOf(getString(R.string.unknown), getString(R.string.unknown))
+            TelephonyManager.NETWORK_TYPE_GPRS -> arrayOf(getString(R.string.gprs), getString(R.string.gprs_detal))
+            TelephonyManager.NETWORK_TYPE_EDGE -> arrayOf(getString(R.string.edge), getString(R.string.edge_detail))
+            TelephonyManager.NETWORK_TYPE_UMTS -> arrayOf(getString(R.string.umts), getString(R.string.umts_detail))
+            TelephonyManager.NETWORK_TYPE_CDMA -> arrayOf(getString(R.string.cdma), getString(R.string.cdma_detail))
+            TelephonyManager.NETWORK_TYPE_EVDO_0 -> arrayOf(getString(R.string.evdo_0), getString(R.string.evdo_0_detail))
+            TelephonyManager.NETWORK_TYPE_EVDO_A -> arrayOf(getString(R.string.evdo_a), getString(R.string.evdo_a_detail))
+            TelephonyManager.NETWORK_TYPE_1xRTT -> arrayOf(getString(R.string.rtt), getString(R.string.rtt_detail))
+            TelephonyManager.NETWORK_TYPE_HSDPA -> arrayOf(getString(R.string.hsdpa), getString(R.string.hsdpa_detail))
+            TelephonyManager.NETWORK_TYPE_HSUPA -> arrayOf(getString(R.string.hsupa), getString(R.string.hsupa_detail))
+            TelephonyManager.NETWORK_TYPE_HSPA -> arrayOf(getString(R.string.hspa), getString(R.string.hspa_detail))
+            TelephonyManager.NETWORK_TYPE_IDEN -> arrayOf(getString(R.string.iden), getString(R.string.iden_detail))
+            TelephonyManager.NETWORK_TYPE_EVDO_B -> arrayOf(getString(R.string.evdo_b), getString(R.string.evdo_b_detail))
+            TelephonyManager.NETWORK_TYPE_LTE -> arrayOf(getString(R.string.lte), getString(R.string.lte_detail))
+            TelephonyManager.NETWORK_TYPE_EHRPD -> arrayOf(getString(R.string.ehrpd), getString(R.string.ehrpd_detail))
+            TelephonyManager.NETWORK_TYPE_HSPAP -> arrayOf(getString(R.string.hspap), getString(R.string.hspap_detail))
+            TelephonyManager.NETWORK_TYPE_GSM -> arrayOf(getString(R.string.gsm), getString(R.string.gsm_detail))
+            TelephonyManager.NETWORK_TYPE_TD_SCDMA -> arrayOf(getString(R.string.td_scdma), getString(R.string.td_scdma_detail))
+            TelephonyManager.NETWORK_TYPE_IWLAN -> arrayOf(getString(R.string.iwlan), getString(R.string.iwlan_detail))
+            TelephonyManager.NETWORK_TYPE_NR -> arrayOf(getString(R.string.nr), getString(R.string.nr_detail))
+            else -> arrayOf(getString(R.string.error), getString(R.string.error))
         }
     }
 
-    private fun getAdditionalNetworkInfo(overrideNetworkType: Int) : String {
+    private fun getAdditionalNetworkInfo(overrideNetworkType: Int) : Array<String> {
         // Return the string that corresponds to the override network type.
         return when(overrideNetworkType) {
-            TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE -> getString(R.string.none)
-            TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_CA -> getString(R.string.lte_ca)
-            TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_ADVANCED_PRO -> getString(R.string.lte_advanced_pro)
-            TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA -> getString(R.string.lte_nr_nsa)
-            TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE -> getString(R.string.lte_nr_nsa_mmwave)
-            else -> getString(R.string.error)
+            TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NONE -> arrayOf(getString(R.string.none), "")
+            TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_CA -> arrayOf(getString(R.string.lte_ca), getString(R.string.lte_ca_detail))
+            TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_LTE_ADVANCED_PRO -> arrayOf(getString(R.string.lte_advanced_pro), getString(R.string.lte_advanced_pro_detail))
+            TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA -> arrayOf(getString(R.string.lte_nr_nsa), getString(R.string.lte_nr_nsa_detail))
+            TelephonyDisplayInfo.OVERRIDE_NETWORK_TYPE_NR_NSA_MMWAVE -> arrayOf(getString(R.string.lte_nr_nsa_mmwave), getString(R.string.lte_nr_nsa_mmwave_detail))
+            else -> arrayOf(getString(R.string.error), "")
         }
     }
 }
\ No newline at end of file