예제 #1
0
  /** ユーザ登録ボタンの処理を行う。 */
  @SuppressWarnings({"unchecked", "rawtypes"})
  private void doRegistUserButton() {
    mLogger.d("IN");

    // 入力値を取得する。
    String userName = mUserNameValue.getText().toString();
    String password = mPasswordValue.getText().toString();

    // 未入力がある場合
    if (StringUtil.isNullOrEmpty(userName) || StringUtil.isNullOrEmpty(password)) {
      toast(R.string.error_input_all);
      mLogger.w("OUT(NG)");
      return;
    }

    // ユーザ登録処理を行う。
    // パラメータを生成する。
    Bundle params = new Bundle();
    params.putString(ParamKey.URL, Url.REGIST_USER);
    params.putString(ParamKey.USER_NAME, userName);
    params.putString(ParamKey.USER_PASSWORD, password);

    // ユーザ登録ローダーを表示する。
    getActivity()
        .getSupportLoaderManager()
        .restartLoader(
            LoaderId.REGIST_USER,
            params,
            new HttpLoaderCallbacks(
                getActivity(), new RegistUserOnReceiveResponseListener(), HttpPostLoader.class));

    mLogger.d("OUT(OK)");
  }
예제 #2
0
  /** キャンセルする。 */
  private void doCancel() {
    mLogger.d("IN");

    toast(R.string.error_cancel);

    // 終了する。
    dismiss();
    mLogger.d("OUT(OK)");
  }
예제 #3
0
  /** 終了ボタンの処理を行う。 */
  private void doEndButton() {
    mLogger.d("IN");

    // ダイアログを終了する。
    dismiss();

    // 呼び出し元画面を終了する。
    getActivity().finish();

    mLogger.d("OUT(OK)");
  }
예제 #4
0
  /** 削除する。 */
  private void doDelete() {
    mLogger.d("IN");

    // カテゴリデータ削除確認ダイアログを表示する。
    FragmentManager manager = getActivity().getSupportFragmentManager();
    CategoryDeleteDialog categoryDeleteDialog = CategoryDeleteDialog.newInstance(mCategoryData);
    categoryDeleteDialog.show(manager, CategoryDeleteDialog.class.getSimpleName());

    // 終了する。
    dismiss();
    mLogger.d("OUT(OK)");
  }
예제 #5
0
    /**
     * レスポンス受信した時に呼び出される。
     *
     * @param response レスポンス文字列
     * @param bundle バンドル
     */
    @Override
    public void onReceive(String response, Bundle bundle) {
      mLogger.d("IN response=[" + response + "]");

      try {
        JSONObject json = new JSONObject(response);

        // ステータスを取得する。
        boolean status = json.getBoolean(ParamKey.STATUS);

        // 登録成功の場合
        if (status) {
          // ユーザデータを生成する。
          UserData userData = new UserData();

          userData.setId(json.getLong(ParamKey.USER_ID));
          userData.setName(json.getString(ParamKey.USER_NAME));
          userData.setPassword(json.getString(ParamKey.USER_PASSWORD));
          userData.setUpdateTime(json.getLong(ParamKey.USER_UPDATE_TIME));

          // ルーム一覧画面を表示する。
          Intent intent = new Intent(getActivity(), RoomListActivity.class);
          intent.putExtra(ExtraKey.USER_DATA, userData);
          startActivity(intent);

          // 終了する。
          mHandler.post(
              new Runnable() {
                @Override
                public void run() {
                  // ダイアログを終了する。
                  dismiss();

                  // 呼び出し元画面を終了する。
                  getActivity().finish();
                }
              });

          // エラーの場合
        } else {
          toast(R.string.error_regist_user);
        }
      } catch (JSONException e) {
        mLogger.e(e);
        toast(R.string.error_response);
      }

      mLogger.d("OUT(OK)");
    }
예제 #6
0
  /** ログインボタンの処理を行う。 */
  private void doLoginButton() {
    mLogger.d("IN");

    // 入力値を取得する。
    String userName = mUserNameValue.getText().toString();
    String userPassword = mPasswordValue.getText().toString();

    // 未入力がある場合
    if (StringUtil.isNullOrEmpty(userName) || StringUtil.isNullOrEmpty(userPassword)) {
      // 終了する。
      toast(R.string.error_input_all);
      mLogger.w("OUT(NG)");
      return;
    }

    // ログイン処理を行う。
    login(userName, userPassword);

    mLogger.d("OUT(OK)");
  }
예제 #7
0
  /**
   * サービスが起動しているかチェックする。
   *
   * @param context コンテキスト
   * @param serviceName チェックするサービスクラス
   * @return チェック結果 true:起動している。 / false:起動していない。
   */
  public static boolean isServiceRunning(Context context, Class<?> serviceClass) {
    mLogger.d("IN");

    ActivityManager activityManager =
        (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);

    // 起動しているサービスのリストを取得する。
    List<RunningServiceInfo> services = activityManager.getRunningServices(Integer.MAX_VALUE);

    // 起動しているサービス数分繰り返す。
    for (RunningServiceInfo info : services) {
      // 位置サービスの場合
      if (serviceClass.getCanonicalName().equals(info.service.getClassName())) {
        mLogger.d("OUT(OK) result=[true]");
        return true;
      }
    }

    mLogger.d("OUT(OK) result=[false]");
    return false;
  }
