package biz.bokhorst.xprivacy;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.support.v4.app.NotificationCompat;
public class BootReceiver extends BroadcastReceiver {
@Override
public void onReceive(final Context context, Intent bootIntent) {
// Start boot update
Intent changeIntent = new Intent();
changeIntent.setClass(context, UpdateService.class);
changeIntent.putExtra(UpdateService.cAction, UpdateService.cActionBoot);
context.startService(changeIntent);
NotificationManager notificationManager = (NotificationManager) context
.getSystemService(Context.NOTIFICATION_SERVICE);
// Check if Xposed enabled
if (Util.isXposedEnabled() && PrivacyService.checkClient())
try {
if (PrivacyService.getClient().databaseCorrupt()) {
// Build notification
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context);
notificationBuilder.setSmallIcon(R.drawable.ic_launcher);
notificationBuilder.setContentTitle(context.getString(R.string.app_name));
notificationBuilder.setContentText(context.getString(R.string.msg_corrupt));
notificationBuilder.setWhen(System.currentTimeMillis());
notificationBuilder.setAutoCancel(true);
Notification notification = notificationBuilder.build();
// Display notification
notificationManager.notify(Util.NOTIFY_CORRUPT, notification);
} else
context.sendBroadcast(new Intent("biz.bokhorst.xprivacy.action.ACTIVE"));
} catch (Throwable ex) {
Util.bug(null, ex);
}
else {
// Create Xposed installer intent
// @formatter:off
Intent xInstallerIntent = new Intent("de.robv.android.xposed.installer.OPEN_SECTION")
.setPackage("de.robv.android.xposed.installer")
.putExtra("section", "modules")
.putExtra("module", context.getPackageName())
.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// @formatter:on
PendingIntent pi = (xInstallerIntent == null ? null : PendingIntent.getActivity(context, 0,
xInstallerIntent, PendingIntent.FLAG_UPDATE_CURRENT));
// Build notification
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(context);
notificationBuilder.setSmallIcon(R.drawable.ic_launcher);
notificationBuilder.setContentTitle(context.getString(R.string.app_name));
notificationBuilder.setContentText(context.getString(R.string.app_notenabled));
notificationBuilder.setWhen(System.currentTimeMillis());
notificationBuilder.setAutoCancel(true);
if (pi != null)
notificationBuilder.setContentIntent(pi);
Notification notification = notificationBuilder.build();
// Display notification
notificationManager.notify(Util.NOTIFY_NOTXPOSED, notification);
}
}
}