3 import java.util.ArrayList; |
3 import java.util.ArrayList; |
4 import java.util.List; |
4 import java.util.List; |
5 import java.util.Random; |
5 import java.util.Random; |
6 |
6 |
7 import org.hedgewars.hedgeroid.R; |
7 import org.hedgewars.hedgeroid.R; |
|
8 import org.hedgewars.hedgeroid.netplay.NetplayService.NetplayBinder; |
8 |
9 |
|
10 import android.content.ComponentName; |
|
11 import android.content.Context; |
|
12 import android.content.Intent; |
|
13 import android.content.ServiceConnection; |
9 import android.os.Bundle; |
14 import android.os.Bundle; |
|
15 import android.os.IBinder; |
10 import android.support.v4.app.ListFragment; |
16 import android.support.v4.app.ListFragment; |
|
17 import android.util.Log; |
11 import android.view.LayoutInflater; |
18 import android.view.LayoutInflater; |
12 import android.view.View; |
19 import android.view.View; |
13 import android.view.ViewGroup; |
20 import android.view.ViewGroup; |
14 |
21 |
15 public class PlayerlistFragment extends ListFragment { |
22 public class PlayerlistFragment extends ListFragment { |
16 List<Player> playerList; |
23 private Netconn netconn; |
17 Random random = new Random(); |
24 private PlayerListAdapter playerListAdapter; |
18 |
25 |
19 @Override |
26 @Override |
20 public void onCreate(Bundle savedInstanceState) { |
27 public void onCreate(Bundle savedInstanceState) { |
21 super.onCreate(savedInstanceState); |
28 super.onCreate(savedInstanceState); |
22 playerList = new ArrayList<Player>(); |
29 getActivity().bindService(new Intent(getActivity(), NetplayService.class), serviceConnection, |
23 PlayerListAdapter playerListAdapter = new PlayerListAdapter(getActivity()); |
30 Context.BIND_AUTO_CREATE); |
24 playerListAdapter.setPlayerList(playerList); |
31 playerListAdapter = new PlayerListAdapter(getActivity()); |
25 setListAdapter(playerListAdapter); |
32 setListAdapter(playerListAdapter); |
26 } |
33 } |
27 |
34 |
28 @Override |
35 @Override |
29 public View onCreateView(LayoutInflater inflater, ViewGroup container, |
36 public View onCreateView(LayoutInflater inflater, ViewGroup container, |
30 Bundle savedInstanceState) { |
37 Bundle savedInstanceState) { |
31 return inflater.inflate(R.layout.lobby_players_fragment, container, false); |
38 return inflater.inflate(R.layout.lobby_players_fragment, container, false); |
32 } |
39 } |
|
40 |
|
41 private ServiceConnection serviceConnection = new ServiceConnection() { |
|
42 public void onServiceConnected(ComponentName className, IBinder binder) { |
|
43 netconn = ((NetplayBinder) binder).getNetconn(); |
|
44 playerListAdapter.setPlayerList(netconn.playerList.getList()); |
|
45 netconn.playerList.observePlayerList(playerListAdapter); |
|
46 } |
|
47 |
|
48 public void onServiceDisconnected(ComponentName className) { |
|
49 // TODO navigate away |
|
50 netconn.playerList.unobservePlayerList(playerListAdapter); |
|
51 netconn = null; |
|
52 } |
|
53 }; |
33 } |
54 } |