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);
}
}