project_files/Android-build/SDL-android-project/src/org/hedgewars/hedgeroid/netplay/LobbyActivity.java
changeset 7330 867e4fda496e
parent 7328 cd919a2ead4e
child 7349 12fdfd2038d4
equal deleted inserted replaced
7328:cd919a2ead4e 7330:867e4fda496e
    13 import com.sun.jna.Pointer;
    13 import com.sun.jna.Pointer;
    14 
    14 
    15 import android.os.Bundle;
    15 import android.os.Bundle;
    16 import android.os.CountDownTimer;
    16 import android.os.CountDownTimer;
    17 import android.app.Activity;
    17 import android.app.Activity;
       
    18 import android.support.v4.app.FragmentActivity;
       
    19 import android.text.Html;
    18 import android.util.Log;
    20 import android.util.Log;
    19 import android.view.KeyEvent;
    21 import android.view.KeyEvent;
    20 import android.view.View;
    22 import android.view.View;
    21 import android.view.View.OnClickListener;
    23 import android.view.View.OnClickListener;
    22 import android.view.inputmethod.EditorInfo;
    24 import android.view.inputmethod.EditorInfo;
    23 import android.widget.Button;
    25 import android.widget.Button;
    24 import android.widget.EditText;
    26 import android.widget.EditText;
    25 import android.widget.TextView;
    27 import android.widget.TextView;
    26 import android.widget.TextView.OnEditorActionListener;
    28 import android.widget.TextView.OnEditorActionListener;
    27 
    29 
    28 public class LobbyActivity extends Activity {
    30 public class LobbyActivity extends FragmentActivity {
    29 	static {
    31 	static {
    30 		System.loadLibrary("SDL_net");
    32 		System.loadLibrary("SDL_net");
    31 	}
    33 	}
    32 	static final JnaFrontlib FRONTLIB = (JnaFrontlib)Native.loadLibrary("frontlib", JnaFrontlib.class, Collections.singletonMap(Library.OPTION_TYPE_MAPPER, FrontlibTypeMapper.INSTANCE));
    34 	static final JnaFrontlib FRONTLIB = (JnaFrontlib)Native.loadLibrary("frontlib", JnaFrontlib.class, Collections.singletonMap(Library.OPTION_TYPE_MAPPER, FrontlibTypeMapper.INSTANCE));
    33 	
    35 	
    34 	TextView textView;
    36 	TextView textView;
    35 	EditText editText;
    37 	EditText editText;
    36 	Button button;
       
    37 	
    38 	
    38 	boolean disconnected;
    39 	boolean disconnected;
    39 	JnaFrontlib.NetconnPtr netconn;
    40 	JnaFrontlib.NetconnPtr netconn;
    40 	CountDownTimer timer;
    41 	CountDownTimer timer;
    41 	
    42 	
    42 	private void commitText() {
    43 	private void commitText() {
    43 		if(!disconnected && netconn!=null) {
    44 		if(!disconnected && netconn!=null) {
    44 			String text = editText.getText().toString();
    45 			String text = editText.getText().toString();
    45 			editText.setText("");
    46 			editText.setText("");
    46 			textView.append("AndroidChatter: " + text + "\n");
    47 			textView.append(Html.fromHtml("<b>AndroidChatter</b>: " + text + "<br/>"));
    47 			FRONTLIB.flib_netconn_send_chat(netconn, text);
    48 			FRONTLIB.flib_netconn_send_chat(netconn, text);
    48 		}
    49 		}
    49 	}
    50 	}
    50 	
    51 	
    51     @Override
    52     @Override
    52     public void onCreate(Bundle savedInstanceState) {
    53     public void onCreate(Bundle savedInstanceState) {
    53         super.onCreate(savedInstanceState);
    54         super.onCreate(savedInstanceState);
    54         disconnected = false;
    55         disconnected = false;
    55         setContentView(R.layout.activity_lobby);
    56         setContentView(R.layout.activity_lobby);
    56         textView = (TextView)findViewById(R.id.textbox);
    57         textView = (TextView)findViewById(R.id.lobbyConsole);
    57         editText = (EditText)findViewById(R.id.editText);
    58         editText = (EditText)findViewById(R.id.lobbyChatInput);
    58         button = (Button)findViewById(R.id.lobbySendButton);
       
    59         
    59         
    60         button.setOnClickListener(new OnClickListener() {
    60         editText.setOnEditorActionListener(new OnEditorActionListener() {
    61         	public void onClick(View v) {
    61 			public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
    62         		commitText();
    62 				boolean handled = false;
    63         	}
    63 				if(actionId == EditorInfo.IME_ACTION_SEND) {
    64         });
    64 					commitText();
       
    65 					handled = true;
       
    66 				}
       
    67 				return handled;
       
    68 			}
       
    69 		});
    65         
    70         
    66     	FRONTLIB.flib_init();
    71     	FRONTLIB.flib_init();
    67     	try {
    72     	try {
    68     		JnaFrontlib.MetaschemePtr scheme = FRONTLIB.flib_metascheme_from_ini(new File(Utils.getDataPathFile(this), "metasettings.ini").getAbsolutePath());
    73     		JnaFrontlib.MetaschemePtr scheme = FRONTLIB.flib_metascheme_from_ini(new File(Utils.getDataPathFile(this), "metasettings.ini").getAbsolutePath());
    69 			netconn = FRONTLIB.flib_netconn_create("AndroidChatter", scheme, Utils.getDataPathFile(this).getAbsolutePath(), "140.247.62.101", 46631);
    74 			netconn = FRONTLIB.flib_netconn_create("AndroidChatter", scheme, Utils.getDataPathFile(this).getAbsolutePath(), "140.247.62.101", 46631);
   120 		}
   125 		}
   121 	};
   126 	};
   122 	
   127 	
   123     private JnaFrontlib.IntStrCallback handleMessage = new JnaFrontlib.IntStrCallback() {
   128     private JnaFrontlib.IntStrCallback handleMessage = new JnaFrontlib.IntStrCallback() {
   124 		public void callback(Pointer context, int arg1, String arg2) {
   129 		public void callback(Pointer context, int arg1, String arg2) {
   125 			textView.append(arg2+"\n");
   130 			textView.append(Html.fromHtml(arg2+"<br/>"));
   126 		}
   131 		}
   127 	};
   132 	};
   128 }
   133 }