private void init()

in app/src/main/java/com/google/reviewit/widget/PostReviewView.java [94:191]


  private void init(
      final BaseFragment origin, final Change change,
      final Class<? extends BaseFragment> target) {
    findViewById(R.id.postReviewButton).setOnClickListener(
        new View.OnClickListener() {
          @Override
          public void onClick(final View v) {
            v.setEnabled(false);
            v.setBackgroundColor(widgetUtil.color(R.color.buttonDisabled));
            final String msg = ((TextView) findViewById(R.id.changeMessageInput))
                .getText().toString().trim();
            new ObservableAsyncTask<Change, Void, String>() {
              @Override
              protected String doInBackground(Change... changes) {
                Change change = changes[0];
                try {
                  change.postReview(msg, selectedValues);
                  change.reload();
                  return null;
                } catch (RestApiException e) {
                  if (e instanceof HttpStatusException) {
                    HttpStatusException se = (HttpStatusException) e;
                    return origin.getString(R.string.review_error,
                        se.getStatusCode(), se.getStatusText());
                  } else {
                    return e.getMessage();
                  }
                }
              }

              @Override
              protected void postExecute(String errorMsg) {
                if (errorMsg != null) {
                  v.setEnabled(true);
                  v.setBackgroundColor(widgetUtil.color(R.color.button));
                  widgetUtil.showError(errorMsg);
                } else {
                  widgetUtil.toast(R.string.review_posted);
                  origin.display(target);
                }
              }
            }.execute(change);
          }
        });

    findViewById(R.id.postReviewAndSubmitButton).setOnClickListener(
        new View.OnClickListener() {
          @Override
          public void onClick(final View v) {
            v.setEnabled(false);
            v.setBackgroundColor(widgetUtil.color(R.color.buttonDisabled));
            final String msg = ((TextView) findViewById(R.id.changeMessageInput))
                .getText().toString().trim();
            new ObservableAsyncTask<Change, Void, String>() {
              @Override
              protected String doInBackground(Change... changes) {
                Change change = changes[0];
                try {
                  change.postReview(msg, selectedValues);
                } catch (RestApiException e) {
                  if (e instanceof HttpStatusException) {
                    HttpStatusException se = (HttpStatusException) e;
                    return origin.getString(R.string.review_error,
                        se.getStatusCode(), se.getStatusText());
                  } else {
                    return e.getMessage();
                  }
                }

                try {
                  change.submit();
                  change.reload();
                  return null;
                } catch (RestApiException e) {
                  if (e instanceof HttpStatusException) {
                    HttpStatusException se = (HttpStatusException) e;
                    return origin.getString(R.string.submit_error,
                        se.getStatusCode(), se.getStatusText());
                  } else {
                    return e.getMessage();
                  }
                }
              }

              @Override
              protected void postExecute(String errorMsg) {
                if (errorMsg != null) {
                  v.setEnabled(true);
                  v.setBackgroundColor(widgetUtil.color(R.color.button));
                  widgetUtil.showError(errorMsg);
                } else {
                  origin.display(target);
                }
              }
            }.execute(change);
          }
        });
  }