mirror of
https://github.com/AngelAuraMC/Amethyst-Android.git
synced 2025-09-15 15:48:26 -04:00
Refactor LoggerView.java
This commit is contained in:
parent
b9c4723fee
commit
fa690f99a6
@ -21,10 +21,10 @@ import net.kdt.pojavlaunch.R;
|
|||||||
* It has support for the Logger class
|
* It has support for the Logger class
|
||||||
*/
|
*/
|
||||||
public class LoggerView extends ConstraintLayout {
|
public class LoggerView extends ConstraintLayout {
|
||||||
private Logger.eventLogListener logListener;
|
private Logger.eventLogListener mLogListener;
|
||||||
private ToggleButton toggleButton;
|
private ToggleButton mToggleButton;
|
||||||
private ScrollView scrollView;
|
private ScrollView mScrollView;
|
||||||
private TextView log;
|
private TextView mLogTextView;
|
||||||
|
|
||||||
|
|
||||||
public LoggerView(@NonNull Context context) {
|
public LoggerView(@NonNull Context context) {
|
||||||
@ -36,50 +36,51 @@ public class LoggerView extends ConstraintLayout {
|
|||||||
init();
|
init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setVisibility(int visibility) {
|
||||||
|
super.setVisibility(visibility);
|
||||||
|
// Triggers the log view shown state by default when viewing it
|
||||||
|
mToggleButton.setChecked(visibility == VISIBLE);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Inflate the layout, and add component behaviors
|
* Inflate the layout, and add component behaviors
|
||||||
*/
|
*/
|
||||||
private void init(){
|
private void init(){
|
||||||
inflate(getContext(), R.layout.loggerview_layout, this);
|
inflate(getContext(), R.layout.loggerview_layout, this);
|
||||||
log = findViewById(R.id.content_log_view);
|
mLogTextView = findViewById(R.id.content_log_view);
|
||||||
log.setTypeface(Typeface.MONOSPACE);
|
mLogTextView.setTypeface(Typeface.MONOSPACE);
|
||||||
//TODO clamp the max text so it doesn't go oob
|
//TODO clamp the max text so it doesn't go oob
|
||||||
log.setMaxLines(Integer.MAX_VALUE);
|
mLogTextView.setMaxLines(Integer.MAX_VALUE);
|
||||||
log.setEllipsize(null);
|
mLogTextView.setEllipsize(null);
|
||||||
log.setVisibility(GONE);
|
mLogTextView.setVisibility(GONE);
|
||||||
|
|
||||||
// Toggle log visibility
|
// Toggle log visibility
|
||||||
toggleButton = findViewById(R.id.content_log_toggle_log);
|
mToggleButton = findViewById(R.id.content_log_toggle_log);
|
||||||
toggleButton.setOnCheckedChangeListener(
|
mToggleButton.setOnCheckedChangeListener(
|
||||||
(compoundButton, isChecked) -> {
|
(compoundButton, isChecked) -> {
|
||||||
log.setVisibility(isChecked ? VISIBLE : GONE);
|
mLogTextView.setVisibility(isChecked ? VISIBLE : GONE);
|
||||||
if(!isChecked) log.setText("");
|
if(!isChecked) mLogTextView.setText("");
|
||||||
});
|
});
|
||||||
toggleButton.setChecked(false);
|
mToggleButton.setChecked(false);
|
||||||
|
|
||||||
// Remove the loggerView from the user View
|
// Remove the loggerView from the user View
|
||||||
ImageButton cancelButton = findViewById(R.id.log_view_cancel);
|
ImageButton cancelButton = findViewById(R.id.log_view_cancel);
|
||||||
cancelButton.setOnClickListener(view -> LoggerView.this.setVisibility(GONE));
|
cancelButton.setOnClickListener(view -> LoggerView.this.setVisibility(GONE));
|
||||||
|
|
||||||
// Set the scroll view
|
// Set the scroll view
|
||||||
scrollView = findViewById(R.id.content_log_scroll);
|
mScrollView = findViewById(R.id.content_log_scroll);
|
||||||
|
|
||||||
// Listen to logs
|
// Listen to logs
|
||||||
logListener = text -> {
|
mLogListener = text -> {
|
||||||
if(log.getVisibility() != VISIBLE) return;
|
if(mLogTextView.getVisibility() != VISIBLE) return;
|
||||||
post(() -> {
|
post(() -> {
|
||||||
log.append(text + '\n');
|
mLogTextView.append(text + '\n');
|
||||||
scrollView.fullScroll(View.FOCUS_DOWN);
|
mScrollView.fullScroll(View.FOCUS_DOWN);
|
||||||
});
|
});
|
||||||
|
|
||||||
};
|
};
|
||||||
Logger.getInstance().setLogListener(logListener);
|
Logger.getInstance().setLogListener(mLogListener);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setVisibility(int visibility) {
|
|
||||||
super.setVisibility(visibility);
|
|
||||||
// Triggers the log view shown state by default when viewing it
|
|
||||||
toggleButton.setChecked(visibility == VISIBLE);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user