diff -r 000000000000 -r 6474c204b198 mobile/android/base/NotificationService.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mobile/android/base/NotificationService.java Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,51 @@ +/* -*- Mode: Java; c-basic-offset: 4; tab-width: 4; indent-tabs-mode: nil; -*- + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +package org.mozilla.gecko; + +import android.app.Notification; +import android.app.Service; +import android.content.Intent; +import android.os.Binder; +import android.os.IBinder; + +public class NotificationService extends Service { + private final IBinder mBinder = new NotificationBinder(); + private NotificationHandler mHandler; + + @Override + public void onCreate() { + // This has to be initialized in onCreate in order to ensure that the NotificationHandler can + // access the NotificationManager service. + mHandler = new NotificationHandler(this) { + @Override + protected void setForegroundNotification(int id, Notification notification) { + super.setForegroundNotification(id, notification); + + if (notification == null) { + stopForeground(true); + } else { + startForeground(id, notification); + } + } + }; + } + + public class NotificationBinder extends Binder { + NotificationService getService() { + // Return this instance of NotificationService so clients can call public methods + return NotificationService.this; + } + } + + @Override + public IBinder onBind(Intent intent) { + return mBinder; + } + + public NotificationHandler getNotificationHandler() { + return mHandler; + } +}