Skip to content
Snippets Groups Projects
Commit 167cfe43 authored by wonko's avatar wonko
Browse files

settings provider

parent 550972b7
No related branches found
No related tags found
No related merge requests found
...@@ -11,6 +11,7 @@ import { Settings } from '../pages/settings/settings'; ...@@ -11,6 +11,7 @@ import { Settings } from '../pages/settings/settings';
import { Sponsors } from '../pages/sponsors/sponsors'; import { Sponsors } from '../pages/sponsors/sponsors';
import { LecturesProvider } from '../providers/lectures-provider'; import { LecturesProvider } from '../providers/lectures-provider';
import { SettingsProvider } from '../providers/settings';
@Component({ @Component({
templateUrl: 'app.html' templateUrl: 'app.html'
...@@ -22,7 +23,7 @@ export class MyApp { ...@@ -22,7 +23,7 @@ export class MyApp {
pages: Array<{title: string, component: any}>; pages: Array<{title: string, component: any}>;
constructor(public platform: Platform, private statusBar: StatusBar, private splashScreen: SplashScreen, private storage: Storage, private lecturesProvider: LecturesProvider) { constructor(public platform: Platform, private statusBar: StatusBar, private splashScreen: SplashScreen, private storage: Storage, private lecturesProvider: LecturesProvider, private settings: SettingsProvider) {
this.initializeApp(); this.initializeApp();
// used for an example of ngFor and navigation // used for an example of ngFor and navigation
......
...@@ -19,8 +19,8 @@ import { Settings } from '../pages/settings/settings'; ...@@ -19,8 +19,8 @@ import { Settings } from '../pages/settings/settings';
import { LecturesProvider } from '../providers/lectures-provider'; import { LecturesProvider } from '../providers/lectures-provider';
import { LecturesProviderFactory } from '../providers/lectures-provider';
import { FacebookProvider } from '../providers/facebook-provider'; import { FacebookProvider } from '../providers/facebook-provider';
import { SettingsProvider } from '../providers/settings';
let pages = [ let pages = [
MyApp, MyApp,
Tabs, Tabs,
...@@ -33,22 +33,6 @@ Sponsors, ...@@ -33,22 +33,6 @@ Sponsors,
Settings Settings
]; ];
export function provideSettings(storage: Storage) {
/**
* The Settings provider takes a set of default settings for your app.
*
* You can add new settings options at any time. Once the settings are saved,
* these values will not overwrite the saved values (this can be done manually if desired).
*/
/** return new Settings(storage, {
option1: true,
option2: 'Ionitron J. Framework',
option3: '3',
option4: 'Hello'
});
*/
}
export function declarations() { export function declarations() {
return pages; return pages;
...@@ -64,8 +48,9 @@ export function providers() { ...@@ -64,8 +48,9 @@ export function providers() {
StatusBar, StatusBar,
FacebookProvider, FacebookProvider,
LecturesProvider, LecturesProvider,
SettingsProvider,
// { provide: LecturesProvider, useFactory: LecturesProviderFactory, deps: [Http,Storage] }, // { provide: LecturesProvider, useFactory: LecturesProviderFactory, deps: [Http,Storage] },
{ provide: Settings, useFactory: provideSettings, deps: [Storage] }, //{ provide: Settings, useFactory: provideSettings, deps: [Storage] },
// Keep this to enable Ionic's runtime error handling during development // Keep this to enable Ionic's runtime error handling during development
{ provide: ErrorHandler, useClass: IonicErrorHandler } { provide: ErrorHandler, useClass: IonicErrorHandler }
]; ];
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
<ion-item>Version: {{lecturesProvider.lecturesVersion}}</ion-item> <ion-item>Version: {{lecturesProvider.lecturesVersion}}</ion-item>
<ion-item>Source: {{lecturesProvider.source}}</ion-item> <ion-item>Source: {{lecturesProvider.source}}</ion-item>
<ion-item>driver: {{lecturesProvider.storage.driver}}</ion-item> <ion-item>driver: {{lecturesProvider.storage.driver}}</ion-item>
<ion-item>url: {{settings.data.lecturesURL}}</ion-item>
<ion-item> <ion-item>
<ion-label>Boromir</ion-label> <ion-label>Boromir</ion-label>
<ion-toggle color="royal"></ion-toggle> <ion-toggle color="royal"></ion-toggle>
......
import { Component } from '@angular/core'; import { Component } from '@angular/core';
import { NavController, NavParams } from 'ionic-angular'; import { NavController, NavParams } from 'ionic-angular';
import { LecturesProvider } from '../../providers/lectures-provider'; import { LecturesProvider } from '../../providers/lectures-provider';
import { SettingsProvider } from '../../providers/settings';
@Component({ @Component({
selector: 'page-settings', selector: 'page-settings',
...@@ -8,7 +9,8 @@ import { LecturesProvider } from '../../providers/lectures-provider'; ...@@ -8,7 +9,8 @@ import { LecturesProvider } from '../../providers/lectures-provider';
}) })
export class Settings { export class Settings {
constructor(public navCtrl: NavController, public navParams: NavParams, public lecturesProvider: LecturesProvider) { constructor(public navCtrl: NavController, public navParams: NavParams, public lecturesProvider: LecturesProvider, public settings: SettingsProvider) {
} }
ionViewDidLoad() { ionViewDidLoad() {
......
...@@ -7,7 +7,6 @@ import { Storage } from '@ionic/storage'; ...@@ -7,7 +7,6 @@ import { Storage } from '@ionic/storage';
@Injectable() @Injectable()
export class LecturesProvider { export class LecturesProvider {
private isInitialized: boolean = false;
times: any[] = [] times: any[] = []
lecturesVersion: string; lecturesVersion: string;
lecturesData: any; lecturesData: any;
......
import { Injectable } from '@angular/core';
import { Storage } from '@ionic/storage';
@Injectable()
export class SettingsProvider {
initial: any = null;
version: number = null;
data: {[setting: string]:string} = null;
constructor(public storage: Storage) {
if (!this.initial){
storage.ready().then(() => {
storage.get("version").then((version) => {
if (version){
console.log('settings version: '+ version);
this.version = version;
storage.get("data").then((settings) => {
this.data = JSON.parse(settings);
});
} else {
console.log('no settings data: new install');
this.version = version;
this.data = {};
this.data['lecturesURL'] = "https://test.wonko.de/lectures.json";
this.version = 1;
storage.set('data',JSON.stringify(this.data));
storage.set('version',this.version);
}
});
});
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment