package com.jdroid.android.google;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.support.v4.app.FragmentActivity;
import com.jdroid.android.R;
import com.jdroid.android.application.AbstractApplication;
import com.jdroid.android.dialog.AlertDialogFragment;
import com.jdroid.android.intent.IntentUtils;
import com.jdroid.android.utils.AppUtils;
public class GooglePlayUtils {
private static final String GOOGLE_PLAY_DETAILS_LINK = "http://play.google.com/store/apps/details?id=";
public static class UpdateAppDialogFragment extends AlertDialogFragment {
@Override
protected void onPositiveClick() {
FragmentActivity fragmentActivity = (FragmentActivity)AbstractApplication.get().getCurrentActivity();
launchAppDetails(fragmentActivity, AppUtils.getReleaseApplicationId());
fragmentActivity.finish();
}
}
public static class DownloadAppDialogFragment extends AlertDialogFragment {
private static final String PACKAGE_NAME = "PACKAGE_NAME";
@Override
protected void onPositiveClick() {
FragmentActivity fragmentActivity = (FragmentActivity)AbstractApplication.get().getCurrentActivity();
launchAppDetails(fragmentActivity, getArguments().getString(PACKAGE_NAME));
}
public void setPackageName(String packageName) {
addParameter(PACKAGE_NAME, packageName);
}
}
public static void showUpdateDialog() {
FragmentActivity fragmentActivity = (FragmentActivity)AbstractApplication.get().getCurrentActivity();
String title = fragmentActivity.getString(R.string.jdroid_updateAppTitle);
String message = fragmentActivity.getString(R.string.jdroid_updateAppMessage);
AlertDialogFragment.show(fragmentActivity, new UpdateAppDialogFragment(), title, message, null, null,
fragmentActivity.getString(R.string.jdroid_ok), false);
}
public static void showDownloadDialog(int appNameResId, String packageName) {
FragmentActivity fragmentActivity = (FragmentActivity)AbstractApplication.get().getCurrentActivity();
String appName = fragmentActivity.getString(appNameResId);
String title = fragmentActivity.getString(R.string.jdroid_installAppTitle, appName);
String message = fragmentActivity.getString(R.string.jdroid_installAppMessage, appName);
DownloadAppDialogFragment fragment = new DownloadAppDialogFragment();
fragment.setPackageName(packageName);
AlertDialogFragment.show(fragmentActivity, fragment, title, message, fragmentActivity.getString(R.string.jdroid_no),
null, fragmentActivity.getString(R.string.jdroid_yes), true);
}
public static void launchAppDetails(Context context) {
launchAppDetails(context, AppUtils.getReleaseApplicationId());
}
public static void launchAppDetails(Context context, String packageName) {
Uri uri = Uri.parse("market://details?id=" + packageName);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
if (IntentUtils.isIntentAvailable(intent)) {
context.startActivity(intent);
} else {
intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(getGooglePlayLink(packageName)));
context.startActivity(intent);
}
}
public static String getGooglePlayLink(String packageName, String referrer) {
StringBuilder builder = new StringBuilder();
builder.append(GOOGLE_PLAY_DETAILS_LINK);
builder.append(packageName);
if (referrer != null) {
builder.append("&referrer=");
builder.append(referrer);
}
return builder.toString();
}
public static String getGooglePlayLink(String packageName) {
return getGooglePlayLink(packageName, null);
}
public static String getGooglePlayLink() {
return getGooglePlayLink(AppUtils.getReleaseApplicationId());
}
}