package com.miris.ui.activity; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.DialogInterface; import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import com.miris.R; import com.miris.net.SessionPreferences; import com.parse.FindCallback; import com.parse.GetCallback; import com.parse.ParseException; import com.parse.ParseObject; import com.parse.ParseQuery; import java.util.List; /** * Created by Miris on 09.02.15. */ public class AccountOutActivity extends BaseActivity { private EditText et1; //현재비밀번호 private EditText et2; //비밀번호확인 private Button bt1; //탈퇴 private Button bt2; //취소 ProgressDialog myLoadingDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_accountout); session = new SessionPreferences(getApplicationContext()); toolbar.setNavigationIcon(R.drawable.ic_arrow_back_white_24dp); toolbar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); et1 = (EditText)findViewById(R.id.present_passwd); et2 = (EditText)findViewById(R.id.confirm_passwd); bt1 = (Button)findViewById(R.id.bt_out); bt2 = (Button)findViewById(R.id.bt_cancel); bt1.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(final View v) { if ("".equals(et1.getText().toString())) { Toast.makeText(getApplication(), getString(R.string.login_pass), Toast.LENGTH_SHORT).show(); return; } if (!(et1.getText().toString()).equals(et2.getText().toString())) { Toast.makeText(getApplication(), getString(R.string.pass_confirm_fail), Toast.LENGTH_SHORT).show(); return; } if (!(et1.getText().toString()).equals(memberData.get(0).getuser_password())) { Toast.makeText(getApplication(), getString(R.string.pass_server_fail), Toast.LENGTH_SHORT).show(); return; } if (et1.getText().toString().equals(memberData.get(0).getuser_password())) { AlertDialog dlg = new AlertDialog.Builder(AccountOutActivity.this) .setTitle("계정 삭제") .setMessage("삭제한 계정은 복구 되지 않습니다.\n정말로 삭제 하겠습니까?") .setNegativeButton(getString(R.string.btn_cancel), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { if (whichButton == DialogInterface.BUTTON_NEGATIVE) { dialog.cancel(); } } }) .setPositiveButton(getString(R.string.btn_confirm), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { hideSoftInputWindow(v); showDialog(); new deleteAcountTask().execute(); } }) .show(); } } }); bt2.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { finish(); } }); } class deleteAcountTask extends AsyncTask<Void, Void, Void> { @Override protected Void doInBackground(Void... Void) { ParseQuery<ParseObject> commitListQuery = new ParseQuery<ParseObject>("miris_commit"); commitListQuery.whereEqualTo("user_id", noticeData.get(0).getuserid()); commitListQuery.findInBackground(new FindCallback<ParseObject>() { public void done(List<ParseObject> module, ParseException e) { if (e == null) { for (ParseObject delete : module) { delete.deleteInBackground(); } } } }); ParseQuery<ParseObject> mainListQuery = new ParseQuery<ParseObject>("miris_notice"); mainListQuery.whereEqualTo("user_id", noticeData.get(0).getuserid()); mainListQuery.findInBackground(new FindCallback<ParseObject>() { public void done(List<ParseObject> module, ParseException e) { if (e == null) { for (final ParseObject noticeDelete : module) { ParseQuery<ParseObject> commitListQuery = new ParseQuery<ParseObject>("miris_commit"); commitListQuery.findInBackground(new FindCallback<ParseObject>() { public void done(List<ParseObject> module, ParseException e) { if (e == null) { for (ParseObject commitDelete : module) { if (noticeDelete.getObjectId().equals(commitDelete.getString("user_defulf_id"))) { commitDelete.deleteInBackground(); } } } } }); noticeDelete.deleteInBackground(); } } } }); ParseQuery<ParseObject> offerQuery = ParseQuery.getQuery("miris_member"); offerQuery.whereEqualTo("user_id", memberData.get(0).getuserId()); offerQuery.getFirstInBackground(new GetCallback<ParseObject>() { @Override public void done(ParseObject parseObject, ParseException e) { if (e == null) { try { parseObject.deleteInBackground(); } catch (Exception e1) { Toast.makeText(getApplication(), getString(R.string.accountOut_fail), Toast.LENGTH_SHORT).show(); Log.d("회원탈퇴처리 오류", "[" + e1.toString() + "]"); } } } }); return null; } @Override protected void onPostExecute(Void result) { if (myLoadingDialog != null) { myLoadingDialog.dismiss(); } Toast.makeText(getApplication(), getString(R.string.accountOut_pass), Toast.LENGTH_SHORT).show(); session.accountUserDelete(); Intent intent = new Intent(getApplicationContext(), IntroActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); startActivity(intent);//IntroActivity.화면 이동 finish(); } } private void showDialog() { myLoadingDialog = new ProgressDialog(AccountOutActivity.this); myLoadingDialog.setMessage(getString(R.string.show_lodingbar)); myLoadingDialog.setIndeterminate(false); myLoadingDialog.setCancelable(false); myLoadingDialog.show(); } }