project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/ChatFragment.java
author Medo <smaxein@googlemail.com>
Wed, 01 Aug 2012 21:13:39 +0200
changeset 7455 8e86d8d2927d
parent 7449 2e63537b44f3
permissions -rw-r--r--
Hedgeroid: Fix argument passing to ChatFragment, small layout fixes
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7449
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
     1
package org.hedgewars.hedgeroid.netplay;
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
     2
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
     3
import org.hedgewars.hedgeroid.R;
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
     4
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
     5
import android.os.Bundle;
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
     6
import android.support.v4.app.Fragment;
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
     7
import android.view.KeyEvent;
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
     8
import android.view.LayoutInflater;
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
     9
import android.view.View;
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    10
import android.view.ViewGroup;
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    11
import android.widget.EditText;
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    12
import android.widget.ListView;
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    13
import android.widget.TextView;
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    14
import android.widget.TextView.OnEditorActionListener;
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    15
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    16
public class ChatFragment extends Fragment {
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    17
	public static final String ARGUMENT_INROOM = "inRoom";
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    18
	
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    19
	private ChatlogAdapter adapter;
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    20
	private Netplay netconn;
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    21
	private MessageLog messageLog;
7455
8e86d8d2927d Hedgeroid: Fix argument passing to ChatFragment, small layout fixes
Medo <smaxein@googlemail.com>
parents: 7449
diff changeset
    22
	private boolean inRoom;
8e86d8d2927d Hedgeroid: Fix argument passing to ChatFragment, small layout fixes
Medo <smaxein@googlemail.com>
parents: 7449
diff changeset
    23
	
8e86d8d2927d Hedgeroid: Fix argument passing to ChatFragment, small layout fixes
Medo <smaxein@googlemail.com>
parents: 7449
diff changeset
    24
	public void setInRoom(boolean inRoom) {
8e86d8d2927d Hedgeroid: Fix argument passing to ChatFragment, small layout fixes
Medo <smaxein@googlemail.com>
parents: 7449
diff changeset
    25
		this.inRoom = inRoom;
8e86d8d2927d Hedgeroid: Fix argument passing to ChatFragment, small layout fixes
Medo <smaxein@googlemail.com>
parents: 7449
diff changeset
    26
	}
7449
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    27
	
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    28
	@Override
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    29
	public void onCreate(Bundle savedInstanceState) {
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    30
		super.onCreate(savedInstanceState);
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    31
		netconn = Netplay.getAppInstance(getActivity().getApplicationContext());
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    32
		adapter = new ChatlogAdapter(getActivity());
7455
8e86d8d2927d Hedgeroid: Fix argument passing to ChatFragment, small layout fixes
Medo <smaxein@googlemail.com>
parents: 7449
diff changeset
    33
	}
8e86d8d2927d Hedgeroid: Fix argument passing to ChatFragment, small layout fixes
Medo <smaxein@googlemail.com>
parents: 7449
diff changeset
    34
	
8e86d8d2927d Hedgeroid: Fix argument passing to ChatFragment, small layout fixes
Medo <smaxein@googlemail.com>
parents: 7449
diff changeset
    35
	@Override
8e86d8d2927d Hedgeroid: Fix argument passing to ChatFragment, small layout fixes
Medo <smaxein@googlemail.com>
parents: 7449
diff changeset
    36
	public void onStart() {
8e86d8d2927d Hedgeroid: Fix argument passing to ChatFragment, small layout fixes
Medo <smaxein@googlemail.com>
parents: 7449
diff changeset
    37
		super.onStart();
8e86d8d2927d Hedgeroid: Fix argument passing to ChatFragment, small layout fixes
Medo <smaxein@googlemail.com>
parents: 7449
diff changeset
    38
		messageLog = inRoom ? netconn.roomChatlog : netconn.lobbyChatlog;
7449
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    39
    	adapter.setLog(messageLog.getLog());
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    40
    	messageLog.registerObserver(adapter);
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    41
	}
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    42
	
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    43
	@Override
7455
8e86d8d2927d Hedgeroid: Fix argument passing to ChatFragment, small layout fixes
Medo <smaxein@googlemail.com>
parents: 7449
diff changeset
    44
	public void onStop() {
8e86d8d2927d Hedgeroid: Fix argument passing to ChatFragment, small layout fixes
Medo <smaxein@googlemail.com>
parents: 7449
diff changeset
    45
		super.onStop();
8e86d8d2927d Hedgeroid: Fix argument passing to ChatFragment, small layout fixes
Medo <smaxein@googlemail.com>
parents: 7449
diff changeset
    46
		messageLog.unregisterObserver(adapter);
7449
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    47
	}
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    48
	
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    49
	@Override
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    50
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    51
			Bundle savedInstanceState) {
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    52
		View view = inflater.inflate(R.layout.fragment_chat, container, false);
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    53
		
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    54
		ListView listView = (ListView) view.findViewById(R.id.chatConsole);
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    55
		listView.setAdapter(adapter);
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    56
		listView.setDivider(null);
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    57
		listView.setDividerHeight(0);
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    58
		listView.setVerticalFadingEdgeEnabled(true);
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    59
		
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    60
		EditText editText = (EditText) view.findViewById(R.id.chatInput);
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    61
        editText.setOnEditorActionListener(new ChatSendListener());
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    62
        
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    63
		return view;
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    64
	}
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    65
	
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    66
	private final class ChatSendListener implements OnEditorActionListener {
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    67
		public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    68
			String text = v.getText().toString();
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    69
			if(text.length()>0) {
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    70
				v.setText("");
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    71
				netconn.sendChat(text);
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    72
			}
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    73
			return true;
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    74
		}
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    75
	}
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    76
}