예제 #8
0
  /** ログイン処理を行う。 */
  @SuppressWarnings({"unchecked", "rawtypes"})
  private void login(String userName, String userPassword) {
    mLogger.d("IN");

    // ログイン処理を行う。
    // パラメータを生成する。
    Bundle params = new Bundle();
    params.putString(ParamKey.URL, Url.LOGIN);
    params.putString(ParamKey.USER_NAME, userName);
    params.putString(ParamKey.USER_PASSWORD, userPassword);

    // ログインローダーをロードする。
    getActivity()
        .getSupportLoaderManager()
        .restartLoader(
            LoaderId.LOGIN,
            params,
            new HttpLoaderCallbacks(
                getActivity(), new LoginOnReceiveResponseListener(), HttpPostLoader.class));

    mLogger.d("OUT(OK)");
  }
예제 #9
0
  /**
   * 生成した時に呼び出される。
   *
   * @param savedInstanceState 保存した時のインスタンスの状態
   * @return ダイアログ
   */
  @Override
  public Dialog onCreateDialog(Bundle savedInstanceState) {
    mLogger.d("IN");

    // 引数を取得する。
    mCategoryData = (CategoryData) getArguments().getSerializable(ExtraKey.CATEGORY_DATA);

    LayoutInflater inflater = getActivity().getLayoutInflater();
    View rootView = inflater.inflate(R.layout.dialog_category_detail, null);

    mCategoryNameValue = (TextView) rootView.findViewById(R.id.categoryNameValue);
    mCategoryNameValue.setText(mCategoryData.getName());

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setTitle(R.string.category_detail_dialog_title);
    builder.setPositiveButton(R.string.dialog_update_button, null);
    builder.setNeutralButton(R.string.dialog_delete_button, null);
    builder.setNegativeButton(R.string.dialog_close_button, null);
    builder.setView(rootView);
    AlertDialog dialog = builder.create();
    dialog.setCanceledOnTouchOutside(false);
    // ボタン押下でダイアログが閉じないようにリスナーを設定する。
    dialog.setOnShowListener(
        new OnShowListener() {
          @Override
          public void onShow(DialogInterface dialog) {
            ((AlertDialog) dialog)
                .getButton(Dialog.BUTTON_POSITIVE)
                .setOnClickListener(
                    new OnClickListener() {
                      @Override
                      public void onClick(View v) {
                        doUpdate();
                      }
                    });

            ((AlertDialog) dialog)
                .getButton(Dialog.BUTTON_NEUTRAL)
                .setOnClickListener(
                    new OnClickListener() {
                      @Override
                      public void onClick(View v) {
                        doDelete();
                      }
                    });

            ((AlertDialog) dialog)
                .getButton(Dialog.BUTTON_NEGATIVE)
                .setOnClickListener(
                    new OnClickListener() {
                      @Override
                      public void onClick(View v) {
                        doCancel();
                      }
                    });
          }
        });

    mLogger.d("OUT(OUT)");
    return dialog;
  }
예제 #10
0
  /**
   * 生成した時に呼び出される。
   *
   * @param savedInstanceState 保存した時のインスタンスの状態
   * @return ダイアログ
   */
  @SuppressLint("InflateParams")
  @Override
  public Dialog onCreateDialog(Bundle savedInstanceState) {
    mLogger.d("IN");

    LayoutInflater inflater = getActivity().getLayoutInflater();
    View rootView = inflater.inflate(R.layout.dialog_login, null);

    // 入力項目を取得する。
    mUserNameValue = (EditText) rootView.findViewById(R.id.userNameValue);
    mPasswordValue = (EditText) rootView.findViewById(R.id.passwordValue);

    // ログインダイアログを生成する。
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setTitle(R.string.dialog_login_title);
    builder.setPositiveButton(R.string.dialog_login_button, null);
    builder.setNeutralButton(R.string.dialog_regist_user_button, null);
    builder.setNegativeButton(R.string.dialog_end_button, null);
    builder.setView(rootView);
    AlertDialog dialog = builder.create();
    dialog.setCanceledOnTouchOutside(false);
    // ボタン押下でダイアログが閉じないようにリスナーを設定する。
    dialog.setOnShowListener(
        new OnShowListener() {
          @Override
          public void onShow(DialogInterface dialog) {
            // ログインボタン
            ((AlertDialog) dialog)
                .getButton(Dialog.BUTTON_POSITIVE)
                .setOnClickListener(
                    new OnClickListener() {
                      @Override
                      public void onClick(View v) {
                        doLoginButton();
                      }
                    });

            // ユーザ登録ボタン
            ((AlertDialog) dialog)
                .getButton(Dialog.BUTTON_NEUTRAL)
                .setOnClickListener(
                    new OnClickListener() {
                      @Override
                      public void onClick(View v) {
                        doRegistUserButton();
                      }
                    });

            // 終了ボタン
            ((AlertDialog) dialog)
                .getButton(Dialog.BUTTON_NEGATIVE)
                .setOnClickListener(
                    new OnClickListener() {
                      @Override
                      public void onClick(View v) {
                        doEndButton();
                      }
                    });
          }
        });

    mLogger.d("OUT(OK)");
    return dialog;
  }