Revert "Remove AF theme and start screen"

This reverts commit 91326689
This commit is contained in:
keplyx 2020-03-11 19:55:48 +01:00
parent 30c1c9c5bf
commit 4948456204
5 changed files with 58 additions and 3 deletions

11
App.js
View file

@ -12,6 +12,7 @@ import {createStackNavigator} from '@react-navigation/stack';
import DrawerNavigator from './navigation/DrawerNavigator';
import NotificationsManager from "./utils/NotificationsManager";
import {Provider as PaperProvider} from 'react-native-paper';
import AprilFoolsManager from "./utils/AprilFoolsManager";
type Props = {};
@ -19,6 +20,7 @@ type State = {
isLoading: boolean,
showIntro: boolean,
showUpdate: boolean,
showAprilFools: boolean,
currentTheme: ?Object,
};
@ -30,6 +32,7 @@ export default class App extends React.Component<Props, State> {
isLoading: true,
showIntro: true,
showUpdate: true,
showAprilFools: false,
currentTheme: null,
};
@ -71,9 +74,11 @@ export default class App extends React.Component<Props, State> {
this.setState({
showIntro: false,
showUpdate: false,
showAprilFools: false,
});
AsyncStorageManager.getInstance().savePref(AsyncStorageManager.getInstance().preferences.showIntro.key, '0');
AsyncStorageManager.getInstance().savePref(AsyncStorageManager.getInstance().preferences.showUpdate5.key, '0');
AsyncStorageManager.getInstance().savePref(AsyncStorageManager.getInstance().preferences.showAprilFoolsStart.key, '0');
}
async componentDidMount() {
@ -84,7 +89,7 @@ export default class App extends React.Component<Props, State> {
// Wait for custom fonts to be loaded before showing the app
await AsyncStorageManager.getInstance().loadPreferences();
ThemeManager.getInstance().setUpdateThemeCallback(this.onUpdateTheme);
await NotificationsManager.initExpoToken();
// await NotificationsManager.initExpoToken();
this.onLoadFinished();
}
@ -96,6 +101,7 @@ export default class App extends React.Component<Props, State> {
currentTheme: ThemeManager.getCurrentTheme(),
showIntro: AsyncStorageManager.getInstance().preferences.showIntro.current === '1',
showUpdate: AsyncStorageManager.getInstance().preferences.showUpdate5.current === '1',
showAprilFools: AprilFoolsManager.getInstance().isAprilFoolsEnabled() && AsyncStorageManager.getInstance().preferences.showAprilFoolsStart.current === '1',
});
// Status bar goes dark if set too fast
setTimeout(this.setupStatusBar, 1000);
@ -108,10 +114,11 @@ export default class App extends React.Component<Props, State> {
render() {
if (this.state.isLoading) {
return null;
} else if (this.state.showIntro || this.state.showUpdate) {
} else if (this.state.showIntro || this.state.showUpdate || this.state.showAprilFools) {
return <CustomIntroSlider
onDone={this.onIntroDone}
isUpdate={this.state.showUpdate && !this.state.showIntro}
isAprilFools={this.state.showAprilFools && !this.state.showIntro}
/>;
} else {
return (

View file

@ -40,12 +40,14 @@ const styles = StyleSheet.create({
type Props = {
onDone: Function,
isUpdate: boolean,
isAprilFools: boolean,
};
export default class CustomIntroSlider extends React.Component<Props> {
introSlides: Array<Object>;
updateSlides: Array<Object>;
aprilFoolsSlides: Array<Object>;
constructor() {
super();
@ -109,6 +111,15 @@ export default class CustomIntroSlider extends React.Component<Props> {
colors: ['#e01928', '#be1522'],
},
];
this.aprilFoolsSlides = [
{
key: '1',
title: i18n.t('intro.aprilFoolsSlide.title'),
text: i18n.t('intro.aprilFoolsSlide.text'),
icon: 'fish',
colors: ['#e01928', '#be1522'],
},
];
}
@ -147,6 +158,8 @@ export default class CustomIntroSlider extends React.Component<Props> {
let slides = this.introSlides;
if (this.props.isUpdate)
slides = this.updateSlides;
else if (this.props.isAprilFools)
slides = this.aprilFoolsSlides;
return (
<AppIntroSlider
renderItem={CustomIntroSlider.getIntroRenderItem}

View file

@ -67,6 +67,7 @@ export default class AprilFoolsManager {
washers.splice(4, 1, ninth);
washers.splice(1, 1, first);
washers.splice(0, 1, fifth);
// washers.push(fifth);
}
}
@ -74,6 +75,27 @@ export default class AprilFoolsManager {
return AprilFoolsManager.fakeMachineNumber[number];
}
static getAprilFoolsTheme(currentTheme: Object) {
return {
...currentTheme,
colors: {
...currentTheme.colors,
primary: '#00be45',
accent: '#00be45',
background: '#d02eee',
tabIcon: "#380d43",
card: "#eed639",
surface: "#eed639",
dividerBackground: '#c72ce4',
textDisabled: '#b9b9b9',
// Calendar/Agenda
agendaBackgroundColor: '#c72ce4',
agendaDayTextColor: '#6d6d6d',
},
};
}
isAprilFoolsEnabled() {
return this.aprilFoolsEnabled;
}

View file

@ -78,7 +78,12 @@ export default class AsyncStorageManager {
key: 'planexShowBanner',
default: '1',
current: '',
}
},
showAprilFoolsStart: {
key: 'showAprilFoolsStart',
default: '1',
current: '',
},
};
/**

View file

@ -2,6 +2,7 @@
import AsyncStorageManager from "./AsyncStorageManager";
import {DarkTheme, DefaultTheme} from 'react-native-paper';
import AprilFoolsManager from "./AprilFoolsManager";
import {Appearance} from 'react-native-appearance';
const colorScheme = Appearance.getColorScheme();
@ -122,6 +123,13 @@ export default class ThemeManager {
* @returns {Object}
*/
static getCurrentTheme(): Object {
if (AprilFoolsManager.getInstance().isAprilFoolsEnabled())
return AprilFoolsManager.getAprilFoolsTheme(ThemeManager.getWhiteTheme());
else
return ThemeManager.getBaseTheme()
}
static getBaseTheme() {
if (ThemeManager.getNightMode())
return ThemeManager.getDarkTheme();
else