From 97bc0a08273ffdd982e1b292bf98e446521964c3 Mon Sep 17 00:00:00 2001 From: Peter Cai Date: Tue, 24 Sep 2024 22:22:18 -0400 Subject: [PATCH] chore: uprev to targetSDK 35 and basic edge2edge inset fixes --- .idea/deploymentTargetSelector.xml | 3 ++ app-common/build.gradle.kts | 2 +- .../im/angry/openeuicc/ui/LogsActivity.kt | 3 ++ .../im/angry/openeuicc/ui/MainActivity.kt | 3 ++ .../openeuicc/ui/NotificationsActivity.kt | 3 ++ .../im/angry/openeuicc/ui/SettingsActivity.kt | 4 +++ .../java/im/angry/openeuicc/util/UiUtils.kt | 30 +++++++++++++++++++ .../src/main/res/layout/activity_logs.xml | 9 ++++++ .../src/main/res/layout/activity_main.xml | 9 ++++++ .../res/layout/activity_notifications.xml | 9 ++++++ .../src/main/res/layout/activity_settings.xml | 9 ++++++ app-unpriv/build.gradle.kts | 4 +-- .../ui/CompatibilityCheckActivity.kt | 3 ++ .../layout/activity_compatibility_check.xml | 9 ++++++ app/build.gradle.kts | 4 +-- .../java/im/angry/openeuicc/ui/LuiActivity.kt | 14 +++++++++ app/src/main/res/layout/activity_lui.xml | 1 + libs/lpac-jni/build.gradle.kts | 2 +- 18 files changed, 115 insertions(+), 6 deletions(-) diff --git a/.idea/deploymentTargetSelector.xml b/.idea/deploymentTargetSelector.xml index 913d49d..8096d6c 100644 --- a/.idea/deploymentTargetSelector.xml +++ b/.idea/deploymentTargetSelector.xml @@ -5,6 +5,9 @@ + + \ No newline at end of file diff --git a/app-common/build.gradle.kts b/app-common/build.gradle.kts index 5af1799..d74fcec 100644 --- a/app-common/build.gradle.kts +++ b/app-common/build.gradle.kts @@ -5,7 +5,7 @@ plugins { android { namespace = "im.angry.openeuicc.common" - compileSdk = 34 + compileSdk = 35 defaultConfig { minSdk = 28 diff --git a/app-common/src/main/java/im/angry/openeuicc/ui/LogsActivity.kt b/app-common/src/main/java/im/angry/openeuicc/ui/LogsActivity.kt index 2b36468..558e69a 100644 --- a/app-common/src/main/java/im/angry/openeuicc/ui/LogsActivity.kt +++ b/app-common/src/main/java/im/angry/openeuicc/ui/LogsActivity.kt @@ -7,6 +7,7 @@ import android.view.MenuItem import android.view.View import android.widget.ScrollView import android.widget.TextView +import androidx.activity.enableEdgeToEdge import androidx.activity.result.contract.ActivityResultContracts import androidx.appcompat.app.AppCompatActivity import androidx.lifecycle.lifecycleScope @@ -37,9 +38,11 @@ class LogsActivity : AppCompatActivity() { } override fun onCreate(savedInstanceState: Bundle?) { + enableEdgeToEdge() super.onCreate(savedInstanceState) setContentView(R.layout.activity_logs) setSupportActionBar(requireViewById(R.id.toolbar)) + setupToolbarInsets() supportActionBar!!.setDisplayHomeAsUpEnabled(true) swipeRefresh = requireViewById(R.id.swipe_refresh) diff --git a/app-common/src/main/java/im/angry/openeuicc/ui/MainActivity.kt b/app-common/src/main/java/im/angry/openeuicc/ui/MainActivity.kt index 0f504eb..183bbbd 100644 --- a/app-common/src/main/java/im/angry/openeuicc/ui/MainActivity.kt +++ b/app-common/src/main/java/im/angry/openeuicc/ui/MainActivity.kt @@ -13,6 +13,7 @@ import android.view.Menu import android.view.MenuItem import android.view.View import android.widget.ProgressBar +import androidx.activity.enableEdgeToEdge import androidx.fragment.app.Fragment import androidx.lifecycle.lifecycleScope import androidx.viewpager2.adapter.FragmentStateAdapter @@ -64,9 +65,11 @@ open class MainActivity : BaseEuiccAccessActivity(), OpenEuiccContextMarker { @SuppressLint("WrongConstant", "UnspecifiedRegisterReceiverFlag") override fun onCreate(savedInstanceState: Bundle?) { + enableEdgeToEdge() super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) setSupportActionBar(requireViewById(R.id.toolbar)) + setupToolbarInsets() loadingProgress = requireViewById(R.id.loading) tabs = requireViewById(R.id.main_tabs) viewPager = requireViewById(R.id.view_pager) diff --git a/app-common/src/main/java/im/angry/openeuicc/ui/NotificationsActivity.kt b/app-common/src/main/java/im/angry/openeuicc/ui/NotificationsActivity.kt index 59abbc5..dd14d8e 100644 --- a/app-common/src/main/java/im/angry/openeuicc/ui/NotificationsActivity.kt +++ b/app-common/src/main/java/im/angry/openeuicc/ui/NotificationsActivity.kt @@ -11,6 +11,7 @@ import android.view.MenuItem.OnMenuItemClickListener import android.view.View import android.view.ViewGroup import android.widget.TextView +import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AlertDialog import androidx.core.view.forEach import androidx.lifecycle.lifecycleScope @@ -35,9 +36,11 @@ class NotificationsActivity: BaseEuiccAccessActivity(), OpenEuiccContextMarker { private lateinit var euiccChannel: EuiccChannel override fun onCreate(savedInstanceState: Bundle?) { + enableEdgeToEdge() super.onCreate(savedInstanceState) setContentView(R.layout.activity_notifications) setSupportActionBar(requireViewById(R.id.toolbar)) + setupToolbarInsets() supportActionBar!!.setDisplayHomeAsUpEnabled(true) } diff --git a/app-common/src/main/java/im/angry/openeuicc/ui/SettingsActivity.kt b/app-common/src/main/java/im/angry/openeuicc/ui/SettingsActivity.kt index 426c546..52e3272 100644 --- a/app-common/src/main/java/im/angry/openeuicc/ui/SettingsActivity.kt +++ b/app-common/src/main/java/im/angry/openeuicc/ui/SettingsActivity.kt @@ -2,14 +2,18 @@ package im.angry.openeuicc.ui import android.os.Bundle import android.view.MenuItem +import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity import im.angry.openeuicc.common.R +import im.angry.openeuicc.util.* class SettingsActivity: AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { + enableEdgeToEdge() super.onCreate(savedInstanceState) setContentView(R.layout.activity_settings) setSupportActionBar(requireViewById(R.id.toolbar)) + setupToolbarInsets() supportActionBar!!.setDisplayHomeAsUpEnabled(true) supportFragmentManager.beginTransaction() .replace(R.id.settings_container, SettingsFragment()) diff --git a/app-common/src/main/java/im/angry/openeuicc/util/UiUtils.kt b/app-common/src/main/java/im/angry/openeuicc/util/UiUtils.kt index 24c1ad8..6aa62c2 100644 --- a/app-common/src/main/java/im/angry/openeuicc/util/UiUtils.kt +++ b/app-common/src/main/java/im/angry/openeuicc/util/UiUtils.kt @@ -2,8 +2,16 @@ package im.angry.openeuicc.util import android.content.res.Resources import android.graphics.Rect +import android.view.View import android.view.ViewGroup +import androidx.appcompat.app.AppCompatActivity +import androidx.appcompat.widget.Toolbar +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat +import androidx.core.view.updateLayoutParams +import androidx.core.view.updatePadding import androidx.fragment.app.DialogFragment +import im.angry.openeuicc.common.R // Source: /** @@ -26,3 +34,25 @@ fun DialogFragment.setWidthPercent(percentage: Int) { fun DialogFragment.setFullScreen() { dialog?.window?.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT) } + +fun AppCompatActivity.setupToolbarInsets() { + val spacer = requireViewById(R.id.toolbar_spacer) + ViewCompat.setOnApplyWindowInsetsListener(requireViewById(R.id.toolbar)) { v, insets -> + val bars = insets.getInsets( + WindowInsetsCompat.Type.systemBars() + or WindowInsetsCompat.Type.displayCutout() + ) + + v.updateLayoutParams { + topMargin = bars.top + } + v.updatePadding(bars.left, v.paddingTop, bars.right, v.paddingBottom) + + spacer.updateLayoutParams { + height = v.top + } + + android.util.Log.d("aaa", "${(v as Toolbar).minimumHeight}") + WindowInsetsCompat.CONSUMED + } +} diff --git a/app-common/src/main/res/layout/activity_logs.xml b/app-common/src/main/res/layout/activity_logs.xml index c305d0a..8210d07 100644 --- a/app-common/src/main/res/layout/activity_logs.xml +++ b/app-common/src/main/res/layout/activity_logs.xml @@ -5,6 +5,15 @@ android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto"> + + + + + + + + + + + val bars = insets.getInsets( + WindowInsetsCompat.Type.systemBars() + or WindowInsetsCompat.Type.displayCutout() + ) + v.updatePadding(bars.left, bars.top, bars.right, bars.bottom) + WindowInsetsCompat.CONSUMED + } + requireViewById(R.id.lui_skip).setOnClickListener { finish() } // TODO: Deactivate LuiActivity if there is no eSIM found. // TODO: Support pre-filled download info (from carrier apps); UX diff --git a/app/src/main/res/layout/activity_lui.xml b/app/src/main/res/layout/activity_lui.xml index ff4a302..b331156 100644 --- a/app/src/main/res/layout/activity_lui.xml +++ b/app/src/main/res/layout/activity_lui.xml @@ -2,6 +2,7 @@ diff --git a/libs/lpac-jni/build.gradle.kts b/libs/lpac-jni/build.gradle.kts index 7f45177..ff34d56 100644 --- a/libs/lpac-jni/build.gradle.kts +++ b/libs/lpac-jni/build.gradle.kts @@ -5,7 +5,7 @@ plugins { android { namespace = "net.typeblog.lpac_jni" - compileSdk = 34 + compileSdk = 35 ndkVersion = "26.1.10909125" defaultConfig {