project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/RoomlistFragment.java
changeset 7358 57a508884052
parent 7355 5673e95ef647
child 7444 2e31f114f57e
--- a/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/RoomlistFragment.java	Tue Jul 24 16:57:48 2012 +0200
+++ b/project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/RoomlistFragment.java	Thu Jul 26 11:01:32 2012 +0200
@@ -1,15 +1,9 @@
 package org.hedgewars.hedgeroid.netplay;
 
 import org.hedgewars.hedgeroid.R;
-import org.hedgewars.hedgeroid.netplay.NetplayService.NetplayBinder;
 
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.ServiceConnection;
 import android.os.Bundle;
 import android.os.CountDownTimer;
-import android.os.IBinder;
 import android.support.v4.app.ListFragment;
 import android.view.LayoutInflater;
 import android.view.Menu;
@@ -17,21 +11,19 @@
 import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.AdapterView;
 import android.widget.AdapterView.OnItemClickListener;
-import android.widget.AdapterView;
 import android.widget.Toast;
 
 public class RoomlistFragment extends ListFragment implements OnItemClickListener {
 	private static final int AUTO_REFRESH_INTERVAL_MS = 15000;
 	
-	private NetplayService service;
+	private Netplay netconn;
 	private RoomListAdapter adapter;
 	private CountDownTimer autoRefreshTimer = new CountDownTimer(Long.MAX_VALUE, AUTO_REFRESH_INTERVAL_MS) {
 		@Override
 		public void onTick(long millisUntilFinished) {
-			if(service != null && service.isConnected()) {
-				service.sendRoomlistRequest();
-			}
+			netconn.sendRoomlistRequest();
 		}
 		
 		@Override
@@ -41,9 +33,9 @@
 	@Override
 	public void onCreate(Bundle savedInstanceState) {
 		super.onCreate(savedInstanceState);
-		getActivity().bindService(new Intent(getActivity(), NetplayService.class), serviceConnection,
-	            Context.BIND_AUTO_CREATE);
+		netconn = Netplay.getAppInstance(getActivity().getApplicationContext());
 		adapter = new RoomListAdapter(getActivity());
+		adapter.setList(netconn.roomList);
 		setListAdapter(adapter);
 		setHasOptionsMenu(true);
 	}
@@ -51,8 +43,7 @@
 	@Override
 	public View onCreateView(LayoutInflater inflater, ViewGroup container,
 			Bundle savedInstanceState) {
-		View v = inflater.inflate(R.layout.lobby_rooms_fragment, container, false);
-		return v;
+		return inflater.inflate(R.layout.lobby_rooms_fragment, container, false);
 	}
 	
 	@Override
@@ -64,10 +55,7 @@
 	@Override
 	public void onResume() {
 		super.onResume();
-		if(service != null) {
-			service.sendRoomlistRequest();
-			autoRefreshTimer.start();
-		}
+		autoRefreshTimer.start();
 	}
 	
 	@Override
@@ -79,7 +67,7 @@
 	@Override
 	public void onDestroy() {
 		super.onDestroy();
-		getActivity().unbindService(serviceConnection);
+		adapter.invalidate();
 	}
 	
 	@Override
@@ -92,9 +80,7 @@
 	public boolean onOptionsItemSelected(MenuItem item) {
 		switch(item.getItemId()) {
 		case R.id.roomlist_refresh:
-			if(service != null && service.isConnected()) {
-				service.sendRoomlistRequest();
-			}
+			netconn.sendRoomlistRequest();
 			return true;
 		default:
 			return super.onOptionsItemSelected(item);
@@ -104,18 +90,4 @@
 	public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
 		Toast.makeText(getActivity(), R.string.not_implemented_yet, Toast.LENGTH_SHORT).show();
 	}
-	
-    private ServiceConnection serviceConnection = new ServiceConnection() {
-        public void onServiceConnected(ComponentName className, IBinder binder) {
-        	service = ((NetplayBinder) binder).getService();
-        	adapter.setList(service.roomList);
-        	autoRefreshTimer.start();
-        }
-
-        public void onServiceDisconnected(ComponentName className) {
-        	// TODO navigate away
-        	adapter.invalidate();
-        	service = null;
-        }
-    };
 }