Advertisement
Guest User

Untitled

a guest
Aug 5th, 2014
498
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.62 KB | None | 0 0
  1. package com.impact.ribony;
  2.  
  3. import io.socket.IOAcknowledge;
  4. import io.socket.IOCallback;
  5. import io.socket.SocketIO;
  6. import io.socket.SocketIOException;
  7.  
  8. import java.net.MalformedURLException;
  9.  
  10. import org.json.JSONException;
  11. import org.json.JSONObject;
  12.  
  13. import android.app.ActionBar;
  14. import android.app.ActionBar.Tab;
  15. import android.os.Bundle;
  16. import android.support.v4.app.FragmentActivity;
  17. import android.support.v4.app.FragmentManager;
  18. import android.support.v4.app.FragmentTransaction;
  19. import android.support.v4.view.ViewPager;
  20. import android.util.Log;
  21. import android.view.Menu;
  22. import android.view.MenuItem;
  23. import android.view.View;
  24. import android.view.ViewGroup;
  25. import android.widget.AdapterView;
  26. import android.widget.ArrayAdapter;
  27. import android.widget.EditText;
  28. import android.widget.FrameLayout;
  29. import android.widget.ImageView;
  30. import android.widget.ListView;
  31. import android.widget.TextView;
  32.  
  33. import com.google.gson.JsonArray;
  34. import com.google.gson.JsonObject;
  35. import com.impact.ribony.adapter.TabsPagerAdapter;
  36. import com.koushikdutta.async.future.Future;
  37. import com.koushikdutta.async.future.FutureCallback;
  38. import com.koushikdutta.ion.Ion;
  39.  
  40. public class MainActivity extends FragmentActivity implements
  41.         ActionBar.TabListener {
  42.    
  43.     private ViewPager viewPager;
  44.     private TabsPagerAdapter mAdapter;
  45.     private ActionBar actionBar;
  46.     private TextView tView;
  47.     ArrayAdapter<JsonObject> randomAdapter;
  48.     // Tab titles
  49.     private String[] tabs = { "Aktif Konuşmalar", "Kişiler"};
  50.     public Boolean loadStatus=false;
  51.     public String sendTo=null;
  52.     SocketIO socket=null;
  53.     @Override
  54.     protected void onCreate(Bundle savedInstanceState) {
  55.         super.onCreate(savedInstanceState);
  56.         setContentView(R.layout.activity_main);
  57.         viewPager = (ViewPager) findViewById(R.id.pager);
  58.         actionBar = getActionBar();
  59.         mAdapter = new TabsPagerAdapter(getSupportFragmentManager());
  60.            
  61.         viewPager.setAdapter(mAdapter);
  62.         actionBar.setHomeButtonEnabled(false);
  63.         actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);       
  64.  
  65.         // Adding Tabs
  66.         for (String tab_name : tabs) {
  67.             actionBar.addTab(actionBar.newTab().setText(tab_name)
  68.                     .setTabListener(this));
  69.         }
  70.  
  71.         /**
  72.          * on swiping the viewpager make respective tab selected
  73.          * */
  74.         viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
  75.  
  76.             @Override
  77.             public void onPageSelected(int position) {
  78.                 // on changing the page
  79.                 // make respected tab selected
  80.                 actionBar.setSelectedNavigationItem(position);
  81.             }
  82.  
  83.             @Override
  84.             public void onPageScrolled(int arg0, float arg1, int arg2) {
  85.             }
  86.  
  87.             @Override
  88.             public void onPageScrollStateChanged(int arg0) {
  89.             }
  90.         });
  91.        
  92.        
  93.          try {
  94.                 socket = new SocketIO("http://188.132.250.186:2772/");
  95.                
  96.  
  97.                
  98.                
  99.                 socket.connect(new IOCallback() {
  100.                     @Override
  101.                     public void onMessage(JSONObject json, IOAcknowledge ack) {
  102.                         try {
  103.                             Log.w("Server said:",json.toString(2));
  104.                         } catch (JSONException e) {
  105.                             e.printStackTrace();
  106.                         }
  107.                     }
  108.                    
  109.                    
  110.  
  111.                     @Override
  112.                     public void onMessage(String data, IOAcknowledge ack) {
  113.                         Log.w("Server said: ",data);
  114.                     }
  115.  
  116.                     @Override
  117.                     public void onError(SocketIOException socketIOException) {
  118.                         System.out.println("an Error occured");
  119.                         socketIOException.printStackTrace();
  120.                     }
  121.  
  122.                     @Override
  123.                     public void onDisconnect() {
  124.                         System.out.println("Connection terminated.");
  125.                     }
  126.  
  127.                     @Override
  128.                     public void onConnect() {
  129.                         Log.w("Connection established","ok");
  130.                     }
  131.  
  132.                     @Override
  133.                     public void on(String event, IOAcknowledge ack, Object... args) {
  134.                         System.out.println("Server triggered event '" + event + "'");
  135.                     }
  136.                 });
  137.  
  138.                 // This line is cached until the connection is establisched.
  139.                 //socket.send("Hello Server!");
  140.                
  141.                
  142.  
  143.  
  144.                 } catch (MalformedURLException e1) {
  145.                     e1.printStackTrace();
  146.                 }
  147.  
  148.     }
  149.  
  150.     @Override
  151.     public void onTabSelected(Tab tab, android.app.FragmentTransaction ft) {
  152.         // TODO Auto-generated method stub
  153.         viewPager.setCurrentItem(tab.getPosition());
  154.         if (tab.getPosition() == 1 && loadStatus == false) {
  155.             placeRandomUsers();
  156.             loadStatus=true;
  157.         }
  158.        
  159.     }
  160.     @Override
  161.     public void onTabUnselected(Tab tab, android.app.FragmentTransaction ft) {
  162.         // TODO Auto-generated method stub
  163.        
  164.     }
  165.     @Override
  166.     public void onTabReselected(Tab tab, android.app.FragmentTransaction ft) {
  167.         // TODO Auto-generated method stub
  168.        
  169.     }
  170.     private void placeRandomUsers() {
  171.         randomAdapter = new ArrayAdapter<JsonObject>(this, 0) {
  172.             @Override
  173.             public View getView(int position, View convertView, ViewGroup parent) {
  174.                 if (convertView == null)
  175.                     convertView = getLayoutInflater().inflate(R.layout.random_bars, null);
  176.                     if (position >= getCount() - 3) {
  177.                         loadRandomUsers();
  178.                     }
  179.                     JsonObject user=getItem(position);
  180.                     String name=user.get("name").getAsString();
  181.                     String image_url="http://dev.ribony.com/photos/profile/thumb/"+user.get("photo").getAsString();
  182.                     TextView nameView=(TextView)convertView.findViewById(R.id.tweet);
  183.                     nameView.setText(name);
  184.                     ImageView imageView=(ImageView)convertView.findViewById(R.id.image);
  185.                     Ion.with(imageView)
  186.                     .placeholder(R.drawable.twitter)
  187.                     .load(image_url);
  188.                 return convertView;
  189.             }
  190.         };
  191.         ListView listView = (ListView)findViewById(R.id.list);
  192.         listView.setAdapter(randomAdapter);
  193.         listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
  194.             @Override
  195.             public void onItemClick(AdapterView<?> parent, View view,
  196.                                     int position, long id) {
  197.                 //Log.w("Pos","asd"+randomAdapter.getItem(position).get("name").getAsString());
  198.                 startChat(randomAdapter.getItem(position));
  199.             }
  200.         });
  201.         loadRandomUsers();
  202.     }
  203.    
  204.    
  205.     Future<JsonArray> loading;
  206.     private void loadRandomUsers() {
  207.         if (loading != null && !loading.isDone() && !loading.isCancelled()) {
  208.             return;
  209.         }
  210.         String url="http://dev.ribony.com/mobileapp/get_json_random";
  211.         loading=Ion.with(this,url)
  212.                 .asJsonArray()
  213.                 .setCallback(new FutureCallback<JsonArray>() {
  214.                     public void onCompleted(Exception e,JsonArray result) {
  215.                         if (e != null) {
  216.                             Log.w("HATA","YUKLEME HATASI");
  217.                             Log.w("DETAY",e);
  218.                         }
  219.                         for (int i=0; i<result.size(); i++) {
  220.                             Log.w("ADAPTOR","OK");
  221.                             randomAdapter.add(result.get(i).getAsJsonObject());
  222.                         }
  223.                     }
  224.                 });
  225.     }
  226.     @Override
  227.     public boolean onCreateOptionsMenu(Menu menu) {
  228.         getMenuInflater().inflate(R.menu.main, menu);
  229.         return true;
  230.     }
  231.     public boolean onOptionsItemSelected(MenuItem item) {
  232.         switch (item.getItemId()) {
  233.             case android.R.id.home:
  234.                 returnFromChat();
  235.                 return(true);
  236.         }
  237.  
  238.         return(super.onOptionsItemSelected(item));
  239.     }
  240.     public void yenile(View view) {
  241.         //placeRandomUsers();
  242.        
  243.     }
  244.     public void startChat(JsonObject user) {
  245.         FrameLayout layout = (FrameLayout)findViewById(R.id.container);
  246.         layout.setVisibility(View.VISIBLE);
  247.         Bundle bundle = new Bundle();
  248.         bundle.putString("name", user.get("name").getAsString());
  249.         sendTo=user.get("username").getAsString();
  250.         FragmentManager fragmentManager = getSupportFragmentManager();
  251.         FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
  252.         ConversationFragment conv = new ConversationFragment();
  253.         conv.setArguments(bundle);
  254.         fragmentTransaction.add(R.id.container, conv);
  255.         fragmentTransaction.commit();
  256.         viewPager.setVisibility(View.GONE);
  257.         actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
  258.         actionBar.setDisplayHomeAsUpEnabled(true);
  259.        
  260.     }
  261.     public void returnFromChat() {
  262.         FrameLayout layout = (FrameLayout)findViewById(R.id.container);
  263.         layout.setVisibility(View.GONE);
  264.         viewPager.setVisibility(View.VISIBLE);
  265.         actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
  266.         actionBar.setDisplayHomeAsUpEnabled(false);
  267.     }
  268.     public void sendMessage(String message) {
  269.         try {
  270.             Log.w("mesaj",message);
  271.             JSONObject json = new JSONObject();
  272.             json.putOpt("mesaj", message);
  273.             json.putOpt("alan", sendTo);
  274.             json.putOpt("gonderen", "anon");
  275.             json.putOpt("g_username", "");
  276.             socket.emit("mesajgonder", json);
  277.         } catch (JSONException ex) {
  278.             ex.printStackTrace();
  279.         }
  280.     }
  281.     public void getFromUser(View view) {
  282.         /*
  283.         ConversationFragment conv = new ConversationFragment();
  284.         String message=conv.getText();
  285.         */
  286.         EditText mEdit   = (EditText)findViewById(R.id.message);
  287.         String message=mEdit.getText().toString();
  288.         sendMessage(message);
  289.     }
  290. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement