author | Medo <smaxein@googlemail.com> |
Sun, 12 Aug 2012 22:46:23 +0200 | |
changeset 7485 | 0481bd74267c |
parent 7476 | 2fb781bbdd51 |
permissions | -rw-r--r-- |
7476
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
1 |
package org.hedgewars.hedgeroid.netplay; |
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
2 |
|
7485 | 3 |
import java.util.ArrayList; |
4 |
import java.util.Collection; |
|
5 |
import java.util.List; |
|
6 |
||
7476
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
7 |
import org.hedgewars.hedgeroid.R; |
7485 | 8 |
import org.hedgewars.hedgeroid.Datastructures.Team; |
9 |
import org.hedgewars.hedgeroid.Datastructures.TeamInGame; |
|
7476
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
10 |
|
7485 | 11 |
import android.database.DataSetObserver; |
7476
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
12 |
import android.os.Bundle; |
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
13 |
import android.support.v4.app.ListFragment; |
7485 | 14 |
import android.util.Pair; |
7476
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
15 |
import android.view.LayoutInflater; |
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
16 |
import android.view.View; |
7485 | 17 |
import android.view.View.OnClickListener; |
7476
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
18 |
import android.view.ViewGroup; |
7485 | 19 |
import android.widget.AdapterView.OnItemClickListener; |
20 |
import android.widget.AdapterView; |
|
21 |
import android.widget.Button; |
|
7476
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
22 |
|
7485 | 23 |
public class TeamlistFragment extends ListFragment implements OnItemClickListener { |
7476
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
24 |
private Netplay netplay; |
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
25 |
private TeamlistAdapter adapter; |
7485 | 26 |
private Button addTeamButton; |
27 |
private DataSetObserver teamlistObserver; |
|
28 |
||
7476
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
29 |
@Override |
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
30 |
public void onCreate(Bundle savedInstanceState) { |
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
31 |
super.onCreate(savedInstanceState); |
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
32 |
netplay = Netplay.getAppInstance(getActivity().getApplicationContext()); |
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
33 |
adapter = new TeamlistAdapter(getActivity()); |
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
34 |
adapter.setSource(netplay.roomTeamlist); |
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
35 |
setListAdapter(adapter); |
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
36 |
} |
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
37 |
|
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
38 |
@Override |
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
39 |
public View onCreateView(LayoutInflater inflater, ViewGroup container, |
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
40 |
Bundle savedInstanceState) { |
7485 | 41 |
View v = inflater.inflate(R.layout.fragment_teamlist, container, false); |
42 |
addTeamButton = (Button)v.findViewById(R.id.addTeamButton); |
|
43 |
addTeamButton.setOnClickListener(new OnClickListener() { |
|
44 |
public void onClick(View v) { |
|
45 |
new TeamAddDialog(getCurrentTeamNames()).show(getFragmentManager(), "team_add_dialog"); |
|
46 |
} |
|
47 |
}); |
|
48 |
||
49 |
teamlistObserver = new DataSetObserver() { |
|
50 |
@Override |
|
51 |
public void onChanged() { |
|
52 |
addTeamButton.setEnabled(netplay.roomTeamlist.getMap().size() < Team.maxNumberOfTeams); |
|
53 |
} |
|
54 |
}; |
|
55 |
netplay.roomTeamlist.registerObserver(teamlistObserver); |
|
56 |
teamlistObserver.onChanged(); |
|
57 |
||
58 |
return v; |
|
7476
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
59 |
} |
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
60 |
|
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
61 |
@Override |
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
62 |
public void onDestroy() { |
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
63 |
super.onDestroy(); |
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
64 |
adapter.invalidate(); |
7485 | 65 |
netplay.roomTeamlist.unregisterObserver(teamlistObserver); |
66 |
} |
|
67 |
||
68 |
@Override |
|
69 |
public void onActivityCreated(Bundle savedInstanceState) { |
|
70 |
super.onActivityCreated(savedInstanceState); |
|
71 |
getListView().setOnItemClickListener(this); |
|
72 |
} |
|
73 |
||
74 |
private Collection<String> getCurrentTeamNames() { |
|
75 |
List<String> names = new ArrayList<String>(); |
|
76 |
for(Pair<TeamInGame, Long> teamWithId : netplay.roomTeamlist.getMap().values()) { |
|
77 |
names.add(teamWithId.first.team.name); |
|
78 |
} |
|
79 |
return names; |
|
80 |
} |
|
81 |
||
82 |
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { |
|
83 |
netplay.sendRemoveTeam(adapter.getItem(position).team.name); |
|
7476
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
84 |
} |
2fb781bbdd51
Hedgeroid: Start using the frontlib for more operations
Medo <smaxein@googlemail.com>
parents:
diff
changeset
|
85 |
} |