Merge pull request #2583 from dpalou/MOBILE-3507
MOBILE-3507 push: Call get_user_devices after register in Moodle
This commit is contained in:
		
						commit
						3c49b7f24c
					
				@ -13,6 +13,7 @@
 | 
				
			|||||||
// limitations under the License.
 | 
					// limitations under the License.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { NgModule } from '@angular/core';
 | 
					import { NgModule } from '@angular/core';
 | 
				
			||||||
 | 
					import { CoreEventsProvider } from '@providers/events';
 | 
				
			||||||
import { AddonMessageOutputDelegate } from '@addon/messageoutput/providers/delegate';
 | 
					import { AddonMessageOutputDelegate } from '@addon/messageoutput/providers/delegate';
 | 
				
			||||||
import { AddonMessageOutputAirnotifierProvider } from './providers/airnotifier';
 | 
					import { AddonMessageOutputAirnotifierProvider } from './providers/airnotifier';
 | 
				
			||||||
import { AddonMessageOutputAirnotifierHandler } from './providers/handler';
 | 
					import { AddonMessageOutputAirnotifierHandler } from './providers/handler';
 | 
				
			||||||
@ -28,7 +29,13 @@ import { AddonMessageOutputAirnotifierHandler } from './providers/handler';
 | 
				
			|||||||
    ]
 | 
					    ]
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
export class AddonMessageOutputAirnotifierModule {
 | 
					export class AddonMessageOutputAirnotifierModule {
 | 
				
			||||||
    constructor(messageOutputDelegate: AddonMessageOutputDelegate, airnotifierHandler: AddonMessageOutputAirnotifierHandler) {
 | 
					    constructor(messageOutputDelegate: AddonMessageOutputDelegate, airnotifierHandler: AddonMessageOutputAirnotifierHandler,
 | 
				
			||||||
 | 
					            eventsProvider: CoreEventsProvider, airnotifierProvider: AddonMessageOutputAirnotifierProvider) {
 | 
				
			||||||
        messageOutputDelegate.registerHandler(airnotifierHandler);
 | 
					        messageOutputDelegate.registerHandler(airnotifierHandler);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        eventsProvider.on(CoreEventsProvider.DEVICE_REGISTERED_IN_MOODLE, async (data) => {
 | 
				
			||||||
 | 
					            // Get user devices to make Moodle send the devices data to Airnotifier.
 | 
				
			||||||
 | 
					            airnotifierProvider.getUserDevices(true, data.siteId);
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -74,10 +74,11 @@ export class AddonMessageOutputAirnotifierProvider {
 | 
				
			|||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Get user devices.
 | 
					     * Get user devices.
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
 | 
					     * @param ignoreCache Whether to ignore cache.
 | 
				
			||||||
     * @param siteId Site ID. If not defined, use current site.
 | 
					     * @param siteId Site ID. If not defined, use current site.
 | 
				
			||||||
     * @return Promise resolved with the devices.
 | 
					     * @return Promise resolved with the devices.
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    getUserDevices(siteId?: string): Promise<AddonMessageOutputAirnotifierDevice[]> {
 | 
					    getUserDevices(ignoreCache?: boolean, siteId?: string): Promise<AddonMessageOutputAirnotifierDevice[]> {
 | 
				
			||||||
        this.logger.debug('Get user devices');
 | 
					        this.logger.debug('Get user devices');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return this.sitesProvider.getSite(siteId).then((site) => {
 | 
					        return this.sitesProvider.getSite(siteId).then((site) => {
 | 
				
			||||||
@ -89,6 +90,11 @@ export class AddonMessageOutputAirnotifierProvider {
 | 
				
			|||||||
                updateFrequency: CoreSite.FREQUENCY_RARELY
 | 
					                updateFrequency: CoreSite.FREQUENCY_RARELY
 | 
				
			||||||
            };
 | 
					            };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (ignoreCache) {
 | 
				
			||||||
 | 
					                preSets['getFromCache'] = false;
 | 
				
			||||||
 | 
					                preSets['emergencyCache'] = false;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            return site.read('message_airnotifier_get_user_devices', data, preSets)
 | 
					            return site.read('message_airnotifier_get_user_devices', data, preSets)
 | 
				
			||||||
                    .then((data: AddonMessageOutputAirnotifierGetUserDevicesResult) => {
 | 
					                    .then((data: AddonMessageOutputAirnotifierGetUserDevicesResult) => {
 | 
				
			||||||
                return data.devices;
 | 
					                return data.devices;
 | 
				
			||||||
 | 
				
			|||||||
@ -19,6 +19,7 @@ import { Push, PushObject, PushOptions } from '@ionic-native/push';
 | 
				
			|||||||
import { Device } from '@ionic-native/device';
 | 
					import { Device } from '@ionic-native/device';
 | 
				
			||||||
import { TranslateService } from '@ngx-translate/core';
 | 
					import { TranslateService } from '@ngx-translate/core';
 | 
				
			||||||
import { CoreApp, CoreAppProvider, CoreAppSchema } from '@providers/app';
 | 
					import { CoreApp, CoreAppProvider, CoreAppSchema } from '@providers/app';
 | 
				
			||||||
 | 
					import { CoreEvents, CoreEventsProvider } from '@providers/events';
 | 
				
			||||||
import { CoreInitDelegate } from '@providers/init';
 | 
					import { CoreInitDelegate } from '@providers/init';
 | 
				
			||||||
import { CoreLoggerProvider } from '@providers/logger';
 | 
					import { CoreLoggerProvider } from '@providers/logger';
 | 
				
			||||||
import { CoreSitesProvider, CoreSiteSchema } from '@providers/sites';
 | 
					import { CoreSitesProvider, CoreSiteSchema } from '@providers/sites';
 | 
				
			||||||
@ -789,6 +790,8 @@ export class CorePushNotificationsProvider {
 | 
				
			|||||||
                // Now register the device.
 | 
					                // Now register the device.
 | 
				
			||||||
                await site.write('core_user_add_user_device', this.utils.clone(data));
 | 
					                await site.write('core_user_add_user_device', this.utils.clone(data));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                CoreEvents.instance.trigger(CoreEventsProvider.DEVICE_REGISTERED_IN_MOODLE, {}, site.getId());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                // Insert the device in the local DB.
 | 
					                // Insert the device in the local DB.
 | 
				
			||||||
                try {
 | 
					                try {
 | 
				
			||||||
                    await site.getDb().insertRecord(CorePushNotificationsProvider.REGISTERED_DEVICES_TABLE, data);
 | 
					                    await site.getDb().insertRecord(CorePushNotificationsProvider.REGISTERED_DEVICES_TABLE, data);
 | 
				
			||||||
 | 
				
			|||||||
@ -68,6 +68,7 @@ export class CoreEventsProvider {
 | 
				
			|||||||
    static SITE_STORAGE_DELETED = 'site_storage_deleted';
 | 
					    static SITE_STORAGE_DELETED = 'site_storage_deleted';
 | 
				
			||||||
    static FORM_ACTION = 'form_action';
 | 
					    static FORM_ACTION = 'form_action';
 | 
				
			||||||
    static ACTIVITY_DATA_SENT = 'activity_data_sent';
 | 
					    static ACTIVITY_DATA_SENT = 'activity_data_sent';
 | 
				
			||||||
 | 
					    static DEVICE_REGISTERED_IN_MOODLE = 'device_registered_in_moodle';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    protected logger;
 | 
					    protected logger;
 | 
				
			||||||
    protected observables: { [s: string]: Subject<any> } = {};
 | 
					    protected observables: { [s: string]: Subject<any> } = {};
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user