mirror of https://github.com/BTCPrivate/copay.git
Adds initial profileProvider. Fix getProfile from storage
This commit is contained in:
parent
9474bf959d
commit
917f6ee936
|
@ -5,6 +5,7 @@ import { SplashScreen } from '@ionic-native/splash-screen';
|
|||
|
||||
import { Logger } from '@nsalaun/ng-logger';
|
||||
import { AppProvider } from '../providers/app/app';
|
||||
import { ProfileProvider } from '../providers/profile/profile';
|
||||
|
||||
import { TabsPage } from '../pages/tabs/tabs';
|
||||
|
||||
|
@ -12,14 +13,15 @@ import { TabsPage } from '../pages/tabs/tabs';
|
|||
templateUrl: 'app.html'
|
||||
})
|
||||
export class CopayApp {
|
||||
rootPage: any = TabsPage;
|
||||
rootPage: any;
|
||||
|
||||
constructor(
|
||||
private platform: Platform,
|
||||
private statusBar: StatusBar,
|
||||
private splashScreen: SplashScreen,
|
||||
private logger: Logger,
|
||||
private app: AppProvider
|
||||
private app: AppProvider,
|
||||
private profile: ProfileProvider
|
||||
) {
|
||||
|
||||
this.initializeApp();
|
||||
|
@ -37,6 +39,17 @@ export class CopayApp {
|
|||
this.statusBar.styleLightContent();
|
||||
this.splashScreen.hide();
|
||||
}
|
||||
// Check Profile
|
||||
this.profile.get().then((profile: any) => {
|
||||
if (profile) {
|
||||
this.logger.info('Profile read. Go to HomePage.');
|
||||
this.rootPage = TabsPage;
|
||||
} else {
|
||||
// TODO: go to onboarding page
|
||||
this.logger.warn('Profile does not exist. Go to Onboarding.');
|
||||
this.rootPage = TabsPage;
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,6 +40,7 @@ import { PlatformProvider } from '../providers/platform/platform';
|
|||
import { ConfigProvider } from '../providers/config/config';
|
||||
import { LanguageProvider } from '../providers/language/language';
|
||||
import { ScanProvider } from '../providers/scan/scan';
|
||||
import { ProfileProvider } from '../providers/profile/profile';
|
||||
|
||||
export function createTranslateLoader(http: Http) {
|
||||
return new TranslatePoHttpLoader(http, 'assets/i18n', '.po');
|
||||
|
@ -103,7 +104,7 @@ export function createTranslateLoader(http: Http) {
|
|||
provide: PersistenceProvider,
|
||||
useFactory: persistenceProviderFactory,
|
||||
deps: [PlatformProvider, Logger],
|
||||
multi: true
|
||||
multi: false
|
||||
},
|
||||
WalletProvider,
|
||||
AppProvider,
|
||||
|
@ -111,7 +112,8 @@ export function createTranslateLoader(http: Http) {
|
|||
ConfigProvider,
|
||||
LanguageProvider,
|
||||
QRScanner,
|
||||
ScanProvider
|
||||
ScanProvider,
|
||||
ProfileProvider
|
||||
]
|
||||
})
|
||||
export class AppModule { }
|
||||
|
|
|
@ -6,6 +6,8 @@ import * as _ from 'lodash';
|
|||
import { IStorage, ISTORAGE } from './storage/istorage';
|
||||
import { PlatformProvider } from '../platform/platform';
|
||||
import { LocalStorage } from './storage/local-storage';
|
||||
import { ChromeStorage } from './storage/chrome-storage';
|
||||
import { FileStorage } from './storage/file-storage';
|
||||
import { RamStorage } from './storage/ram-storage';
|
||||
|
||||
const Keys = {
|
||||
|
@ -39,7 +41,18 @@ const Keys = {
|
|||
|
||||
export let persistenceProviderFactory = (platform: PlatformProvider, log: Logger) => {
|
||||
// TODO: select appropriate storage service based on platform
|
||||
let storage = new RamStorage(log);
|
||||
let storage;
|
||||
/*
|
||||
if (this.platform.isChromeApp) {
|
||||
storage = new ChromeStorage(log);
|
||||
} else if (this.platform.isCordova) {
|
||||
storage = new FileStorage(log);
|
||||
} else {
|
||||
storage = new LocalStorage(log);
|
||||
}
|
||||
*/
|
||||
// Testing in RAM
|
||||
storage = new RamStorage(log);
|
||||
return new PersistenceProvider(storage, log);
|
||||
};
|
||||
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
import { Injectable } from '@angular/core';
|
||||
import { PersistenceProvider } from '../persistence/persistence';
|
||||
|
||||
@Injectable()
|
||||
export class ProfileProvider {
|
||||
|
||||
constructor(
|
||||
private persistence: PersistenceProvider
|
||||
) {
|
||||
console.log('Hello ProfileProvider Provider');
|
||||
}
|
||||
|
||||
get() {
|
||||
return new Promise((resolve, reject) => {
|
||||
this.persistence.getProfile().then((profile: any) => {
|
||||
resolve(profile);
|
||||
}, (error) => {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
}
|
Loading…
Reference in New Issue