diff --git a/src/fr/unix_experience/owncloud_sms/notifications/OCSMSNotification.java b/src/fr/unix_experience/owncloud_sms/notifications/OCSMSNotification.java new file mode 100644 index 0000000..fd65997 --- /dev/null +++ b/src/fr/unix_experience/owncloud_sms/notifications/OCSMSNotification.java @@ -0,0 +1,57 @@ +package fr.unix_experience.owncloud_sms.notifications; + +/* + * Copyright (c) 2014, Loic Blot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +import fr.unix_experience.owncloud_sms.R; +import fr.unix_experience.owncloud_sms.enums.OCSMSNotificationType; +import android.annotation.TargetApi; +import android.app.Notification; +import android.app.Notification.Builder; +import android.app.NotificationManager; +import android.content.Context; +import android.os.Build; + +public class OCSMSNotification { + public OCSMSNotification(Context ct) { + _ct = ct; + } + + @TargetApi(Build.VERSION_CODES.JELLY_BEAN) + public boolean createNotify(OCSMSNotificationType nType, String nTitle, String nText) { + if (_ct == null) { + return false; + } + NotificationManager notificationManager = (NotificationManager)_ct.getSystemService(Context.NOTIFICATION_SERVICE); + + Builder mBuilder = new Notification.Builder(_ct) + .setContentText(nText) + .setContentTitle(nTitle) + .setSmallIcon(R.drawable.ic_launcher); + + notificationManager.notify(nType.ordinal(), mBuilder.build()); + return true; + } + + @TargetApi(Build.VERSION_CODES.JELLY_BEAN) + public void cancelNotify(OCSMSNotificationType nType) { + NotificationManager notificationManager = (NotificationManager)_ct.getSystemService(Context.NOTIFICATION_SERVICE); + notificationManager.cancel(nType.ordinal()); + } + + private Context _ct; +} diff --git a/src/fr/unix_experience/owncloud_sms/notifications/OCSMSNotificationManager.java b/src/fr/unix_experience/owncloud_sms/notifications/OCSMSNotificationManager.java new file mode 100644 index 0000000..aefafb3 --- /dev/null +++ b/src/fr/unix_experience/owncloud_sms/notifications/OCSMSNotificationManager.java @@ -0,0 +1,56 @@ +package fr.unix_experience.owncloud_sms.notifications; + +/* + * Copyright (c) 2014, Loic Blot + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +import fr.unix_experience.owncloud_sms.R; +import fr.unix_experience.owncloud_sms.enums.OCSMSNotificationType; +import android.content.Context; + +public class OCSMSNotificationManager { + + public OCSMSNotificationManager(Context context) { + _context = context; + _notification = new OCSMSNotification(_context); + } + + public void setSyncProcessMsg() { + createNotificationIfPossible(OCSMSNotificationType.SYNC, + _context.getString(R.string.sync_title), + _context.getString(R.string.sync_inprogress) + ); + } + + public void dropSyncProcessMsg() { + _notification.cancelNotify(OCSMSNotificationType.SYNC); + } + + public void setSyncErrorMsg(String errMsg) { + createNotificationIfPossible(OCSMSNotificationType.SYNC_FAILED, + _context.getString(R.string.sync_title), + _context.getString(R.string.fatal_error) + "\n" + errMsg + ); + } + + private void createNotificationIfPossible(OCSMSNotificationType nType, String nTitle, String nMsg) { + _notification.createNotify(nType, nTitle, nMsg); + } + + private Context _context; + private OCSMSNotification _notification; + +}