Skip to content
This repository has been archived by the owner on Mar 26, 2022. It is now read-only.

Commit

Permalink
Puased the cart on pause and resume events
Browse files Browse the repository at this point in the history
  • Loading branch information
torch2424 committed Oct 13, 2017
1 parent ee9ec83 commit e6ce0d7
Showing 1 changed file with 34 additions and 2 deletions.
36 changes: 34 additions & 2 deletions src/components/cart/cart.ts
@@ -1,4 +1,7 @@
import { Component, Output, EventEmitter } from '@angular/core';
import { Subscription } from 'rxjs';
import { Platform } from 'ionic-angular';

import { SettingsProvider } from '../../providers/settings/settings';

const picoDeployConfig = require('../../../picoDeployConfig.json');
Expand All @@ -18,8 +21,27 @@ export class CartComponent {
@Output() onOption: EventEmitter<boolean> = new EventEmitter<boolean>();

canvas: HTMLCanvasElement;
platform: Platform;
private onResumeSubscription: Subscription;
private onPauseSubscription: Subscription;

constructor(platformImport: Platform, private settingsProvider: SettingsProvider) {
// Subscribe to pause and resume events
// to pause the cart from running to save people's phones
this.platform = platformImport;
if(this.platform.is('cordova')) {
this.onPauseSubscription = this.platform.pause.subscribe(() => {
if((<any>window).Module && (<any>window).Module.pico8SetPaused) {
(<any>window).Module.pico8SetPaused(true);
}
});

constructor(private settingsProvider: SettingsProvider) {
this.onResumeSubscription = this.platform.pause.subscribe(() => {
if((<any>window).Module && (<any>window).Module.pico8SetPaused) {
(<any>window).Module.pico8SetPaused(false);
}
});
}
}

ngOnInit() {
Expand Down Expand Up @@ -63,10 +85,20 @@ export class CartComponent {
}
}, false);

// Lastly, load the cart
// Lastly, Load the cart
const cartScript = document.createElement('script');
cartScript.setAttribute('src', `cart/${picoDeployConfig.cart.cartName}`);
cartScript.setAttribute('type', 'text/javascript');
document.body.appendChild(cartScript);
}

ngOnDestroy() {
if(this.platform.is('cordova') &&
this.onResumeSubscription &&
this.onPauseSubscription) {
// always unsubscribe your subscriptions to prevent leaks
this.onResumeSubscription.unsubscribe();
this.onPauseSubscription.unsubscribe();
}
}
}

0 comments on commit e6ce0d7

Please sign in to comment.