Android Open Source - jpHolo Appstore






From Project

Back to project page jpHolo.

License

The source code is released under:

GNU Lesser General Public License

If you think the Android project jpHolo listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package org.teusink.plugins;
//from w w  w .  j a v  a  2 s .  c o  m
import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.PluginResult;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.util.Log;

public class Appstore extends CordovaPlugin {

  public static final String LOG_PROV = "jpHoloLog";
  public static final String LOG_NAME = "Appstore Plugin: ";

  @Override
  public boolean execute(final String action, final JSONArray args,
      final CallbackContext callbackContext) {
    cordova.getThreadPool().execute(new Runnable() {
      @Override
      public void run() {
        try {
          if (action.equals("show")) {
            final JSONObject jo = args.getJSONObject(0);
            final String appstoreLink = jo.getString("link");
            final String appstoreType = jo.getString("type");
            final Intent intent = new Intent(Intent.ACTION_VIEW);
            if (appInstalledOrNot("com.amazon.venezia") == true) {
              if (appstoreType.equals("app")) {
                // org.teusink.droidpapers
                intent.setData(Uri
                    .parse("amzn://apps/android?p="
                        + appstoreLink));
              } else if (appstoreType.equals("pub")) {
                // Teusink.org
                intent.setData(Uri
                    .parse("amzn://apps/android?s="
                        + appstoreLink));
              }
            } else if (appInstalledOrNot("com.android.vending") == true) {
              if (appstoreType.equals("app")) {
                // org.teusink.droidpapers
                intent.setData(Uri.parse("market://details?id="
                    + appstoreLink));
              } else if (appstoreType.equals("pub")) {
                // Teusink.org
                intent.setData(Uri
                    .parse("market://search?q=pub:"
                        + appstoreLink));
              }
            } else {
              if (appstoreType.equals("app")) {
                // org.teusink.droidpapers
                // intent.setData(Uri.parse("https://play.google.com/store/apps/details?id="
                // + appstoreLink));
                intent.setData(Uri
                    .parse("http://droidpapers.teusink.org/about.php"));
              } else if (appstoreType.equals("pub")) {
                // Teusink.org
                // intent.setData(Uri.parse("https://play.google.com/store/apps/developer?id="
                // + appstoreLink));
                intent.setData(Uri
                    .parse("http://droidpapers.teusink.org/about.php"));
              }
            }
            try {
              cordova.getActivity().startActivityForResult(
                  intent, 0);
            } catch (final ActivityNotFoundException e) {
              Log.e(LOG_PROV, LOG_NAME + "Error: "
                  + PluginResult.Status.ERROR);
              e.printStackTrace();
              callbackContext.sendPluginResult(new PluginResult(
                  PluginResult.Status.ERROR));
            }
            callbackContext.sendPluginResult(new PluginResult(
                PluginResult.Status.OK));
          } else if (action.equals("check")) {
            String appstore = "unknown";
            if (appInstalledOrNot("com.amazon.venezia")) {
              appstore = "amazon";
            } else if (appInstalledOrNot("com.android.vending")) {
              appstore = "google";
            }
            callbackContext.sendPluginResult(new PluginResult(
                PluginResult.Status.OK, appstore));
          } else {
            Log.e(LOG_PROV, LOG_NAME + "Error: "
                + PluginResult.Status.INVALID_ACTION);
            callbackContext.sendPluginResult(new PluginResult(
                PluginResult.Status.INVALID_ACTION));
          }
        } 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));
        }
      }
    });
    return true;
  }

  private boolean appInstalledOrNot(final String uri) {
    final PackageManager manager = cordova.getActivity()
        .getPackageManager();
    boolean app_installed = false;
    try {
      manager.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
      app_installed = true;
    } catch (final PackageManager.NameNotFoundException e) {
      app_installed = false;
    }
    return app_installed;
  }
}




Java Source Code List

org.apache.cordova.batterystatus.BatteryListener.java
org.apache.cordova.camera.CameraLauncher.java
org.apache.cordova.camera.ExifHelper.java
org.apache.cordova.camera.FileHelper.java
org.apache.cordova.contacts.ContactAccessorSdk5.java
org.apache.cordova.contacts.ContactAccessor.java
org.apache.cordova.contacts.ContactInfoDTO.java
org.apache.cordova.contacts.ContactManager.java
org.apache.cordova.device.Device.java
org.apache.cordova.devicemotion.AccelListener.java
org.apache.cordova.deviceorientation.CompassListener.java
org.apache.cordova.dialogs.Notification.java
org.apache.cordova.file.ContentFilesystem.java
org.apache.cordova.file.DirectoryManager.java
org.apache.cordova.file.EncodingException.java
org.apache.cordova.file.FileExistsException.java
org.apache.cordova.file.FileHelper.java
org.apache.cordova.file.FileUtils.java
org.apache.cordova.file.Filesystem.java
org.apache.cordova.file.InvalidModificationException.java
org.apache.cordova.file.LocalFilesystemURL.java
org.apache.cordova.file.LocalFilesystem.java
org.apache.cordova.file.NoModificationAllowedException.java
org.apache.cordova.file.TypeMismatchException.java
org.apache.cordova.filetransfer.FileProgressResult.java
org.apache.cordova.filetransfer.FileTransfer.java
org.apache.cordova.filetransfer.FileUploadResult.java
org.apache.cordova.globalization.GlobalizationError.java
org.apache.cordova.globalization.Globalization.java
org.apache.cordova.inappbrowser.InAppBrowserDialog.java
org.apache.cordova.inappbrowser.InAppBrowser.java
org.apache.cordova.inappbrowser.InAppChromeClient.java
org.apache.cordova.media.AudioHandler.java
org.apache.cordova.media.AudioPlayer.java
org.apache.cordova.media.FileHelper.java
org.apache.cordova.mediacapture.Capture.java
org.apache.cordova.mediacapture.FileHelper.java
org.apache.cordova.networkinformation.NetworkManager.java
org.apache.cordova.splashscreen.SplashScreen.java
org.apache.cordova.statusbar.StatusBar.java
org.apache.cordova.vibration.Vibration.java
org.teusink.jpholo.AndroidService.java
org.teusink.jpholo.StartActivityUri.java
org.teusink.jpholo.StartActivity.java
org.teusink.plugins.AndroidPreferences.java
org.teusink.plugins.Appstore.java
org.teusink.plugins.PackageVersion.java
org.teusink.plugins.PreferredScreenSize.java
org.teusink.plugins.Share.java
org.teusink.plugins.Toasts.java