package com.github.javiersantos.appupdater;
import android.app.Activity;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.DialogInterface;
import android.media.RingtoneManager;
import android.support.design.widget.Snackbar;
import android.support.v4.app.NotificationCompat;
import android.support.v7.app.AlertDialog;
import android.view.View;
import com.github.javiersantos.appupdater.enums.UpdateFrom;
import java.net.URL;
class UtilsDisplay {
static AlertDialog showUpdateAvailableDialog(final Context context, String title, String content, String btnNegative, String btnPositive, String btnNeutral, final DialogInterface.OnClickListener updateClickListener, final DialogInterface.OnClickListener dismissClickListener, final DialogInterface.OnClickListener disableClickListener) {
return new AlertDialog.Builder(context)
.setTitle(title)
.setMessage(content)
.setPositiveButton(btnPositive, updateClickListener)
.setNegativeButton(btnNegative, dismissClickListener)
.setNeutralButton(btnNeutral, disableClickListener).create();
}
static AlertDialog showUpdateNotAvailableDialog(final Context context, String title, String content) {
return new AlertDialog.Builder(context)
.setTitle(title)
.setMessage(content)
.setPositiveButton(context.getResources().getString(android.R.string.ok), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {}
})
.create();
}
static Snackbar showUpdateAvailableSnackbar(final Context context, String content, Boolean indefinite, final UpdateFrom updateFrom, final URL apk) {
Activity activity = (Activity) context;
int snackbarTime = indefinite ? Snackbar.LENGTH_INDEFINITE : Snackbar.LENGTH_LONG;
/*if (indefinite) {
snackbarTime = Snackbar.LENGTH_INDEFINITE;
} else {
snackbarTime = Snackbar.LENGTH_LONG;
}*/
Snackbar snackbar = Snackbar.make(activity.findViewById(android.R.id.content), content, snackbarTime);
snackbar.setAction(context.getResources().getString(R.string.appupdater_btn_update), new View.OnClickListener() {
@Override
public void onClick(View view) {
UtilsLibrary.goToUpdate(context, updateFrom, apk);
}
});
return snackbar;
}
static Snackbar showUpdateNotAvailableSnackbar(final Context context, String content, Boolean indefinite) {
Activity activity = (Activity) context;
int snackbarTime = indefinite ? Snackbar.LENGTH_INDEFINITE : Snackbar.LENGTH_LONG;
/*if (indefinite) {
snackbarTime = Snackbar.LENGTH_INDEFINITE;
} else {
snackbarTime = Snackbar.LENGTH_LONG;
}*/
return Snackbar.make(activity.findViewById(android.R.id.content), content, snackbarTime);
}
static void showUpdateAvailableNotification(Context context, String title, String content, UpdateFrom updateFrom, URL apk, int smallIconResourceId) {
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, context.getPackageManager().getLaunchIntentForPackage(UtilsLibrary.getAppPackageName(context)), PendingIntent.FLAG_CANCEL_CURRENT);
PendingIntent pendingIntentUpdate = PendingIntent.getActivity(context, 0, UtilsLibrary.intentToUpdate(context, updateFrom, apk), PendingIntent.FLAG_CANCEL_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
.setContentIntent(contentIntent)
.setContentTitle(title)
.setContentText(content)
.setStyle(new NotificationCompat.BigTextStyle().bigText(content))
.setSmallIcon(smallIconResourceId)
.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
.setOnlyAlertOnce(true)
.setAutoCancel(true)
.addAction(R.drawable.ic_system_update_white_24dp, context.getResources().getString(R.string.appupdater_btn_update), pendingIntentUpdate);
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, builder.build());
}
static void showUpdateNotAvailableNotification(Context context, String title, String content, int smallIconResourceId) {
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, context.getPackageManager().getLaunchIntentForPackage(UtilsLibrary.getAppPackageName(context)), PendingIntent.FLAG_CANCEL_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
.setContentIntent(contentIntent)
.setContentTitle(title)
.setContentText(content)
.setStyle(new NotificationCompat.BigTextStyle().bigText(content))
.setSmallIcon(smallIconResourceId)
.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION))
.setOnlyAlertOnce(true)
.setAutoCancel(true);
NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0, builder.build());
}
}