Added interfaces for showing toasts and setting Multicast Locks.

This commit is contained in:
2013-11-26 17:58:26 -04:30
parent 472faf8e4a
commit a112aff5f8
3 changed files with 79 additions and 2 deletions

View File

@@ -5,6 +5,12 @@
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="10" android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<application
android:icon="@drawable/ic_launcher"

View File

@@ -1,18 +1,48 @@
package ve.ucv.ciens.ccg.nxtar;
import ve.ucv.ciens.ccg.nxtar.interfaces.MulticastEnabler;
import ve.ucv.ciens.ccg.nxtar.utils.AndroidToaster;
import android.content.Context;
import android.net.wifi.WifiManager;
import android.net.wifi.WifiManager.MulticastLock;
import android.os.Bundle;
import com.badlogic.gdx.backends.android.AndroidApplication;
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;
public class MainActivity extends AndroidApplication {
public class MainActivity extends AndroidApplication implements MulticastEnabler{
private static final String TAG = "NXTAR_ANDROID_MAIN";
private static final String CLASS_NAME = MainActivity.class.getSimpleName();
private AndroidToaster toaster;
private WifiManager wifiManager;
private MulticastLock multicastLock;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);
toaster = new AndroidToaster(this);
AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
cfg.useGL20 = false;
initialize(new Main(), cfg);
initialize(new Main(toaster, this), cfg);
}
@Override
public void enableMulticast(){
multicastLock = wifiManager.createMulticastLock(TAG);
multicastLock.setReferenceCounted(true);
multicastLock.acquire();
}
@Override
public void disableMulticast() {
if(multicastLock != null){
multicastLock.release();
multicastLock = null;
}
}
}

View File

@@ -0,0 +1,41 @@
package ve.ucv.ciens.ccg.nxtar.utils;
import ve.ucv.ciens.ccg.nxtar.interfaces.Toaster;
import android.content.Context;
import android.os.Handler;
import android.widget.Toast;
/**
* Class used for showing toast messages from a LibGDX game.
*
* @author Miguel Angel Astor Romero
*/
public class AndroidToaster implements Toaster {
private Handler uiHandler;
private Context uiContext;
public AndroidToaster(Context context){
uiHandler = new Handler();
uiContext = context;
}
@Override
public void showShortToast(final String msg) {
uiHandler.post(new Runnable() {
@Override
public void run() {
Toast.makeText(uiContext, msg, Toast.LENGTH_SHORT).show();
}
});
}
@Override
public void showLongToast(final String msg) {
uiHandler.post(new Runnable() {
@Override
public void run() {
Toast.makeText(uiContext, msg, Toast.LENGTH_LONG).show();
}
});
}
}