package timeline.lizimumu.com.t.util;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
public class AlarmUtil {
public static void setAlarm(Context context) {
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
if (alarmManager != null) {
long start = System.currentTimeMillis();
Intent in = new Intent("ALARM_RECEIVER");
PendingIntent pi = PendingIntent.getBroadcast(context, 0, in, PendingIntent.FLAG_CANCEL_CURRENT);
alarmManager.set(AlarmManager.RTC_WAKEUP, start + 86400 * 1000, pi);
}
}
}
package timeline.lizimumu.com.t.util;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
import android.util.Log;
import java.util.Calendar;
import java.util.Locale;
import timeline.lizimumu.com.t.R;
public final class AppUtil {
private static final long A_DAY = 86400 * 1000;
public static String parsePackageName(PackageManager pckManager, String data) {
ApplicationInfo applicationInformation;
try {
applicationInformation = pckManager.getApplicationInfo(data, PackageManager.GET_META_DATA);
} catch (PackageManager.NameNotFoundException e) {
applicationInformation = null;
}
return (String) (applicationInformation != null ? pckManager.getApplicationLabel(applicationInformation) : data);
}
public static Drawable getPackageIcon(Context context, String packageName) {
PackageManager manager = context.getPackageManager();
try {
return manager.getApplicationIcon(packageName);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return context.getResources().getDrawable(R.drawable.ic_default_app);
}
public static String formatMilliSeconds(long milliSeconds) {
long second = milliSeconds / 1000L;
if (second < 60) {
return String.format("%ss", second);
} else if (second < 60 * 60) {
return String.format("%sm %ss", second / 60, second % 60);
} else {
return String.format("%sh %sm %ss", second / 3600, second % (3600) / 60, second % (3600) % 60);
}
}
public static boolean isSystemApp(PackageManager manager, String packageName) {
boolean isSystemApp = false;
try {
ApplicationInfo applicationInfo = manager.getApplicationInfo(packageName, 0);
if (applicationInfo != null) {
isSystemApp = (applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0
|| (applicationInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0;
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return isSystemApp;
}
public static boolean isInstalled(PackageManager packageManager, String packageName) {
ApplicationInfo applicationInfo = null;
try {
applicationInfo = packageManager.getApplicationInfo(packageName, 0);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return applicationInfo != null;
}
public static boolean openable(PackageManager packageManager, String packageName) {
return packageManager.getLaunchIntentForPackage(packageName) != null;
}
public static int getAppUid(PackageManager packageManager, String packageName) {
ApplicationInfo applicationInfo;
try {
applicationInfo = packageManager.getApplicationInfo(packageName, 0);
return applicationInfo.uid;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return 0;
}
public static long[] getTimeRange(SortEnum sort) {
long[] range;
switch (sort) {
case TODAY:
range = getTodayRange();
break;
case YESTERDAY:
range = getYesterday();
break;
case THIS_WEEK:
range = getThisWeek();
break;
case THIS_MONTH:
range = getThisMonth();
break;
case THIS_YEAR:
range = getThisYear();
break;
default:
range = getTodayRange();
}
Log.d("**********", range[0] + " ~ " + range[1]);
return range;
}
private static long[] getTodayRange() {
long timeNow = System.currentTimeMillis();
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
return new long[]{cal.getTimeInMillis(), timeNow};
}
public static long getYesterdayTimestamp() {
long timeNow = System.currentTimeMillis();
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(timeNow - A_DAY);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
return cal.getTimeInMillis();
}
private static long[] getYesterday() {
long timeNow = System.currentTimeMillis();
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(timeNow - A_DAY);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
long start = cal.getTimeInMillis();
long end = start + A_DAY > timeNow ? timeNow : start + A_DAY;
return new long[]{start, end};
}
private static long[] getThisWeek() {
long timeNow = System.currentTimeMillis();
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
long start = cal.getTimeInMillis();
long end = start + A_DAY > timeNow ? timeNow : start + A_DAY;
return new long[]{start, end};
}
private static long[] getThisMonth() {
long timeNow = System.currentTimeMillis();
Calendar cal = Calendar.getInstance();
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
return new long[]{cal.getTimeInMillis(), timeNow};
}
private static long[] getThisYear() {
long timeNow = System.currentTimeMillis();
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, Calendar.getInstance().get(Calendar.YEAR));
cal.set(Calendar.MONTH, Calendar.JANUARY);
cal.set(Calendar.DAY_OF_MONTH, 1);
cal.set(Calendar.HOUR_OF_DAY, 0);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
return new long[]{cal.getTimeInMillis(), timeNow};
}
public static String humanReadableByteCount(long bytes) {
int unit = 1024;
if (bytes < unit) return bytes + " B";
int exp = (int) (Math.log(bytes) / Math.log(unit));
String pre = "KMGTPE".charAt(exp - 1) + "";
return String.format(Locale.getDefault(), "%.1f %sB", bytes / Math.pow(unit, exp), pre);
}
}