diff options
| author | cyberta <cyberta@riseup.net> | 2026-01-21 02:02:08 +0100 |
|---|---|---|
| committer | cyberta <cyberta@riseup.net> | 2026-01-21 02:13:45 +0100 |
| commit | c426ed832f3393370cb0193a4cff218c1ae08783 (patch) | |
| tree | 40122d2eda5de6d5954438ca8574d327e8968fb6 | |
| parent | 4d20f15c7dfd530a4db119d84a0315a7dec5cd3d (diff) | |
adjust provider selection scroll view bottom padding depending on keyboard
3 files changed, 14 insertions, 2 deletions
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 49f993f9..48699a5e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -36,6 +36,7 @@ android:name=".providersetup.activities.SetupActivity" android:launchMode="singleInstance" android:screenOrientation="portrait" + android:windowSoftInputMode="adjustResize" android:exported="false" /> <activity-alias diff --git a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ProviderSelectionFragment.java b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ProviderSelectionFragment.java index 823357ff..8bfda801 100644 --- a/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ProviderSelectionFragment.java +++ b/app/src/main/java/se/leap/bitmaskclient/providersetup/fragments/ProviderSelectionFragment.java @@ -14,6 +14,8 @@ import android.widget.RadioButton; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.core.view.ViewCompat; +import androidx.core.view.WindowInsetsCompat; import androidx.lifecycle.ViewModelProvider; import org.json.JSONObject; @@ -92,6 +94,14 @@ public class ProviderSelectionFragment extends BaseSetupFragment implements Canc binding.editCustomProvider.setVisibility(viewModel.getEditProviderVisibility()); binding.syntaxCheck.setVisibility(viewModel.getEditProviderVisibility()); binding.qrScanner.setVisibility(viewModel.getQrScannerVisibility()); + + ViewCompat.setOnApplyWindowInsetsListener(binding.scrollView, (v, insets) -> { + int imeHeight = insets.getInsets(WindowInsetsCompat.Type.ime()).bottom; + int systemBarsHeight = insets.getInsets(WindowInsetsCompat.Type.systemBars()).bottom; + binding.scrollView.setPadding(binding.scrollView.getPaddingLeft(), binding.scrollView.getPaddingTop(), binding.scrollView.getPaddingRight(), Math.max(imeHeight - (int) v.getContext().getResources().getDimension(R.dimen.setup_bottom_bar), systemBarsHeight)); + return insets; + }); + return binding.getRoot(); } diff --git a/app/src/main/res/layout/f_provider_selection.xml b/app/src/main/res/layout/f_provider_selection.xml index e5e0e9d6..6623aa03 100644 --- a/app/src/main/res/layout/f_provider_selection.xml +++ b/app/src/main/res/layout/f_provider_selection.xml @@ -1,13 +1,15 @@ <?xml version="1.0" encoding="utf-8"?> - <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="@dimen/stdpadding" + android:id="@+id/scrollView" android:layout_margin="@dimen/activity_margin" + android:layout_marginBottom="0dp" + android:clipToPadding="false" tools:context=".providersetup.fragments.ProviderSelectionFragment"> <androidx.appcompat.widget.LinearLayoutCompat @@ -69,7 +71,6 @@ android:layout_height="wrap_content" android:orientation="vertical" android:padding="@dimen/activity_margin" - android:paddingBottom="@dimen/list_view_margin_top" android:background="@color/color_provider_description_background" android:id="@+id/expandable_detail_container"> <androidx.appcompat.widget.AppCompatTextView |
