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); |