2013-11-21 08:10:12 -04:30
|
|
|
package ve.ucv.ciens.ccg.nxtar;
|
|
|
|
|
|
2013-11-26 17:58:26 -04:30
|
|
|
import ve.ucv.ciens.ccg.nxtar.interfaces.MulticastEnabler;
|
2013-11-28 09:01:45 -04:30
|
|
|
import ve.ucv.ciens.ccg.nxtar.interfaces.Toaster;
|
2013-11-26 17:58:26 -04:30
|
|
|
import android.content.Context;
|
|
|
|
|
import android.net.wifi.WifiManager;
|
|
|
|
|
import android.net.wifi.WifiManager.MulticastLock;
|
2013-11-21 08:10:12 -04:30
|
|
|
import android.os.Bundle;
|
2013-11-28 09:01:45 -04:30
|
|
|
import android.os.Handler;
|
|
|
|
|
import android.widget.Toast;
|
2013-11-21 08:10:12 -04:30
|
|
|
|
2013-11-27 08:11:37 -04:30
|
|
|
import com.badlogic.gdx.Gdx;
|
2013-11-21 08:10:12 -04:30
|
|
|
import com.badlogic.gdx.backends.android.AndroidApplication;
|
|
|
|
|
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;
|
|
|
|
|
|
2013-11-28 09:01:45 -04:30
|
|
|
public class MainActivity extends AndroidApplication implements Toaster, MulticastEnabler{
|
2013-11-26 17:58:26 -04:30
|
|
|
private static final String TAG = "NXTAR_ANDROID_MAIN";
|
|
|
|
|
private static final String CLASS_NAME = MainActivity.class.getSimpleName();
|
|
|
|
|
|
|
|
|
|
private WifiManager wifiManager;
|
|
|
|
|
private MulticastLock multicastLock;
|
2013-11-28 09:01:45 -04:30
|
|
|
private Handler uiHandler;
|
|
|
|
|
private Context uiContext;
|
2013-11-26 17:58:26 -04:30
|
|
|
|
2013-11-21 08:10:12 -04:30
|
|
|
@Override
|
|
|
|
|
public void onCreate(Bundle savedInstanceState) {
|
|
|
|
|
super.onCreate(savedInstanceState);
|
|
|
|
|
|
2013-11-28 09:01:45 -04:30
|
|
|
uiHandler = new Handler();
|
|
|
|
|
uiContext = this;
|
2013-11-26 17:58:26 -04:30
|
|
|
wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);
|
|
|
|
|
|
2013-11-21 08:10:12 -04:30
|
|
|
AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
|
|
|
|
|
cfg.useGL20 = false;
|
|
|
|
|
|
2013-11-28 09:01:45 -04:30
|
|
|
initialize(new NxtARCore(this), cfg);
|
2013-11-26 17:58:26 -04:30
|
|
|
}
|
|
|
|
|
|
2013-11-28 09:01:45 -04:30
|
|
|
////////////////////////////////
|
|
|
|
|
// Toaster interface methods. //
|
|
|
|
|
////////////////////////////////
|
|
|
|
|
@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();
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////
|
|
|
|
|
// MulticastEnabler interface methods. //
|
|
|
|
|
/////////////////////////////////////////
|
2013-11-26 17:58:26 -04:30
|
|
|
@Override
|
|
|
|
|
public void enableMulticast(){
|
2013-11-28 09:01:45 -04:30
|
|
|
Gdx.app.debug(TAG, CLASS_NAME + ".enableMulticast() :: Requesting multicast lock.");
|
2013-11-26 17:58:26 -04:30
|
|
|
multicastLock = wifiManager.createMulticastLock(TAG);
|
|
|
|
|
multicastLock.setReferenceCounted(true);
|
|
|
|
|
multicastLock.acquire();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public void disableMulticast() {
|
2013-11-27 08:11:37 -04:30
|
|
|
Gdx.app.debug(TAG, CLASS_NAME + ".disableMulticast() :: Releasing multicast lock.");
|
2013-11-26 17:58:26 -04:30
|
|
|
if(multicastLock != null){
|
|
|
|
|
multicastLock.release();
|
|
|
|
|
multicastLock = null;
|
|
|
|
|
}
|
2013-11-21 08:10:12 -04:30
|
|
|
}
|
|
|
|
|
}
|