package org.teusink.plugins;
import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.PluginResult;
import org.json.JSONArray;
import org.json.JSONException;
import android.util.Log;
import android.widget.Toast;
public class Toasts extends CordovaPlugin {
public static final String LOG_PROV = "jpHoloLog";
public static final String LOG_NAME = "Toasts Plugin: ";
private Toast toast = null;
@Override
public boolean execute(final String action, final JSONArray args,
final CallbackContext callbackContext) {
cordova.getThreadPool().execute(new Runnable() {
@Override
public void run() {
if (action.equals("cancel")) {
cancelToast();
} else {
try {
final String message = args.getString(0);
if (action.equals("show_long")) {
showToast(message, Toast.LENGTH_LONG);
} else {
showToast(message, Toast.LENGTH_SHORT);
}
} catch (final JSONException e) {
Log.e(LOG_PROV, LOG_NAME + "Error: "
+ PluginResult.Status.JSON_EXCEPTION);
e.printStackTrace();
callbackContext.sendPluginResult(new PluginResult(
PluginResult.Status.JSON_EXCEPTION));
}
}
callbackContext.sendPluginResult(new PluginResult(
PluginResult.Status.OK));
}
});
return true;
}
private void cancelToast() {
cordova.getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
if (toast != null) {
toast.cancel();
}
}
});
}
private void showToast(final String message, final int length) {
cordova.getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
toast = Toast.makeText(cordova.getActivity(), message, length);
toast.show();
}
});
}
}