From 636fc0f9edc3159dc068b9c1e2ea9df4f66aee03 Mon Sep 17 00:00:00 2001 From: SerpentSpirale Date: Sun, 21 Nov 2021 16:26:44 +0100 Subject: [PATCH] Add auto-scroll to LoggerView --- .../src/main/java/com/kdt/LoggerView.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/app_pojavlauncher/src/main/java/com/kdt/LoggerView.java b/app_pojavlauncher/src/main/java/com/kdt/LoggerView.java index b699ea325..eaa6c0a25 100644 --- a/app_pojavlauncher/src/main/java/com/kdt/LoggerView.java +++ b/app_pojavlauncher/src/main/java/com/kdt/LoggerView.java @@ -3,7 +3,9 @@ package com.kdt; import android.content.Context; import android.graphics.Typeface; import android.util.AttributeSet; +import android.view.View; import android.widget.ImageButton; +import android.widget.ScrollView; import android.widget.TextView; import android.widget.ToggleButton; @@ -20,6 +22,8 @@ import net.kdt.pojavlaunch.R; */ public class LoggerView extends ConstraintLayout { private Logger.eventLogListener logListener; + private ToggleButton toggleButton; + private ScrollView scrollView; private TextView log; @@ -45,7 +49,7 @@ public class LoggerView extends ConstraintLayout { log.setVisibility(GONE); // Toggle log visibility - ToggleButton toggleButton = findViewById(R.id.content_log_toggle_log); + toggleButton = findViewById(R.id.content_log_toggle_log); toggleButton.setOnCheckedChangeListener( (compoundButton, isChecked) -> { log.setVisibility(isChecked ? VISIBLE : GONE); @@ -57,10 +61,16 @@ public class LoggerView extends ConstraintLayout { ImageButton cancelButton = findViewById(R.id.log_view_cancel); cancelButton.setOnClickListener(view -> LoggerView.this.setVisibility(GONE)); + // Set the scroll view + scrollView = findViewById(R.id.content_log_scroll); + // Listen to logs logListener = text -> { if(log.getVisibility() != VISIBLE) return; - post(() -> log.append(text)); + post(() -> { + log.append(text); + scrollView.fullScroll(View.FOCUS_DOWN); + }); }; Logger.getInstance().setLogListener(logListener);