package kwik.util;
import java.lang.reflect.Field;
import kwik.app.R;
import kwik.services.KwikAPIService;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.ResultReceiver;
import android.util.Log;
import android.widget.Toast;
public class KwikResultReceiver extends ResultReceiver {
private Activity owner;
public KwikResultReceiver(Handler handler, Activity act) {
super(handler);
owner = act;
}
@Override
protected void onReceiveResult(int resultCode, Bundle resultData) {
super.onReceiveResult(resultCode, resultData);
if (resultCode == KwikAPIService.API_BAD_RESPONSE_ERROR) {
kwik.remote.api.Error e = (kwik.remote.api.Error) resultData.getSerializable("return");
Log.d("ErrorReceiver", "ERROR CODE: " + Integer.toString(e.code));
Log.d("ErrorReceiver", "ERROR: " + e.message);
try {
Field f = R.string.class.getField("error_" + e.code);
int message = (Integer) f.get(null);
Toast.makeText(owner, owner.getResources().getString(message), Toast.LENGTH_SHORT).show();
} catch (Exception e1) {
Toast.makeText(owner, owner.getResources().getString(R.string.API_bad_response), Toast.LENGTH_SHORT).show();
}
}else if (resultCode == KwikAPIService.STATUS_ERROR) {
String s = (String) resultData.getSerializable("return");
Log.d("ErrorReceiver", s);
Toast.makeText(owner, owner.getResources().getString(R.string.HTML_error), Toast.LENGTH_SHORT).show();
owner.onBackPressed();
}else if (resultCode == KwikAPIService.STATUS_ILLEGAL_ARGUMENT) {
String s = (String) resultData.getSerializable("return");
Log.d("ErrorReceiver", s);
Toast.makeText(owner, owner.getResources().getString(R.string.XML_parser_error), Toast.LENGTH_SHORT).show();
}
}
}