package com.eveningoutpost.dexdrip.utils;
import android.annotation.TargetApi;
import android.app.Notification;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.net.Uri;
import android.os.Build;
import android.support.v4.app.NotificationCompat;
/**
* Helper class to show a share notificaiton.
*/
public class ShareNotification {
public static void viewOrShare(String mime, Uri uri, NotificationCompat.Builder builder, Context context) {
final Intent viewFileIntent = new Intent(Intent.ACTION_VIEW);
viewFileIntent.setDataAndType(uri, mime);
ResolveInfo matches = context.getPackageManager().resolveActivity(viewFileIntent, PackageManager.MATCH_DEFAULT_ONLY);
if (matches != null) {
final PendingIntent resultPendingIntent = PendingIntent.getActivity(context, 0, viewFileIntent, PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(resultPendingIntent);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
addShare(builder, mime, uri, context);
}
} else {
final Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
shareIntent.setType(mime);
final PendingIntent sharePendingIntent = PendingIntent.getActivity(context, 0, shareIntent, PendingIntent.FLAG_UPDATE_CURRENT);
builder.setContentIntent(sharePendingIntent);
}
}
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
private static void addShare(NotificationCompat.Builder notification, String mime, Uri uri, Context context) {
final Intent shareIntent = new Intent();
shareIntent.setAction(Intent.ACTION_SEND);
shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
shareIntent.setType(mime);
final PendingIntent sharePendingIntent = PendingIntent.getActivity(context, 0, shareIntent, PendingIntent.FLAG_UPDATE_CURRENT);
notification.addAction(android.R.drawable.ic_menu_share, "Share", sharePendingIntent);
}
}