5

package com.example.sharingcontact;

import java.io.*;
import java.net.Socket;
import java.util.ArrayList;
import java.util.HashMap;

import com.example.sharingcontact.R;
import com.example.sharingcontact.db.ContactInfo;
import com.example.sharingcontact.db.Contacts;
import com.example.sharingcontact.db.DatabaseOperation;
import com.example.sharingcontact.ExitDialog;

import android.opengl.Visibility;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.provider.ContactsContract;
import android.provider.ContactsContract.PhoneLookup;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.ContentResolver;
import android.content.DialogInterface;
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.text.Editable;
import android.text.SpannableStringBuilder;
import android.text.TextWatcher;
import android.text.style.UpdateLayout;
import android.util.Log;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {
	private static final String TAG = "MainActivity";
	
	TextView tv_title;
	
	GridView gv_menu;
	ListView lv;
	ArrayList<HashMap<String,String>> list;
	Contacts userlist;
	SimpleAdapter adapter;
	SimpleAdapter searchadapter;
	EditText et_search;
	int ifsearch=0;
    LinearLayout	searchLinearout;
    
    Button localserach;
    Button onlineserach;
    int len;
    temp[] result;
    
    String condition;//搜索框内容
    //同步对话框
    AlertDialog.Builder builder;
    EditText et_phone;
    CheckBox cb_share;
    EditText et_password;
    String phone;
    String password;
    int share;
	//更多选项 的对话框
	AlertDialog mainMenuDialog;
	//更多选项的菜单
	View mainMenuView;
	GridView gv_more;
	AlertDialog confirmDialog;
	
	ProgressDialog progressDialog;
  //存储标记条目的_id号
  	ArrayList<Integer> deleteId;
  	ContactInfo[] mycontact;
  	
  	contact[] getcontact;
    @Override
	protected void onResume() {
		super.onResume();
		loadUserList();
	}


	@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       // setContentView(R.layout.main);
        
        //设置title格式
        requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);  
        setContentView(R.layout.main);	
		getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titleitem); 
        Button btn_titlecancle = (Button) findViewById(R.id.btn_titlecancle);
        Button btn_titlesave = (Button) findViewById(R.id.btn_titlesave);
        final TextView tv_title = (TextView) findViewById(R.id.tv_title);
        btn_titlecancle.setVisibility(View.GONE);
        btn_titlesave.setVisibility(View.GONE);
        tv_title.setText("联系人列表");
		
		
		
        userlist = new Contacts(MainActivity.this);
        loadMenu();
        
        lv =(ListView) findViewById(R.id.lv_userlist);
        
        loadUserList();
        
        //单击LISTVIEW打开修改界面
        lv.setOnItemClickListener(new OnItemClickListener() {
			@Override
			public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
					long arg3) {
				
				HashMap item = (HashMap)arg0.getItemAtPosition(arg2);
				Intent intent = new Intent(MainActivity.this, ModifyActivity.class);
				
				
				ContactInfo user = new ContactInfo();
				Object kk= item.get("id");
			//	Log.d("test", (String) item.get("id"));
				
                if( item.get("id") != null){
                	user.ContactID = Integer.parseInt(String.valueOf(item.get("id")));
                }else{
                	user.ContactID = 5;
                }
                

				user.Name = String.valueOf(item.get("name"));
				user.SubName = String.valueOf(item.get("nickname"));
				user.MobileTel = String.valueOf(item.get("phone"));
				user.FixedTel = String.valueOf(item.get("telephone"));
				user.Company = String.valueOf(item.get("company"));
				user.Address = String.valueOf(item.get("address"));
				user.ImageId = Integer.parseInt(String.valueOf(item.get("imageid")));
				
				intent.putExtra("user", user);
					
				if(searchLinearout != null && searchLinearout.getVisibility()==View.VISIBLE) {
					searchLinearout.setVisibility(View.GONE);
				}
				
				/*将arg2作为请求码传过去  用于标识修改项的位置*/			
				startActivityForResult(intent, arg2);
			}
		});    
        
        
        
        //删除多项标记
        lv.setCacheColorHint(Color.TRANSPARENT); //设置ListView的背景为透明
        lv.setOnItemLongClickListener(new OnItemLongClickListener(){

			@Override
			public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
					int arg2, long arg3) {
				if(deleteId == null) {
					deleteId = new ArrayList<Integer>();
				}
				HashMap item = (HashMap)arg0.getItemAtPosition(arg2);
				Integer id = Integer.parseInt(String.valueOf(item.get("id")));
				
				RelativeLayout r = (RelativeLayout)arg1;
				ImageView markedView = (ImageView)r.getChildAt(2);
				
				if(markedView.getVisibility() == View.VISIBLE) {
					markedView.setVisibility(View.GONE);
					deleteId.remove(id);
				} else {
					markedView.setVisibility(View.VISIBLE);
					deleteId.add(id);
				}
				Log.d("delete", String.valueOf(id));
			    Log.d("delete", String.valueOf(deleteId.size()));
				return true;
			}
        	
        	
        });
       
        loadsearch();
       
        onlineserach = (Button) findViewById(R.id.btn_onlinesearch);
        onlineserach.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				et_search = (EditText) findViewById(R.id.et_search);
				final String online_name = et_search.getText().toString();
				final String online_phone = userlist.readInfoInServer();
				new Thread(new Runnable(){
					public void run(){
						testjava onlinesearch = new testjava();
						result = onlinesearch.query(online_phone, online_name);
						len = result.length;
					}
				}).start();
				
				list = new ArrayList<HashMap<String,String>>();
				int k=0;
				while(k<len){
					 ContactInfo infoInsert = new ContactInfo(result[k].name, "", result[k].tel, "", "", "",R.drawable.image15); 
					// userlist.insertContacts(infoInsert);
					 HashMap<String,String> item = new HashMap();
						item.put("name", result[k].name);
						item.put("phone", result[k].tel);
						item.put("imageid", ""+R.drawable.image15);
						list.add(item);
						k++;
				}
				
				lv.setAdapter(null);
				SimpleAdapter onlinesearchadapter = new SimpleAdapter(
		        					MainActivity.this, 
		        					list, 
		        					R.layout.listitem, 
		        					new String[]{"imageid","name","phone"}, 
		        					new int[]{R.id.user_image,R.id.tv_name,R.id.tv_mobilephone});
				lv.setAdapter(onlinesearchadapter);  //将整合好的adapter交给listview,显示给用户看
				tv_title.setText( "共查到 " + len+" 条记录");
				
			}
		});
       
    }
    
    
    private void loadUserList(){
    	Log.d(TAG,"loadUserList");
    	//userlist = new Contacts(MainActivity.this);
    	ArrayList list = new ArrayList<HashMap>();
    	
    	ContactInfo[] userinfo  = userlist.readContacts();
    	if(userinfo != null ){//首次启动时,需要判断数据库是否为空
    	
    	for(ContactInfo info : userinfo){
    		Log.d(TAG, info.toString());
    	}
    	
    	//将ContactInfo[]转换成 list格式;
    	int length = userinfo.length;
    	int k=0;
    	
    
   	    while(k<length) {
			HashMap item = new HashMap();

			item.put("name", userinfo[k].Name);
			item.put("nickname", userinfo[k].SubName);
			item.put("phone", userinfo[k].MobileTel);
			item.put("telephone", userinfo[k].FixedTel);
			item.put("company", userinfo[k].Company);
			item.put("address", userinfo[k].Address);
			item.put("imageid", userinfo[k].ImageId);
			item.put("id", userinfo[k].ContactID);
			
			list.add(item);
			k++;
		}

    	
    	if(length == 0){
    		setTitle("没有查到任何数据");
    	}else{
    		
    	 adapter = new SimpleAdapter(this, 
					list, 
					R.layout.listitem, 
					new String[]{"imageid","name","phone"}, 
					new int[]{R.id.user_image,R.id.tv_name,R.id.tv_mobilephone});
 		
    	 lv.setAdapter(adapter);
    	}
    	}
    }
    
    public boolean onKeyDown(int keyCode, KeyEvent event){
    	Log.d(TAG,"onKeyDown, keyCode = " + keyCode);
		if(keyCode == KeyEvent.KEYCODE_MENU){
			if(gv_menu == null){
				loadMenu();
			}
			if(gv_menu.getVisibility() == View.GONE){
				gv_menu.setVisibility(View.VISIBLE);
			}else{
				gv_menu.setVisibility(View.GONE);
				searchLinearout.setVisibility(View.GONE);
			}
		}		
		if (keyCode == KeyEvent.KEYCODE_BACK) { 
			ExitDialog.exitDialog(MainActivity.this);					
		}
    	return super.onKeyDown(keyCode, event);	
    }

    
    private void loadMenu(){
    	gv_menu= (GridView) this.findViewById(R.id.gd_menu);
    	gv_menu.setBackgroundResource(R.drawable.channelgallery_bg);
    	gv_menu.setNumColumns(5);
    	gv_menu.setGravity(Gravity.BOTTOM);
    //	gv_menu.setVerticalSpacing(10);
    	gv_menu.setHorizontalSpacing(10);
    	
    	
    	ArrayList data = new ArrayList();
    	HashMap map = new HashMap();
    	map.put("itemImage", R.drawable.menu_new_user);
    	map.put("itemText", "添加");
    	data.add(map);
    	
    	map = new HashMap();
    	map.put("itemImage", R.drawable.menu_search);
    	map.put("itemText", "查找");
    	data.add(map);
    	
    	map = new HashMap();
    	map.put("itemImage", R.drawable.menu_update);
    	map.put("itemText", "同步");
    	data.add(map);
    	
    	map = new HashMap();
    	map.put("itemImage", R.drawable.menu_delete);
    	map.put("itemText", "删除");
    	data.add(map);
    	
    	map = new HashMap();
    	map.put("itemImage", R.drawable.menu_more);
    	map.put("itemText", "更多");
    	data.add(map);
    	

    	SimpleAdapter menuadapter = new SimpleAdapter(this, data, R.layout.item_menu, 
    			new String[]{"itemImage","itemText"}, new int[]{R.id.item_image,R.id.item_text});
    		
    	gv_menu.setAdapter(menuadapter);

    	gv_menu.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> parent, View view, int position,
					long id) {
				//HashMap map = (HashMap) parent.getItemAtPosition(1);
				switch(position) {
				//添加
				case 0:{
					Intent intent = new Intent(MainActivity.this, AddActivity.class);
					startActivity(intent);
					break;
				}
				//查找
				case 1:{
					//设置搜索框是否可见;
					if (searchLinearout == null){
						searchLinearout = (LinearLayout) findViewById(R.id.ll_search);
					}
					if( ifsearch == 0){
						searchLinearout.setVisibility(view.VISIBLE);
					    ifsearch = 1;
					}else
					{
						searchLinearout.setVisibility(view.GONE);
						ifsearch = 0;
					}
					loadsearch();
					break;
				}
				
				//同步
                case 2:{
                	loadupdate();
                	Log.d("TEST2", "here");
                	break;
				}
                
                //删除
                case 3:{
                	
                	if(searchLinearout != null && searchLinearout.getVisibility()==View.VISIBLE) {
						searchLinearout.setVisibility(View.GONE);
					}
					if(deleteId == null || deleteId.size() == 0) {
						Toast.makeText(MainActivity.this, "    没有标记任何记录\n长按一条记录即可标记", Toast.LENGTH_LONG).show();
					} else {
						new AlertDialog.Builder(MainActivity.this)
						.setTitle("确定要删除标记的"+deleteId.size()+"条记录吗?")
						.setPositiveButton("确定", new DialogInterface.OnClickListener() {
							@Override
							
							
							public void onClick(DialogInterface dialog, int which) {
								Contacts userlist = new Contacts(MainActivity.this);
								
								int deletID[] = new int[deleteId.size()];
								for(int k=0;k<deleteId.size();k++){
									deletID[k]=deleteId.get(k);
									//userlist.deleteContacts( deleteId.get(k));
								}	
								userlist.batDeleteContacts(deletID);
								
								ArrayList list = new ArrayList<HashMap>();
						    	
						    	ContactInfo[] userinfo  = userlist.readContacts();
						    	if(userinfo == null ){//为空时清除LISTVIEW
						    	     lv.setAdapter(null);
						    	}else{
						    	//将ContactInfo[]转换成 list格式;
						    		
						    	int length = userinfo.length;
						    	int k=0;
						    	
	
						   	    while(k<length) {
									HashMap item = new HashMap();
									item.put("name", userinfo[k].Name);
									item.put("nickname", userinfo[k].SubName);
									item.put("phone", userinfo[k].MobileTel);
									item.put("telephone", userinfo[k].FixedTel);
									item.put("company", userinfo[k].Company);
									item.put("address", userinfo[k].Address);
									item.put("imageid", userinfo[k].ImageId);
									item.put("id", userinfo[k].ContactID);
									list.add(item);
									k++;
								}

						    	
						    	if(length == 0){
						    		setTitle("没有查到任何数据");
						    	}else{
						    		
						    	 adapter = new SimpleAdapter(MainActivity.this, 
											list, 
											R.layout.listitem, 
											new String[]{"imageid","name","phone"}, 
											new int[]{R.id.user_image,R.id.tv_name,R.id.tv_mobilephone});
						    	 lv.setAdapter(adapter);
						    	}
						    								
						    	deleteId.clear();
						    	}
							}
						})
						.setNegativeButton("取消", null)
						.create()
						.show()	;
					}
					
					break;
				}
                
                //更多
                case 4:{
					if(searchLinearout != null && searchLinearout.getVisibility()==View.VISIBLE) {
						searchLinearout.setVisibility(View.GONE);
					}
					loadMainMenuDialog();
					mainMenuDialog.show();
                	
					break;
				}
				}
			}
		});
    }
    


	private void loadsearch() {
		
			searchLinearout = (LinearLayout) findViewById(R.id.ll_search);
			et_search = (EditText)findViewById(R.id.et_search);
			
			condition = et_search.getText().toString();
			
			//在线查找功能
			
			
			//本地查找功能
			
			  et_search.addTextChangedListener(new TextWatcher() {
		
				
			
				
				@Override
				public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
					// TODO Auto-generated method stub
                    String condition = et_search.getText().toString();			
					if(condition.equals("")) {
						lv.setAdapter(adapter);
					}
			    	userlist = new Contacts(MainActivity.this);
			    	ContactInfo[] searchuser  = userlist.queryContacts(condition);
			    	
			    	
			    	if(searchuser!=null){
				    	lv.setAdapter(null);
						//将ContactInfo[]转换成 list格式;
				    	int length = searchuser.length;
				    	Log.d(TAG,"length1 = " + searchuser.length);
				    	int k=0;
				    	
				    	list = new ArrayList<HashMap<String,String>>();
				    	 while(k<length) {
							HashMap<String,String> item = new HashMap();
							item.put("name", searchuser[k].Name);
							item.put("nickname", searchuser[k].SubName);
							item.put("phone", searchuser[k].MobileTel);
							item.put("telephone", searchuser[k].FixedTel);
							item.put("company", searchuser[k].Company);
							item.put("address", searchuser[k].Address);
							item.put("imageid", ""+searchuser[k].ImageId);
							item.put("id", ""+searchuser[k].ContactID);
							list.add(item);
					 		k++;
					    	}
						SimpleAdapter searchadapter = new SimpleAdapter(
				        					MainActivity.this, 
				        					list, 
				        					R.layout.listitem, 
				        					new String[]{"imageid","name","phone"}, 
				        					new int[]{R.id.user_image,R.id.tv_name,R.id.tv_mobilephone});
						lv.setAdapter(searchadapter);  //将整合好的adapter交给listview,显示给用户看
						//tv_title.setText( "共查到 " + searchuser.length+" 条记录");
						//setTitle( "共查到 " + searchuser.length+" 条记录");
				    	}else{
				    		lv.setAdapter(null);
				    	//	tv_title.setText("没有查到任何数据");
				    	}		
			    	
			    	
			    	
//			    	if(searchuser != null){
//			    	lv.setAdapter(null);
//			    	
//					//将ContactInfo[]转换成 list格式;
//			    	int length = searchuser.length;
//			    	int k=0;
//			    	Log.d(TAG,"length = " + searchuser.length);
//			    	
//			   	 while(k<length) {
//						HashMap item = new HashMap();
//						item.put("name", searchuser[k].Name);
//						item.put("nickname", searchuser[k].SubName);
//						item.put("phone", searchuser[k].MobileTel);
//						item.put("telephone", searchuser[k].FixedTel);
//						item.put("company", searchuser[k].Company);
//						item.put("address", searchuser[k].Address);
//						item.put("imageid", searchuser[k].ImageId);
//						item.put("id", searchuser[k].ContactID);
//						if(list==null){
//							list = new ArrayList<HashMap<String,String>>();
//						}
//						list.add(item);
//						k++;
//					}
//
//					searchadapter = new SimpleAdapter(
//			        					MainActivity.this, 
//			        					list, 
//			        					R.layout.listitem, 
//			        					new String[]{"imageid","name","phone"}, 
//			        					new int[]{R.id.user_image,R.id.tv_name,R.id.tv_mobilephone});
//					lv.setAdapter(searchadapter);  //将整合好的adapter交给listview,显示给用户看
//					
//					
//					
//					
//					
//			    	}
				}
				
			    	
				@Override
				public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,
						int arg3) {
				}
				@Override
				public void afterTextChanged(Editable arg0) {

				}
			});
				
		  
	}
	
	private Handler handler = new Handler(){ 
  		public void handleMessage(Message msg) {              
            //关闭ProgressDialog   
            progressDialog.dismiss();                  
            //更新UI  
            loadUserList(); 
            Toast toast=Toast.makeText(MainActivity.this,"更新成功", Toast.LENGTH_LONG);
		    toast.show();
            //statusTextView.setText("Completed!");   
        }
  	};

	
	private void loadMainMenuDialog() {
		if(mainMenuDialog == null) {
			LayoutInflater li = LayoutInflater.from(this);
			mainMenuView = li.inflate(R.layout.main_menu_grid, null);
			 //根据主菜单视图,创建主菜单对话框
	        mainMenuDialog = new AlertDialog.Builder(this).setView(mainMenuView).create();
	        //根据主菜单视图,拿到视图文件中的GridView,然后再往里面放Adapter
	        gv_more = (GridView)mainMenuView.findViewById(R.id.gridview);
	        gv_more.setHorizontalSpacing(10);
	        //创建Adapter
	        String[] main_menu_itemName = { "显示所有", "导入联系人", "关于", "删除所有", "更新", "后退"};
	        int[] main_menu_itemSource = {
					   R.drawable.showall,
					   R.drawable.menu_backup,
					   R.drawable.menu_quit,
					   R.drawable.menu_delete,
					   R.drawable.menu_fresh,
					   R.drawable.menu_return};
	        
	        SimpleAdapter menuAdapter = getMenuAdapter(main_menu_itemName, main_menu_itemSource);
	        gv_more.setAdapter(menuAdapter);
	        //响应点击事件
	        gv_more.setOnItemClickListener(new OnItemClickListener(){
				@Override
				public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
						long arg3) {
					switch(arg2){
					    
					    //显示所有
						case 0:{
							loadUserList();
							setTitle("SharingContact");
							mainMenuDialog.dismiss();
							break;
						}
						
						//导入手机联系人
						case 1:{
							
							progressDialog=ProgressDialog
	                                .show(MainActivity.this, 
	                                        "请等待...",
	                                        "正在导入手机联系人,请稍后...",true); 							

							new Thread(){
                                @Override
                                public void run() {
                                    // TODO Auto-generated method stub
                                    getPhoneContacts();  //将手机上的联系人导入列表
                                    handler.sendEmptyMessage(0);               
                                   
                                }
                            }.start();
                            mainMenuDialog.dismiss();
			     			break;
						}
						
						//关于;
						case 2:{
							Intent intent = new Intent(MainActivity.this, AboutActivity.class);
							startActivity(intent);
							mainMenuDialog.dismiss();
							break;
						}
						//全部删除
						case 3:{
							AlertDialog.Builder builder  = new AlertDialog.Builder(MainActivity.this);
						    confirmDialog = builder.create();
							builder.setTitle("是否删除所有!?");
							builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
									@Override
									public void onClick(DialogInterface dialog, int which) {					
										
								    	ContactInfo[] alluser  = userlist.readContacts();
								    	if(alluser != null ){//首次启动时,需要判断数据库是否为空	
								    	
								    	userlist.clearContacts();
								    	}
								    	 lv.setAdapter(null);
								        mainMenuDialog.dismiss();
									}
								});
							builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
									@Override
									public void onClick(DialogInterface dialog, int which) {
										confirmDialog.dismiss();
									}
								});
							builder.create().show();
							break;				
						}
						
						//更新
						case 4:{
							
							
							loadrenew();
							mainMenuDialog.dismiss();
							break;				
						}
						//后退
						case 5:{
							mainMenuDialog.dismiss();
							break;
						}
					}
					
				}});
		}
		
	}
	
	private void getPhoneContacts() {

        ContentResolver cr = getContentResolver();   
        //取得电话本中开始一项的光标   
        Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);   
        while (cursor.moveToNext())
        {   
            // 取得联系人名字   
            int nameFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME);   
            String name = cursor.getString(nameFieldColumnIndex);   
           // string += (name);  
            // 取得联系人ID   
            String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));   
            Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,       ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = "  
                    + contactId, null, null);   
            int len = phone.getCount();
         
            mycontact = new ContactInfo[len];
            // 取得电话号码(可能存在多个号码)   
            int k=0;
            while (phone.moveToNext())   
            {   
                String strPhoneNumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));   
		        // 创建一个联系人信息
		      //  ContactInfo infoInsert = new ContactInfo(name, "",strPhoneNumber, "", "","",R.drawable.image15); 
		        // 保存一个联系人信息
		        mycontact[k] = new ContactInfo(name, "",strPhoneNumber, "", "","",R.drawable.image15); 
		   //     c.insertContacts(infoInsert);
		        k++;
            }   
           // string += "\n";   
            phone.close();            
        }   
        cursor.close();   
        Contacts c = new Contacts(MainActivity.this);
		c.readLocalContacts(mycontact);
        
    }

	protected void loadrenew() {

		final AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
		final LayoutInflater factory =LayoutInflater.from(this);
		final View view = factory.inflate(R.layout.renew, null);
		builder.setView(view);
		builder.setTitle("更新通讯录");
		builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
			@Override
			public void onClick(DialogInterface arg0, int arg1) {
				
				EditText et_renew_phone = (EditText) view.findViewById(R.id.et_renew_phone);
				EditText et_renew_password = (EditText) view.findViewById(R.id.et_renew_password);
				final String renew_phone = et_renew_phone.getText().toString();
				final String renew_password = et_renew_password.getText().toString();
				
				//判断密码格式是否正确
			    if(renew_password.length()>=4 && renew_password.length()<=8){
			    	//测试
					new Thread(new Runnable(){
						public void run(){
							
							testjava test = new testjava();
							
							//String returninfo = "null";
							String	returninfo = test.register(renew_phone,renew_password,3);
							Log.d("TEST", returninfo);
					//	Toast toast=Toast.makeText(MainActivity.this,"tttt", Toast.LENGTH_LONG);
					//		  toast.show();
							if(returninfo.equals("Logon OK")){
								
							/*
							return:
								 * 		"Logon OK" for logon success.
								 * 		"Password incorrect" for password incorrect.
								 * 		"No account" for account not exist when logging.
								 * 		"Register success" for new account register success.
								 */
							getcontact = test.getContact(renew_phone);
							
							}else if(returninfo.equals("Password incorrect")){
							Toast toast1=Toast.makeText(MainActivity.this,"密码不正确!", Toast.LENGTH_LONG);
							  toast1.show();
						}else if(returninfo.equals("No account")){
							Toast toast1=Toast.makeText(MainActivity.this,"账号不存在!", Toast.LENGTH_LONG);
							  toast1.show();
						}
							
						}
					}).start();
					
					if(getcontact == null ){
						Toast toast=Toast.makeText(MainActivity.this,"无法获取数据,请重试!", Toast.LENGTH_LONG);
						  toast.show();
					}
					
					if(getcontact != null ){
					ArrayList list = new ArrayList<HashMap>();
					int length = getcontact.length;
					ContactInfo[] getcontactinfo = new ContactInfo[length];
					
			    	int k=0;
			   	    while(k<length) {
						HashMap item = new HashMap();
						item.put("name", getcontact[k].name);
						item.put("nickname", getcontact[k].nickName);
						item.put("phone", getcontact[k].tel);
						item.put("telephone", getcontact[k].fixedTel);
						item.put("company", getcontact[k].company);
						item.put("address", getcontact[k].address);
						item.put("imageid", R.drawable.image15);
						item.put("id", getcontact[k].contactId);
						list.add(item);
						
						//将contact转化成contactinfo格式;
						getcontactinfo[k] = new ContactInfo();
						getcontactinfo[k].Name = getcontact[k].name;
						getcontactinfo[k].SubName = getcontact[k].nickName;
						getcontactinfo[k].MobileTel = getcontact[k].tel;
						getcontactinfo[k].FixedTel = getcontact[k].fixedTel;
						getcontactinfo[k].Company = getcontact[k].company;
						getcontactinfo[k].Address = getcontact[k].address;
						getcontactinfo[k].ContactID = getcontact[k].contactId;
						getcontactinfo[k].ImageId = R.drawable.image15;
						k++;
					}
			    	if(length == 0){
			    		setTitle("没有查到任何数据");
			    	}else{
			    	 userlist.importContacts(getcontactinfo);
			    	 adapter = new SimpleAdapter(MainActivity.this, 
								list, 
								R.layout.listitem, 
								new String[]{"imageid","name","phone"}, 
								new int[]{R.id.user_image,R.id.tv_name,R.id.tv_mobilephone});
			    	 lv.setAdapter(adapter);
			    	 Toast toast=Toast.makeText(MainActivity.this,"已从服务器更新成功", Toast.LENGTH_LONG);
						toast.show();  
			    	}
			    	
					}
			    	progressDialog=ProgressDialog.show(MainActivity.this, "请等待...", "正在更新联系人...",true);
			        handler3.sendEmptyMessage(0);
			        
			        //写入本地用户数据库
					 userlist.writeInfoInServer(renew_phone);
			        
			   }else{
				   Toast toast=Toast.makeText(MainActivity.this,"密码:"+renew_password+",长度有误,更新不成功", Toast.LENGTH_LONG);
				   toast.show();
			   }
				
			    
			    
			}
		});
		
		builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface arg0, int arg1) {
				// TODO Auto-generated method stub
				
			}
		});
		builder.create().show();

}
	
	private Handler handler2 = new Handler(){ 
  		public void handleMessage(Message msg) {              
            //关闭ProgressDialog   
            progressDialog.dismiss();                  
            Toast toast=Toast.makeText(MainActivity.this,"已同步服务器", Toast.LENGTH_LONG);
			toast.show();  
        }
  	};

	private Handler handler3 = new Handler(){ 
  		public void handleMessage(Message msg) {              
            //关闭ProgressDialog   
            progressDialog.dismiss();                  
        }
  	};
  	
	private void loadupdate() {

			LayoutInflater li = LayoutInflater.from(this);
			final View textEntryView = li.inflate(R.layout.main_menu_update, null);
			final LinearLayout updatelayout = (LinearLayout) getLayoutInflater().inflate(R.layout.main_menu_update, null);
   
			builder = new AlertDialog.Builder(this);
			builder.setTitle("同步通讯录");
			builder.setView(textEntryView).create();
			builder.setPositiveButton("同步", new DialogInterface.OnClickListener() {
				public void onClick(DialogInterface arg0, int arg1) {
                       //同步操作		
				//	shock = (CheckBox)musicDilog.findViewById(R.id.shock);
					et_phone = (EditText) textEntryView.findViewById(R.id.myname);
					et_password = (EditText) textEntryView.findViewById(R.id.password);
					cb_share = (CheckBox) textEntryView.findViewById(R.id.cb_find);
					phone = et_phone.getText().toString();
					password = et_password.getText().toString();
					
					final int error=0;
					
					Log.d(TAG, phone);
						if(cb_share.isChecked()){
							share=2;
						}else{
							share=1;
						}
					share = 1;

							if(phone=="" ){
								Toast toast=Toast.makeText(getApplicationContext(), "请先输入您的手机号码", Toast.LENGTH_SHORT); 
						        toast.show(); 
							}else if(password.length()<4 && password.length()>8 ){
								Toast toast=Toast.makeText(getApplicationContext(), "密码长度不正确", Toast.LENGTH_SHORT); 
						        toast.show(); 
							}
							else{
						
								new Thread(new Runnable(){
									public void run(){
								
								
								userlist=new Contacts(MainActivity.this);
								ContactInfo[][] userinfo=userlist.syncContactsPre();
								testjava test=new testjava();
								test.register(phone,password,share);
								contact[] infosInsert=null;
								contact[] infosUpdate=null;
								
								if(userinfo[0]!=null){
									int k=0;
									int length1=userinfo[0].length;
									infosInsert=new contact[length1];
									
									while(k<length1){
										infosInsert[k]=new contact();
										infosInsert[k].name=userinfo[0][k].Name;
										infosInsert[k].tel=userinfo[0][k].MobileTel;
										infosInsert[k].contactId=userinfo[0][k].ContactID;
										infosInsert[k].nickName = userinfo[0][k].SubName;
										infosInsert[k].fixedTel = userinfo[0][k].FixedTel;
										infosInsert[k].company = userinfo[0][k].Company;
										infosInsert[k].address = userinfo[0][k].Address;
										k++;
									}
									Log.d("test", test.sync(phone,infosInsert));
								}
								
								if(userinfo[1]!=null){
									int k=0;
									int length1=userinfo[1].length;
									infosUpdate=new contact[length1];
									
									while(k<length1){
										infosUpdate[k]=new contact();
										infosUpdate[k].name=userinfo[0][k].Name;
										infosUpdate[k].tel=userinfo[0][k].MobileTel;
										infosUpdate[k].contactId=userinfo[0][k].ContactID;
										infosUpdate[k].nickName = userinfo[0][k].SubName;
										infosUpdate[k].fixedTel = userinfo[0][k].FixedTel;
										infosUpdate[k].company = userinfo[0][k].Company;
										infosUpdate[k].address = userinfo[0][k].Address;
										k++;
									}
									Log.d("test", test.sync(phone,infosInsert));
								}
								if(userinfo[2]!=null){
									int k=0;
									int length1=userinfo[2].length;
									
									while(k<length1){
										Log.d("test", test.deleteContact(phone,userinfo[2][k].ContactID));
										k++;
									}
								}
								userlist.syncContactsPost();
								
								
									}
								}).start();
								
								
							}
							
							progressDialog=ProgressDialog
		                             .show(MainActivity.this, 
		                                     "请等待...",
		                                     "正在同步服务器,请稍后...",true); 	
							
							 userlist.writeInfoInServer(phone);
							 handler2.sendEmptyMessage(0);
					
				}
				
			});
			builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
				
				@Override
				public void onClick(DialogInterface arg0, int arg1) {
				}
			});	
			builder.show(); 	
		    

	}
	

	private SimpleAdapter getMenuAdapter(String[] menuNameArray,
			int[] imageResourceArray) {
		ArrayList<HashMap<String, Object>> data = new ArrayList<HashMap<String, Object>>();
		for (int i = 0; i < menuNameArray.length; i++) {
			HashMap<String, Object> map = new HashMap<String, Object>();
			map.put("itemImage", imageResourceArray[i]);
			map.put("itemText", menuNameArray[i]);
			data.add(map);
		}
		SimpleAdapter simperAdapter = 
				new SimpleAdapter(
								  this, 
								  data,
								  R.layout.item_menu, 
								  new String[] { "itemImage", "itemText" },
								  new int[] { R.id.item_image, R.id.item_text });
		return simperAdapter;
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值