Android Open Source - appboy-android-sdk Google Play App Details Action






From Project

Back to project page appboy-android-sdk.

License

The source code is released under:

Copyright (c) 2014 Appboy, Inc. All rights reserved. * Use of source code or binaries contained within Appboy's Android SDK is permitted only to enable use of the Appboy platform by customers of Appb...

If you think the Android project appboy-android-sdk 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 com.appboy.ui.actions;
/*from   ww  w. ja va  2 s  .  c o  m*/
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.util.Log;

import com.appboy.Constants;
import com.appboy.enums.AppStore;
import com.appboy.ui.AppboyWebViewActivity;

/**
 * Action that opens the Google Play market to a specific app in either the Google Play store app
 * or via the AppboyWebViewActivity class. If it is opened in the AppboyWebViewActivity class, the
 * time spent viewing the app in the web view counts toward the session duration.
 */
public final class GooglePlayAppDetailsAction implements IAction {
  private static final String TAG = String.format("%s.%s", Constants.APPBOY_LOG_TAG_PREFIX, GooglePlayAppDetailsAction.class.getName());
  private static final String PLAY_STORE_APP_BASE = "market://details?id=";
  private static final String PLAY_STORE_WEB_BASE = "https://play.google.com/store/apps/details?id=";
  private static final String AMAZON_STORE_APP_BASE = "amzn://apps/android?asin=";
  private static final String AMAZON_STORE_WEB_BASE = "http://www.amazon.com/gp/mas/dl/android?asin=";

  private final String mPackageName;
  private boolean mUseAppboyWebView;
  private final AppStore mAppStore;
  private String mKindleId;

  public GooglePlayAppDetailsAction(String packageName, boolean useAppboyWebView, AppStore appStore) {
    mPackageName = packageName;
    mUseAppboyWebView = useAppboyWebView;
    mAppStore = appStore;
  }

  public GooglePlayAppDetailsAction(String packageName, boolean useAppboyWebView, AppStore appStore, String kindleId) {
    mPackageName = packageName;
    mUseAppboyWebView = useAppboyWebView;
    mAppStore = appStore;
    mKindleId = kindleId;
  }

  @Override
  public void execute(Context context) {

    if (mAppStore != AppStore.KINDLE_STORE) {
      try {
        context.getPackageManager().getPackageInfo(("com.google.android.gsf"), 0);
      } catch (PackageManager.NameNotFoundException e) {
        Log.i(TAG, "Google Play Store not found, launching Play Store with WebView");
        mUseAppboyWebView = true;
      } catch (Exception e) {
        Log.e(TAG, String.format("Unexpected exception while checking for %s.", "com.google.android.gsf"));
        mUseAppboyWebView = true;
      }
    }

    String uriString = "";
    if (mUseAppboyWebView) {
      if (mAppStore == AppStore.KINDLE_STORE) {
        uriString = AMAZON_STORE_WEB_BASE + mKindleId;
      } else {
        uriString = PLAY_STORE_WEB_BASE + mPackageName;
      }
      Uri uri = Uri.parse(uriString);
      Intent intent = new Intent(Intent.ACTION_VIEW, uri, context, AppboyWebViewActivity.class);
      context.startActivity(intent);
    } else {
      if (mAppStore == AppStore.KINDLE_STORE) {
        uriString = AMAZON_STORE_APP_BASE + mKindleId;
      } else {
        uriString = PLAY_STORE_APP_BASE + mPackageName;
      }
      Uri uri = Uri.parse(uriString);
      Intent intent = new Intent(Intent.ACTION_VIEW, uri);
      context.startActivity(intent);
    }
  }
}




Java Source Code List

com.android.vending.billing.utils.Base64DecoderException.java
com.android.vending.billing.utils.Base64.java
com.android.vending.billing.utils.IabException.java
com.android.vending.billing.utils.IabHelper.java
com.android.vending.billing.utils.IabResult.java
com.android.vending.billing.utils.Inventory.java
com.android.vending.billing.utils.Purchase.java
com.android.vending.billing.utils.Security.java
com.android.vending.billing.utils.SkuDetails.java
com.appboy.AppboyAdmReceiver.java
com.appboy.AppboyGcmReceiver.java
com.appboy.AppboyNotificationUtils.java
com.appboy.helloworld.HelloAppboyActivity.java
com.appboy.sample.AppboyBroadcastReceiver.java
com.appboy.sample.AppboyFragmentActivity.java
com.appboy.sample.CustomAppboyNavigator.java
com.appboy.sample.CustomSlideupManagerListener.java
com.appboy.sample.CustomSlideupViewFactory.java
com.appboy.sample.DecisionFragment.java
com.appboy.sample.DroidBoyActivity.java
com.appboy.sample.DroidGirlActivity.java
com.appboy.sample.DroidboyApplication.java
com.appboy.sample.FeedCategoriesFragment.java
com.appboy.sample.FeedFragmentActivity.java
com.appboy.sample.FeedbackFragmentActivity.java
com.appboy.sample.PreferencesActivity.java
com.appboy.sample.SlideupTesterActivity.java
com.appboy.sample.Test.java
com.appboy.sample.UserProfileDialog.java
com.appboy.sample.util.SharedPrefsUtil.java
com.appboy.ui.AppboyFeedFragment.java
com.appboy.ui.AppboyFeedbackFragment.java
com.appboy.ui.AppboyNavigator.java
com.appboy.ui.AppboyWebViewActivity.java
com.appboy.ui.actions.ActionFactory.java
com.appboy.ui.actions.ActivityAction.java
com.appboy.ui.actions.GooglePlayAppDetailsAction.java
com.appboy.ui.actions.IAction.java
com.appboy.ui.actions.ViewAction.java
com.appboy.ui.actions.WebAction.java
com.appboy.ui.activities.AppboyBaseActivity.java
com.appboy.ui.activities.AppboyBaseFragmentActivity.java
com.appboy.ui.activities.AppboyFeedActivity.java
com.appboy.ui.adapters.AppboyListAdapter.java
com.appboy.ui.configuration.XmlUIConfigurationProvider.java
com.appboy.ui.slideups.AppboySlideupManager.java
com.appboy.ui.slideups.ISlideupManagerListener.java
com.appboy.ui.slideups.ISlideupViewFactory.java
com.appboy.ui.slideups.ISlideupViewLifecycleListener.java
com.appboy.ui.slideups.SlideupCloser.java
com.appboy.ui.slideups.SlideupOperation.java
com.appboy.ui.slideups.SlideupViewWrapper.java
com.appboy.ui.slideups.SwipeDismissTouchListener.java
com.appboy.ui.slideups.TouchAwareSwipeDismissTouchListener.java
com.appboy.ui.support.DrawingUtils.java
com.appboy.ui.support.StringUtils.java
com.appboy.ui.support.UriUtils.java
com.appboy.ui.support.ViewUtils.java
com.appboy.ui.widget.BannerImageCardView.java
com.appboy.ui.widget.BaseCardView.java
com.appboy.ui.widget.CaptionedImageCardView.java
com.appboy.ui.widget.CrossPromotionSmallCardView.java
com.appboy.ui.widget.DefaultCardView.java
com.appboy.ui.widget.ShortNewsCardView.java
com.appboy.ui.widget.StarRatingView.java
com.appboy.ui.widget.TextAnnouncementCardView.java