mirror of https://github.com/BTCPrivate/copay.git
Removes chrome-storage
This commit is contained in:
parent
4cb54aad02
commit
29e281e4ed
|
@ -28,14 +28,6 @@
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<!-- Workaround to prevent autofill -->
|
|
||||||
<div style="display: none;">
|
|
||||||
<input type="text"
|
|
||||||
id="PreventChromeAutocomplete"
|
|
||||||
name="PreventChromeAutocomplete"
|
|
||||||
autocomplete="address-level4" />
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Ionic's root component and where the app will load -->
|
<!-- Ionic's root component and where the app will load -->
|
||||||
<ion-app></ion-app>
|
<ion-app></ion-app>
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@ 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 { ProfileProvider } from '../providers/profile/profile';
|
||||||
import { ConfigProvider } from '../providers/config/config';
|
import { ConfigProvider } from '../providers/config/config';
|
||||||
|
import { TouchIdProvider } from '../providers/touchid/touchid';
|
||||||
|
|
||||||
import { TabsPage } from '../pages/tabs/tabs';
|
import { TabsPage } from '../pages/tabs/tabs';
|
||||||
import { OnboardingPage } from '../pages/onboarding/onboarding';
|
import { OnboardingPage } from '../pages/onboarding/onboarding';
|
||||||
|
@ -14,7 +15,8 @@ import { PinModalPage } from '../pages/pin/pin';
|
||||||
import { FingerprintModalPage } from '../pages/fingerprint/fingerprint';
|
import { FingerprintModalPage } from '../pages/fingerprint/fingerprint';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
templateUrl: 'app.html'
|
templateUrl: 'app.html',
|
||||||
|
providers: [TouchIdProvider]
|
||||||
})
|
})
|
||||||
export class CopayApp {
|
export class CopayApp {
|
||||||
rootPage: any;
|
rootPage: any;
|
||||||
|
|
|
@ -7,7 +7,6 @@ import { PersistenceProvider } from './persistence';
|
||||||
import { IStorage, ISTORAGE } from './storage/istorage';
|
import { IStorage, ISTORAGE } from './storage/istorage';
|
||||||
import { RamStorage } from './storage/ram-storage';
|
import { RamStorage } from './storage/ram-storage';
|
||||||
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 { FileStorage } from './storage/file-storage';
|
||||||
|
|
||||||
describe('Storage Service', () => {
|
describe('Storage Service', () => {
|
||||||
|
|
|
@ -1,12 +1,11 @@
|
||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { InjectionToken, Inject } from '@angular/core';
|
import { Inject } from '@angular/core';
|
||||||
import { Logger } from '@nsalaun/ng-logger';
|
import { Logger } from '@nsalaun/ng-logger';
|
||||||
import * as _ from 'lodash';
|
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 { FileStorage } from './storage/file-storage';
|
||||||
import { RamStorage } from './storage/ram-storage';
|
import { RamStorage } from './storage/ram-storage';
|
||||||
|
|
||||||
|
|
|
@ -1,58 +0,0 @@
|
||||||
import { Injectable } from '@angular/core';
|
|
||||||
import { Logger } from '@nsalaun/ng-logger';
|
|
||||||
import * as _ from 'lodash';
|
|
||||||
|
|
||||||
import { IStorage, KeyAlreadyExistsError } from './istorage';
|
|
||||||
|
|
||||||
@Injectable()
|
|
||||||
export class ChromeStorage implements IStorage {
|
|
||||||
ls: chrome.storage.StorageArea;
|
|
||||||
constructor(private log: Logger) {
|
|
||||||
let chrome: any;
|
|
||||||
if (!chrome.storage || !chrome.storage.local) throw new Error('Chrome storage not supported');
|
|
||||||
this.ls = chrome.storage.local;
|
|
||||||
}
|
|
||||||
|
|
||||||
get(k: string): Promise<any> {
|
|
||||||
return new Promise(resolve => {
|
|
||||||
let v = this.ls.get(k, (v) => {
|
|
||||||
if (!v) return resolve(null);
|
|
||||||
if (!_.isString(v)) return resolve(v);
|
|
||||||
let parsed: any;
|
|
||||||
try {
|
|
||||||
parsed = JSON.parse(v);
|
|
||||||
} catch (e) {
|
|
||||||
}
|
|
||||||
resolve(parsed || v);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
set(k: string, v: any): Promise<void> {
|
|
||||||
if (_.isObject(v)) {
|
|
||||||
v = JSON.stringify(v);
|
|
||||||
}
|
|
||||||
if (v && !_.isString(v)) {
|
|
||||||
v = v.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
let obj = {};
|
|
||||||
obj[k] = v;
|
|
||||||
return new Promise<void>(resolve => {
|
|
||||||
this.ls.set(obj, resolve);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
remove(k: string): Promise<void> {
|
|
||||||
return new Promise<void>(resolve => {
|
|
||||||
this.ls.remove(k, resolve);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
create(k: string, v: any): Promise<void> {
|
|
||||||
return this.get(k).then((data) => {
|
|
||||||
if (data) throw new KeyAlreadyExistsError();
|
|
||||||
this.set(k, v);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue