package com.talk.demo.intimate; import android.accounts.Account; import android.app.Activity; import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.ImageView; import android.widget.ListView; import com.talk.demo.R; import com.talk.demo.share.FriendsActivity; import com.talk.demo.types.Candidate; import com.talk.demo.types.Friend; import com.talk.demo.util.AccountUtils; import com.talk.demo.util.NetworkUtilities; import org.json.JSONException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; public class NewIntimateActivity extends Activity { private static String TAG = "NewIntimateActivity"; private ImageView from_contact, from_internet; NewIntimateListAdapter adapter; ListView mListView; ArrayList<HashMap<String, Object>> friends; String ourName; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_new_intimate); from_contact = (ImageView)findViewById(R.id.from_contact); from_internet = (ImageView)findViewById(R.id.from_internet); from_contact.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent mIntent = new Intent(NewIntimateActivity.this, FindIntimateActivity.class); startActivity(mIntent); } }); from_internet.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent mIntent = new Intent(NewIntimateActivity.this, FriendsActivity.class); startActivity(mIntent); } }); mListView = (ListView) findViewById(R.id.new_friend_list); friends = new ArrayList<HashMap<String, Object>>(); new loadFriendList().execute(); Account accout = AccountUtils.getPasswordAccessibleAccount(this); if (accout != null && !TextUtils.isEmpty(accout.name)) { Log.d(TAG,"ccount name: "+accout.name); ourName = accout.name; } } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if(id == R.id.action_add_intimate) { Intent mIntent = new Intent(this, FindDSourceFriendsActivity.class); this.startActivity(mIntent); return true; } return super.onOptionsItemSelected(item); } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.add_intimate_actions, menu); return super.onCreateOptionsMenu(menu); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { Log.d(TAG, "got the return :" + requestCode + " :" + resultCode); } public void initData() { adapter = new NewIntimateListAdapter(this, friends, R.layout.friend_find_listitem, new String[] { "avatar", "friend_name", "add" }, new int[] { R.id.friend_avatar, R.id.friend_find_name, R.id.decrator }); mListView.setAdapter(adapter); } private class loadFriendList extends AsyncTask<Void, Void, List<Candidate>> { private List<Candidate> getFriendList; protected List<Candidate> doInBackground(Void... params) { try { getFriendList = new ArrayList<Candidate>(); getFriendList = NetworkUtilities.newFriends(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } return getFriendList; } protected void onPostExecute(List<Candidate> result) { if(null != result) { for (Candidate friend : getFriendList) { // not need to contain our user name if (ourName.equals(friend.getUserName())) { continue; } HashMap<String, Object> map = new HashMap<String, Object>(); map.put("avatar", R.drawable.avatar); map.put("friend_name", friend.getUserName()); map.put("add", R.drawable.ofm_add_icon); friends.add(map); } initData(); } } } }