project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/ChatFragment.java
author Medo <smaxein@googlemail.com>
Wed, 01 Aug 2012 20:41:54 +0200
changeset 7449 2e63537b44f3
child 7455 8e86d8d2927d
permissions -rw-r--r--
Hedgeroid: Room screen WIP
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;
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    22
	
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    23
	@Override
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    24
	public void onCreate(Bundle savedInstanceState) {
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    25
		super.onCreate(savedInstanceState);
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    26
		
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    27
		Bundle bundle = getArguments();
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    28
		netconn = Netplay.getAppInstance(getActivity().getApplicationContext());
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    29
		adapter = new ChatlogAdapter(getActivity());
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    30
		messageLog = bundle.getBoolean(ARGUMENT_INROOM) ? netconn.roomChatlog : netconn.lobbyChatlog;
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    31
    	adapter.setLog(messageLog.getLog());
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    32
    	messageLog.registerObserver(adapter);
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    33
	}
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    34
	
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    35
	@Override
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    36
	public void onStart() {
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    37
		super.onStart();
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    38
	}
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    39
	
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    40
	@Override
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    41
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    42
			Bundle savedInstanceState) {
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    43
		View view = inflater.inflate(R.layout.fragment_chat, container, false);
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    44
		
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    45
		ListView listView = (ListView) view.findViewById(R.id.chatConsole);
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    46
		listView.setAdapter(adapter);
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    47
		listView.setDivider(null);
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    48
		listView.setDividerHeight(0);
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    49
		listView.setVerticalFadingEdgeEnabled(true);
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    50
		
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    51
		EditText editText = (EditText) view.findViewById(R.id.chatInput);
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    52
        editText.setOnEditorActionListener(new ChatSendListener());
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
		return view;
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    55
	}
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    56
	
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    57
	@Override
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    58
	public void onDestroy() {
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    59
		super.onDestroy();
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    60
		messageLog.unregisterObserver(adapter);
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    61
	}
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
	private final class ChatSendListener implements OnEditorActionListener {
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    64
		public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    65
			String text = v.getText().toString();
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    66
			if(text.length()>0) {
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    67
				v.setText("");
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    68
				netconn.sendChat(text);
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    69
			}
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    70
			return true;
2e63537b44f3 Hedgeroid: Room screen WIP
Medo <smaxein@googlemail.com>
parents:
diff changeset
    71
		}
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
}