Vmeda.Online/src/addon/pushnotifications/pushnotifications.module.ts

61 lines
2.4 KiB
TypeScript
Raw Normal View History

// (C) Copyright 2015 Martin Dougiamas
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
import { NgModule } from '@angular/core';
import { Platform } from 'ionic-angular';
import { AddonPushNotificationsProvider } from './providers/pushnotifications';
import { AddonPushNotificationsDelegate } from './providers/delegate';
import { CoreEventsProvider } from '@providers/events';
import { CoreLocalNotificationsProvider } from '@providers/local-notifications';
@NgModule({
declarations: [
],
imports: [
],
providers: [
AddonPushNotificationsProvider,
AddonPushNotificationsDelegate
]
})
export class AddonPushNotificationsModule {
constructor(platform: Platform, pushNotificationsProvider: AddonPushNotificationsProvider, eventsProvider: CoreEventsProvider,
localNotificationsProvider: CoreLocalNotificationsProvider) {
// Register device on GCM or APNS server.
platform.ready().then(() => {
pushNotificationsProvider.registerDevice();
});
eventsProvider.on(CoreEventsProvider.NOTIFICATION_SOUND_CHANGED, () => {
// Notification sound has changed, register the device again to update the sound setting.
pushNotificationsProvider.registerDevice();
});
// Register device on Moodle site when login.
eventsProvider.on(CoreEventsProvider.LOGIN, () => {
pushNotificationsProvider.registerDeviceOnMoodle();
});
eventsProvider.on(CoreEventsProvider.SITE_DELETED, (site) => {
pushNotificationsProvider.unregisterDeviceOnMoodle(site);
pushNotificationsProvider.cleanSiteCounters(site.id);
});
// Listen for local notification clicks (generated by the app).
localNotificationsProvider.registerClick(AddonPushNotificationsProvider.COMPONENT,
pushNotificationsProvider.notificationClicked);
}
}