@Override public void onClick(View v) { TextView txtManageLabel, txtBrowseLabel, txtRefreshLabel, txtSearchLabel; txtManageLabel = (TextView) findViewById(R.id.txt_manage_label); txtBrowseLabel = (TextView) findViewById(R.id.txt_browse_label); txtRefreshLabel = (TextView) findViewById(R.id.txt_refresh_label); txtSearchLabel = (TextView) findViewById(R.id.txt_search_label); txtSearch.addTextChangedListener( new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { new AsyncTask<String, Void, ArrayList<RssItem>>() { @Override protected ArrayList<RssItem> doInBackground(String... params) { return dbQuery.searchRssItem(params[0]); } @Override protected void onPostExecute(ArrayList<RssItem> result) { rssList.clear(); rssList.addAll(result); rssAdapter.config().notifyDataSetChanged(); } }.execute(s.toString()); } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {} @Override public void afterTextChanged(Editable s) {} }); txtSearch.setOnKeyListener( new OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_ENTER) return true; return false; } }); switch (v.getId()) { case R.id.btn_manage: startActivityForResult( new Intent(RssReaderActivity.this, RssManageActivity.class), REQ_RSS_MANAGE); break; case R.id.btn_browse: rssProvider = dbQuery.getRssProviderList(null); int length = rssProvider.getProviderNames().length; if (length == 0) break; String[] providers = new String[length + 1]; providers[0] = "All"; for (int i = 0; i < length; i++) providers[i + 1] = rssProvider.getProviderNames()[i]; AlertDialog.Builder builder = new AlertDialog.Builder(this); builder .setTitle(R.string.rss_choose_provider) .setItems( providers, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int item) { if (item == 0) { loadData(null, true, false, false); return; } loadData(rssProvider.getProviderNames()[item - 1], false, false, false); curProvider = item - 1; updateListView(); } }); builder.create().show(); break; case R.id.btn_refresh: if (curProvider == -1) loadData(null, true, true, true); else loadData( dbQuery.getRssProviderList(null).getProviderNames()[curProvider], false, true, true); break; case R.id.btn_search: if (txtSearchLabel.getText().toString().equals(getString(R.string.btn_search_text))) { btnManage.setVisibility(View.GONE); txtManageLabel.setVisibility(View.GONE); btnBrowse.setVisibility(View.GONE); txtBrowseLabel.setVisibility(View.GONE); btnRefresh.setVisibility(View.GONE); txtRefreshLabel.setVisibility(View.GONE); btnSearch.setBackgroundResource(R.drawable.btn_done_background); txtSearchLabel.setText(R.string.btn_done_text); txtSearch.setVisibility(View.VISIBLE); txtSearch.requestFocus(); } else { btnManage.setVisibility(View.VISIBLE); txtManageLabel.setVisibility(View.VISIBLE); btnBrowse.setVisibility(View.VISIBLE); txtBrowseLabel.setVisibility(View.VISIBLE); btnRefresh.setVisibility(View.VISIBLE); txtRefreshLabel.setVisibility(View.VISIBLE); btnSearch.setBackgroundResource(R.drawable.btn_search_background); txtSearchLabel.setText(R.string.btn_search_text); txtSearch.setVisibility(View.GONE); txtSearch.setText(""); loadData(null, true, false, false); } break; default: break; } }
@Override public View onCreateView( LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_user_crud, container, false); editTextUserName = (EditText) rootView.findViewById(R.id.editTextUserName); editTextEmail = (EditText) rootView.findViewById(R.id.editTextEmail); editTextLogin = (EditText) rootView.findViewById(R.id.editTextLogin); editTextPassword = (EditText) rootView.findViewById(R.id.editTextPassword); editTextConfirmPassword = (EditText) rootView.findViewById(R.id.editTextConfirmPassword); editTextZipCode = (EditText) rootView.findViewById(R.id.editTextZipCode); editTextAddress = (EditText) rootView.findViewById(R.id.editTextAddress); editTextNumberAddress = (EditText) rootView.findViewById(R.id.editTextNumberAddress); editTextComplement = (EditText) rootView.findViewById(R.id.editTextComplement); editTextNeighborhood = (EditText) rootView.findViewById(R.id.editTextNeighborhood); editTextCity = (EditText) rootView.findViewById(R.id.editTextCity); txtLatitude = (TextView) rootView.findViewById(R.id.txtLatitude); txtLongitude = (TextView) rootView.findViewById(R.id.txtLongitude); radioGroupGender = (RadioGroup) rootView.findViewById(R.id.radioGender); spinnerStates = (Spinner) rootView.findViewById(R.id.spinnerStates); btnSearchZipCode = (Button) rootView.findViewById(R.id.btnSearchZipCode); btnSaveUser = (Button) rootView.findViewById(R.id.btnSaveUser); ArrayAdapter arrayAdapterStates = new ArrayAdapter(getActivity(), R.layout.support_simple_spinner_dropdown_item, states); spinnerStates.setPrompt("Estados"); spinnerStates.setAdapter(arrayAdapterStates); spinnerStates.setOnItemSelectedListener( new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { if (position > 0) { String state = (String) spinnerStates.getItemAtPosition(position); spinnerStates.setSelection(states.indexOf(state)); } } @Override public void onNothingSelected(AdapterView<?> parent) { Toast.makeText( getActivity(), "É necessário selecionar uma Categoria", Toast.LENGTH_SHORT) .show(); } }); if (getActivity().getIntent().getSerializableExtra("user") != null) { UserBean userBeanLoad = (UserBean) getActivity().getIntent().getSerializableExtra("user"); editTextUserName.setText(userBeanLoad.getUserName()); editTextEmail.setText(userBeanLoad.getEmail()); editTextLogin.setText(userBeanLoad.getLogin()); editTextPassword.setVisibility(View.INVISIBLE); editTextConfirmPassword.setVisibility(View.INVISIBLE); editTextZipCode.setText(userBeanLoad.getZipCode()); editTextAddress.setText(userBeanLoad.getAddress()); editTextNumberAddress.setText(userBeanLoad.getNumberAddress()); editTextComplement.setText(userBeanLoad.getComplement()); editTextNeighborhood.setText(userBeanLoad.getNeighborhood()); editTextCity.setText(userBeanLoad.getCity()); if (userBeanLoad.getGender().equals(UserBean.Gender.MALE.getSex())) { radioButtonGender = (RadioButton) rootView.findViewById(R.id.radioMale); radioButtonGender.setChecked(true); } else { radioButtonGender = (RadioButton) rootView.findViewById(R.id.radioFemale); radioButtonGender.setChecked(true); } spinnerStates.setSelection(states.indexOf(userBeanLoad.getState())); getActivity() .getWindow() .setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); btnSaveUser.setTag(userBeanLoad); } btnSaveUser.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { progressDialog = ProgressDialog.show(getActivity(), "Processando", "Salvando usuário..."); if (view.getTag() != null) { userBean = (UserBean) view.getTag(); } else { userBean = new UserBean(); } int selectedId = radioGroupGender.getCheckedRadioButtonId(); switch (selectedId) { case R.id.radioFemale: userBean.setGender(UserBean.Gender.FEMALE.getSex()); break; case R.id.radioMale: userBean.setGender(UserBean.Gender.MALE.getSex()); break; } userBean.setUserName(editTextUserName.getText().toString()); userBean.setEmail(editTextEmail.getText().toString()); userBean.setLogin(editTextLogin.getText().toString()); userBean.setPassword(editTextPassword.getText().toString()); userBean.setZipCode(editTextZipCode.getText().toString()); userBean.setAddress(editTextAddress.getText().toString()); userBean.setNumberAddress(editTextNumberAddress.getText().toString()); userBean.setComplement(editTextComplement.getText().toString()); userBean.setNeighborhood(editTextNeighborhood.getText().toString()); userBean.setCity(editTextCity.getText().toString()); userBean.setState(spinnerStates.getSelectedItem().toString()); AsyncTask<Void, Void, JSONObject> task = new AsyncTask<Void, Void, JSONObject>() { @Override protected JSONObject doInBackground(Void... voids) { Http http = new Http(); try { StringBuilder strAddress = new StringBuilder(); strAddress.append(editTextAddress.getText().toString()).append(" "); strAddress.append(editTextNumberAddress.getText().toString()).append(" "); strAddress.append(editTextCity.getText().toString()).append(" "); strAddress.append(spinnerStates.getSelectedItem().toString()); String result = http.doGet( PAGE_MAPS + URLEncoder.encode(strAddress.toString(), "UTF-8") + "&sensor=true"); JSONObject jsonObject = new JSONObject(result); if (jsonObject.getString("status").equals("OK")) { JSONArray jsonArrayResults = jsonObject.getJSONArray("results"); for (int i = 0; i < jsonArrayResults.length(); i++) { JSONObject jsonObjectResults = jsonArrayResults.getJSONObject(i); if (jsonObjectResults.get("geometry") != null) { JSONObject jsonObjectGeometry = jsonObjectResults.getJSONObject("geometry"); return (JSONObject) jsonObjectGeometry.get("location"); } } } } catch (IOException e1) { Log.e(AppHelper.getClassError(UserCrudActivity.class), e1.getMessage()); } catch (JSONException e2) { Log.e(AppHelper.getClassError(UserCrudActivity.class), e2.getMessage()); } return null; } @Override protected void onPostExecute(JSONObject jsonObject) { super.onPostExecute(jsonObject); boolean cepOK = true; if (jsonObject == null || jsonObject.isNull("lng")) { cepOK = false; Toast.makeText(getActivity(), "CEP inexistente.", Toast.LENGTH_SHORT) .show(); } else { try { userBean.setLatitude(jsonObject.get("lat").toString()); userBean.setLongitude(jsonObject.get("lng").toString()); boolean create = userBean.getId() == null ? true : false; UserDB userDB = new UserDB(getActivity()); userBean = userDB.salvar(userBean); if (userBean != null) { Intent it = new Intent(); it.putExtra( "msg", create ? "Usuário salvo com sucesso!" : "Usuário atualizado com sucesso!"); it.putExtra("user", userBean); getActivity().setResult(RESULT_OK, it); getActivity().finish(); } else { Intent it = new Intent(); it.putExtra( "msg", create ? "Falha ao cadastrar o Usuário!" : "Falha ao atualizar Usuário!"); getActivity().setResult(RESULT_CANCELED, it); getActivity().finish(); } } catch (JSONException e3) { Log.e(AppHelper.getClassError(UserCrudActivity.class), e3.getMessage()); } } if (cepOK) { UserDB userDB = new UserDB(getActivity()); userBean = userDB.salvar(userBean); if (userBean != null) { Intent it = new Intent(); it.putExtra( "msg", userBean.getId() == null ? "Usuário salvo com sucesso!" : "Usuário atualizado com sucesso!"); it.putExtra("user", userBean); getActivity().setResult(RESULT_OK, it); getActivity().finish(); } else { Intent it = new Intent(); it.putExtra( "msg", userBean.getId() == null ? "Falha ao cadastrar o Usuário!" : "Falha ao atualizar Usuário!"); getActivity().setResult(RESULT_CANCELED, it); getActivity().finish(); } } } }; if (validateFields(userBean)) { task.execute(); } progressDialog.dismiss(); } }); btnSearchZipCode.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { progressDialog = ProgressDialog.show(getActivity(), "Pesquisando", "Carregando..."); AsyncTask<Void, Void, JSONObject> task = new AsyncTask<Void, Void, JSONObject>() { @Override protected JSONObject doInBackground(Void... params) { Http http = new Http(); try { String result = http.doGet(PAGE_CORREIOS + editTextZipCode.getText().toString()); JSONObject jsonObject = new JSONObject(result); if (!jsonObject.has("message")) { return jsonObject; } } catch (IOException e1) { Log.e(AppHelper.getClassError(UserCrudActivity.class), e1.getMessage()); } catch (JSONException e2) { Log.e(AppHelper.getClassError(UserCrudActivity.class), e2.getMessage()); } return null; } @Override protected void onPostExecute(JSONObject jsonObject) { if (jsonObject == null) { Toast.makeText(getActivity(), "CEP inexistente.", Toast.LENGTH_SHORT) .show(); } else { try { editTextAddress.setText( jsonObject.get("tipoDeLogradouro") + " " + jsonObject.get("logradouro")); editTextNeighborhood.setText(jsonObject.get("bairro").toString()); editTextCity.setText(jsonObject.get("cidade").toString()); spinnerStates.setSelection( states.indexOf(jsonObject.get("estado").toString())); } catch (JSONException e3) { Log.e(AppHelper.getClassError(UserCrudActivity.class), e3.getMessage()); } } progressDialog.dismiss(); } }; task.execute(); } }); return rootView; }