project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/PlayerlistFragment.java
changeset 7358 57a508884052
parent 7355 5673e95ef647
child 7461 38acbfdb484f
--- a/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/PlayerlistFragment.java	Tue Jul 24 16:57:48 2012 +0200
+++ b/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/PlayerlistFragment.java	Thu Jul 26 11:01:32 2012 +0200
@@ -1,37 +1,39 @@
 package org.hedgewars.hedgeroid.netplay;
 
 import org.hedgewars.hedgeroid.R;
-import org.hedgewars.hedgeroid.netplay.NetplayService.NetplayBinder;
 
-import android.content.ComponentName;
-import android.content.Intent;
-import android.content.ServiceConnection;
 import android.os.Bundle;
-import android.os.IBinder;
 import android.support.v4.app.ListFragment;
 import android.view.ContextMenu;
+import android.view.ContextMenu.ContextMenuInfo;
 import android.view.LayoutInflater;
 import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
-import android.view.ContextMenu.ContextMenuInfo;
+import android.widget.AdapterView.AdapterContextMenuInfo;
 import android.widget.Toast;
-import android.widget.AdapterView.AdapterContextMenuInfo;
 
 public class PlayerlistFragment extends ListFragment {
-	private NetplayService netplayService;
+	private Netplay netconn;
 	private PlayerListAdapter playerListAdapter;
 	
 	@Override
 	public void onCreate(Bundle savedInstanceState) {
 		super.onCreate(savedInstanceState);
-		getActivity().bindService(new Intent(getActivity(), NetplayService.class), serviceConnection, 0);
+		netconn = Netplay.getAppInstance(getActivity().getApplicationContext());
 		playerListAdapter = new PlayerListAdapter(getActivity());
+		playerListAdapter.setList(Netplay.getAppInstance(getActivity().getApplicationContext()).playerList);
 		setListAdapter(playerListAdapter);
 	}
 
 	@Override
+	public void onDestroy() {
+		super.onDestroy();
+		playerListAdapter.invalidate();
+	}
+	
+	@Override
 	public void onActivityCreated(Bundle savedInstanceState) {
 		super.onActivityCreated(savedInstanceState);
 		registerForContextMenu(getListView());
@@ -41,8 +43,11 @@
 	public void onCreateContextMenu(ContextMenu menu, View v,
 			ContextMenuInfo menuInfo) {
 		super.onCreateContextMenu(menu, v, menuInfo);
+		AdapterContextMenuInfo info = (AdapterContextMenuInfo)menuInfo;
 		MenuInflater inflater = getActivity().getMenuInflater();
 		inflater.inflate(R.menu.lobby_playerlist_context, menu);
+		menu.setHeaderIcon(R.drawable.human);
+		menu.setHeaderTitle(playerListAdapter.getItem(info.position).name);
 	}
 	
 	@Override
@@ -51,9 +56,7 @@
 		switch(item.getItemId()) {
 		case R.id.player_info:
 			Player p = playerListAdapter.getItem(info.position);
-			if(netplayService != null) {
-				netplayService.sendPlayerInfoQuery(p.name);
-			}
+			netconn.sendPlayerInfoQuery(p.name);
 			return true;
 		case R.id.player_follow:
 			Toast.makeText(getActivity(), R.string.not_implemented_yet, Toast.LENGTH_SHORT).show();
@@ -64,27 +67,8 @@
 	}
 	
 	@Override
-	public void onDestroy() {
-		super.onDestroy();
-		getActivity().unbindService(serviceConnection);
-	}
-	
-	@Override
 	public View onCreateView(LayoutInflater inflater, ViewGroup container,
 			Bundle savedInstanceState) {
 		return inflater.inflate(R.layout.lobby_players_fragment, container, false);
 	}
-	
-    private ServiceConnection serviceConnection = new ServiceConnection() {
-        public void onServiceConnected(ComponentName className, IBinder binder) {
-        	netplayService = ((NetplayBinder) binder).getService();
-        	playerListAdapter.setList(netplayService.playerList);
-        }
-
-        public void onServiceDisconnected(ComponentName className) {
-        	// TODO navigate away
-        	playerListAdapter.invalidate();
-        	netplayService = null;
-        }
-    };
 }