package com.bestapp.yikuair.fragments; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.graphics.Color; import android.net.Uri; import android.os.Bundle; import android.util.Log; import android.view.Gravity; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import android.widget.Toast; import com.bestapp.yikuair.R; import com.bestapp.yikuair.database.DBOpenHelper; import com.bestapp.yikuair.utils.FindMemberUtil; import com.bestapp.yikuair.utils.FriendEntity; import com.bestapp.yikuair.utils.MessageInfo; import com.bestapp.yikuair.utils.StringWidthWeightRandom; public class FindMemberActivity extends Activity { private Dialog mDialog; private EditText edittext; private DBOpenHelper dbOpenHelper; private Cursor cursor; private FriendEntity entity; private FindResultBroadcastReceiver fbr; private Toast toast; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.add_friend_layout); dbOpenHelper = new DBOpenHelper(this); mDialog = new AlertDialog.Builder(this).create(); edittext = (EditText) findViewById(R.id.et_memberId); // register broadcast IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(MessageInfo.FindResultBroadCast); fbr = new FindResultBroadcastReceiver(); registerReceiver(fbr, intentFilter); } class FindResultBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context arg0, Intent arg1) { // TODO Auto-generated method stub Log.i("test", "receive find result broadcast"); closeLoadingDialog(); int code = arg1.getIntExtra("code", 0); FriendEntity friEntity = (FriendEntity) arg1 .getSerializableExtra("friendEntity"); if(code == 200 && friEntity != null){ sendToPersonalActivity(friEntity, true); }else if(code == 201){ showToast(getApplication().getString(R.string.no_member_error)); }else if(code == 500){ showToast(getApplication().getString(R.string.service_error)); }else{ showToast(getApplication().getString(R.string.find_error)); } } } public void showToast(String str){ toast = Toast.makeText(getApplication(), str, Toast.LENGTH_LONG); toast.setGravity(Gravity.CENTER, 0, 0); toast.show(); } public void sendToPersonalActivity(FriendEntity friendEntity, boolean isNewMember){ Intent intent = new Intent(FindMemberActivity.this, PersonalProfileActivity.class); intent.putExtra("friendEntity", friendEntity); intent.putExtra("isNewMember", isNewMember); startActivity(intent); overridePendingTransition(R.anim.in_from_right, R.anim.out_of_left); } public void beginSearchMember(View view) { String memberId = edittext.getText().toString(); if(memberId.length() == 0){ showToast(getResources().getString(R.string.member_null_error)); return; } if (getResultFromLocal(memberId)) { closeLoadingDialog(); Log.i("test","get from local success......"); if (entity == null) { showToast(getApplication().getString(R.string.find_error)); return; } sendToPersonalActivity(entity, false); } else { Log.i("test","get from network........."); FindMemberUtil util = new FindMemberUtil(this); util.requestFindResult(memberId); } } public void showRoundProcessDialog() { mDialog.show(); mDialog.setCanceledOnTouchOutside(false); mDialog.setContentView(R.layout.loading_process_dialog); } public boolean getResultFromLocal(String memberId) { showRoundProcessDialog(); SQLiteDatabase db = dbOpenHelper.getReadableDatabase(); cursor = db.rawQuery("select * from contactsTable where userid=?", new String[] { memberId.toString() }); int count = cursor.getCount(); if (cursor.moveToFirst()) { String id = cursor.getString(cursor.getColumnIndex("userid")); String name = cursor.getString(cursor.getColumnIndex("name")); String phone = cursor.getString(cursor.getColumnIndex("phone")); String mobile = cursor.getString(cursor.getColumnIndex("mobile")); String signature = cursor.getString(cursor.getColumnIndex("signature")); String email = cursor.getString(cursor.getColumnIndex("email")); String duty = cursor.getString(cursor.getColumnIndex("duty")); String department = cursor.getString(cursor.getColumnIndex("department")); String headUrl = cursor.getString(cursor.getColumnIndex("headURL")); String companyId = cursor.getString(cursor.getColumnIndex("companyid")); String alpha = cursor.getString(cursor.getColumnIndex("alpha")); String team = cursor.getString(cursor.getColumnIndex("team")); String sex = cursor.getString(cursor.getColumnIndex("sex")); String dbId = cursor.getString(cursor.getColumnIndex("dbId")); String pinyin = cursor.getString(cursor.getColumnIndex("pinyin")); String searchIndex = cursor.getString(cursor.getColumnIndex("searchindex")); entity = new FriendEntity(id, name, phone, mobile, email, duty, department, headUrl, signature, companyId, alpha, team, sex, dbId, pinyin, searchIndex); } cursor.close(); dbOpenHelper.close(); if (count > 0) { return true; } else return false; } public void closeLoadingDialog() { if (mDialog.isShowing()) mDialog.dismiss(); } public void quitActivity(View view) { finish(); unregisterReceiver(fbr); overridePendingTransition(R.anim.in_from_left, R.anim.out_of_right); } @Override public void onBackPressed() { quitActivity(null); } }