X-Git-Url: https://gitweb.stoutner.com/?p=PrivacyCell.git;a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fcom%2Fstoutner%2Fprivacycell%2Factivities%2FPrivacyCellActivity.kt;h=16772d2a5347092c00310811f435e80b50b8d2d0;hp=55d7c92e4111d2cc3a58af10497b715093ba3955;hb=86731d839decc4df39f2fa765f6727e64e151cb6;hpb=5d8e96c54cad4115e962eac556c10f871807f02f diff --git a/app/src/main/java/com/stoutner/privacycell/activities/PrivacyCellActivity.kt b/app/src/main/java/com/stoutner/privacycell/activities/PrivacyCellActivity.kt index 55d7c92..16772d2 100644 --- a/app/src/main/java/com/stoutner/privacycell/activities/PrivacyCellActivity.kt +++ b/app/src/main/java/com/stoutner/privacycell/activities/PrivacyCellActivity.kt @@ -1,5 +1,5 @@ /* - * Copyright © 2021 Soren Stoutner . + * Copyright © 2021-2022 Soren Stoutner . * * This file is part of Privacy Cell . * @@ -17,9 +17,13 @@ * along with Privacy Cell. If not, see . */ +// The suppression of deprecation lint can be removed once the minimum API >= 31. +@file:Suppress("DEPRECATION") + package com.stoutner.privacycell.activities import android.Manifest +import android.annotation.SuppressLint import android.app.ActivityManager import android.content.Context import android.content.Intent @@ -60,7 +64,7 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem // Declare the class views. private lateinit var drawerLayout: DrawerLayout - private lateinit var stingrayTextView: TextView + private lateinit var summaryTextView: TextView override fun onCreate(savedInstanceState: Bundle?) { // Run the default commands. @@ -71,6 +75,7 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem // Get the preferences. val realtimeMonitoring = sharedPreferences.getBoolean(getString(R.string.realtime_monitoring_key), false) + val consider3gAntiquated = sharedPreferences.getBoolean(getString(R.string.consider_3g_antiquated_key), false) val bottomAppBar = sharedPreferences.getBoolean(getString(R.string.bottom_app_bar_key), false) // Set the content view. @@ -85,7 +90,7 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem val toolbar = findViewById(R.id.toolbar) val stingrayLinearLayout = findViewById(R.id.stingray_linearlayout) val stingrayImageView = findViewById(R.id.stingray_imageview) - stingrayTextView = findViewById(R.id.stingray_textview) + summaryTextView = findViewById(R.id.summary_textview) val voiceNetworkLinearLayout = findViewById(R.id.voice_network_linearlayout) val voiceNetworkTextView = findViewById(R.id.voice_network) val voiceNetworkDetailsTextView = findViewById(R.id.voice_network_details) @@ -137,26 +142,56 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem // Define the phone state listener. The `PhoneStateListener` can be replaced by `TelephonyCallback` once the minimum API >= 31. phoneStateListener = object : PhoneStateListener() { + @Deprecated("Deprecated in Java") + @SuppressLint("SwitchIntDef") override fun onDisplayInfoChanged(telephonyDisplayInfo: TelephonyDisplayInfo) { + // Declare the stingray dialog type integer. + val summaryDialogTypeInteger: Int + // Populate the stingray security information. - if (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_NR) { // This is a secure 5G NR SA network. + if ((telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_NR) || (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_IWLAN) || + (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_UNKNOWN)) { // This is a secure network. // Populate the image view. - stingrayImageView.setImageDrawable(AppCompatResources.getDrawable(applicationContext, R.drawable.secure_5g_nr_sa)) + stingrayImageView.setImageDrawable(AppCompatResources.getDrawable(applicationContext, R.drawable.secure)) // Set the text. - stingrayTextView.text = getString(R.string.secure_from_stingray) + summaryTextView.text = getString(R.string.secure_protocols) // Set the text color. - stingrayTextView.setTextColor(getColor(R.color.blue_text)) - } else { // This is not a secure 5G NR SA network. + summaryTextView.setTextColor(getColor(R.color.blue_text)) + + // Set the stingray dialog type integer. + summaryDialogTypeInteger = WebViewDialog.STINGRAY + } else if ((telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_LTE) || (!consider3gAntiquated && (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_1xRTT || + (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_EVDO_0) || (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_EVDO_A) || + (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_EVDO_B) || (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_EHRPD) || + (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_UMTS) || (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_TD_SCDMA) || + (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_HSDPA) || (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_HSUPA) || + (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_HSPA) || (telephonyDisplayInfo.networkType == TelephonyManager.NETWORK_TYPE_HSPAP)))) { + // This is an insecure network. // Populate the image view. - stingrayImageView.setImageDrawable(AppCompatResources.getDrawable(applicationContext, R.drawable.not_secure)) + stingrayImageView.setImageDrawable(AppCompatResources.getDrawable(applicationContext, R.drawable.insecure)) // Set the text. - stingrayTextView.text = getString(R.string.not_secure_from_stingray) + summaryTextView.text = getString(R.string.insecure_protocols) // Set the text color. - stingrayTextView.setTextColor(getColor(R.color.red_text)) + summaryTextView.setTextColor(getColor(R.color.yellow_900)) + + // Set the stingray dialog type integer. + summaryDialogTypeInteger = WebViewDialog.STINGRAY + } else { // This is an antiquated network. + // Populate the image view. + stingrayImageView.setImageDrawable(AppCompatResources.getDrawable(applicationContext, R.drawable.antiquated)) + + // Set the text. + summaryTextView.text = getString(R.string.antiquated_protocols) + + // Set the text color. + summaryTextView.setTextColor(getColor(R.color.red_text)) + + // Set the stingray dialog type integer. + summaryDialogTypeInteger = WebViewDialog.ANTIQUATED_NETWORK } // Get the strings that correspond to the network information. @@ -172,7 +207,7 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem // Set the stingray click listener. stingrayLinearLayout.setOnClickListener { // Instantiate the stingray dialog fragment. - val stingrayDialogFragment = WebViewDialog().type(WebViewDialog.STINGRAY) + val stingrayDialogFragment = WebViewDialog().type(summaryDialogTypeInteger) // Show the alert dialog. stingrayDialogFragment.show(supportFragmentManager, getString(R.string.stingrays)) @@ -227,6 +262,7 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem } } + @Deprecated("Deprecated in Java") override fun onServiceStateChanged(serviceState: ServiceState) { // Get the network registration info for the voice network, which is the second of the three entries (the first appears to be Wi-Fi and the third appears to be the cell data network). val networkRegistrationInfo = serviceState.networkRegistrationInfoList[1] @@ -342,6 +378,14 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem startActivity(settingsIntent) } + R.id.protocols -> { + // Create an intent to load the Protocols activity. + val protocolsIntent = Intent(this, ProtocolsActivity::class.java) + + // Make it so. + startActivity(protocolsIntent) + } + R.id.logcat -> { // Logcat. // Create an intent to load the Logcat activity. val logcatIntent = Intent(this, LogcatActivity::class.java) @@ -470,7 +514,7 @@ class PrivacyCellActivity : AppCompatActivity(), NavigationView.OnNavigationItem registerTelephonyManagerListener() } else { // The read phone state permission was denied. // Display the phone permission text on the main activity. - stingrayTextView.text = getString(R.string.phone_permission_text) + summaryTextView.text = getString(R.string.phone_permission_text) } } }