Refactored the implementation of the Toaster interface.

This commit is contained in:
2013-11-28 09:01:45 -04:30
parent 1388935bb7
commit 225560b863
2 changed files with 36 additions and 47 deletions

View File

@@ -1,40 +1,70 @@
package ve.ucv.ciens.ccg.nxtar; package ve.ucv.ciens.ccg.nxtar;
import ve.ucv.ciens.ccg.nxtar.interfaces.MulticastEnabler; import ve.ucv.ciens.ccg.nxtar.interfaces.MulticastEnabler;
import ve.ucv.ciens.ccg.nxtar.utils.AndroidToaster; import ve.ucv.ciens.ccg.nxtar.interfaces.Toaster;
import android.content.Context; import android.content.Context;
import android.net.wifi.WifiManager; import android.net.wifi.WifiManager;
import android.net.wifi.WifiManager.MulticastLock; import android.net.wifi.WifiManager.MulticastLock;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler;
import android.widget.Toast;
import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.backends.android.AndroidApplication; import com.badlogic.gdx.backends.android.AndroidApplication;
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration; import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;
public class MainActivity extends AndroidApplication implements MulticastEnabler{ public class MainActivity extends AndroidApplication implements Toaster, MulticastEnabler{
private static final String TAG = "NXTAR_ANDROID_MAIN"; private static final String TAG = "NXTAR_ANDROID_MAIN";
private static final String CLASS_NAME = MainActivity.class.getSimpleName(); private static final String CLASS_NAME = MainActivity.class.getSimpleName();
private AndroidToaster toaster;
private WifiManager wifiManager; private WifiManager wifiManager;
private MulticastLock multicastLock; private MulticastLock multicastLock;
private Handler uiHandler;
private Context uiContext;
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
uiHandler = new Handler();
uiContext = this;
wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE); wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE);
toaster = new AndroidToaster(this);
AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration(); AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
cfg.useGL20 = false; cfg.useGL20 = false;
initialize(new Main(toaster, this), cfg); initialize(new NxtARCore(this), cfg);
}
////////////////////////////////
// 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. //
/////////////////////////////////////////
@Override @Override
public void enableMulticast(){ public void enableMulticast(){
Gdx.app.debug(TAG, CLASS_NAME + ".disableMulticast() :: Requesting multicast lock."); Gdx.app.debug(TAG, CLASS_NAME + ".enableMulticast() :: Requesting multicast lock.");
multicastLock = wifiManager.createMulticastLock(TAG); multicastLock = wifiManager.createMulticastLock(TAG);
multicastLock.setReferenceCounted(true); multicastLock.setReferenceCounted(true);
multicastLock.acquire(); multicastLock.acquire();

View File

@@ -1,41 +0,0 @@
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();
}
});
}
}