/*
* This file is part of Find Your Friend.
*
* Find Your Friend is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* Find Your Friend is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Find Your Friend. If not, see <http://www.gnu.org/licenses/>.
*/
package com.sgu.findyourfriend.screen;
import java.util.ArrayList;
import android.app.Dialog;
import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.WindowManager.LayoutParams;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import com.sgu.findyourfriend.R;
import com.sgu.findyourfriend.adapter.AccountAdapter;
import com.sgu.findyourfriend.mgr.Config;
import com.sgu.findyourfriend.mgr.MyProfileManager;
import com.sgu.findyourfriend.net.PostData;
import com.sgu.findyourfriend.utils.Utility;
public class PhoneNumberManagerDialog extends Dialog {
private ListView lvPhoneNumbers;
private AccountAdapter adapter;
private TextView txtPhoneNumberCurrent;
private Button btnAddNewPhone;
private EditText editNewPhone;
private ArrayList<String> dataP;
private ProgressDialogCustom progress;
private Button btnExit;
private String newPhone;
public PhoneNumberManagerDialog(Context context) {
super(context, R.style.full_screen_dialog);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.dialog_account_manager);
getWindow().setLayout(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT);
dataP = MyProfileManager.getInstance().getMyPhoneNumberNotCurrent();
lvPhoneNumbers = (ListView) findViewById(R.id.lvPhoneNumbers);
adapter = new AccountAdapter(getContext(), R.layout.custom_phonenumber,
dataP);
lvPhoneNumbers.setAdapter(adapter);
txtPhoneNumberCurrent = (TextView) findViewById(R.id.txtPhoneNumberCurrent);
txtPhoneNumberCurrent.setText(MyProfileManager.getInstance()
.getMyPhoneLogin());
editNewPhone = (EditText) findViewById(R.id.editNewPhone);
btnExit = (Button) findViewById(R.id.btnExit);
btnExit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dismiss();
}
});
btnAddNewPhone = (Button) findViewById(R.id.btnAddPhone);
btnAddNewPhone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
if (!Utility.checkConnectToNetworkContinue(getContext()))
return;
final Dialog dialog = new Dialog(getContext());
newPhone = editNewPhone.getText().toString().trim();
editNewPhone.setText("");
InputMethodManager imm = (InputMethodManager) getContext()
.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editNewPhone.getWindowToken(), 0);
if (!Utility.isPhoneNumberCorrect(newPhone)) {
editNewPhone.setBackgroundDrawable(getContext()
.getResources().getDrawable(
R.drawable.edit_text_wrong));
Utility.showDialog(Utility.ERROR, dialog,
"Số điện thoại không hợp lệ",
"Kiểm tra lại hoặc chọn số điện thoại khác.");
return;
}
editNewPhone.setBackgroundDrawable(getContext().getResources()
.getDrawable(R.drawable.edit_text));
(new AsyncTask<Void, Void, Integer>() {
@Override
protected void onPreExecute() {
progress = new ProgressDialogCustom(getContext());
progress.show();
}
@Override
protected Integer doInBackground(Void... params) {
if (PostData.isPhoneRegisted(getContext(), newPhone))
return Config.PHONE_REGISTED;
if (PostData.accountCreate(getContext(),
MyProfileManager.getInstance().getMyID(),
newPhone))
return Config.SUCCESS;
return Config.ERROR;
}
@Override
protected void onPostExecute(Integer result) {
progress.dismiss();
if (result == Config.SUCCESS) {
Utility.showDialog(Utility.CONFIRM, dialog,
"Thêm thành công",
"Số điện thoại mới đã được thêm vào tài khoản.");
dataP.add(newPhone);
adapter.notifyDataSetChanged();
MyProfileManager.getInstance().addMyPhoneNumber(
newPhone);
} else if (result == Config.PHONE_REGISTED) {
Utility.showDialog(Utility.ERROR, dialog,
"Số điện thoại dẵ được đăng kí",
"Chọn số điện thoại khác.");
} else if (result == Config.ERROR) {
Utility.showDialog(Utility.ERROR, dialog, "Lỗi",
"Thêm thất bại. Xin thử lại sau.");
}
}
}).execute();
}
});
}
}