project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/PlayerlistFragment.java
changeset 7355 5673e95ef647
parent 7352 641f11cdd319
child 7358 57a508884052
equal deleted inserted replaced
7352:641f11cdd319 7355:5673e95ef647
     2 
     2 
     3 import org.hedgewars.hedgeroid.R;
     3 import org.hedgewars.hedgeroid.R;
     4 import org.hedgewars.hedgeroid.netplay.NetplayService.NetplayBinder;
     4 import org.hedgewars.hedgeroid.netplay.NetplayService.NetplayBinder;
     5 
     5 
     6 import android.content.ComponentName;
     6 import android.content.ComponentName;
     7 import android.content.Context;
       
     8 import android.content.Intent;
     7 import android.content.Intent;
     9 import android.content.ServiceConnection;
     8 import android.content.ServiceConnection;
    10 import android.os.Bundle;
     9 import android.os.Bundle;
    11 import android.os.IBinder;
    10 import android.os.IBinder;
    12 import android.support.v4.app.ListFragment;
    11 import android.support.v4.app.ListFragment;
    19 import android.view.ContextMenu.ContextMenuInfo;
    18 import android.view.ContextMenu.ContextMenuInfo;
    20 import android.widget.Toast;
    19 import android.widget.Toast;
    21 import android.widget.AdapterView.AdapterContextMenuInfo;
    20 import android.widget.AdapterView.AdapterContextMenuInfo;
    22 
    21 
    23 public class PlayerlistFragment extends ListFragment {
    22 public class PlayerlistFragment extends ListFragment {
    24 	private Netconn netconn;
    23 	private NetplayService netplayService;
    25 	private PlayerListAdapter playerListAdapter;
    24 	private PlayerListAdapter playerListAdapter;
    26 	
    25 	
    27 	@Override
    26 	@Override
    28 	public void onCreate(Bundle savedInstanceState) {
    27 	public void onCreate(Bundle savedInstanceState) {
    29 		super.onCreate(savedInstanceState);
    28 		super.onCreate(savedInstanceState);
    30 		getActivity().bindService(new Intent(getActivity(), NetplayService.class), serviceConnection,
    29 		getActivity().bindService(new Intent(getActivity(), NetplayService.class), serviceConnection, 0);
    31 	            Context.BIND_AUTO_CREATE);
       
    32 		playerListAdapter = new PlayerListAdapter(getActivity());
    30 		playerListAdapter = new PlayerListAdapter(getActivity());
    33 		setListAdapter(playerListAdapter);
    31 		setListAdapter(playerListAdapter);
    34 	}
    32 	}
    35 
    33 
    36 	@Override
    34 	@Override
    51 	public boolean onContextItemSelected(MenuItem item) {
    49 	public boolean onContextItemSelected(MenuItem item) {
    52 		AdapterContextMenuInfo info = (AdapterContextMenuInfo)item.getMenuInfo();
    50 		AdapterContextMenuInfo info = (AdapterContextMenuInfo)item.getMenuInfo();
    53 		switch(item.getItemId()) {
    51 		switch(item.getItemId()) {
    54 		case R.id.player_info:
    52 		case R.id.player_info:
    55 			Player p = playerListAdapter.getItem(info.position);
    53 			Player p = playerListAdapter.getItem(info.position);
    56 			if(netconn != null) {
    54 			if(netplayService != null) {
    57 				netconn.sendPlayerInfoQuery(p.name);
    55 				netplayService.sendPlayerInfoQuery(p.name);
    58 			}
    56 			}
    59 			return true;
    57 			return true;
    60 		case R.id.player_follow:
    58 		case R.id.player_follow:
    61 			Toast.makeText(getActivity(), R.string.not_implemented_yet, Toast.LENGTH_SHORT).show();
    59 			Toast.makeText(getActivity(), R.string.not_implemented_yet, Toast.LENGTH_SHORT).show();
    62 			return true;
    60 			return true;
    77 		return inflater.inflate(R.layout.lobby_players_fragment, container, false);
    75 		return inflater.inflate(R.layout.lobby_players_fragment, container, false);
    78 	}
    76 	}
    79 	
    77 	
    80     private ServiceConnection serviceConnection = new ServiceConnection() {
    78     private ServiceConnection serviceConnection = new ServiceConnection() {
    81         public void onServiceConnected(ComponentName className, IBinder binder) {
    79         public void onServiceConnected(ComponentName className, IBinder binder) {
    82         	netconn = ((NetplayBinder) binder).getNetconn();
    80         	netplayService = ((NetplayBinder) binder).getService();
    83         	playerListAdapter.setList(netconn.playerList);
    81         	playerListAdapter.setList(netplayService.playerList);
    84         }
    82         }
    85 
    83 
    86         public void onServiceDisconnected(ComponentName className) {
    84         public void onServiceDisconnected(ComponentName className) {
    87         	// TODO navigate away
    85         	// TODO navigate away
    88         	playerListAdapter.invalidate();
    86         	playerListAdapter.invalidate();
    89         	netconn = null;
    87         	netplayService = null;
    90         }
    88         }
    91     };
    89     };
    92 }
    90 }