in app/src/main/java/com/google/reviewit/ReviewChangesFragment.java [131:217]
private void loadAndDisplay(final boolean clear) {
if (!isOnline()) {
setInvisible(v(R.id.progress));
setGone(v(R.id.initialProgress));
setVisible(v(R.id.statusText, R.id.reloadButton));
TextView statusText = tv(R.id.statusText);
statusText.setText(getString(R.string.no_network));
statusText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 15);
return;
}
new AsyncTask<Void, Void, ChangeListData>() {
private SwipeRefreshLayout swipeRefreshLayout;
private View progress;
private View initialProgress;
private View nextPageProgress;
private View reloadButton;
private TextView statusText;
private ViewGroup changeList;
@Override
protected void onPreExecute() {
super.onPreExecute();
swipeRefreshLayout = (SwipeRefreshLayout) v(R.id.swipeRefreshLayout);
progress = v(R.id.progress);
initialProgress = v(R.id.initialProgress);
nextPageProgress = v(R.id.nextPageProgress);
reloadButton = v(R.id.reloadButton);
statusText = tv(R.id.statusText);
changeList = vg(R.id.changeList);
}
@Override
protected ChangeListData doInBackground(Void... v) {
try {
QueryHandler queryHandler = getApp().getQueryHandler();
if (queryHandler.hasNext()) {
return new ChangeListData(queryHandler.next());
} else {
return new ChangeListData(Collections.<Change>emptyList());
}
} catch (RestApiException e) {
// e.g. server not reachable
Log.e(TAG, "Request failed", e);
if (e.getCause() != null) {
return new ChangeListData(getString(R.string.error_with_cause,
e.getMessage(), e.getCause().getMessage()));
} else {
return new ChangeListData(e.getMessage());
}
}
}
@Override
protected void onPostExecute(ChangeListData changeListData) {
super.onPostExecute(changeListData);
if (getActivity() == null) {
// user navigated away while we were waiting for the request
return;
}
getActivity().invalidateOptionsMenu();
setInvisible(progress);
setGone(initialProgress, reloadButton, nextPageProgress);
swipeRefreshLayout.setRefreshing(false);
if (changeListData.error != null) {
statusText.setText(changeListData.error);
return;
}
if (!changeListData.changeList.isEmpty()) {
setGone(statusText);
if (clear) {
changeList.removeAllViews();
}
for (Change change : changeListData.changeList) {
changeList.addView(createChangeEntry(change));
addSeparator(changeList);
}
} else {
statusText.setText(getString(R.string.no_changes_match));
}
}
}.execute();
}