From 564e30ce074110296e59c08d78b40d31277498d6 Mon Sep 17 00:00:00 2001 From: Vincent BRIDIER Date: Mon, 1 Sep 2025 19:40:04 +0200 Subject: [PATCH 1/2] feat: update readme --- ComApp/README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/ComApp/README.md b/ComApp/README.md index 9fef395..304a8f1 100644 --- a/ComApp/README.md +++ b/ComApp/README.md @@ -1,4 +1,18 @@ # ComApp + +# Run with Windows + WSL + +- Install Android studio and create a Virtual Device +- Launch emulator +- In WSL : +```bash +adb reverse tcp:8081 tcp:8081 +npx react-native start // TO start metro +npx react-native run-android --deviceId emulator-5554 // TO build and run to this Emulator +``` + +You can set internet proxy in emulator params + ## Dependencies - i18n-js - @react-native-community/netinfo From 3d41a78dadf6e988fb74e614b2090cd873467ce4 Mon Sep 17 00:00:00 2001 From: Vincent BRIDIER Date: Thu, 4 Sep 2025 20:30:20 +0200 Subject: [PATCH 2/2] feat: Delete store.ldc.fr deps + remove useless MySpace feature --- ComApp/CHANGELOG.md | 7 ++ ComApp/android/app/build.gradle | 2 +- ComApp/src/App.js | 35 ---------- ComApp/src/App/Controllers/SyncController.js | 72 -------------------- ComApp/src/App/Store/Reducers/AppReducer.js | 15 ---- ComApp/src/App/Views/HomeScreen.js | 15 ---- ComApp/src/App/Views/InstallScreen.js | 1 - ComApp/src/App/Views/LoginScreen.js | 1 - ComApp/src/App/Views/MySpaceScreen.js | 24 ------- ComApp/src/App/Views/SyncScreen.js | 59 ++-------------- ComApp/src/Resources/Locales/de.json | 3 +- ComApp/src/Resources/Locales/en.json | 3 +- ComApp/src/Resources/Locales/fr.json | 3 +- 13 files changed, 15 insertions(+), 225 deletions(-) delete mode 100644 ComApp/src/App/Views/MySpaceScreen.js diff --git a/ComApp/CHANGELOG.md b/ComApp/CHANGELOG.md index 7d1cbe9..2f4c18e 100644 --- a/ComApp/CHANGELOG.md +++ b/ComApp/CHANGELOG.md @@ -1,5 +1,12 @@ # CHANGELOG +## 4.0.0 + +### Évolution - 4.0.0 + +- Delete store.ldc.fr dependance +- Remove useless MySpace feature + ## 3.2.1 ### Évolution - 3.2.1 diff --git a/ComApp/android/app/build.gradle b/ComApp/android/app/build.gradle index d872a7c..a96bf27 100644 --- a/ComApp/android/app/build.gradle +++ b/ComApp/android/app/build.gradle @@ -139,7 +139,7 @@ android { minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode 1 - versionName "3.2.1" + versionName "4.0.0" buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString() if (isNewArchitectureEnabled()) { diff --git a/ComApp/src/App.js b/ComApp/src/App.js index 581a2f5..654798a 100644 --- a/ComApp/src/App.js +++ b/ComApp/src/App.js @@ -36,7 +36,6 @@ import DirectoriesScreen from './App/Views/DirectoriesScreen'; import HomeScreen from './App/Views/HomeScreen'; import InstallScreen from './App/Views/InstallScreen'; import LoginScreen from './App/Views/LoginScreen'; -import MySpaceScreen from './App/Views/MySpaceScreen'; import OnlyVideosScreen from './App/Views/OnlyVideosScreen'; import PDFScreen from './App/Views/PDFScreen'; import SearchScreen from './App/Views/SearchScreen'; @@ -246,15 +245,6 @@ class App extends React.Component { - {store.getState().app.ShowIsActive === '1' && ( - - navigation.navigation.navigate('MySpaceScreen') - } - style={{ marginRight: 25 }}> - - - )} navigation.navigation.navigate('ContactScreen', { @@ -378,31 +368,6 @@ class App extends React.Component { this.LogoTitle(navigation, i18n.t('app.results_search')), })} /> - ({ - headerTitle: () => - this.LogoTitle(navigation, i18n.t('app.my_space')), - headerRight: () => ( - - { - const folder = store - .getState() - .directories.treeview.filter(tmp => tmp.id === 1); - navigation.navigation.navigate('DirectoriesScreen', { - folder: folder, - }); - }} - style={{ marginRight: 15 }}> - - - - ), - })} - /> diff --git a/ComApp/src/App/Controllers/SyncController.js b/ComApp/src/App/Controllers/SyncController.js index dd50fdb..ec94f39 100644 --- a/ComApp/src/App/Controllers/SyncController.js +++ b/ComApp/src/App/Controllers/SyncController.js @@ -3,8 +3,6 @@ import axios from 'axios'; // Network Infos import NetInfo from '@react-native-community/netinfo'; -// Application infos -import * as Application from 'expo-application'; // Database import { Contact, Document, SendBrochure, Setting } from '../../Database'; import { ContactData } from '../Models/Contact'; @@ -20,32 +18,10 @@ class SyncController { return test.value; } - getAppStoreUUID() { - const test = Setting.get('AppStoreUUID'); - if (test === null) { - return 'noset'; - } - return test.value; - } - async checkConnection() { return NetInfo.fetch(); } - async getVersion() { - return axios({ - method: 'GET', - // * version - url: this.getUrlBo() + '/api/version', - responseType: 'json', - params: { - token: api_token, - app_uuid: this.getAppStoreUUID(), - app_version: Application.nativeApplicationVersion, - }, - }); - } - async getUsers() { return axios({ method: 'GET', @@ -179,24 +155,6 @@ class SyncController { Document.update({ id: id, updated_at: date.toString() }, true); } - updateVersion(version) { - const localVersion = Setting.get('version'); - if (localVersion === null) { - Setting.add({ key: 'version', value: version }); - } else { - Setting.update({ id: localVersion.id, key: 'version', value: version }); - } - } - - updateShowIsActive(value) { - const local = Setting.get('ShowIsActive'); - if (local === null) { - Setting.add({ key: 'ShowIsActive', value: value }); - } else { - Setting.update({ id: local.id, key: 'ShowIsActive', value: value }); - } - } - /** * @param {number} app_user_id * @returns @@ -229,36 +187,6 @@ class SyncController { return false; } - needSync(callback) { - NetInfo.fetch().then(state => { - if (state.isConnected) { - axios({ - method: 'get', - url: this.getUrlBo() + '/version', - responseType: 'json', - params: { - token: api_token, - }, - }) - .then(response => { - const localVersion = Setting.get('version'); - if ( - localVersion === null || - localVersion.value !== response.data.version - ) { - return callback(); - } - return false; - }) - .catch(function (error) { - console.error(error); - }); - } - return false; - }); - return false; - } - setInstalled(remove = false) { if (remove) { Setting.delete('installed'); diff --git a/ComApp/src/App/Store/Reducers/AppReducer.js b/ComApp/src/App/Store/Reducers/AppReducer.js index c6f471b..28af7c7 100644 --- a/ComApp/src/App/Store/Reducers/AppReducer.js +++ b/ComApp/src/App/Store/Reducers/AppReducer.js @@ -7,10 +7,8 @@ const initialState = { locale: 'fr', currentUser: {}, logged: false, - syncVersion: 0, forceSync: false, currentOpenedDoc: {}, - ShowIsActive: 0, HomeBtns: {}, mainColor: '#D4021D', }; @@ -19,14 +17,12 @@ const reducer = (state = initialState, action) => { let saved; switch (action.type) { case 'INIT': - let ShowIsActive = Setting.get('ShowIsActive'); let MainColor = Setting.get('MainColor'); saved = Setting.get('isSetup'); return { ...state, isSetup: saved === undefined ? false : saved?.value === 'true' ? true : false, - ShowIsActive: ShowIsActive ? ShowIsActive?.value : false, mainColor: MainColor === undefined ? initialState.mainColor @@ -101,17 +97,6 @@ const reducer = (state = initialState, action) => { ...state, currentOpenedDoc: action.data, }; - case 'UPDATE_VERSION': - return { - ...state, - syncVersion: action.data, - }; - case 'UPDATE_SHOW_IS_ACTIVE': - SyncController.updateShowIsActive(action.data); - return { - ...state, - ShowIsActive: action.data, - }; case 'SEND_BROCHURE': SendBrochure.add(action.data); return state; diff --git a/ComApp/src/App/Views/HomeScreen.js b/ComApp/src/App/Views/HomeScreen.js index b472994..129d4b7 100644 --- a/ComApp/src/App/Views/HomeScreen.js +++ b/ComApp/src/App/Views/HomeScreen.js @@ -21,8 +21,6 @@ import styles from '../../Resources/Styles/HomeStyle'; import i18n from '../../I18n'; // FileSytem import * as FileSystem from 'expo-file-system'; -// NetInfo -import NetInfo from '@react-native-community/netinfo'; // Controller import SyncController from '../Controllers/SyncController'; @@ -63,19 +61,6 @@ class HomeScreen extends React.Component { SplashScreen.hideAsync(); } - unsubscribe() { - NetInfo.addEventListener(state => { - if (state.isConnected === true) { - let seconds = - Math.abs(new Date(this.state.lastSyncCall) - Date.now()) / 1000; - if (seconds > 30) { - this.setState({ lastSyncCall: Date.now() }); - SyncController.needSync(this.openSync.bind(this)); - } - } - }); - } - openSync() { this.props.navigation.navigate('SyncScreen', { forceSync: true }); } diff --git a/ComApp/src/App/Views/InstallScreen.js b/ComApp/src/App/Views/InstallScreen.js index 1b8e460..0a53e2f 100644 --- a/ComApp/src/App/Views/InstallScreen.js +++ b/ComApp/src/App/Views/InstallScreen.js @@ -140,7 +140,6 @@ class InstallScreen extends React.Component { _.forEach(response.data.datas, function (value, key) { switch (key) { case 'MainColor': - case 'AppStoreUUID': Setting.upsert({ key: key, value: value }); break; case 'SquaredLogo': diff --git a/ComApp/src/App/Views/LoginScreen.js b/ComApp/src/App/Views/LoginScreen.js index 6d8b18f..a8e03e1 100644 --- a/ComApp/src/App/Views/LoginScreen.js +++ b/ComApp/src/App/Views/LoginScreen.js @@ -235,7 +235,6 @@ class LoginScreen extends React.Component { _.forEach(response.data.datas, function (value, key) { switch (key) { case 'MainColor': - case 'AppStoreUUID': Setting.upsert({ key: key, value: value }); break; case 'SquaredLogo': diff --git a/ComApp/src/App/Views/MySpaceScreen.js b/ComApp/src/App/Views/MySpaceScreen.js deleted file mode 100644 index 268cec4..0000000 --- a/ComApp/src/App/Views/MySpaceScreen.js +++ /dev/null @@ -1,24 +0,0 @@ -import React from 'react'; -import { Text, View } from 'react-native'; -// Redux -import { connect } from 'react-redux'; -// Style -import styles from '../../Resources/Styles/MySpaceStyle'; - -function mapStateToProps(state) { - return { - documents: state.app.documents, - }; -} - -class MySpaceScreen extends React.Component { - render() { - return ( - - Mon Espace - - ); - } -} - -export default connect(mapStateToProps)(MySpaceScreen); diff --git a/ComApp/src/App/Views/SyncScreen.js b/ComApp/src/App/Views/SyncScreen.js index a740aae..5e5413a 100644 --- a/ComApp/src/App/Views/SyncScreen.js +++ b/ComApp/src/App/Views/SyncScreen.js @@ -30,7 +30,6 @@ import * as FileSystem from 'expo-file-system'; function mapStateToProps(state) { return { - syncVersion: state.app.syncVersion, currentUser: state.app.currentUser, locale: state.locale.locale, mainColor: state.app.mainColor, @@ -47,17 +46,7 @@ const mapDispatchToProps = dispatch => { initDocuments: (lang, directories) => dispatch(initDocuments(lang, directories)), initContact: currentUser => dispatch(initContact(currentUser)), - initBtns: () => dispatch({ type: 'INIT_HOME_BTNS' }), - updateVersion: version => - dispatch({ - type: 'UPDATE_VERSION', - data: version, - }), - updateShowIsActive: value => - dispatch({ - type: 'UPDATE_SHOW_IS_ACTIVE', - data: value, - }), + initBtns: () => dispatch({ type: 'INIT_HOME_BTNS' }) }; }; @@ -68,7 +57,6 @@ class SyncScreen extends React.Component { downloadProgress: 0, downloadingFile: false, processing: false, - newApp: false, forced: false, }; @@ -159,20 +147,6 @@ class SyncScreen extends React.Component { return; } this.setState({ processing: true }); - - // * --- getVersion - const resVersion = await getCall( - SyncController.getVersion().then(res => { - return res.data; - }), - ); - if (errorStatus) { - return false; - } - this.props.updateVersion(resVersion.version); - this.props.updateShowIsActive(resVersion.ShowIsActive); - this.setState({ newApp: resVersion.newApp }); - // * --- getUsers this.setState({ progress: 0.1, @@ -322,7 +296,6 @@ class SyncScreen extends React.Component { } downloadDocuments(docs, toDelete) { - const version = this.props.syncVersion; this.getToDL(docs, 0).then(toDownload => { if (toDownload.length > 0) { this.setState({ progress: 0.6 }); @@ -330,7 +303,7 @@ class SyncScreen extends React.Component { this.download(toDownload, docProgress, 0).then(status => { if (status === true) { this.deleteFile(toDelete, 0).then(delStatus => { - this.finishSync(version); + this.finishSync(); }); } else { this.setState({ @@ -341,7 +314,7 @@ class SyncScreen extends React.Component { } else { this.deleteFile(toDelete, 0).then(status => { this.setState({ progress: 1 }); - this.finishSync(version); + this.finishSync(); }); } }); @@ -445,7 +418,7 @@ class SyncScreen extends React.Component { } } - finishSync(version) { + finishSync() { this.props.init(); this.props.initUsers(); this.props.initContact(this.props.currentUser); @@ -455,34 +428,10 @@ class SyncScreen extends React.Component { if (this.state.forced) { SyncController.setInstalled(); } - SyncController.updateVersion(version); this.setState({ txtStep: i18n.t('sync_s.update_completed') + '.', processing: false, }); - if (this.state.newApp === true) { - const appUUID = SyncController.getAppStoreUUID(); - const url = 'https://store.ldc.fr' + '/app/' + appUUID; - Alert.alert( - 'LDC Store', - i18n.t('sync_s.new_app_version'), - [ - { - text: i18n.t('global.cancel'), - onPress: () => console.debug('Cancel Pressed'), - style: 'cancel', - }, - { - text: i18n.t('sync_s.open_store'), - onPress: () => - Linking.openURL(url).catch(err => - console.error('An error occurred', err), - ), - }, - ], - { cancelable: false }, - ); - } } /** diff --git a/ComApp/src/Resources/Locales/de.json b/ComApp/src/Resources/Locales/de.json index 276bc2b..5791088 100644 --- a/ComApp/src/Resources/Locales/de.json +++ b/ComApp/src/Resources/Locales/de.json @@ -48,8 +48,7 @@ "folders": "Ordner", "video": "Video", "contact_details": "Kontaktdaten", - "results_search": "Suchergebnisse", - "my_space": "Mein Raum" + "results_search": "Suchergebnisse" }, "login_s": { "username": "Benutzername", diff --git a/ComApp/src/Resources/Locales/en.json b/ComApp/src/Resources/Locales/en.json index f09d0f6..d2f22be 100644 --- a/ComApp/src/Resources/Locales/en.json +++ b/ComApp/src/Resources/Locales/en.json @@ -48,8 +48,7 @@ "folders": "Folders", "video": "Video", "contact_details": "Contact information", - "results_search": "Search results", - "my_space": "Personal Dashboard" + "results_search": "Search results" }, "login_s": { "username": "Username", diff --git a/ComApp/src/Resources/Locales/fr.json b/ComApp/src/Resources/Locales/fr.json index 4e5d834..447a95d 100644 --- a/ComApp/src/Resources/Locales/fr.json +++ b/ComApp/src/Resources/Locales/fr.json @@ -47,8 +47,7 @@ "folders": "Dossiers", "video": "Vidéo", "contact_details": "Détails du contact", - "results_search": "Résultat(s) de votre recherche", - "my_space": "Mon espace" + "results_search": "Résultat(s) de votre recherche" }, "login_s": { "username": "Identifiant",