Advertisement
Guest User

Untitled

a guest
Sep 13th, 2017
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.17 KB | None | 0 0
  1. package com.swarmconnect.activities;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. import android.app.AlertDialog;
  7. import android.content.DialogInterface;
  8. import android.os.Bundle;
  9. import android.view.View;
  10. import android.view.View.OnClickListener;
  11. import android.view.View.OnLongClickListener;
  12. import android.view.ViewGroup;
  13. import android.widget.BaseAdapter;
  14. import android.widget.EditText;
  15. import android.widget.ImageButton;
  16. import android.widget.LinearLayout;
  17. import android.widget.ListView;
  18. import android.widget.TextView;
  19.  
  20. import com.swarmconnect.ActiveSwarmUser.FriendRequestCB;
  21. import com.swarmconnect.ActiveSwarmUser.GotFriendsCB;
  22. import com.swarmconnect.Swarm;
  23. import com.swarmconnect.SwarmUser;
  24. import com.swarmconnect.SwarmUser.GotUserCB;
  25. import com.swarmconnect.ui.UiConf;
  26.  
  27. public class SwarmFriendsActivity extends SwarmBaseActivity {
  28.     private FriendsAdapter adapter = new FriendsAdapter();
  29.    
  30.     private List<SwarmUser> friends = new ArrayList<SwarmUser>();
  31.     private List<SwarmUser> incoming = new ArrayList<SwarmUser>();
  32.    
  33.     @Override
  34.     public void onCreate(Bundle savedInstanceState) {
  35.         setContentView(getResource("@layout/swarm_friends"));
  36.        
  37.         ((LinearLayout)findViewById(getResource("@id/footer"))).setBackgroundDrawable(UiConf.footerBackground);
  38.        
  39.         ListView list = (ListView)findViewById(getResource("@id/list"));
  40.         list.setAdapter(adapter);
  41.        
  42.         ((ImageButton)findViewById(getResource("@id/add"))).setBackgroundDrawable(UiConf.footerButtonBackground);
  43.         ((ImageButton)findViewById(getResource("@id/add"))).setOnClickListener(new OnClickListener() {
  44.             public void onClick(View v) {
  45.                 EditText edit = ((EditText)findViewById(getResource("@id/add_friend_username")));
  46.                 String username = edit.getText().toString().trim();
  47.                 if (username.length() > 0) {
  48.                     showLoading();
  49.                    
  50.                     // Search for that user...
  51.                     SwarmUser.getUser(username, new GotUserCB() {
  52.                         public void gotUser(final SwarmUser result) {
  53.                                    
  54.                             if (result != null) {
  55.                                 Swarm.user.addFriend(result.userId, new FriendRequestCB() {
  56.                                     public void requestSuccess(boolean success) {
  57.                                         hideLoading();
  58.                                        
  59.                                         if (success) {
  60.                                             Swarm.toast("Friend Request Sent");
  61.                                         } else {
  62.                                             Swarm.toast("Error when adding friend!");
  63.                                         }
  64.                                     }
  65.                                 });
  66.  
  67.                             } else {
  68.                                 hideLoading();
  69.                                 Swarm.toast("User not found.");
  70.                             }
  71.                         }
  72.                     });
  73.  
  74.                 }
  75.                
  76.                 edit.setText("");
  77.             }
  78.         });
  79.        
  80.         super.onCreate(savedInstanceState);
  81.     }
  82.    
  83.     public void onResume() {
  84.         super.onResume();
  85.         reload();
  86.     }
  87.    
  88.     public void reload() {
  89.         runOnUiThread(new Runnable() {
  90.             public void run() {
  91.                 getFriends();
  92.             }
  93.         });
  94.     }
  95.    
  96.     private void deleteFriend(int id) {
  97.         showLoading();
  98.         Swarm.user.deleteFriend(id, new FriendRequestCB() {
  99.             public void requestSuccess(boolean success) {
  100.                 hideLoading();
  101.                
  102.                 if (success) {
  103.                     Swarm.toast("Friend Deleted");
  104.                 } else {
  105.                     Swarm.toast("Request failed.");
  106.                 }
  107.                
  108.                 reload();
  109.             }
  110.         });
  111.     }
  112.    
  113.     private void acceptFriend(int id) {
  114.         showLoading();
  115.         Swarm.user.addFriend(id, new FriendRequestCB() {
  116.             public void requestSuccess(boolean success) {
  117.                 hideLoading();
  118.                
  119.                 if (success) {
  120.                     Swarm.toast("Friend Confirmed");
  121.                 } else {
  122.                     Swarm.toast("Request failed.");
  123.                 }
  124.                
  125.                 reload();
  126.             }
  127.         });
  128.     }
  129.    
  130.     private void getFriends() {
  131.         showLoading();
  132.         Swarm.user.getFriends(new GotFriendsCB() {
  133.             public void gotFriends(List<SwarmUser> friends, List<SwarmUser> incoming) {
  134.                 SwarmFriendsActivity.this.friends = friends;
  135.                 SwarmFriendsActivity.this.incoming = incoming;
  136.                 adapter.notifyDataSetChanged();
  137.                 hideLoading();
  138.             }
  139.         });
  140.     }
  141.    
  142.    
  143.     private class FriendsAdapter extends BaseAdapter {
  144.         private boolean isIncoming(int position) {
  145.             return position < incoming.size();
  146.         }
  147.        
  148.         @Override
  149.         public int getCount() {
  150.             return friends.size() + incoming.size();
  151.         }
  152.  
  153.         @Override
  154.         public Object getItem(int position) {
  155.             if (position < incoming.size())
  156.                 return incoming.get(position);
  157.            
  158.             position -= incoming.size();
  159.             if (position < friends.size())
  160.                 return friends.get(position);
  161.            
  162.             return null;
  163.         }
  164.  
  165.         @Override
  166.         public long getItemId(int position) {
  167.             return 0;
  168.         }
  169.  
  170.         @Override
  171.         public View getView(int position, View convertView, ViewGroup parent) {
  172.             View row = convertView;
  173.             if (row == null) {
  174.                 row = View.inflate(getApplicationContext(), getResource("@layout/swarm_friends_row"), null);
  175.             }
  176.            
  177.             final SwarmUser friend = (SwarmUser) getItem(position);
  178.             if (friend != null) {
  179.                 row.setBackgroundColor((position % 2 == 0) ? 0x00ffffff : UiConf.altRowColor);
  180.  
  181.                 ((TextView)row.findViewById(getResource("@id/username"))).setText(friend.username);
  182.                 ((TextView)row.findViewById(getResource("@id/online_text"))).setText("Offline");
  183.                 ((TextView)row.findViewById(getResource("@id/points"))).setText(""+friend.points);
  184.                 ((TextView)row.findViewById(getResource("@id/points"))).setTextColor(UiConf.blueTextColor);
  185.  
  186.                 if (isIncoming(position)) {
  187.                     row.setClickable(false);
  188.  
  189.                     ((TextView)row.findViewById(getResource("@id/online_text"))).setText("Wants to be your friend!");
  190.  
  191.                     ((LinearLayout)row.findViewById(getResource("@id/friended_section"))).setVisibility(View.GONE);
  192.                     ((LinearLayout)row.findViewById(getResource("@id/unfriended_section"))).setVisibility(View.VISIBLE);
  193.                    
  194.                     ((ImageButton)findViewById(getResource("@id/add"))).setBackgroundDrawable(UiConf.footerButtonBackground);
  195.                     ((ImageButton)row.findViewById(getResource("@id/accept"))).setBackgroundDrawable(UiConf.footerButtonBackground);
  196.                     ((ImageButton)row.findViewById(getResource("@id/accept"))).setOnClickListener(new OnClickListener() {
  197.                         public void onClick(View v) {
  198.                             acceptFriend(friend.userId);
  199.                         }
  200.                     });
  201.                     ((ImageButton)row.findViewById(getResource("@id/deny"))).setBackgroundDrawable(UiConf.footerButtonBackground);
  202.                     ((ImageButton)row.findViewById(getResource("@id/deny"))).setOnClickListener(new OnClickListener() {
  203.                         public void onClick(View v) {
  204.                             deleteFriend(friend.userId);
  205.                         }
  206.                     });
  207.                    
  208.                 } else {
  209.                    
  210.                     ((LinearLayout)row.findViewById(getResource("@id/friended_section"))).setVisibility(View.VISIBLE);
  211.                     ((LinearLayout)row.findViewById(getResource("@id/unfriended_section"))).setVisibility(View.GONE);
  212.                    
  213. //                  row.setOnClickListener(new OnClickListener() {
  214. //                      public void onClick(View v) {
  215. //                          LinearLayout msg = ((LinearLayout)v.findViewById(getResource("@id/message_section")));
  216. //                          msg.setVisibility(msg.getVisibility() == View.GONE ? View.VISIBLE : View.GONE);
  217. //                      }
  218. //                  });
  219.                    
  220.                     row.setOnLongClickListener(new OnLongClickListener() {
  221.                         public boolean onLongClick(View v) {
  222.                             new AlertDialog.Builder(SwarmFriendsActivity.this)
  223.                                 .setTitle("Delete Friend")
  224.                                 .setMessage("Do you want to remove "+friend.username+" from your friends list?")
  225.                                 .setCancelable(true)
  226.                                 .setPositiveButton("Remove", new DialogInterface.OnClickListener() {
  227.                                     public void onClick(DialogInterface dialog, int which) {
  228.                                         deleteFriend(friend.userId);
  229.                                     }
  230.                                 })
  231.                                 .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
  232.                                     public void onClick(DialogInterface dialog, int which) {
  233.                                         dialog.cancel();
  234.                                     }
  235.                                 })
  236.                                 .show();
  237.  
  238.                             return true;
  239.                         }
  240.                     });
  241.                 }
  242.             }
  243.  
  244.             return row;
  245.         }
  246.     }
  247.  
  248. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement