diff --git a/briar-android/src/main/java/org/briarproject/briar/android/fragment/FinalFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/fragment/FinalFragment.java index 0cb4b4a8a..099e988fe 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/fragment/FinalFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/fragment/FinalFragment.java @@ -7,7 +7,6 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageView; -import android.widget.ScrollView; import android.widget.TextView; import org.briarproject.bramble.api.nullsafety.MethodsNotNullByDefault; @@ -22,6 +21,7 @@ import androidx.annotation.StringRes; import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AppCompatActivity; import androidx.core.widget.ImageViewCompat; +import androidx.core.widget.NestedScrollView; import androidx.fragment.app.Fragment; import static android.view.View.FOCUS_DOWN; @@ -58,7 +58,7 @@ public class FinalFragment extends Fragment { return f; } - private ScrollView scrollView; + private NestedScrollView scrollView; protected Button buttonView; @Nullable @@ -69,7 +69,7 @@ public class FinalFragment extends Fragment { View v = inflater .inflate(R.layout.fragment_final, container, false); - scrollView = (ScrollView) v; + scrollView = (NestedScrollView) v; ImageView iconView = v.findViewById(R.id.iconView); TextView titleView = v.findViewById(R.id.titleView); TextView textView = v.findViewById(R.id.textView); diff --git a/briar-android/src/main/java/org/briarproject/briar/android/hotspot/HotspotIntroFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/hotspot/HotspotIntroFragment.java index fd6112bd0..85e386944 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/hotspot/HotspotIntroFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/hotspot/HotspotIntroFragment.java @@ -9,6 +9,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.ProgressBar; +import android.widget.ScrollView; import android.widget.TextView; import com.google.android.material.snackbar.Snackbar; @@ -26,6 +27,7 @@ import androidx.lifecycle.ViewModelProvider; import static android.content.pm.ApplicationInfo.FLAG_TEST_ONLY; import static android.os.Build.VERSION.SDK_INT; +import static android.view.View.FOCUS_DOWN; import static android.view.View.INVISIBLE; import static android.view.View.VISIBLE; import static androidx.transition.TransitionManager.beginDelayedTransition; @@ -46,6 +48,7 @@ public class HotspotIntroFragment extends Fragment { private Button startButton; private ProgressBar progressBar; private TextView progressTextView; + private ScrollView scrollView; private final AbstractConditionManager conditionManager = SDK_INT < 29 ? new ConditionManager(this, this::onPermissionUpdate) : @@ -70,6 +73,7 @@ public class HotspotIntroFragment extends Fragment { startButton = v.findViewById(R.id.startButton); progressBar = v.findViewById(R.id.progressBar); progressTextView = v.findViewById(R.id.progressTextView); + scrollView = v.findViewById(R.id.scrollView); startButton.setOnClickListener(this::onButtonClick); @@ -82,6 +86,8 @@ public class HotspotIntroFragment extends Fragment { public void onStart() { super.onStart(); conditionManager.onStart(); + // Scroll down in case the screen is small, so the button is visible + scrollView.post(() -> scrollView.fullScroll(FOCUS_DOWN)); } private void onButtonClick(View view) { diff --git a/briar-android/src/main/res/layout/fragment_crash.xml b/briar-android/src/main/res/layout/fragment_crash.xml index cbfdc7ab2..02c136de4 100644 --- a/briar-android/src/main/res/layout/fragment_crash.xml +++ b/briar-android/src/main/res/layout/fragment_crash.xml @@ -5,31 +5,30 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - + android:layout_margin="@dimen/margin_xlarge"> + app:layout_constraintTop_toBottomOf="@+id/errorIcon" /> - +