mirror of
https://github.com/topjohnwu/Magisk.git
synced 2026-01-13 21:36:58 -08:00
Fix UI refreshes
This commit is contained in:
@@ -55,21 +55,21 @@ public class ReposFragment extends Fragment {
|
||||
mView = view;
|
||||
ButterKnife.bind(this, view);
|
||||
swipeRefreshLayout.setOnRefreshListener(() -> {
|
||||
this.LoadRepo(true);
|
||||
new Async.LoadRepos(getActivity()).executeOnExecutor(AsyncTask.SERIAL_EXECUTOR);
|
||||
new UpdateUI().executeOnExecutor(AsyncTask.SERIAL_EXECUTOR);
|
||||
ignoreAlertUpdate = false;
|
||||
|
||||
});
|
||||
LoadRepo(false);
|
||||
//LoadRepo(false);
|
||||
new UpdateUI().executeOnExecutor(AsyncTask.SERIAL_EXECUTOR);
|
||||
setHasOptionsMenu(false);
|
||||
alertUpdate = false;
|
||||
if (mListRepos.size() == 0) {
|
||||
emptyTv.setVisibility(View.VISIBLE);
|
||||
recyclerView.setVisibility(View.GONE);
|
||||
return view;
|
||||
}
|
||||
CheckForUpdates();
|
||||
Log.d("Magisk", "ReposFragment: ListRepos size is " + listRepos().size());
|
||||
recyclerView.setAdapter(new ReposAdapter(this, mListRepos));
|
||||
// if (mListRepos.size() == 0) {
|
||||
// emptyTv.setVisibility(View.VISIBLE);
|
||||
// recyclerView.setVisibility(View.GONE);
|
||||
// return view;
|
||||
// }
|
||||
//CheckForUpdates();
|
||||
//recyclerView.setAdapter(new ReposAdapter(this, mListRepos));
|
||||
|
||||
return view;
|
||||
}
|
||||
@@ -89,96 +89,117 @@ public class ReposFragment extends Fragment {
|
||||
super.onAttachFragment(childFragment);
|
||||
}
|
||||
|
||||
private void LoadRepo(boolean doReload) {
|
||||
RepoHelper.TaskDelegate taskDelegate = result -> {
|
||||
if (result.equals("Complete")) {
|
||||
Log.d("Magisk", "ReposFragment, got delegate");
|
||||
UpdateUI();
|
||||
if (mView != null) {
|
||||
mView.invalidate();
|
||||
mView.requestLayout();
|
||||
}
|
||||
// private void LoadRepo(boolean doReload) {
|
||||
// RepoHelper.TaskDelegate taskDelegate = result -> {
|
||||
// if (result.equals("Complete")) {
|
||||
// Log.d("Magisk", "ReposFragment, got delegate");
|
||||
// UpdateUI();
|
||||
// if (mView != null) {
|
||||
// mView.invalidate();
|
||||
// mView.requestLayout();
|
||||
// }
|
||||
//
|
||||
// }
|
||||
//
|
||||
// };
|
||||
// Log.d("Magisk", "ReposFragment, LoadRepo called");
|
||||
// new Async.LoadRepos(getActivity());
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
Log.d("Magisk", "ReposFragment, LoadRepo called");
|
||||
new Async.LoadRepos(getActivity());
|
||||
}
|
||||
|
||||
private void NotifyOfAlerts() {
|
||||
if (alertUpdate && !ignoreAlertUpdate) {
|
||||
Iterator<Repo> iterRepo = mListReposToUpdate.iterator();
|
||||
while (iterRepo.hasNext()) {
|
||||
Repo repo = iterRepo.next();
|
||||
DialogInterface.OnClickListener dialogClickListener = (dialog, which) -> {
|
||||
switch (which) {
|
||||
case DialogInterface.BUTTON_POSITIVE:
|
||||
Utils.DownloadReceiver receiver = new Utils.DownloadReceiver() {
|
||||
@Override
|
||||
public void task(File file) {
|
||||
Log.d("Magisk", "Task firing");
|
||||
new Async.FlashZIP(getActivity(), repo.getId(), file.toString()).executeOnExecutor(AsyncTask.SERIAL_EXECUTOR);
|
||||
}
|
||||
};
|
||||
String filename = repo.getId().replace(" ", "") + ".zip";
|
||||
Utils.downloadAndReceive(getActivity(), receiver, repo.getZipUrl(), filename);
|
||||
|
||||
break;
|
||||
|
||||
case DialogInterface.BUTTON_NEGATIVE:
|
||||
// ignoreAlertUpdate = true;
|
||||
// SharedPreferences.Editor editor = prefs.edit();
|
||||
// editor.putBoolean("ignoreUpdateAlerts", ignoreAlertUpdate);
|
||||
// editor.apply();
|
||||
break;
|
||||
}
|
||||
};
|
||||
|
||||
String theme = PreferenceManager.getDefaultSharedPreferences(getActivity()).getString("theme", "");
|
||||
Logger.dh("ReposFragment: Theme is " + theme);
|
||||
if (theme.equals("Dark")) {
|
||||
builder = new AlertDialog.Builder(getActivity(),R.style.AlertDialog_dh);
|
||||
} else {
|
||||
builder = new AlertDialog.Builder(getActivity());
|
||||
}
|
||||
builder.setMessage("An update is available for " + repo.getName() + ". Would you like to install it?").setPositiveButton("Yes", dialogClickListener)
|
||||
.setNegativeButton("No", dialogClickListener).show();
|
||||
iterRepo.remove();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
// private void NotifyOfAlerts() {
|
||||
// if (alertUpdate && !ignoreAlertUpdate) {
|
||||
// Iterator<Repo> iterRepo = mListReposToUpdate.iterator();
|
||||
// while (iterRepo.hasNext()) {
|
||||
// Repo repo = iterRepo.next();
|
||||
// DialogInterface.OnClickListener dialogClickListener = (dialog, which) -> {
|
||||
// switch (which) {
|
||||
// case DialogInterface.BUTTON_POSITIVE:
|
||||
// Utils.DownloadReceiver receiver = new Utils.DownloadReceiver() {
|
||||
// @Override
|
||||
// public void task(File file) {
|
||||
// Log.d("Magisk", "Task firing");
|
||||
// new Async.FlashZIP(getActivity(), repo.getId(), file.toString()).executeOnExecutor(AsyncTask.SERIAL_EXECUTOR);
|
||||
// }
|
||||
// };
|
||||
// String filename = repo.getId().replace(" ", "") + ".zip";
|
||||
// Utils.downloadAndReceive(getActivity(), receiver, repo.getZipUrl(), filename);
|
||||
//
|
||||
// break;
|
||||
//
|
||||
// case DialogInterface.BUTTON_NEGATIVE:
|
||||
//// ignoreAlertUpdate = true;
|
||||
//// SharedPreferences.Editor editor = prefs.edit();
|
||||
//// editor.putBoolean("ignoreUpdateAlerts", ignoreAlertUpdate);
|
||||
//// editor.apply();
|
||||
// break;
|
||||
// }
|
||||
// };
|
||||
//
|
||||
// String theme = PreferenceManager.getDefaultSharedPreferences(getActivity()).getString("theme", "");
|
||||
// Logger.dh("ReposFragment: Theme is " + theme);
|
||||
// if (theme.equals("Dark")) {
|
||||
// builder = new AlertDialog.Builder(getActivity(),R.style.AlertDialog_dh);
|
||||
// } else {
|
||||
// builder = new AlertDialog.Builder(getActivity());
|
||||
// }
|
||||
// builder.setMessage("An update is available for " + repo.getName() + ". Would you like to install it?").setPositiveButton("Yes", dialogClickListener)
|
||||
// .setNegativeButton("No", dialogClickListener).show();
|
||||
// iterRepo.remove();
|
||||
//
|
||||
// }
|
||||
//
|
||||
// }
|
||||
// }
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
LoadRepo(false);
|
||||
//LoadRepo(false);
|
||||
getActivity().setTitle("Magisk");
|
||||
|
||||
}
|
||||
|
||||
private class UpdateUI extends AsyncTask<Void, Void, Void> {
|
||||
|
||||
protected List<Repo> listRepos() {
|
||||
return mListRepos;
|
||||
}
|
||||
|
||||
private void UpdateUI() {
|
||||
Log.d("Magisk", "ReposFragment: UpdateUI Called, size is " + listRepos().size());
|
||||
|
||||
if (listRepos().size() == 0) {
|
||||
emptyTv.setVisibility(View.VISIBLE);
|
||||
recyclerView.setVisibility(View.GONE);
|
||||
|
||||
}
|
||||
Log.d("Magisk", "ReposFragment: ListRepos size is " + listRepos().size());
|
||||
recyclerView.setAdapter(new ReposAdapter(this, listRepos()));
|
||||
if (swipeRefreshLayout.isRefreshing()) {
|
||||
swipeRefreshLayout.setRefreshing(false);
|
||||
CheckForUpdates();
|
||||
//NotifyOfAlerts();
|
||||
@Override
|
||||
protected Void doInBackground(Void... voids) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(Void v) {
|
||||
super.onPostExecute(v);
|
||||
if (mListRepos.size() == 0) {
|
||||
emptyTv.setVisibility(View.VISIBLE);
|
||||
recyclerView.setVisibility(View.GONE);
|
||||
|
||||
}
|
||||
Log.d("Magisk", "ReposFragment: ListRepos size is " + mListRepos.size());
|
||||
recyclerView.setAdapter(new ReposAdapter(mListRepos));
|
||||
if (swipeRefreshLayout.isRefreshing()) {
|
||||
swipeRefreshLayout.setRefreshing(false);
|
||||
//CheckForUpdates();
|
||||
//NotifyOfAlerts();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// private void UpdateUI() {
|
||||
// Log.d("Magisk", "ReposFragment: UpdateUI Called, size is " + mListRepos.size());
|
||||
//
|
||||
// if (mListRepos.size() == 0) {
|
||||
// emptyTv.setVisibility(View.VISIBLE);
|
||||
// recyclerView.setVisibility(View.GONE);
|
||||
//
|
||||
// }
|
||||
// Log.d("Magisk", "ReposFragment: ListRepos size is " + mListRepos.size());
|
||||
// recyclerView.setAdapter(new ReposAdapter(this, mListRepos));
|
||||
// if (swipeRefreshLayout.isRefreshing()) {
|
||||
// swipeRefreshLayout.setRefreshing(false);
|
||||
// CheckForUpdates();
|
||||
// //NotifyOfAlerts();
|
||||
// }
|
||||
//
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user