package com.openfeint.internal.ui;
import java.util.List;
import java.util.Map;
import android.content.Intent;
import android.graphics.Bitmap;
import com.openfeint.api.OpenFeint;
import com.openfeint.internal.ImagePicker;
import com.openfeint.internal.OpenFeintInternal;
import com.openfeint.internal.Util;
import com.openfeint.internal.request.IRawRequestDelegate;
public class IntroFlow extends WebNav {
Bitmap cachedImage;
@Override
protected String initialContentPath() {
String contentName = getIntent().getStringExtra("content_name");
if (contentName != null) {
return "intro/"+ contentName;
} else {
return "intro/index";
}
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent returnedIntent) {
if (ImagePicker.isImagePickerActivityResult(requestCode)) {
cachedImage = ImagePicker.onImagePickerActivityResult(this, resultCode, 152, returnedIntent);
}
}
@Override
protected ActionHandler createActionHandler(WebNav webNav) {
return new IntroFlowActionHandler(webNav);
}
private class IntroFlowActionHandler extends ActionHandler {
public IntroFlowActionHandler(WebNav webNav) {
super(webNav);
}
@Override
protected void populateActionList(List<String> actionList) {
super.populateActionList(actionList);
actionList.add("createUser");
actionList.add("loginUser");
actionList.add("cacheImage");
actionList.add("uploadImage");
actionList.add("clearImage");
actionList.add("decline");
actionList.add("getEmail");
}
@SuppressWarnings("unused")
final public void createUser(final Map<String,String> options) {
OpenFeintInternal.getInstance().createUser(
options.get("name"),
options.get("email"),
options.get("password"),
options.get("password_confirmation"),
new IRawRequestDelegate() {
public void onResponse(int status, String response) {
String js = String.format("%s('%d', %s)", options.get("callback"), status, response.trim());
mWebNav.executeJavascript(js);
}
}
);
}
@SuppressWarnings("unused")
final public void loginUser(final Map<String,String> options) {
OpenFeintInternal.getInstance().loginUser(
options.get("email"),
options.get("password"),
options.get("user_id"),
new IRawRequestDelegate() {
public void onResponse(int status, String response) {
String js = String.format("%s('%d', %s)", options.get("callback"), status, response.trim());
mWebNav.executeJavascript(js);
}
}
);
}
@SuppressWarnings("unused")
final public void cacheImage(final Map<String,String> options) {
ImagePicker.show(IntroFlow.this);
}
@SuppressWarnings("unused")
final public void uploadImage(final Map<String,String> options) {
//get the image that was stored and upload it
if(null != cachedImage) {
String apiUrl = "/xp/users/"+ OpenFeintInternal.getInstance().getCurrentUser().resourceID() +"/profile_picture";
ImagePicker.compressAndUpload(cachedImage, apiUrl, null);
}
}
@SuppressWarnings("unused")
final public void clearImage(final Map<String,String> options) {
cachedImage = null;
}
@SuppressWarnings("unused")
public void decline(final Map<String, String> options) {
OpenFeint.userDeclinedFeint();
finish();
}
@SuppressWarnings("unused")
public void getEmail(final Map<String, String> options) {
if (Util.isEclairOrLater()) {
/*String account = Util5.getAccountNameEclair(IntroFlow.this);
if (account != null) {
executeJavascript(String.format("%s('%s');", options.get("callback"), account));
}*/
}
}
};
}