vbea пре 2 година
родитељ
комит
768713430b

+ 2 - 2
Strides-APP/android/app/version.properties

@@ -1,2 +1,2 @@
-#Fri Sep 08 17:38:18 CST 2023
-VERSION_CODE=311
+#Mon Sep 11 11:32:23 CST 2023
+VERSION_CODE=313

+ 4 - 3
Strides-APP/app/pages/alert/Notification.js

@@ -45,11 +45,11 @@ export default class Notification extends Component {
     this.props.navigation.addListener('blur', () => {
       this.isHide = true;
     });
-    BackHandler.addEventListener('hardwareBackPress', this.backPage)
+    //BackHandler.addEventListener('hardwareBackPress', this.backPage)
   }
 
   componentWillUnmount() {
-    BackHandler.removeEventListener("hardwareBackPress", this.backPage)
+    //BackHandler.removeEventListener("hardwareBackPress", this.backPage)
   }
 
   backPage = () => {
@@ -69,7 +69,8 @@ export default class Notification extends Component {
           lazy: false,
           lazyPreloadDistance: 1,
           ...this.tabBarStyle
-        }}>
+        }}
+        backBehavior={() => this.backPage()}>
         { this.pageAdapter.map((item, index) => 
           <Tab.Screen
             key={index}

+ 24 - 50
Strides-APP/app/pages/chargeV2/ChargeAdapter.js

@@ -4,11 +4,10 @@
  */
 import React, { Component } from 'react';
 import {createMaterialTopTabNavigator} from '@react-navigation/material-top-tabs';
-import { BackHandler, Pressable, RefreshControl, ScrollView, StyleSheet } from 'react-native';
+import { BackHandler, Pressable, StyleSheet } from 'react-native';
 import Charge from './TabCharge';
 import Reserve from './TabReserve';
 import TabInfos from './TabInfos';
-import { MyRefreshProps } from '../../components/ThemesConfig';
 import { QRResult } from '../charge/QRScan';
 import apiStation from '../../api/apiStation';
 import PagerUtil from './PagerUtil';
@@ -25,21 +24,6 @@ export const PagerList = {
   "tabExplore": "Explore"
 }
 
-const TabLayout = (refreshing, onPullRefresh, children) => (
-  <ScrollView
-    style={styles.container}
-    keyboardShouldPersistTaps={'handled'}
-    refreshControl={
-      <RefreshControl
-        {...MyRefreshProps()}
-        refreshing={refreshing}
-        onRefresh={onPullRefresh}
-      />
-    }>
-    {children}
-  </ScrollView>
-)
-
 export default class ChargeAdapter extends Component {
   constructor(props) {
     super(props);
@@ -53,11 +37,11 @@ export default class ChargeAdapter extends Component {
     this.pageAdapter = [{
       title: $t('charging.tabInfo'),
       name: "Info",
-      component: TabLayout(this.state.refreshing, () => this.onPullRefresh(), TabInfos)
+      component: TabInfos
     }, {
       title: $t('charging.tabCharge'),
       name: "Charge",
-      component: TabLayout(this.state.refreshing, () => this.onPullRefresh(), Charge)
+      component: Charge
     }/*, {
       title: $t('charging.tabReserve'),
       name: "Reserve",
@@ -106,7 +90,7 @@ export default class ChargeAdapter extends Component {
         this.canShowLoginDialog();
       });
     }
-    BackHandler.addEventListener('hardwareBackPress', this.backPage)
+    //BackHandler.addEventListener('hardwareBackPress', this.backPage)
     PagerUtil.addOnRefresh(this);
     // setTimeout(() => {
     //   this.changeTab(1)
@@ -130,7 +114,7 @@ export default class ChargeAdapter extends Component {
   componentWillUnmount() {
     QRResult.clearResult();
     PagerUtil.onDestory();
-    BackHandler.removeEventListener("hardwareBackPress", this.backPage)
+    //BackHandler.removeEventListener("hardwareBackPress", this.backPage)
   }
 
   backPage = () => {
@@ -264,37 +248,27 @@ export default class ChargeAdapter extends Component {
   render() {
     const Tab = createMaterialTopTabNavigator();
     return (
-      <ScrollView
+      <Tab.Navigator
         style={styles.container}
-        keyboardShouldPersistTaps={'handled'}
-        refreshControl={
-          <RefreshControl
-            {...MyRefreshProps()}
-            refreshing={this.state.refreshing}
-            onRefresh={() => this.onPullRefresh()}
+        screenOptions={{
+          lazy: false,
+          lazyPreloadDistance: 1,
+          ...this.tabBarStyle
+        }}
+        backBehavior={() => this.backPage()}
+        initialRouteName={PagerList.tabCharge}>
+        { this.pageAdapter.map((item, index) => 
+          <Tab.Screen
+            key={index}
+            name={item.name}
+            component={item.component}
+            options={{
+              title: item.title,
+              tabBarAllowFontScaling: false
+            }}
           />
-        }>
-        <Tab.Navigator
-          style={{minHeight: $vht(100)}}
-          screenOptions={{
-            lazy: false,
-            lazyPreloadDistance: 1,
-            ...this.tabBarStyle
-          }}
-          initialRouteName={PagerList.tabCharge}>
-          { this.pageAdapter.map((item, index) => 
-            <Tab.Screen
-              key={index}
-              name={item.name}
-              component={item.component}
-              options={{
-                title: item.title,
-                tabBarAllowFontScaling: false
-              }}
-            />
-          )}
-        </Tab.Navigator>
-      </ScrollView>
+        )}
+      </Tab.Navigator>
     );
   }
 }

+ 24 - 7
Strides-APP/app/pages/chargeV2/TabCharge.js

@@ -3,7 +3,7 @@
  * @邠心vbe on 2023/02/06
  */
 import React, { Component } from 'react';
-import { View, StyleSheet } from 'react-native';
+import { StyleSheet, ScrollView, RefreshControl } from 'react-native';
 import apiCharge from '../../api/apiCharge';
 import Dialog from '../../components/Dialog';
 import { PageList } from '../Router';
@@ -15,6 +15,7 @@ import StepStartView from '../charging/StepStartView';
 import StepChargeView from '../charging/StepChargeView';
 import utils from '../../utils/utils';
 import { PaymentDefault } from '../payment/PaymentConfig';
+import { MyRefreshProps } from '../../components/ThemesConfig';
 
 export default class TabCharge extends Component {
   constructor(props) {
@@ -22,7 +23,7 @@ export default class TabCharge extends Component {
     this.state = {
       available: false,
       isPrivate: false,
-      refreshId: 0,
+      refreshing: false,
       isStart: false,
       isPending: false,
       isCharging: false,
@@ -59,6 +60,7 @@ export default class TabCharge extends Component {
     console.log("Charge刷新", this.props.route.name);
     const info = PagerUtil.getStationInfo();
     this.setState({
+      refreshing: false,
       stationInfo: info
     }, () => {
       this.init();
@@ -67,6 +69,13 @@ export default class TabCharge extends Component {
     });
   }
 
+  onPullRefresh() {
+    this.setState({
+      refreshing: true
+    })
+    PagerUtil.setBackRefreshing();
+  }
+
   init() {
     console.log("Charge刷新", "init");
     this.onMethodChanged();
@@ -527,7 +536,17 @@ export default class TabCharge extends Component {
 
   render() {
     return (
-      <View style={styles.container}>
+      <ScrollView
+        style={styles.container}
+        keyboardShouldPersistTaps={'handled'}
+        contentContainerStyle={$padding(0, 16)}
+        refreshControl={
+          <RefreshControl
+            {...MyRefreshProps()}
+            refreshing={this.state.refreshing}
+            onRefresh={() => this.onPullRefresh()}
+          />
+        }>
         { this.state.isAuthentic //是否扫码认证
         ? <StepChargeView
             isStart={this.state.isStart} //是否开始充电
@@ -562,16 +581,14 @@ export default class TabCharge extends Component {
           onConfirm={() => this.enterStatioinId()}
           onClose={() => this.closeError()}
         />
-      </View>
+      </ScrollView>
     );
   }
 }
 
 const styles = StyleSheet.create({
   container: {
-    flex: 1,
-    paddingLeft: 16,
-    paddingRight: 16
+    flex: 1
   },
   title: {
     color: '#000',

+ 26 - 3
Strides-APP/app/pages/chargeV2/TabInfos.js

@@ -3,14 +3,16 @@
  * @邠心vbe on 2023/02/06
  */
 import React, { Component } from 'react';
-import { View, Text, StyleSheet } from 'react-native';
+import { View, StyleSheet, ScrollView, RefreshControl } from 'react-native';
 import TextView from '../../components/TextView';
 import PagerUtil from './PagerUtil';
+import { MyRefreshProps } from '../../components/ThemesConfig';
 
 export default class TabInfos extends Component {
   constructor(props) {
     super(props);
     this.state = {
+      refreshing: false,
       stationInfo: {}
     };
   }
@@ -23,10 +25,18 @@ export default class TabInfos extends Component {
   onRefresh() {
     console.log("info刷新", this.props.route.name);
     this.setState({
+      refreshing: false,
       stationInfo: PagerUtil.getStationInfo()
     });
   }
 
+  onPullRefresh() {
+    this.setState({
+      refreshing: true
+    })
+    PagerUtil.setBackRefreshing();
+  }
+
   getOperatingHours() {
     if (this.state.stationInfo?.endlessService) {
       return "24/7";
@@ -49,7 +59,17 @@ export default class TabInfos extends Component {
   
   render() {
     return (
-      <View style={$padding(0, 16)}>
+      <ScrollView
+        style={styles.container}
+        keyboardShouldPersistTaps={'handled'}
+        contentContainerStyle={$padding(0, 16)}
+        refreshControl={
+          <RefreshControl
+            {...MyRefreshProps()}
+            refreshing={this.state.refreshing}
+            onRefresh={() => this.onPullRefresh()}
+          />
+        }>
         <TextView style={styles.title}>{$t('charging.siteName')}</TextView>
         <View style={styles.infoView}>
           <TextView style={styles.infoText}>{this.state.stationInfo?.name}</TextView>
@@ -70,12 +90,15 @@ export default class TabInfos extends Component {
         <View style={styles.infoView}>
           <TextView style={styles.infoText}>{this.state.stationInfo?.additionalNotes}</TextView>
         </View>
-      </View>
+      </ScrollView>
     );
   }
 }
 
 const styles = StyleSheet.create({
+  container: {
+    flex: 1
+  },
   title: {
     color: '#000',
     fontSize: 14,