package com.talent.allshare.downloader;
import android.app.Notification;
import android.app.NotificationManager;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager.NameNotFoundException;
public class RealSystemFacade implements SystemFacade {
private Context mContext;
private NotificationManager mNotificationManager;
public RealSystemFacade(Context context) {
mContext = context;
mNotificationManager = (NotificationManager)
mContext.getSystemService(Context.NOTIFICATION_SERVICE);
}
public long currentTimeMillis() {
return System.currentTimeMillis();
}
@Override
public void sendBroadcast(Intent intent) {
mContext.sendBroadcast(intent);
}
@Override
public boolean userOwnsPackage(int uid, String packageName) throws NameNotFoundException {
return mContext.getPackageManager().getApplicationInfo(packageName, 0).uid == uid;
}
@Override
public void postNotification(long id, Notification notification) {
/**
* TODO: The system notification manager takes ints, not longs, as IDs, but the download
* manager uses IDs take straight from the database, which are longs. This will have to be
* dealt with at some point.
*/
mNotificationManager.notify((int) id, notification);
}
@Override
public void cancelNotification(long id) {
mNotificationManager.cancel((int) id);
}
@Override
public void cancelAllNotifications() {
mNotificationManager.cancelAll();
}
@Override
public void startThread(Thread thread) {
thread.start();
}
}