예제 #1
0
  @Override
  protected void onPostExecute(final Bundle bundle) {
    progDailog.dismiss();

    TextView courseName = (TextView) mActivity.findViewById(R.id.course_name);
    if (!bundle.getBoolean("valid_return", true)) {
      if (courseName != null) {
        String errorMsg;
        if (!Constants.isNetworkAvailable(mActivity)) {
          errorMsg = "Oops!      (´゚д゚`)\nNo network connection";
        } else
          errorMsg = "Oops!      (ノ゚0゚)ノ~\nCourse is not available this term or it may not exist";
        SpannableString ss = new SpannableString(errorMsg);
        ss.setSpan(
            new ForegroundColorSpan(mActivity.getResources().getColor(R.color.fab_color_1)),
            0,
            19,
            0); // set color
        courseName.setText(ss);
        return;
      }
    }

    TextView lec = (TextView) mActivity.findViewById(R.id.lec);
    if (lec != null) {
      lec.setVisibility(View.VISIBLE);
      if (bundle.getBoolean("isOnline", false)) {
        lec.setText("Online");
      }
    }

    if (bundle.getBoolean("has_tst", false)) {
      TextView tst = (TextView) mActivity.findViewById(R.id.tst);
      if (tst != null) tst.setVisibility(View.VISIBLE);
    }

    if (bundle.getBoolean("has_tut", false)) {
      TextView tut = (TextView) mActivity.findViewById(R.id.tut);
      if (tut != null) tut.setVisibility(View.VISIBLE);
    }

    if (bundle.getBoolean("has_finals", false)) {
      TextView finals = (TextView) mActivity.findViewById(R.id.final_exams);
      if (finals != null) finals.setVisibility(View.VISIBLE);
    }

    Button add_button = (Button) mActivity.findViewById(R.id.add_course_button);

    if (add_button != null) {
      if (bundle.getBoolean("isOnline", false)) add_button.setVisibility(View.GONE);
      else {
        if (bundle.getBoolean("course_taken")) {
          add_button.setText("remove");
          add_button.setBackgroundTintList(
              ColorStateList.valueOf(mActivity.getResources().getColor(R.color.fab_color_1)));
        }
        add_button.setOnClickListener(
            new View.OnClickListener() {
              @Override
              public void onClick(final View view) {
                Button add_button = (Button) mActivity.findViewById(R.id.add_course_button);
                final CoursesDBHandler db = new CoursesDBHandler(mActivity);

                String course_taken_num = null;
                boolean courseTaken = false;
                for (int i = 0; i < bundle.getStringArrayList("LEC_NUM").size(); i++) {
                  if (db.IsInDB(bundle.getStringArrayList("LEC_NUM").get(i))) {
                    courseTaken = true;
                    course_taken_num = bundle.getStringArrayList("LEC_NUM").get(i);
                    break;
                  }
                }

                if (!courseTaken) {
                  // put sec info into a list of string
                  CharSequence[] mLecSecList =
                      new CharSequence[bundle.getStringArrayList("LEC_SEC").size()];
                  for (int i = 0; i < bundle.getStringArrayList("LEC_SEC").size(); i++) {
                    mLecSecList[i] = bundle.getStringArrayList("LEC_SEC").get(i);
                  }

                  // show dialog to choose sections
                  AlertDialog ad =
                      new AlertDialog.Builder(mActivity)
                          .setTitle("Choose a section")
                          .setSingleChoiceItems(mLecSecList, 0, null)
                          .setNegativeButton(R.string.cancel, null)
                          .setPositiveButton(
                              R.string.ok,
                              new DialogInterface.OnClickListener() {
                                public void onClick(DialogInterface dialog, int whichButton) {
                                  ListView lw = ((AlertDialog) dialog).getListView();
                                  Object checkedItem =
                                      lw.getAdapter().getItem(lw.getCheckedItemPosition());
                                  int index =
                                      bundle
                                          .getStringArrayList("LEC_SEC")
                                          .indexOf(checkedItem.toString());
                                  Log.d("SearchFetchTask", "choose " + checkedItem.toString());
                                  // add to db
                                  CourseInfo mCourse =
                                      new CourseInfo(bundle.getString("courseName"));
                                  mCourse.setSec(checkedItem.toString());
                                  mCourse.setNum(bundle.getStringArrayList("LEC_NUM").get(index));
                                  mCourse.setLoc(bundle.getStringArrayList("LEC_LOC").get(index));
                                  mCourse.setTimeAPM(
                                      bundle.getStringArrayList("LEC_TIME").get(index));
                                  mCourse.setProf(bundle.getStringArrayList("LEC_PROF").get(index));

                                  db.addCourse(mCourse);

                                  // change button
                                  Button add_button =
                                      (Button) mActivity.findViewById(R.id.add_course_button);
                                  add_button.setText("remove");
                                  add_button.setBackgroundTintList(
                                      ColorStateList.valueOf(
                                          mActivity.getResources().getColor(R.color.fab_color_1)));

                                  // show snackBar
                                  Snackbar.make(view, "Course Added", Snackbar.LENGTH_SHORT).show();

                                  dialog.dismiss();
                                }
                              })
                          .create();
                  ad.show();

                  // change color
                  ad.getButton(ad.BUTTON_POSITIVE)
                      .setTextColor(mActivity.getResources().getColor(R.color.myPrimaryColor));
                  ad.getButton(ad.BUTTON_NEGATIVE)
                      .setTextColor(mActivity.getResources().getColor(R.color.myPrimaryColor));

                } else {
                  // remove from db
                  if (course_taken_num != null) db.removeCourse(course_taken_num);

                  add_button.setText("add");
                  add_button.setBackgroundTintList(
                      ColorStateList.valueOf(
                          mActivity.getResources().getColor(R.color.dialog_text_color)));

                  // show snackBar
                  Snackbar.make(view, "Course Dropped", Snackbar.LENGTH_SHORT).show();
                }
                db.close();
              }
            });
        add_button.setVisibility(View.VISIBLE);
      }
    }
    TextView title = (TextView) mActivity.findViewById(R.id.title);
    if (courseName != null) courseName.setText(bundle.getString("courseName"));
    if (title != null) title.setText(bundle.getString("title"));

    mAsyncTaskCallbackInterface.onOperationComplete(bundle);

    /*TextView description = (TextView) mActivity.findViewById(R.id.description);
    TextView units = (TextView) mActivity.findViewById(R.id.units);
    TextView preReq = (TextView) mActivity.findViewById(R.id.preReq);
    TextView antiReq = (TextView) mActivity.findViewById(R.id.antiReq);
    TextView termsOffered = (TextView) mActivity.findViewById(R.id.termsOffered);
    TextView online = (TextView) mActivity.findViewById(R.id.online);

    courseName.setText(bundle.getString("courseName"));
    title.setText(bundle.getString("title"));
    description.setText(bundle.getString("description"));
    units.setText(bundle.getString("units"));
    preReq.setText(bundle.getString("preReq"));
    antiReq.setText(bundle.getString("antiReq"));
    termsOffered.setText(bundle.getString("termsOffered"));

    if (bundle.getBoolean("online")) {
        online.setText("Yes");
    } else {
        online.setText("no");
    }*/

  }