in app/src/main/java/com/google/reviewit/SortChangesFragment.java [97:221]
private void display() {
ConfigManager cfgManager = getApp().getConfigManager();
QueryConfig config = cfgManager.getQueryConfig();
if (!config.isComplete()) {
display(QuerySettingsFragment.class);
return;
}
if (!isOnline()) {
setInvisible(v(R.id.progress));
WidgetUtil.setText(v(R.id.noResultBoxText),
getString(R.string.no_network));
setVisible(v(R.id.root, R.id.noResultBox));
setGone(v(R.id.resultBox, R.id.loadingBox));
return;
}
if (getSortActionHandler().isQueryNeeded()) {
if (v(R.id.changeBox) == null) {
setVisible(v(R.id.loadingBox));
setInvisible(v(R.id.progress));
disableButtons();
showButtons(false);
} else {
setVisible(v(R.id.progress));
}
} else {
Change change = getSortActionHandler().preview();
if (change != null) {
ChangeUtil.colorBackground(root, change);
}
}
setVisible(v(R.id.root));
new AsyncTask<Void, Void, ChangeData>() {
private View progress;
private View loadingBox;
private ViewGroup resultBox;
private View noResultBox;
private TextView noResultBoxText;
private ChangeBox changeBox;
@Override
protected void onPreExecute() {
super.onPreExecute();
progress = v(R.id.progress);
loadingBox = v(R.id.loadingBox);
resultBox = vg(R.id.resultBox);
noResultBox = v(R.id.noResultBox);
noResultBoxText = tv(R.id.noResultBoxText);
changeBox = (ChangeBox) v(R.id.changeBox);
}
@Override
protected ChangeData doInBackground(Void... v) {
try {
SortActionHandler actionHandler = getSortActionHandler();
if (actionHandler.hasNext()) {
Change change = actionHandler.next();
int queueSize = actionHandler.getQueueSize();
Change nextChange = null;
if (queueSize > 0) {
nextChange = actionHandler.preview();
}
return new ChangeData(change, nextChange, queueSize);
} else {
return ChangeData.empty();
}
} catch (RestApiException e) {
// e.g. server not reachable
Log.e(TAG, "Request failed", e);
if (e.getCause() != null) {
return new ChangeData(getString(R.string.error_with_cause,
e.getMessage(), e.getCause().getMessage()));
} else {
return new ChangeData(e.getMessage());
}
}
}
protected void onPostExecute(ChangeData changeData) {
if (getActivity() == null) {
// user navigated away while we were waiting for the request
return;
}
getActivity().invalidateOptionsMenu();
setInvisible(progress);
if (changeData.error != null) {
noResultBoxText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 15);
noResultBoxText.setText(changeData.error);
setVisible(noResultBox);
setGone(resultBox, loadingBox);
return;
}
if (changeData.change != null) {
setVisible(resultBox);
setGone(noResultBox, loadingBox);
if (changeBox == null) {
changeBox = new ChangeBox(getContext());
resultBox.addView(changeBox);
changeBox.display(getApp(), changeData.change);
}
ChangeUtil.colorBackground(root, changeData.change);
initButtons(changeBox);
initSwipeAnimation(changeBox);
if (changeData.nextChange != null) {
ChangeBox changeBox2 = new ChangeBox(getContext());
resultBox.addView(changeBox2, resultBox.getChildCount() - 1);
changeBox2.display(getApp(), changeData.nextChange);
}
pageEffect(changeData.queueSize);
} else {
noResultBoxText.setText(getString(R.string.no_more_changes));
setVisible(noResultBox);
setGone(resultBox, loadingBox);
}
}
}.execute();
}