Skip to content

Commit

Permalink
[app] Fix NPE (LSPosed#1453)
Browse files Browse the repository at this point in the history
  • Loading branch information
yujincheng08 authored Nov 29, 2021
1 parent 005692f commit 0af0f52
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,9 @@
import org.lsposed.manager.App;
import org.lsposed.manager.R;

import java.util.concurrent.Callable;
import java.util.concurrent.Future;
import java.util.concurrent.FutureTask;

public class BaseFragment extends Fragment {
public void navigateUp() {
Expand Down Expand Up @@ -70,8 +72,12 @@ public void setupToolbar(Toolbar toolbar, View tipsView, String title, int menu,
}
}

public Future<?> runAsync(Runnable runnable) {
return App.getExecutorService().submit(runnable);
public void runAsync(Runnable runnable) {
App.getExecutorService().submit(runnable);
}

public <T> Future<T> runAsync(Callable<T> callable) {
return App.getExecutorService().submit(callable);
}

public void runOnUiThread(Runnable runnable) {
Expand All @@ -81,6 +87,17 @@ public void runOnUiThread(Runnable runnable) {
}
}

public <T> Future<T> runOnUiThread(Callable<T> callable) {
Activity activity = getActivity();
if (activity != null && !activity.isFinishing()) {
var task = new FutureTask<>(callable);
activity.runOnUiThread(task);
return task;
} else {
return new FutureTask<>(() -> null);
}
}

public void showHint(@StringRes int res, boolean lengthShort, @StringRes int actionRes, View.OnClickListener action) {
showHint(getString(res), lengthShort, getString(actionRes), action);
}
Expand All @@ -105,4 +122,5 @@ public void showHint(CharSequence str, boolean lengthShort, CharSequence actionS
}
Toast.makeText(requireContext(), str, lengthShort ? Toast.LENGTH_SHORT : Toast.LENGTH_LONG).show();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
import androidx.fragment.app.DialogFragment;

import com.google.android.material.color.MaterialColors;
import com.google.android.material.snackbar.Snackbar;

import org.lsposed.manager.BuildConfig;
import org.lsposed.manager.ConfigManager;
Expand Down Expand Up @@ -211,7 +210,7 @@ public void onRepoLoaded() {
}
);
runOnUiThread(() -> {
if (count[0] > 0) {
if (count[0] > 0 && binding != null) {
binding.downloadSummary.setText(getResources().getQuantityString(R.plurals.module_repo_upgradable, count[0], count[0]));
} else {
onThrowable(null);
Expand All @@ -221,7 +220,10 @@ public void onRepoLoaded() {

@Override
public void onThrowable(Throwable t) {
runOnUiThread(() -> binding.downloadSummary.setText(getResources().getString(R.string.module_repo_up_to_date)));
runOnUiThread(() -> {
if (binding != null)
binding.downloadSummary.setText(getResources().getString(R.string.module_repo_up_to_date));
});
}

@Override
Expand Down Expand Up @@ -258,7 +260,10 @@ public void onResume() {
}

private void setModulesSummary(int moduleCount) {
runOnUiThread(() -> binding.modulesSummary.setText(moduleCount == -1 ? getString(R.string.loading) : getResources().getQuantityString(R.plurals.modules_enabled_count, moduleCount, moduleCount)));
runOnUiThread(() -> {
if (binding != null)
binding.modulesSummary.setText(moduleCount == -1 ? getString(R.string.loading) : getResources().getQuantityString(R.plurals.modules_enabled_count, moduleCount, moduleCount));
});
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -236,8 +236,10 @@ public void onRepoLoaded() {
private void updateModuleSummary() {
var moduleCount = moduleUtil.getEnabledModulesCount();
runOnUiThread(() -> {
binding.toolbar.setSubtitle(moduleCount == -1 ? getString(R.string.loading) : getResources().getQuantityString(R.plurals.modules_enabled_count, moduleCount, moduleCount));
binding.toolbarLayout.setSubtitle(binding.toolbar.getSubtitle());
if (binding != null) {
binding.toolbar.setSubtitle(moduleCount == -1 ? getString(R.string.loading) : getResources().getQuantityString(R.plurals.modules_enabled_count, moduleCount, moduleCount));
binding.toolbarLayout.setSubtitle(binding.toolbar.getSubtitle());
}
});
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -152,14 +152,16 @@ private void updateRepoSummary() {
count[0] = -1;
}
runOnUiThread(() -> {
if (count[0] > 0) {
binding.toolbar.setSubtitle(getResources().getQuantityString(R.plurals.module_repo_upgradable, count[0], count[0]));
} else if (count[0] == 0) {
binding.toolbar.setSubtitle(getResources().getString(R.string.module_repo_up_to_date));
} else {
binding.toolbar.setSubtitle(getResources().getString(R.string.loading));
if (binding != null) {
if (count[0] > 0) {
binding.toolbar.setSubtitle(getResources().getQuantityString(R.plurals.module_repo_upgradable, count[0], count[0]));
} else if (count[0] == 0) {
binding.toolbar.setSubtitle(getResources().getString(R.string.module_repo_up_to_date));
} else {
binding.toolbar.setSubtitle(getResources().getString(R.string.loading));
}
binding.toolbarLayout.setSubtitle(binding.toolbar.getSubtitle());
}
binding.toolbarLayout.setSubtitle(binding.toolbar.getSubtitle());
});
}

Expand Down

0 comments on commit 0af0f52

Please sign in to comment.