Compare commits

..

4 commits

7 changed files with 57 additions and 47 deletions

19
App.js
View file

@ -16,6 +16,7 @@ import ConnectionManager from "./src/managers/ConnectionManager";
import URLHandler from "./src/utils/URLHandler";
import {setSafeBounceHeight} from "react-navigation-collapsible";
import SplashScreen from 'react-native-splash-screen'
import {OverflowMenuProvider} from "react-navigation-header-buttons";
// Native optimizations https://reactnavigation.org/docs/react-native-screens
// Crashes app when navigating away from webview on android 9+
@ -189,14 +190,16 @@ export default class App extends React.Component<Props, State> {
} else {
return (
<PaperProvider theme={this.state.currentTheme}>
<View style={{backgroundColor: ThemeManager.getCurrentTheme().colors.background, flex: 1}}>
<NavigationContainer theme={this.state.currentTheme} ref={this.navigatorRef}>
<MainNavigator
defaultHomeRoute={this.defaultHomeRoute}
defaultHomeData={this.defaultHomeData}
/>
</NavigationContainer>
</View>
<OverflowMenuProvider>
<View style={{backgroundColor: ThemeManager.getCurrentTheme().colors.background, flex: 1}}>
<NavigationContainer theme={this.state.currentTheme} ref={this.navigatorRef}>
<MainNavigator
defaultHomeRoute={this.defaultHomeRoute}
defaultHomeData={this.defaultHomeData}
/>
</NavigationContainer>
</View>
</OverflowMenuProvider>
</PaperProvider>
);
}

View file

