From 0fb57bf3c13ba0bb98aa3e1755889b1425e9c486 Mon Sep 17 00:00:00 2001 From: ipcjs Date: Mon, 12 May 2025 23:14:31 +0800 Subject: [PATCH 1/5] perf: show default country code --- .../java/gay/nullby/carriername/TargetFragment.kt | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/gay/nullby/carriername/TargetFragment.kt b/app/src/main/java/gay/nullby/carriername/TargetFragment.kt index b19b3f1..7c05116 100644 --- a/app/src/main/java/gay/nullby/carriername/TargetFragment.kt +++ b/app/src/main/java/gay/nullby/carriername/TargetFragment.kt @@ -1,6 +1,7 @@ package gay.nullby.carriername import android.content.Context +import android.os.Build import android.os.Bundle import android.os.PersistableBundle import android.telephony.CarrierConfigManager @@ -54,11 +55,11 @@ class TargetFragment : Fragment() { if (_subId1 != null) { subId1 = _subId1[0] - view.findViewById(R.id.sub1_button).text = "Network 1 (carrier: ${getCarrierNameBySubId(subId1)})" + view.findViewById(R.id.sub1_button).text = "Network 1 (carrier: ${getCarrierInfoBySubId(subId1)})" } if (_subId2 != null) { subId2 = _subId2[0] - view.findViewById(R.id.sub2_button).text = "Network 2 (carrier: ${getCarrierNameBySubId(subId2)})" + view.findViewById(R.id.sub2_button).text = "Network 2 (carrier: ${getCarrierInfoBySubId(subId2)})" } if (subId2 == -1) { @@ -132,10 +133,16 @@ class TargetFragment : Fragment() { } } - private fun getCarrierNameBySubId(subId: Int): String { + private fun getCarrierInfoBySubId(subId: Int): String { val telephonyManager = context!!.getSystemService(Context.TELEPHONY_SERVICE) as? TelephonyManager ?: return "" - return telephonyManager.getNetworkOperatorName(subId) + val name = telephonyManager.getNetworkOperatorName(subId) + val country = (if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + SubscriptionManager.getSlotIndex(subId) + .takeIf { it != SubscriptionManager.SIM_NOT_INSERTED } + ?.let { telephonyManager.getNetworkCountryIso(it) } + } else null) ?: "Unknown" + return "$name - $country" } private fun overrideCarrierConfig(subId: Int, p: PersistableBundle?) { From cd2f9feeaf1d47ddd70ca333d1e47ac1e97de6a0 Mon Sep 17 00:00:00 2001 From: ipcjs Date: Mon, 12 May 2025 23:23:37 +0800 Subject: [PATCH 2/5] chore: config signing, enable minify, add android.jar --- .gitignore | 2 ++ .idea/.gitignore | 2 ++ app/build.gradle | 23 ++++++++++++++++++++++- 3 files changed, 26 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index ca3199c..6ddcb11 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,5 @@ .externalNativeBuild .cxx local.properties + +android.jar \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore index 26d3352..9a8bb4e 100644 --- a/.idea/.gitignore +++ b/.idea/.gitignore @@ -1,3 +1,5 @@ # Default ignored files /shelf/ /workspace.xml +*.xml + diff --git a/app/build.gradle b/app/build.gradle index 4a7c473..c972e1f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,6 +7,17 @@ android { namespace 'gay.nullby.carriername' compileSdk 33 + signingConfigs { + release { + if (project.properties['keyStore.release.storeFile'] != null) { + storeFile file(project.properties['keyStore.release.storeFile']) + storePassword project.properties['keyStore.release.storePassword'] + keyAlias project.properties['keyStore.release.keyAlias'] + keyPassword project.properties['keyStore.release.keyPassword'] + } + } + } + defaultConfig { applicationId "gay.nullby.carriername" minSdk 28 @@ -19,9 +30,13 @@ android { buildTypes { release { - minifyEnabled false + signingConfig signingConfigs.release + minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } + debug { + signingConfig signingConfigs.release + } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 @@ -36,6 +51,12 @@ android { } dependencies { + // Download android.jar from the following url and put it in the root directory of the project + // https://github.com/Reginer/aosp-android-jar/raw/refs/heads/main/android-33/android.jar + final androidJar = file('../android.jar') + if (androidJar.exists()) { + compileOnly files(androidJar) + } implementation 'androidx.core:core-ktx:1.7.0' implementation 'androidx.appcompat:appcompat:1.6.0' From ad27b6e99a62148083f21053e8235fca37097e86 Mon Sep 17 00:00:00 2001 From: ipcjs Date: Mon, 12 May 2025 23:43:54 +0800 Subject: [PATCH 3/5] chore: change versionName --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index c972e1f..4d48707 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -23,7 +23,7 @@ android { minSdk 28 targetSdk 33 versionCode 2 - versionName "1.1" + versionName "1.1.1" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } From 43877bae41f71eb9b68c9b401896cb34580004c9 Mon Sep 17 00:00:00 2001 From: ipcjs Date: Mon, 23 Jun 2025 01:45:46 +0800 Subject: [PATCH 4/5] per: show sim country --- .../main/java/gay/nullby/carriername/TargetFragment.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/gay/nullby/carriername/TargetFragment.kt b/app/src/main/java/gay/nullby/carriername/TargetFragment.kt index 7c05116..d061dbe 100644 --- a/app/src/main/java/gay/nullby/carriername/TargetFragment.kt +++ b/app/src/main/java/gay/nullby/carriername/TargetFragment.kt @@ -18,6 +18,7 @@ import android.widget.EditText import android.widget.RadioButton import android.widget.RadioGroup import android.widget.Toast +import com.android.internal.R.attr.country import com.android.internal.telephony.ICarrierConfigLoader import gay.nullby.carriername.databinding.FragmentTargetBinding import rikka.shizuku.ShizukuBinderWrapper @@ -136,13 +137,14 @@ class TargetFragment : Fragment() { private fun getCarrierInfoBySubId(subId: Int): String { val telephonyManager = context!!.getSystemService(Context.TELEPHONY_SERVICE) as? TelephonyManager ?: return "" - val name = telephonyManager.getNetworkOperatorName(subId) - val country = (if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + val networkName = telephonyManager.getNetworkOperatorName(subId) + val networkCountry = (if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { SubscriptionManager.getSlotIndex(subId) .takeIf { it != SubscriptionManager.SIM_NOT_INSERTED } ?.let { telephonyManager.getNetworkCountryIso(it) } } else null) ?: "Unknown" - return "$name - $country" + val simCountry = TelephonyManager.getSimCountryIso(subId) + return "$networkName - $simCountry" } private fun overrideCarrierConfig(subId: Int, p: PersistableBundle?) { From ac813edb2aeadd6042189e5b3902f919a041a899 Mon Sep 17 00:00:00 2001 From: ipcjs Date: Mon, 23 Jun 2025 02:08:34 +0800 Subject: [PATCH 5/5] fix: navigation config error --- app/src/main/java/gay/nullby/carriername/MainActivity.kt | 2 +- app/src/main/res/navigation/nav_graph.xml | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/gay/nullby/carriername/MainActivity.kt b/app/src/main/java/gay/nullby/carriername/MainActivity.kt index 6163258..479a357 100644 --- a/app/src/main/java/gay/nullby/carriername/MainActivity.kt +++ b/app/src/main/java/gay/nullby/carriername/MainActivity.kt @@ -30,7 +30,7 @@ class MainActivity : AppCompatActivity() { setSupportActionBar(binding.toolbar) val navController = findNavController(R.id.nav_host_fragment_content_main) - appBarConfiguration = AppBarConfiguration(navController.graph) + appBarConfiguration = AppBarConfiguration(setOf(R.id.FirstFragment, R.id.TargetFragment)) setupActionBarWithNavController(navController, appBarConfiguration) } diff --git a/app/src/main/res/navigation/nav_graph.xml b/app/src/main/res/navigation/nav_graph.xml index 74655ab..fa65781 100644 --- a/app/src/main/res/navigation/nav_graph.xml +++ b/app/src/main/res/navigation/nav_graph.xml @@ -13,6 +13,8 @@