diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 4bd228b75..41788128c 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -24,8 +24,8 @@ android { applicationId = "fr.free.nrw.commons" minSdk = 21 targetSdk = 35 - versionCode = 1058 - versionName = "6.0.2" + versionCode = 1059 + versionName = "6.1.0" setProperty("archivesBaseName", "app-commons-v$versionName-" + getBranchName()) testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d83d645dd..17917666d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -84,6 +84,7 @@ android:parentActivityName=".customselector.ui.selector.CustomSelectorActivity" /> @@ -100,8 +101,9 @@ android:name=".upload.UploadActivity" android:configChanges="orientation|screenSize|keyboard" android:exported="true" + android:hardwareAccelerated="false" android:icon="@mipmap/ic_launcher" - android:windowSoftInputMode="adjustResize"> + android:windowSoftInputMode="adjustPan"> diff --git a/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.kt b/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.kt index 688f508ae..0c9901b56 100644 --- a/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.kt +++ b/app/src/main/java/fr/free/nrw/commons/auth/LoginActivity.kt @@ -89,7 +89,7 @@ class LoginActivity : AccountAuthenticatorActivity() { binding = ActivityLoginBinding.inflate(layoutInflater) applyEdgeToEdgeAllInsets(binding!!.root) - binding?.aboutPrivacyPolicy?.handleKeyboardInsets() + binding!!.root.handleKeyboardInsets() with(binding!!) { setContentView(root) diff --git a/app/src/main/java/fr/free/nrw/commons/utils/EdgeToEdgeUtils.kt b/app/src/main/java/fr/free/nrw/commons/utils/EdgeToEdgeUtils.kt index d0c2b12e8..04007485d 100644 --- a/app/src/main/java/fr/free/nrw/commons/utils/EdgeToEdgeUtils.kt +++ b/app/src/main/java/fr/free/nrw/commons/utils/EdgeToEdgeUtils.kt @@ -166,46 +166,29 @@ fun applyEdgeToEdgeBottomInsets(view: View) = view.applyEdgeToEdgeInsets { inset * and accounts for navigation bar insets to avoid double offsets. */ fun View.handleKeyboardInsets() { - var existingBottomMargin = 0 - - ViewCompat.setOnApplyWindowInsetsListener(this) { view, windowInsets -> - existingBottomMargin = if (view.getTag(R.id.initial_margin_bottom) != null) { + ViewCompat.setOnApplyWindowInsetsListener(this) { view, insets -> + val existingBottomMargin = if (view.getTag(R.id.initial_margin_bottom) != null) { view.getTag(R.id.initial_margin_bottom) as Int } else { view.setTag(R.id.initial_margin_bottom, view.marginBottom) view.marginBottom } + val lp = layoutParams as MarginLayoutParams + + val navBarInsets = insets.getInsets(WindowInsetsCompat.Type.navigationBars()) + val imeInsets = insets.getInsets(WindowInsetsCompat.Type.ime()) + val imeVisible = insets.isVisible(WindowInsetsCompat.Type.ime()) + val imeBottomMargin = imeInsets.bottom - navBarInsets.bottom + + lp.bottomMargin = if (imeVisible && imeBottomMargin >= existingBottomMargin) + imeBottomMargin + existingBottomMargin + else existingBottomMargin + + layoutParams = lp + WindowInsetsCompat.CONSUMED } - - // Animate during IME transition - ViewCompat.setWindowInsetsAnimationCallback( - this, - object : WindowInsetsAnimationCompat.Callback( - DISPATCH_MODE_CONTINUE_ON_SUBTREE - ) { - override fun onProgress( - insets: WindowInsetsCompat, - runningAnimations: MutableList - ): WindowInsetsCompat { - val lp = layoutParams as MarginLayoutParams - val navBarInsets = insets.getInsets(WindowInsetsCompat.Type.navigationBars()) - val imeInsets = insets.getInsets(WindowInsetsCompat.Type.ime()) - val imeVisible = insets.isVisible(WindowInsetsCompat.Type.ime()) - - // Avoid extra space due to system nav bar when the keyboard is shown - val imeBottomMargin = imeInsets.bottom - navBarInsets.bottom - - lp.bottomMargin = if(imeVisible && imeBottomMargin >= existingBottomMargin) - imeBottomMargin + existingBottomMargin - else existingBottomMargin - - layoutParams = lp - return WindowInsetsCompat.CONSUMED - } - } - ) } /**