@ -77,7 +77,7 @@ import com.android.build.OutputFile
project.ext.react = [
entryFile: "index.js",
enableHermes: true,
enableHermes: false,
]
apply from: "../../node_modules/react-native/react.gradle"
@ -136,8 +136,8 @@ android {
applicationId 'fr.amicaleinsat.application'
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 17
versionName "3.0.0"
versionCode 19
versionName "3.0.2"
missingDimensionStrategy 'react-native-camera', 'general'
}
splits {

View file

@ -1,6 +1,6 @@
{
"name": "campus",
"version": "3.0.0",
"version": "3.0.2",
"private": true,
"scripts": {
"start": "react-native start",
@ -43,8 +43,8 @@
"react-native-keychain": "^6.0.0",
"react-native-linear-gradient": "^2.5.6",
"react-native-localize": "^1.4.0",
"react-native-modalize": "^1.3.6",
"react-native-paper": "^3.9.0",
"react-native-modalize": "^2.0.4",
"react-native-paper": "^3.10.1",
"react-native-permissions": "^2.1.4",
"react-native-push-notification": "^3.3.1",
"react-native-reanimated": "^1.8.0",
@ -54,8 +54,8 @@
"react-native-splash-screen": "^3.2.0",
"react-native-vector-icons": "^6.6.0",
"react-native-webview": "^9.4.0",
"react-navigation-collapsible": "^5.5.0",
"react-navigation-header-buttons": "^3.0.5"
"react-navigation-collapsible": "^5.6.0",
"react-navigation-header-buttons": "^4.0.2"
},
"devDependencies": {
"@babel/core": "^7.9.6",

View file

@ -6,26 +6,20 @@ import {HeaderButton, HeaderButtons} from 'react-navigation-header-buttons';
import {withTheme} from "react-native-paper";
import * as Touchable from "react-native/Libraries/Components/Touchable/TouchableNativeFeedback.android";
const MaterialHeaderButton = (props: Object) => <HeaderButton
const MaterialHeaderButton = (props: Object) =>
<HeaderButton
{...props}
IconComponent={MaterialCommunityIcons}
iconSize={26}
color={props.color != null ? props.color : props.theme.colors.text}
background={Touchable.Ripple(props.theme.colors.ripple, true)}
{...props}
/>;
const MaterialHeaderButtons = (props: Object) => {
return (
<HeaderButtons
HeaderButtonComponent={withTheme(MaterialHeaderButton)}
OverflowIcon={
<MaterialCommunityIcons
name="dots-vertical"
size={26}
color={props.theme.colors.text}
/>
}
{...props}
HeaderButtonComponent={withTheme(MaterialHeaderButton)}
/>
);
};

View file

@ -6,16 +6,22 @@ import BasicLoadingScreen from "./BasicLoadingScreen";
import ErrorView from "./ErrorView";
import {ERROR_TYPE} from "../../utils/WebData";
import MaterialHeaderButtons, {Item} from '../Overrides/CustomHeaderButton';
import {HiddenItem} from "react-navigation-header-buttons";
import {Divider, HiddenItem, OverflowMenu} from "react-navigation-header-buttons";
import i18n from 'i18n-js';
import {Animated, BackHandler, Linking} from "react-native";
import {withCollapsible} from "../../utils/withCollapsible";
import MaterialCommunityIcons from "react-native-vector-icons/MaterialCommunityIcons";
import {withTheme} from "react-native-paper";
import type {CustomTheme} from "../../managers/ThemeManager";
import {StackNavigationProp} from "@react-navigation/stack";
import {Collapsible} from "react-navigation-collapsible";
type Props = {
navigation: Object,
navigation: StackNavigationProp,
theme: CustomTheme,
url: string,
customJS: string,
collapsibleStack: Object,
collapsibleStack: Collapsible,
onMessage: Function,
onScroll: Function,
showAdvancedControls: boolean,
@ -104,19 +110,28 @@ class WebViewScreen extends React.PureComponent<Props> {
<Item
title="refresh"
iconName="refresh"
onPress={this.onRefreshClicked}/>
<HiddenItem
title={i18n.t("general.goBack")}
iconName="arrow-left"
onPress={this.onGoBackClicked}/>
<HiddenItem
title={i18n.t("general.goForward")}
iconName="arrow-right"
onPress={this.onGoForwardClicked}/>
<HiddenItem
title={i18n.t("general.openInBrowser")}
iconName="web"
onPress={this.onOpenClicked}/>
onPress={this.onRefreshClicked}
/>
<OverflowMenu
style={{marginHorizontal: 10}}
OverflowIcon={
<MaterialCommunityIcons
name="dots-vertical"
size={26}
color={this.props.theme.colors.text}
/>}
>
<HiddenItem
title={i18n.t("general.goBack")}
onPress={this.onGoBackClicked}/>
<HiddenItem
title={i18n.t("general.goForward")}
onPress={this.onGoForwardClicked}/>
<Divider/>
<HiddenItem
title={i18n.t("general.openInBrowser")}
onPress={this.onOpenClicked}/>
</OverflowMenu>
</MaterialHeaderButtons>
);
}
@ -179,4 +194,4 @@ class WebViewScreen extends React.PureComponent<Props> {
}
}
export default withCollapsible(WebViewScreen);
export default withCollapsible(withTheme(WebViewScreen));

View file

@ -5,6 +5,7 @@ import {FlatList, Linking, Platform, View} from 'react-native';
import i18n from "i18n-js";
import AsyncStorageManager from "../../managers/AsyncStorageManager";
import {Avatar, Card, List, Title, withTheme} from 'react-native-paper';
import packageJson from "../../../package.json";
const links = {
appstore: 'https://apps.apple.com/us/app/campus-amicale-insat/id1477722148',
@ -217,7 +218,7 @@ class AboutScreen extends React.Component<Props, State> {
<Card style={{marginBottom: 10}}>
<Card.Title
title={"Campus"}
subtitle={"2.0.0"}
subtitle={packageJson.version}
left={this.getAppIcon}/>
<Card.Content>
<FlatList

View file

@ -9,7 +9,6 @@ import {stringMatchQuery} from "../../../utils/Search";
import ProximoListItem from "../../../components/Lists/Proximo/ProximoListItem";
import MaterialHeaderButtons, {Item} from "../../../components/Overrides/CustomHeaderButton";
import {withCollapsible} from "../../../utils/withCollapsible";
import CustomTabBar from "../../../components/Tabbar/CustomTabBar";
function sortPrice(a, b) {
return a.price - b.price;
@ -306,7 +305,6 @@ class ProximoListScreen extends React.Component<Props, State> {
<CustomModal onRef={this.onModalRef}>
{this.state.modalCurrentDisplayItem}
</CustomModal>
{/*$FlowFixMe*/}
<Animated.FlatList
data={this.listData}
extraData={this.state.currentSearchString + this.state.currentSortMode}
@ -320,7 +318,6 @@ class ProximoListScreen extends React.Component<Props, State> {
onScroll={onScroll}
contentContainerStyle={{
paddingTop: containerPaddingTop,
paddingBottom: CustomTabBar.TAB_BAR_HEIGHT
}}
scrollIndicatorInsets={{top: scrollIndicatorInsetTop}}
/>