application-amicale/utils/ThemeManager.js
2019-06-25 22:20:24 +02:00

57 lines
1.4 KiB
JavaScript

import {DefaultTheme} from 'react-native-paper';
import {AsyncStorage} from 'react-native'
import platform from '../native-base-theme/variables/platform';
import platformDark from '../native-base-theme/variables/platformDark';
import getTheme from '../native-base-theme/components';
const nightModeKey = 'nightMode';
export default class ThemeManager {
static instance = null;
constructor() {
this.nightMode = false;
this.updateThemeCallback = undefined;
}
static getInstance() {
if (ThemeManager.instance == null) {
ThemeManager.instance = new ThemeManager();
}
return this.instance;
}
setUpdateThemeCallback(callback) {
this.updateThemeCallback = callback;
console.log(this.updateThemeCallback);
}
async getDataFromPreferences() {
let result = await AsyncStorage.getItem(nightModeKey);
if (result === '1')
this.nightMode = true;
console.log('nightmode: ' + this.nightMode);
}
setNightmode(isNightMode) {
this.nightMode = isNightMode;
AsyncStorage.setItem(nightModeKey, isNightMode ? '1' : '0');
if (this.updateThemeCallback !== undefined)
this.updateThemeCallback();
}
getNightMode() {
return this.nightMode;
}
getCurrentTheme() {
if (this.nightMode)
return getTheme(platformDark);
else
return getTheme(platform);
}
};