1
0
Fork 0

reduced the button status updates on the Languages screen for more responsive navigation

This commit is contained in:
sspanak 2025-01-07 12:44:19 +02:00 committed by Dimo Karaivanov
parent f7e11c7445
commit 7864c24850
7 changed files with 28 additions and 31 deletions

View file

@ -20,9 +20,8 @@ abstract public class ItemProcessCustomWordsAbstract extends ItemClickable {
AbstractFileProcessor processor = getProcessor(); AbstractFileProcessor processor = getProcessor();
processor.setFailureHandler(() -> onFinishProcessing(null)); processor.setFailureHandler(() -> onFinishProcessing(null));
processor.setStartHandler(() -> activity.runOnUiThread(this::setLoadingStatus)); processor.setStartHandler(() -> activity.runOnUiThread(this::setBusy));
processor.setSuccessHandler(this::onFinishProcessing); processor.setSuccessHandler(this::onFinishProcessing);
refreshStatus();
} }
@ -32,9 +31,9 @@ abstract public class ItemProcessCustomWordsAbstract extends ItemClickable {
public ItemProcessCustomWordsAbstract refreshStatus() { public ItemProcessCustomWordsAbstract refreshStatus() {
if (item != null) { if (item != null) {
if (getProcessor().isRunning()) { if (getProcessor().isRunning()) {
setLoadingStatus(); setBusy();
} else { } else {
setReadyStatus(); enable();
} }
} }
return this; return this;
@ -43,9 +42,9 @@ abstract public class ItemProcessCustomWordsAbstract extends ItemClickable {
@Override @Override
protected boolean onClick(Preference p) { protected boolean onClick(Preference p) {
setLoadingStatus(); setBusy();
if (!onStartProcessing()) { if (!onStartProcessing()) {
setReadyStatus(); setAndNotifyReady();
} }
return true; return true;
} }
@ -56,7 +55,7 @@ abstract public class ItemProcessCustomWordsAbstract extends ItemClickable {
protected void onFinishProcessing(String fileName) { protected void onFinishProcessing(String fileName) {
activity.runOnUiThread(() -> { activity.runOnUiThread(() -> {
setReadyStatus(); setAndNotifyReady();
if (fileName == null) { if (fileName == null) {
DictionaryProgressNotification.getInstance(activity).showError( DictionaryProgressNotification.getInstance(activity).showError(
@ -80,7 +79,7 @@ abstract public class ItemProcessCustomWordsAbstract extends ItemClickable {
abstract protected String getSuccessTitle(); abstract protected String getSuccessTitle();
protected void setLoadingStatus() { protected void setBusy() {
if (onStart != null) onStart.run(); if (onStart != null) onStart.run();
disable(); disable();
@ -89,8 +88,7 @@ abstract public class ItemProcessCustomWordsAbstract extends ItemClickable {
DictionaryProgressNotification.getInstance(activity).showLoadingMessage(loadingMessage, ""); DictionaryProgressNotification.getInstance(activity).showLoadingMessage(loadingMessage, "");
} }
protected void setAndNotifyReady() {
public void setReadyStatus() {
enable(); enable();
if (onFinish != null) onFinish.run(); if (onFinish != null) onFinish.run();
} }

View file

@ -28,7 +28,7 @@ public class ItemExportLogcat extends ItemExportAbstract {
protected void onFinishProcessing(String outputFile) { protected void onFinishProcessing(String outputFile) {
activity.runOnUiThread(() -> { activity.runOnUiThread(() -> {
DictionaryProgressNotification.getInstance(activity).hide(); DictionaryProgressNotification.getInstance(activity).hide();
setReadyStatus(); setAndNotifyReady();
if (outputFile == null) { if (outputFile == null) {
item.setSummary("Export failed"); item.setSummary("Export failed");

View file

@ -23,8 +23,8 @@ class ItemExportCustomWords extends ItemExportAbstract {
return CustomWordsExporter.getInstance().run(activity); return CustomWordsExporter.getInstance().run(activity);
} }
public void setReadyStatus() { public void enable() {
super.setReadyStatus(); super.enable();
item.setSummary(activity.getString( item.setSummary(activity.getString(
R.string.dictionary_export_custom_words_summary, R.string.dictionary_export_custom_words_summary,
CustomWordsExporter.getInstance().getOutputDir() CustomWordsExporter.getInstance().getOutputDir()

View file

@ -35,8 +35,8 @@ class ItemExportDictionary extends ItemExportAbstract {
.run(activity); .run(activity);
} }
public void setReadyStatus() { public void enable() {
super.setReadyStatus(); super.enable();
item.setSummary(""); item.setSummary("");
} }
} }

View file

@ -82,9 +82,9 @@ public class ItemImportCustomWords extends ItemProcessCustomWordsAbstract {
} }
@Override @Override
public void setReadyStatus() { public void enable() {
item.setSummary(R.string.dictionary_import_custom_words_summary); item.setSummary(R.string.dictionary_import_custom_words_summary);
super.setReadyStatus(); super.enable();
} }
void setBrowseFilesLauncher(ActivityResultLauncher<Intent> launcher) { void setBrowseFilesLauncher(ActivityResultLauncher<Intent> launcher) {

View file

@ -35,16 +35,14 @@ class ItemLoadDictionary extends ItemClickable {
this.progressBar = DictionaryLoadingBar.getInstance(context); this.progressBar = DictionaryLoadingBar.getInstance(context);
this.onStart = onStart; this.onStart = onStart;
this.onFinish = onFinish; this.onFinish = onFinish;
refreshStatus();
} }
public void refreshStatus() { public void refreshStatus() {
if (loader.isRunning()) { if (loader.isRunning()) {
setLoadingStatus(); setBusy();
} else { } else {
setReadyStatus(); setReady();
} }
} }
@ -54,12 +52,15 @@ class ItemLoadDictionary extends ItemClickable {
item.setSummary(progressBar.getTitle() + " " + progressBar.getMessage()); item.setSummary(progressBar.getTitle() + " " + progressBar.getMessage());
if (progressBar.isCancelled()) { if (progressBar.isCancelled()) {
setReadyStatus(); setReady();
onFinish.run();
} else if (progressBar.isFailed()) { } else if (progressBar.isFailed()) {
setReadyStatus(); setReady();
onFinish.run();
UI.toastFromAsync(activity, progressBar.getMessage()); UI.toastFromAsync(activity, progressBar.getMessage());
} else if (!progressBar.inProgress()) { } else if (!progressBar.inProgress()) {
setReadyStatus(); setReady();
onFinish.run();
UI.toastFromAsync(activity, R.string.dictionary_loaded); UI.toastFromAsync(activity, R.string.dictionary_loaded);
} }
} }
@ -69,25 +70,25 @@ class ItemLoadDictionary extends ItemClickable {
protected boolean onClick(Preference p) { protected boolean onClick(Preference p) {
ArrayList<Language> languages = LanguageCollection.getAll(activity.getSettings().getEnabledLanguageIds()); ArrayList<Language> languages = LanguageCollection.getAll(activity.getSettings().getEnabledLanguageIds());
setLoadingStatus(); setBusy();
if (!loader.load(activity, languages)) { if (!loader.load(activity, languages)) {
loader.stop(); loader.stop();
setReadyStatus(); setReady();
onFinish.run();
} }
return true; return true;
} }
private void setLoadingStatus() { private void setBusy() {
loader.setOnStatusChange(this::onLoadingStatusChange); loader.setOnStatusChange(this::onLoadingStatusChange);
onStart.run(); onStart.run();
item.setTitle(activity.getString(R.string.dictionary_cancel_load)); item.setTitle(activity.getString(R.string.dictionary_cancel_load));
} }
private void setReadyStatus() { private void setReady() {
onFinish.run();
item.setTitle(activity.getString(R.string.dictionary_load_title)); item.setTitle(activity.getString(R.string.dictionary_load_title));
item.setSummary(progressBar.isFailed() || progressBar.isCancelled() ? progressBar.getMessage() : ""); item.setSummary(progressBar.isFailed() || progressBar.isCancelled() ? progressBar.getMessage() : "");
} }

View file

@ -25,8 +25,6 @@ class ItemTruncateAll extends ItemClickable {
this.deleter = DictionaryDeleter.getInstance(activity); this.deleter = DictionaryDeleter.getInstance(activity);
this.onStart = onStart; this.onStart = onStart;
this.onFinish = onFinish; this.onFinish = onFinish;
refreshStatus();
} }