Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.swarmconnect.activities;
- import java.util.ArrayList;
- import java.util.List;
- import android.app.AlertDialog;
- import android.content.DialogInterface;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.view.View.OnLongClickListener;
- import android.view.ViewGroup;
- import android.widget.BaseAdapter;
- import android.widget.EditText;
- import android.widget.ImageButton;
- import android.widget.LinearLayout;
- import android.widget.ListView;
- import android.widget.TextView;
- import com.swarmconnect.ActiveSwarmUser.FriendRequestCB;
- import com.swarmconnect.ActiveSwarmUser.GotFriendsCB;
- import com.swarmconnect.Swarm;
- import com.swarmconnect.SwarmUser;
- import com.swarmconnect.SwarmUser.GotUserCB;
- import com.swarmconnect.ui.UiConf;
- public class SwarmFriendsActivity extends SwarmBaseActivity {
- private FriendsAdapter adapter = new FriendsAdapter();
- private List<SwarmUser> friends = new ArrayList<SwarmUser>();
- private List<SwarmUser> incoming = new ArrayList<SwarmUser>();
- @Override
- public void onCreate(Bundle savedInstanceState) {
- setContentView(getResource("@layout/swarm_friends"));
- ((LinearLayout)findViewById(getResource("@id/footer"))).setBackgroundDrawable(UiConf.footerBackground);
- ListView list = (ListView)findViewById(getResource("@id/list"));
- list.setAdapter(adapter);
- ((ImageButton)findViewById(getResource("@id/add"))).setBackgroundDrawable(UiConf.footerButtonBackground);
- ((ImageButton)findViewById(getResource("@id/add"))).setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- EditText edit = ((EditText)findViewById(getResource("@id/add_friend_username")));
- String username = edit.getText().toString().trim();
- if (username.length() > 0) {
- showLoading();
- // Search for that user...
- SwarmUser.getUser(username, new GotUserCB() {
- public void gotUser(final SwarmUser result) {
- if (result != null) {
- Swarm.user.addFriend(result.userId, new FriendRequestCB() {
- public void requestSuccess(boolean success) {
- hideLoading();
- if (success) {
- Swarm.toast("Friend Request Sent");
- } else {
- Swarm.toast("Error when adding friend!");
- }
- }
- });
- } else {
- hideLoading();
- Swarm.toast("User not found.");
- }
- }
- });
- }
- edit.setText("");
- }
- });
- super.onCreate(savedInstanceState);
- }
- public void onResume() {
- super.onResume();
- reload();
- }
- public void reload() {
- runOnUiThread(new Runnable() {
- public void run() {
- getFriends();
- }
- });
- }
- private void deleteFriend(int id) {
- showLoading();
- Swarm.user.deleteFriend(id, new FriendRequestCB() {
- public void requestSuccess(boolean success) {
- hideLoading();
- if (success) {
- Swarm.toast("Friend Deleted");
- } else {
- Swarm.toast("Request failed.");
- }
- reload();
- }
- });
- }
- private void acceptFriend(int id) {
- showLoading();
- Swarm.user.addFriend(id, new FriendRequestCB() {
- public void requestSuccess(boolean success) {
- hideLoading();
- if (success) {
- Swarm.toast("Friend Confirmed");
- } else {
- Swarm.toast("Request failed.");
- }
- reload();
- }
- });
- }
- private void getFriends() {
- showLoading();
- Swarm.user.getFriends(new GotFriendsCB() {
- public void gotFriends(List<SwarmUser> friends, List<SwarmUser> incoming) {
- SwarmFriendsActivity.this.friends = friends;
- SwarmFriendsActivity.this.incoming = incoming;
- adapter.notifyDataSetChanged();
- hideLoading();
- }
- });
- }
- private class FriendsAdapter extends BaseAdapter {
- private boolean isIncoming(int position) {
- return position < incoming.size();
- }
- @Override
- public int getCount() {
- return friends.size() + incoming.size();
- }
- @Override
- public Object getItem(int position) {
- if (position < incoming.size())
- return incoming.get(position);
- position -= incoming.size();
- if (position < friends.size())
- return friends.get(position);
- return null;
- }
- @Override
- public long getItemId(int position) {
- return 0;
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- View row = convertView;
- if (row == null) {
- row = View.inflate(getApplicationContext(), getResource("@layout/swarm_friends_row"), null);
- }
- final SwarmUser friend = (SwarmUser) getItem(position);
- if (friend != null) {
- row.setBackgroundColor((position % 2 == 0) ? 0x00ffffff : UiConf.altRowColor);
- ((TextView)row.findViewById(getResource("@id/username"))).setText(friend.username);
- ((TextView)row.findViewById(getResource("@id/online_text"))).setText("Offline");
- ((TextView)row.findViewById(getResource("@id/points"))).setText(""+friend.points);
- ((TextView)row.findViewById(getResource("@id/points"))).setTextColor(UiConf.blueTextColor);
- if (isIncoming(position)) {
- row.setClickable(false);
- ((TextView)row.findViewById(getResource("@id/online_text"))).setText("Wants to be your friend!");
- ((LinearLayout)row.findViewById(getResource("@id/friended_section"))).setVisibility(View.GONE);
- ((LinearLayout)row.findViewById(getResource("@id/unfriended_section"))).setVisibility(View.VISIBLE);
- ((ImageButton)findViewById(getResource("@id/add"))).setBackgroundDrawable(UiConf.footerButtonBackground);
- ((ImageButton)row.findViewById(getResource("@id/accept"))).setBackgroundDrawable(UiConf.footerButtonBackground);
- ((ImageButton)row.findViewById(getResource("@id/accept"))).setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- acceptFriend(friend.userId);
- }
- });
- ((ImageButton)row.findViewById(getResource("@id/deny"))).setBackgroundDrawable(UiConf.footerButtonBackground);
- ((ImageButton)row.findViewById(getResource("@id/deny"))).setOnClickListener(new OnClickListener() {
- public void onClick(View v) {
- deleteFriend(friend.userId);
- }
- });
- } else {
- ((LinearLayout)row.findViewById(getResource("@id/friended_section"))).setVisibility(View.VISIBLE);
- ((LinearLayout)row.findViewById(getResource("@id/unfriended_section"))).setVisibility(View.GONE);
- // row.setOnClickListener(new OnClickListener() {
- // public void onClick(View v) {
- // LinearLayout msg = ((LinearLayout)v.findViewById(getResource("@id/message_section")));
- // msg.setVisibility(msg.getVisibility() == View.GONE ? View.VISIBLE : View.GONE);
- // }
- // });
- row.setOnLongClickListener(new OnLongClickListener() {
- public boolean onLongClick(View v) {
- new AlertDialog.Builder(SwarmFriendsActivity.this)
- .setTitle("Delete Friend")
- .setMessage("Do you want to remove "+friend.username+" from your friends list?")
- .setCancelable(true)
- .setPositiveButton("Remove", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int which) {
- deleteFriend(friend.userId);
- }
- })
- .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
- public void onClick(DialogInterface dialog, int which) {
- dialog.cancel();
- }
- })
- .show();
- return true;
- }
- });
- }
- }
- return row;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement