package io.vigour.store; import android.content.Intent; import org.apache.cordova.CallbackContext; import org.apache.cordova.CordovaPlugin; import org.json.JSONArray; public class VigourIoStore extends CordovaPlugin { public static boolean isKindleFire() { // https://developer.amazon.com/appsandservices/solutions/devices/kindle-fire/specifications/01-device-and-feature-specifications return android.os.Build.MANUFACTURER.equals("Amazon") && (android.os.Build.MODEL.equals("Kindle Fire") || android.os.Build.MODEL.startsWith("KF")); } private StoreHandler handler; public VigourIoStore() { super(); handler = isKindleFire() ? new AmazonHandler(this) : new PlayStoreHandler(this); } @Override public boolean execute(String action, JSONArray data, final CallbackContext callbackContext) { // Check if the action has a handler Boolean isValidAction = true; try { if ("getType".equals(action)) { handler.getType(callbackContext); } else if ("init".equals(action) || "setup".equals(action)) { handler.init(data, callbackContext); } else if ("getProductDetails".equals(action) || "fetch".equals(action)) { handler.getProductDetails(data, callbackContext); } else if ("buy".equals(action)) { handler.buy(data, callbackContext); } else if ("subscribe".equals(action)) { handler.subscribe(data, callbackContext); } else if ("getPurchases".equals(action)) { handler.getPurchases(data, callbackContext); } else { isValidAction = false; } } catch (Exception e){ callbackContext.error(e.getMessage()); } return isValidAction; } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { handler.onActivityResult(requestCode, resultCode, data); } @Override public void onDestroy() { super.onDestroy(); handler.onDestroy(); } @Override public void onResume(boolean multitasking) { super.onResume(multitasking); handler.onResume(); } }