[app] Fix toast (#1485)

This commit is contained in:
LoveSy 2021-12-15 14:42:00 +08:00 committed by GitHub
parent 6572809f1d
commit 849729a949
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 11 additions and 16 deletions

View File

@ -19,7 +19,8 @@
package org.lsposed.manager.ui.fragment; package org.lsposed.manager.ui.fragment;
import android.app.Activity; import android.os.Handler;
import android.os.Looper;
import android.view.View; import android.view.View;
import android.widget.Toast; import android.widget.Toast;
@ -39,6 +40,8 @@ import java.util.concurrent.Future;
import java.util.concurrent.FutureTask; import java.util.concurrent.FutureTask;
public class BaseFragment extends Fragment { public class BaseFragment extends Fragment {
private final Handler uiHandler = new Handler(Looper.getMainLooper());
public void navigateUp() { public void navigateUp() {
getNavController().navigateUp(); getNavController().navigateUp();
} }
@ -81,29 +84,21 @@ public class BaseFragment extends Fragment {
} }
public void runOnUiThread(Runnable runnable) { public void runOnUiThread(Runnable runnable) {
Activity activity = getActivity(); uiHandler.post(runnable);
if (activity != null && !activity.isFinishing()) {
activity.runOnUiThread(runnable);
}
} }
public <T> Future<T> runOnUiThread(Callable<T> callable) { public <T> Future<T> runOnUiThread(Callable<T> callable) {
Activity activity = getActivity(); var task = new FutureTask<>(callable);
if (activity != null && !activity.isFinishing()) { runOnUiThread(task);
var task = new FutureTask<>(callable); return task;
activity.runOnUiThread(task);
return task;
} else {
return new FutureTask<>(() -> null);
}
} }
public void showHint(@StringRes int res, boolean lengthShort, @StringRes int actionRes, View.OnClickListener action) { public void showHint(@StringRes int res, boolean lengthShort, @StringRes int actionRes, View.OnClickListener action) {
showHint(getString(res), lengthShort, getString(actionRes), action); showHint(App.getInstance().getString(res), lengthShort, App.getInstance().getString(actionRes), action);
} }
public void showHint(@StringRes int res, boolean lengthShort) { public void showHint(@StringRes int res, boolean lengthShort) {
showHint(getString(res), lengthShort, null, null); showHint(App.getInstance().getString(res), lengthShort, null, null);
} }
public void showHint(CharSequence str, boolean lengthShort) { public void showHint(CharSequence str, boolean lengthShort) {
@ -120,7 +115,7 @@ public class BaseFragment extends Fragment {
return; return;
} }
} }
Toast.makeText(requireContext(), str, lengthShort ? Toast.LENGTH_SHORT : Toast.LENGTH_LONG).show(); runOnUiThread(Toast.makeText(App.getInstance(), str, lengthShort ? Toast.LENGTH_SHORT : Toast.LENGTH_LONG)::show);
} }
} }