Skip to content

Commit a0104f5

Browse files
committed
MOBILE-3507 push: Call get_user_devices after register in Moodle
1 parent 4c32239 commit a0104f5

File tree

4 files changed

+19
-2
lines changed

4 files changed

+19
-2
lines changed

src/addon/messageoutput/airnotifier/airnotifier.module.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
// limitations under the License.
1414

1515
import { NgModule } from '@angular/core';
16+
import { CoreEventsProvider } from '@providers/events';
1617
import { AddonMessageOutputDelegate } from '@addon/messageoutput/providers/delegate';
1718
import { AddonMessageOutputAirnotifierProvider } from './providers/airnotifier';
1819
import { AddonMessageOutputAirnotifierHandler } from './providers/handler';
@@ -28,7 +29,13 @@ import { AddonMessageOutputAirnotifierHandler } from './providers/handler';
2829
]
2930
})
3031
export class AddonMessageOutputAirnotifierModule {
31-
constructor(messageOutputDelegate: AddonMessageOutputDelegate, airnotifierHandler: AddonMessageOutputAirnotifierHandler) {
32+
constructor(messageOutputDelegate: AddonMessageOutputDelegate, airnotifierHandler: AddonMessageOutputAirnotifierHandler,
33+
eventsProvider: CoreEventsProvider, airnotifierProvider: AddonMessageOutputAirnotifierProvider) {
3234
messageOutputDelegate.registerHandler(airnotifierHandler);
35+
36+
eventsProvider.on(CoreEventsProvider.DEVICE_REGISTERED_IN_MOODLE, async (data) => {
37+
// Get user devices to make Moodle send the devices data to Airnotifier.
38+
airnotifierProvider.getUserDevices(true, data.siteId);
39+
});
3340
}
3441
}

src/addon/messageoutput/airnotifier/providers/airnotifier.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,11 @@ export class AddonMessageOutputAirnotifierProvider {
7474
/**
7575
* Get user devices.
7676
*
77+
* @param ignoreCache Whether to ignore cache.
7778
* @param siteId Site ID. If not defined, use current site.
7879
* @return Promise resolved with the devices.
7980
*/
80-
getUserDevices(siteId?: string): Promise<AddonMessageOutputAirnotifierDevice[]> {
81+
getUserDevices(ignoreCache?: boolean, siteId?: string): Promise<AddonMessageOutputAirnotifierDevice[]> {
8182
this.logger.debug('Get user devices');
8283

8384
return this.sitesProvider.getSite(siteId).then((site) => {
@@ -89,6 +90,11 @@ export class AddonMessageOutputAirnotifierProvider {
8990
updateFrequency: CoreSite.FREQUENCY_RARELY
9091
};
9192

93+
if (ignoreCache) {
94+
preSets['getFromCache'] = false;
95+
preSets['emergencyCache'] = false;
96+
}
97+
9298
return site.read('message_airnotifier_get_user_devices', data, preSets)
9399
.then((data: AddonMessageOutputAirnotifierGetUserDevicesResult) => {
94100
return data.devices;

src/core/pushnotifications/providers/pushnotifications.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import { Push, PushObject, PushOptions } from '@ionic-native/push';
1919
import { Device } from '@ionic-native/device';
2020
import { TranslateService } from '@ngx-translate/core';
2121
import { CoreApp, CoreAppProvider, CoreAppSchema } from '@providers/app';
22+
import { CoreEvents, CoreEventsProvider } from '@providers/events';
2223
import { CoreInitDelegate } from '@providers/init';
2324
import { CoreLoggerProvider } from '@providers/logger';
2425
import { CoreSitesProvider, CoreSiteSchema } from '@providers/sites';
@@ -789,6 +790,8 @@ export class CorePushNotificationsProvider {
789790
// Now register the device.
790791
await site.write('core_user_add_user_device', this.utils.clone(data));
791792

793+
CoreEvents.instance.trigger(CoreEventsProvider.DEVICE_REGISTERED_IN_MOODLE, {}, site.getId());
794+
792795
// Insert the device in the local DB.
793796
try {
794797
await site.getDb().insertRecord(CorePushNotificationsProvider.REGISTERED_DEVICES_TABLE, data);

src/providers/events.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ export class CoreEventsProvider {
6868
static SITE_STORAGE_DELETED = 'site_storage_deleted';
6969
static FORM_ACTION = 'form_action';
7070
static ACTIVITY_DATA_SENT = 'activity_data_sent';
71+
static DEVICE_REGISTERED_IN_MOODLE = 'device_registered_in_moodle';
7172

7273
protected logger;
7374
protected observables: { [s: string]: Subject<any> } = {};

0 commit comments

Comments
 (0)