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 { Logger } from '@nsalaun/ng-logger';
|
||||||
import { AppProvider } from '../providers/app/app';
|
import { AppProvider } from '../providers/app/app';
|
||||||
|
import { ProfileProvider } from '../providers/profile/profile';
|
||||||
|
|
||||||
import { TabsPage } from '../pages/tabs/tabs';
|
import { TabsPage } from '../pages/tabs/tabs';
|
||||||
|
|
||||||
|
@ -12,14 +13,15 @@ import { TabsPage } from '../pages/tabs/tabs';
|
||||||
templateUrl: 'app.html'
|
templateUrl: 'app.html'
|
||||||
})
|
})
|
||||||
export class CopayApp {
|
export class CopayApp {
|
||||||
rootPage: any = TabsPage;
|
rootPage: any;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private platform: Platform,
|
private platform: Platform,
|
||||||
private statusBar: StatusBar,
|
private statusBar: StatusBar,
|
||||||
private splashScreen: SplashScreen,
|
private splashScreen: SplashScreen,
|
||||||
private logger: Logger,
|
private logger: Logger,
|
||||||
private app: AppProvider
|
private app: AppProvider,
|
||||||
|
private profile: ProfileProvider
|
||||||
) {
|
) {
|
||||||
|
|
||||||
this.initializeApp();
|
this.initializeApp();
|
||||||
|
@ -37,6 +39,17 @@ export class CopayApp {
|
||||||
this.statusBar.styleLightContent();
|
this.statusBar.styleLightContent();
|
||||||
this.splashScreen.hide();
|
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 { ConfigProvider } from '../providers/config/config';
|
||||||
import { LanguageProvider } from '../providers/language/language';
|
import { LanguageProvider } from '../providers/language/language';
|
||||||
import { ScanProvider } from '../providers/scan/scan';
|
import { ScanProvider } from '../providers/scan/scan';
|
||||||
|
import { ProfileProvider } from '../providers/profile/profile';
|
||||||
|
|
||||||
export function createTranslateLoader(http: Http) {
|
export function createTranslateLoader(http: Http) {
|
||||||
return new TranslatePoHttpLoader(http, 'assets/i18n', '.po');
|
return new TranslatePoHttpLoader(http, 'assets/i18n', '.po');
|
||||||
|
@ -103,7 +104,7 @@ export function createTranslateLoader(http: Http) {
|
||||||
provide: PersistenceProvider,
|
provide: PersistenceProvider,
|
||||||
useFactory: persistenceProviderFactory,
|
useFactory: persistenceProviderFactory,
|
||||||
deps: [PlatformProvider, Logger],
|
deps: [PlatformProvider, Logger],
|
||||||
multi: true
|
multi: false
|
||||||
},
|
},
|
||||||
WalletProvider,
|
WalletProvider,
|
||||||
AppProvider,
|
AppProvider,
|
||||||
|
@ -111,7 +112,8 @@ export function createTranslateLoader(http: Http) {
|
||||||
ConfigProvider,
|
ConfigProvider,
|
||||||
LanguageProvider,
|
LanguageProvider,
|
||||||
QRScanner,
|
QRScanner,
|
||||||
ScanProvider
|
ScanProvider,
|
||||||
|
ProfileProvider
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
export class AppModule { }
|
export class AppModule { }
|
||||||
|
|
|
@ -6,6 +6,8 @@ import * as _ from 'lodash';
|
||||||
import { IStorage, ISTORAGE } from './storage/istorage';
|
import { IStorage, ISTORAGE } from './storage/istorage';
|
||||||
import { PlatformProvider } from '../platform/platform';
|
import { PlatformProvider } from '../platform/platform';
|
||||||
import { LocalStorage } from './storage/local-storage';
|
import { LocalStorage } from './storage/local-storage';
|
||||||
|
import { ChromeStorage } from './storage/chrome-storage';
|
||||||
|
import { FileStorage } from './storage/file-storage';
|
||||||
import { RamStorage } from './storage/ram-storage';
|
import { RamStorage } from './storage/ram-storage';
|
||||||
|
|
||||||
const Keys = {
|
const Keys = {
|
||||||
|
@ -39,7 +41,18 @@ const Keys = {
|
||||||
|
|
||||||
export let persistenceProviderFactory = (platform: PlatformProvider, log: Logger) => {
|
export let persistenceProviderFactory = (platform: PlatformProvider, log: Logger) => {
|
||||||
// TODO: select appropriate storage service based on platform
|
// 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);
|
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