package com.mopub.mobileads;
import java.util.Map;
abstract class MraidCommand {
protected Map<String, String> mParams;
protected MraidView mView;
MraidCommand(Map<String, String> params, MraidView view) {
mParams = params;
mView = view;
}
abstract void execute();
protected int getIntFromParamsForKey(String key) {
String s = mParams.get(key);
if (s == null) return -1;
else {
try {
return Integer.parseInt(s, 10);
} catch (NumberFormatException e) {
return -1;
}
}
}
protected String getStringFromParamsForKey(String key) {
return mParams.get(key);
}
protected float getFloatFromParamsForKey(String key) {
String s = mParams.get(key);
if (s == null) return 0.0f;
else {
try {
return Float.parseFloat(key);
} catch (NumberFormatException e) {
return 0.0f;
}
}
}
protected boolean getBooleanFromParamsForKey(String key) {
return "true".equals(mParams.get(key));
}
}
class MraidCommandClose extends MraidCommand {
MraidCommandClose(Map<String, String> params, MraidView view) {
super(params, view);
}
void execute() {
mView.getDisplayController().close();
}
}
class MraidCommandExpand extends MraidCommand {
MraidCommandExpand(Map<String, String> params, MraidView view) {
super(params, view);
}
void execute() {
int width = getIntFromParamsForKey("w");
int height = getIntFromParamsForKey("h");
String url = getStringFromParamsForKey("url");
boolean shouldUseCustomClose = getBooleanFromParamsForKey("shouldUseCustomClose");
boolean shouldLockOrientation = getBooleanFromParamsForKey("lockOrientation");
if (width <= 0) width = mView.getDisplayController().mScreenWidth;
if (height <= 0) height = mView.getDisplayController().mScreenHeight;
mView.getDisplayController().expand(url, width, height, shouldUseCustomClose,
shouldLockOrientation);
}
}
class MraidCommandUseCustomClose extends MraidCommand {
MraidCommandUseCustomClose(Map<String, String> params, MraidView view) {
super(params, view);
}
void execute() {
boolean shouldUseCustomClose = getBooleanFromParamsForKey("shouldUseCustomClose");
mView.getDisplayController().useCustomClose(shouldUseCustomClose);
}
}
class MraidCommandOpen extends MraidCommand {
MraidCommandOpen(Map<String, String> params, MraidView view) {
super(params, view);
}
void execute() {
String url = getStringFromParamsForKey("url");
mView.getBrowserController().open(url);
}
}