package com.wise.wawc;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
import org.json.JSONException;
import org.json.JSONObject;
import com.wise.data.CarData;
import com.wise.pubclas.BlurImage;
import com.wise.pubclas.Constant;
import com.wise.pubclas.GetSystem;
import com.wise.pubclas.NetThread;
import com.wise.pubclas.Variable;
import com.wise.sql.DBExcute;
import com.wise.sql.DBHelper;
import cn.sharesdk.framework.Platform;
import cn.sharesdk.framework.ShareSDK;
import cn.sharesdk.sina.weibo.SinaWeibo;
import cn.sharesdk.tencent.qzone.QZone;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
public class Fragment_account extends Fragment{
private static final String TAG = "AccountActivity";
private static final int Get_data = 1;
private static final int Update_data = 2;
private View view = null;
EditText et_activity_account_consignee,et_activity_account_adress,et_activity_account_phone;
TextView tv_activity_account_name,tv_activity_city,tv_carBrand,tv_carNumber;
ImageView iv_activity_account_pic,iv_user_car_logo;
boolean isJump = false;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Log.d(TAG, "onCreateView");
return inflater.inflate(R.layout.fragment_account, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
view = getActivity().findViewById(R.id.account_to_my_vehicle);
view.setOnClickListener(onClickListener);
iv_activity_account_pic = (ImageView)getActivity().findViewById(R.id.iv_activity_account_pic);
iv_user_car_logo = (ImageView)getActivity().findViewById(R.id.iv_user_car_logo);
tv_activity_account_name = (TextView)getActivity().findViewById(R.id.tv_activity_account_name);
tv_activity_city = (TextView)getActivity().findViewById(R.id.tv_activity_city);
tv_carBrand = (TextView)getActivity().findViewById(R.id.tv_carBrand);
tv_carNumber = (TextView)getActivity().findViewById(R.id.tv_carNumber);
ImageView iv_activity_account_menu = (ImageView)getActivity().findViewById(R.id.iv_activity_account_menu);
iv_activity_account_menu.setOnClickListener(onClickListener);
Button bt_activity_account_logout = (Button)getActivity().findViewById(R.id.bt_activity_account_logout);
bt_activity_account_logout.setOnClickListener(onClickListener);
et_activity_account_consignee = (EditText)getActivity().findViewById(R.id.et_activity_account_consignee);
et_activity_account_adress = (EditText)getActivity().findViewById(R.id.et_activity_account_adress);
et_activity_account_phone = (EditText)getActivity().findViewById(R.id.et_activity_account_phone);
ShareSDK.initSDK(getActivity());
GetDBData();
GetCarData();
Bundle bundle = getArguments();
isJump = bundle.getBoolean("isJump", false);
if (isJump) {
iv_activity_account_menu.setImageResource(R.drawable.nav_back);
} else {
iv_activity_account_menu.setImageResource(R.drawable.side_left);
}
}
OnClickListener onClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
switch(v.getId()){
case R.id.iv_activity_account_menu:
saveData();
if (isJump) {
getActivity().finish();
} else {
ActivityFactory.A.LeftMenu();
}
break;
case R.id.account_to_my_vehicle:
startActivityForResult(new Intent(getActivity(), CarSelectActivity.class), 0);
break;
case R.id.bt_activity_account_logout:
Platform platformQQ = ShareSDK.getPlatform(getActivity(),QZone.NAME);
Platform platformSina = ShareSDK.getPlatform(getActivity(),SinaWeibo.NAME);
platformQQ.removeAccount();
platformSina.removeAccount();
removeData();
//TODO finish();
startActivity(new Intent(getActivity(), WelcomeActivity.class));
break;
}
}
};
Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case Get_data:
jsonAccount(msg.obj.toString());
break;
case Update_data:
Log.d(TAG, msg.obj.toString());
break;
}
}
};
/**
* 解析数据,显示并存储
* @param result
*/
private void jsonAccount(String result){
Log.d(TAG, result);
try {
JSONObject jsonObject = new JSONObject(result);
DBExcute dbExcute = new DBExcute();
ContentValues values = new ContentValues();
if(jsonObject.opt("contacts") != null){
String contacts = jsonObject.getString("contacts");
et_activity_account_consignee.setText(contacts);
values.put("Consignee", contacts);
}
if(jsonObject.opt("address") != null){
String address = jsonObject.getString("address");
et_activity_account_adress.setText(address);
values.put("Adress", address);
}
if(jsonObject.opt("tel") != null){
String tel = jsonObject.getString("tel");
et_activity_account_phone.setText(tel);
values.put("Phone", tel);
}
if(jsonObject.opt("annual_inspect_date") != null){
String annual_inspect_date = jsonObject.getString("annual_inspect_date");
values.put("annual_inspect_date", GetSystem.ChangeTimeZone(annual_inspect_date.replace("T", " ").substring(0, 19)));
}
if(jsonObject.opt("change_date") != null){
String change_date = jsonObject.getString("change_date");
values.put("change_date", GetSystem.ChangeTimeZone(change_date.replace("T", " ").substring(0, 19)));
}
values.put("cust_id", Variable.cust_id);
dbExcute.InsertDB(getActivity(), values, Constant.TB_Account);
} catch (JSONException e) {
e.printStackTrace();
}
}
/**
* 获取本地数据
*/
private void GetDBData(){
DBHelper dbHelper = new DBHelper(getActivity());
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.rawQuery("select * from " + Constant.TB_Account + " where cust_id=?", new String[]{Variable.cust_id});
if(cursor.getCount() == 0){
String url = Constant.BaseUrl + "customer/" + Variable.cust_id +"?auth_code=" + Variable.auth_code;
new Thread(new NetThread.GetDataThread(handler, url, Get_data)).start();
}else{
if(cursor.moveToFirst()){
String Consignee = cursor.getString(cursor.getColumnIndex("Consignee"));
String Adress = cursor.getString(cursor.getColumnIndex("Adress"));
String Phone = cursor.getString(cursor.getColumnIndex("Phone"));
et_activity_account_consignee.setText(Consignee);
et_activity_account_adress.setText(Adress);
et_activity_account_phone.setText(Phone);
}
}
cursor.close();
db.close();
}
/**
* 获取本地数据
*/
private void GetSfData(){
Bitmap bimage = BitmapFactory.decodeFile(Constant.userIconPath + Constant.UserImage);
if(bimage != null){
iv_activity_account_pic.setImageBitmap(BlurImage.getRoundedCornerBitmap(bimage));
}
SharedPreferences preferences = getActivity().getSharedPreferences(Constant.sharedPreferencesName, Context.MODE_PRIVATE);
tv_activity_account_name.setText(Variable.cust_name);
String LocationProvince = preferences.getString(Constant.LocationProvince, "");
String LocationCity = preferences.getString(Constant.LocationCity, "");
if(LocationProvince.equals(LocationCity)){
tv_activity_city.setText(LocationCity);
}else{
tv_activity_city.setText(LocationProvince + "," + LocationCity);
}
}
/**
* 获取车辆数据
*/
private void GetCarData(){
for(CarData carData : Variable.carDatas){
if(carData.isCheck){
//显示我的爱车
Bitmap bimage = BitmapFactory.decodeFile(carData.getLogoPath());
if(bimage != null){
iv_user_car_logo.setImageBitmap(BlurImage.getRoundedCornerBitmap(bimage));
}
tv_carBrand.setText(carData.getCar_brand() + carData.getCar_series());
tv_carNumber.setText(carData.getObj_name());
break;
}
}
}
/**
* 保存数据
*/
private void saveData(){
String consignee = et_activity_account_consignee.getText().toString().trim();
String adress = et_activity_account_adress.getText().toString().trim();
String phone = et_activity_account_phone.getText().toString().trim();
//更新服务器信息
String url = Constant.BaseUrl + "customer/" + Variable.cust_id +"?auth_code=" + Variable.auth_code;
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("cust_id", Variable.cust_id));
params.add(new BasicNameValuePair("id_card_type", "B"));
params.add(new BasicNameValuePair("contacts", consignee));
params.add(new BasicNameValuePair("address", adress));
params.add(new BasicNameValuePair("tel", phone));
new Thread(new NetThread.putDataThread(handler, url, params, Update_data)).start();
//更新DB
DBExcute dbExcute = new DBExcute();
ContentValues values = new ContentValues();
values.put("Consignee", consignee);
values.put("adress", adress);
values.put("phone", phone);
dbExcute.UpdateDB(getActivity(), values, "cust_id=?", new String[]{Variable.cust_id}, Constant.TB_Account);
}
/**
* 删除数据
*/
private void removeData(){
SharedPreferences preferences = getActivity().getSharedPreferences(Constant.sharedPreferencesName, Context.MODE_PRIVATE);
Editor editor = preferences.edit();
editor.putString(Constant.Consignee, "");
editor.putString(Constant.Adress, "");
editor.putString(Constant.Phone, "");
editor.putString(Constant.sp_cust_id, "");
editor.putString(Constant.platform, "");
editor.commit();
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == 1){
int car_id = data.getIntExtra("Obj_id", 0);
String Obj_name = data.getStringExtra("Obj_name");
for(int i = 0 ; i < Variable.carDatas.size() ; i++){
if(Variable.carDatas.get(i).getObj_id() == car_id){
SharedPreferences preferences = getActivity().getSharedPreferences(Constant.sharedPreferencesName, Context.MODE_PRIVATE);
Editor editor = preferences.edit();
editor.putInt(Constant.DefaultVehicleID, i);
editor.commit();
Variable.carDatas.get(i).setCheck(true);
//显示我的爱车
Bitmap bimage = BitmapFactory.decodeFile(Variable.carDatas.get(i).getLogoPath());
if(bimage != null){
iv_user_car_logo.setImageBitmap(BlurImage.getRoundedCornerBitmap(bimage));
}
tv_carBrand.setText(Variable.carDatas.get(i).getCar_brand() + Variable.carDatas.get(i).getCar_series());
tv_carNumber.setText(Variable.carDatas.get(i).getObj_name());
}else{
Variable.carDatas.get(i).setCheck(false);
}
}
}
}
}