Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.impact.ribony;
- import io.socket.IOAcknowledge;
- import io.socket.IOCallback;
- import io.socket.SocketIO;
- import io.socket.SocketIOException;
- import java.net.MalformedURLException;
- import org.json.JSONException;
- import org.json.JSONObject;
- import android.app.ActionBar;
- import android.app.ActionBar.Tab;
- import android.os.Bundle;
- import android.support.v4.app.FragmentActivity;
- import android.support.v4.app.FragmentManager;
- import android.support.v4.app.FragmentTransaction;
- import android.support.v4.view.ViewPager;
- import android.util.Log;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.AdapterView;
- import android.widget.ArrayAdapter;
- import android.widget.EditText;
- import android.widget.FrameLayout;
- import android.widget.ImageView;
- import android.widget.ListView;
- import android.widget.TextView;
- import com.google.gson.JsonArray;
- import com.google.gson.JsonObject;
- import com.impact.ribony.adapter.TabsPagerAdapter;
- import com.koushikdutta.async.future.Future;
- import com.koushikdutta.async.future.FutureCallback;
- import com.koushikdutta.ion.Ion;
- public class MainActivity extends FragmentActivity implements
- ActionBar.TabListener {
- private ViewPager viewPager;
- private TabsPagerAdapter mAdapter;
- private ActionBar actionBar;
- private TextView tView;
- ArrayAdapter<JsonObject> randomAdapter;
- // Tab titles
- private String[] tabs = { "Aktif Konuşmalar", "Kişiler"};
- public Boolean loadStatus=false;
- public String sendTo=null;
- SocketIO socket=null;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- viewPager = (ViewPager) findViewById(R.id.pager);
- actionBar = getActionBar();
- mAdapter = new TabsPagerAdapter(getSupportFragmentManager());
- viewPager.setAdapter(mAdapter);
- actionBar.setHomeButtonEnabled(false);
- actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
- // Adding Tabs
- for (String tab_name : tabs) {
- actionBar.addTab(actionBar.newTab().setText(tab_name)
- .setTabListener(this));
- }
- /**
- * on swiping the viewpager make respective tab selected
- * */
- viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
- @Override
- public void onPageSelected(int position) {
- // on changing the page
- // make respected tab selected
- actionBar.setSelectedNavigationItem(position);
- }
- @Override
- public void onPageScrolled(int arg0, float arg1, int arg2) {
- }
- @Override
- public void onPageScrollStateChanged(int arg0) {
- }
- });
- try {
- socket = new SocketIO("http://188.132.250.186:2772/");
- socket.connect(new IOCallback() {
- @Override
- public void onMessage(JSONObject json, IOAcknowledge ack) {
- try {
- Log.w("Server said:",json.toString(2));
- } catch (JSONException e) {
- e.printStackTrace();
- }
- }
- @Override
- public void onMessage(String data, IOAcknowledge ack) {
- Log.w("Server said: ",data);
- }
- @Override
- public void onError(SocketIOException socketIOException) {
- System.out.println("an Error occured");
- socketIOException.printStackTrace();
- }
- @Override
- public void onDisconnect() {
- System.out.println("Connection terminated.");
- }
- @Override
- public void onConnect() {
- Log.w("Connection established","ok");
- }
- @Override
- public void on(String event, IOAcknowledge ack, Object... args) {
- System.out.println("Server triggered event '" + event + "'");
- }
- });
- // This line is cached until the connection is establisched.
- //socket.send("Hello Server!");
- } catch (MalformedURLException e1) {
- e1.printStackTrace();
- }
- }
- @Override
- public void onTabSelected(Tab tab, android.app.FragmentTransaction ft) {
- // TODO Auto-generated method stub
- viewPager.setCurrentItem(tab.getPosition());
- if (tab.getPosition() == 1 && loadStatus == false) {
- placeRandomUsers();
- loadStatus=true;
- }
- }
- @Override
- public void onTabUnselected(Tab tab, android.app.FragmentTransaction ft) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onTabReselected(Tab tab, android.app.FragmentTransaction ft) {
- // TODO Auto-generated method stub
- }
- private void placeRandomUsers() {
- randomAdapter = new ArrayAdapter<JsonObject>(this, 0) {
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- if (convertView == null)
- convertView = getLayoutInflater().inflate(R.layout.random_bars, null);
- if (position >= getCount() - 3) {
- loadRandomUsers();
- }
- JsonObject user=getItem(position);
- String name=user.get("name").getAsString();
- String image_url="http://dev.ribony.com/photos/profile/thumb/"+user.get("photo").getAsString();
- TextView nameView=(TextView)convertView.findViewById(R.id.tweet);
- nameView.setText(name);
- ImageView imageView=(ImageView)convertView.findViewById(R.id.image);
- Ion.with(imageView)
- .placeholder(R.drawable.twitter)
- .load(image_url);
- return convertView;
- }
- };
- ListView listView = (ListView)findViewById(R.id.list);
- listView.setAdapter(randomAdapter);
- listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> parent, View view,
- int position, long id) {
- //Log.w("Pos","asd"+randomAdapter.getItem(position).get("name").getAsString());
- startChat(randomAdapter.getItem(position));
- }
- });
- loadRandomUsers();
- }
- Future<JsonArray> loading;
- private void loadRandomUsers() {
- if (loading != null && !loading.isDone() && !loading.isCancelled()) {
- return;
- }
- String url="http://dev.ribony.com/mobileapp/get_json_random";
- loading=Ion.with(this,url)
- .asJsonArray()
- .setCallback(new FutureCallback<JsonArray>() {
- public void onCompleted(Exception e,JsonArray result) {
- if (e != null) {
- Log.w("HATA","YUKLEME HATASI");
- Log.w("DETAY",e);
- }
- for (int i=0; i<result.size(); i++) {
- Log.w("ADAPTOR","OK");
- randomAdapter.add(result.get(i).getAsJsonObject());
- }
- }
- });
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- getMenuInflater().inflate(R.menu.main, menu);
- return true;
- }
- public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case android.R.id.home:
- returnFromChat();
- return(true);
- }
- return(super.onOptionsItemSelected(item));
- }
- public void yenile(View view) {
- //placeRandomUsers();
- }
- public void startChat(JsonObject user) {
- FrameLayout layout = (FrameLayout)findViewById(R.id.container);
- layout.setVisibility(View.VISIBLE);
- Bundle bundle = new Bundle();
- bundle.putString("name", user.get("name").getAsString());
- sendTo=user.get("username").getAsString();
- FragmentManager fragmentManager = getSupportFragmentManager();
- FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
- ConversationFragment conv = new ConversationFragment();
- conv.setArguments(bundle);
- fragmentTransaction.add(R.id.container, conv);
- fragmentTransaction.commit();
- viewPager.setVisibility(View.GONE);
- actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
- actionBar.setDisplayHomeAsUpEnabled(true);
- }
- public void returnFromChat() {
- FrameLayout layout = (FrameLayout)findViewById(R.id.container);
- layout.setVisibility(View.GONE);
- viewPager.setVisibility(View.VISIBLE);
- actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
- actionBar.setDisplayHomeAsUpEnabled(false);
- }
- public void sendMessage(String message) {
- try {
- Log.w("mesaj",message);
- JSONObject json = new JSONObject();
- json.putOpt("mesaj", message);
- json.putOpt("alan", sendTo);
- json.putOpt("gonderen", "anon");
- json.putOpt("g_username", "");
- socket.emit("mesajgonder", json);
- } catch (JSONException ex) {
- ex.printStackTrace();
- }
- }
- public void getFromUser(View view) {
- /*
- ConversationFragment conv = new ConversationFragment();
- String message=conv.getText();
- */
- EditText mEdit = (EditText)findViewById(R.id.message);
- String message=mEdit.getText().toString();
- sendMessage(message);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement