private static void updateProgressNotification(Context cxt, int appsCount,
int percent, String appName, boolean showTicker) {
NotificationManager nm = (NotificationManager) cxt.getSystemService(
Context.NOTIFICATION_SERVICE);
if (DEBUG) LogHelper.d(TAG, "update notification: " + appsCount + ", appName: " + appName);
if (appsCount == 0) {
nm.cancel(Constants.STATUSBAR_APK_DOWNLOADER_PROGRESS_ID);
return;
} String status = null;
if (appsCount == 1) {
status = cxt.getString(Res.string.download_notification_downloading_one, appName);
} else {
status = cxt.getString(Res.string.download_notification_downloading_more, appsCount);
} RemoteViews downloadView = new RemoteViews(Constants.REAL_PACKAGE_NAME,
Res.layout.notification_apkdownloader_downloading);
downloadView.setTextViewText(Res.id.title, status);
downloadView.setProgressBar(Res.id.progress_bar, 100, percent, false); Intent intent = new Intent(cxt, DownloadMgrActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pi = PendingIntent.getActivity(cxt, 0, intent,
PendingIntent.FLAG_UPDATE_CURRENT); Notification notification = new Notification();
notification.icon = NotificationUtils.getGroupIconIdByGroupId(Constants.NOTIFICATION_APPGROUP, Constants.STATE_GREEN);
notification.when = 0;
notification.flags = Notification.FLAG_ONGOING_EVENT;
notification.defaults = 0;
notification.sound = null;
notification.vibrate = null;
notification.contentView = downloadView;
notification.contentIntent = pi;
if (showTicker) {
String ticker = cxt.getString(Res.string.download_notification_downloading_one, appName);
notification.tickerText = ticker;
} nm.notify(Constants.STATUSBAR_APK_DOWNLOADER_PROGRESS_ID, notification);
}
05-11 04:12