@Override public void onActivityResult(int requestCode, int resultCode, Intent data) { LogUtils.d(TAG, "onActivityResult request=" + requestCode + " result=" + resultCode); TodoInfo info = null; switch (resultCode) { case Utils.OPERATOR_INSERT: info = (TodoInfo) data.getSerializableExtra(Utils.KEY_PASSED_DATA); mTodosListAdapter.addItem(info); final int addPos = mTodosListAdapter.getItemPosition(info); mTodosListView.setSelection(addPos); break; case Utils.OPERATOR_UPDATE: info = (TodoInfo) data.getSerializableExtra(Utils.KEY_PASSED_DATA); if (null == info) { LogUtils.e(TAG, "result: OPERATOR_UPDATE, but data didn't contain the info"); return; } mTodosListAdapter.updateItemData(info); final int updatePos = mTodosListAdapter.getItemPosition(info); mTodosListView.setSelection(updatePos); break; case Utils.OPERATOR_DELETE: info = (TodoInfo) data.getSerializableExtra(Utils.KEY_PASSED_DATA); if (null == info) { LogUtils.e(TAG, "result: OPERATOR_DELETE, but data didn't contain the info"); return; } mTodosListAdapter.removeItem(info); break; default: break; } }
@Override protected void onPrepareDialog(int id, Dialog dialog) { super.onPrepareDialog(id, dialog); switch (id) { case DIALOG_DELETE_ITEMS: String msg = ""; if (mTodosListAdapter.getEditType() == TodosListAdapter.EDIT_TODOS) { if (mTodosListAdapter.getSeletedTodosNumber() > 1) { msg = getString(R.string.delete_selected_items); } else { msg = getString(R.string.delete_item); } ((AlertDialog) dialog).setMessage(msg); } else if (mTodosListAdapter.getEditType() == TodosListAdapter.EDIT_DONES) { if (mTodosListAdapter.getSeletedDonesNumber() > 1) { msg = getString(R.string.delete_selected_items); } else { msg = getString(R.string.delete_item); } ((AlertDialog) dialog).setMessage(msg); } break; default: break; } }
private void onChangeItemStateClick() { String currentStatus = null; String targetStatus = null; if (mTodosListAdapter.getEditType() == TodosListAdapter.EDIT_TODOS) { currentStatus = TodoInfo.STATUS_TODO; targetStatus = TodoInfo.STATUS_DONE; } else if (mTodosListAdapter.getEditType() == TodosListAdapter.EDIT_DONES) { currentStatus = TodoInfo.STATUS_DONE; targetStatus = TodoInfo.STATUS_TODO; } mTodosListAdapter.updateSelectedStatus(currentStatus, targetStatus); updateToEditNull(); }
private int getSelectedCount() { int num = -1; if (mTodosListAdapter.getEditType() == TodosListAdapter.EDIT_TODOS) { num = mTodosListAdapter.getSeletedTodosNumber(); } else if (mTodosListAdapter.getEditType() == TodosListAdapter.EDIT_DONES) { num = mTodosListAdapter.getSeletedDonesNumber(); } else { LogUtils.w( TAG, "mTodosListAdapter.getEditType():+mTodosListAdapter.getEditType()" + ",may be has error."); } return num; }
void updateBottomBarWidgetState() { LogUtils.d(TAG, "updateBottomBarWidgetState(), editing=" + mTodosListAdapter.isEditing()); if (mTodosListAdapter.isEditing()) { int selectedNumber = 0; int dataSourceNumber = 0; if (mTodosListAdapter.getEditType() == TodosListAdapter.EDIT_TODOS) { selectedNumber = mTodosListAdapter.getSeletedTodosNumber(); dataSourceNumber = mTodosListAdapter.getTodosDataSource().size(); } else if (mTodosListAdapter.getEditType() == TodosListAdapter.EDIT_DONES) { selectedNumber = mTodosListAdapter.getSeletedDonesNumber(); dataSourceNumber = mTodosListAdapter.getDonesDataSource().size(); } LogUtils.d( TAG, "selectedNumber=" + selectedNumber + ", dataSourceNumber=" + dataSourceNumber); if (dataSourceNumber == 0) { updateToEditNull(); } else { /// M: add to avoid this case: no item has been selected but the button // can be pressed {@ if (selectedNumber > 0) { mBtnDelete.setEnabled(true); mBtnChangeState.setEnabled(true); } else { mBtnDelete.setEnabled(false); mBtnChangeState.setEnabled(false); } /// @} mTodosActionCallBack.updateActionMode(); } } }
private void updateToEditNull() { if (mActionMode != null) { mActionMode.finish(); } invalidateOptionsMenu(); mTodosListAdapter.setEditingType(TodosListAdapter.EDIT_NULL); }
@Override public void onBackPressed() { if (mTodosListAdapter.isEditing()) { updateToEditNull(); return; } super.onBackPressed(); }