Browse Source

Added proxiwash AF

keplyx 4 years ago
parent
commit
578e912927
2 changed files with 60 additions and 4 deletions
  1. 16
    3
      screens/Proxiwash/ProxiwashScreen.js
  2. 44
    1
      utils/AprilFoolsManager.js

+ 16
- 3
screens/Proxiwash/ProxiwashScreen.js View File

@@ -12,6 +12,7 @@ import HeaderButton from "../../components/HeaderButton";
12 12
 import ProxiwashListItem from "../../components/ProxiwashListItem";
13 13
 import ProxiwashConstants from "../../constants/ProxiwashConstants";
14 14
 import CustomModal from "../../components/CustomModal";
15
+import AprilFoolsManager from "../../utils/AprilFoolsManager";
15 16
 
16 17
 const DATA_URL = "https://etud.insa-toulouse.fr/~amicale_app/washinsa/washinsa.json";
17 18
 
@@ -229,19 +230,26 @@ class ProxiwashScreen extends React.Component<Props, State> {
229 230
     }
230 231
 
231 232
     createDataset(fetchedData: Object) {
233
+        let data = fetchedData;
234
+        if (AprilFoolsManager.getInstance().isAprilFoolsEnabled()) {
235
+            data = JSON.parse(JSON.stringify(fetchedData)); // Deep copy
236
+            AprilFoolsManager.getNewProxiwashDryerOrderedList(data.dryers);
237
+            AprilFoolsManager.getNewProxiwashWasherOrderedList(data.washers);
238
+        }
232 239
         this.fetchedData = fetchedData;
240
+
233 241
         return [
234 242
             {
235 243
                 title: i18n.t('proxiwashScreen.dryers'),
236 244
                 icon: 'tumble-dryer',
237
-                data: fetchedData.dryers === undefined ? [] : fetchedData.dryers,
245
+                data: data.dryers === undefined ? [] : data.dryers,
238 246
                 extraData: this.state,
239 247
                 keyExtractor: this.getDryersKeyExtractor
240 248
             },
241 249
             {
242 250
                 title: i18n.t('proxiwashScreen.washers'),
243 251
                 icon: 'washing-machine',
244
-                data: fetchedData.washers === undefined ? [] : fetchedData.washers,
252
+                data: data.washers === undefined ? [] : data.washers,
245 253
                 extraData: this.state,
246 254
                 keyExtractor: this.getWashersKeyExtractor
247 255
             },
@@ -387,7 +395,12 @@ class ProxiwashScreen extends React.Component<Props, State> {
387 395
      */
388 396
     getRenderItem({item, section}: Object) {
389 397
         const isMachineRunning = ProxiwashConstants.machineStates[item.state] === ProxiwashConstants.machineStates["EN COURS"];
390
-        const machineName = (section.title === i18n.t('proxiwashScreen.dryers') ? i18n.t('proxiwashScreen.dryer') : i18n.t('proxiwashScreen.washer')) + ' n°' + item.number;
398
+        let displayNumber = item.number;
399
+        if (AprilFoolsManager.getInstance().isAprilFoolsEnabled())
400
+            displayNumber = AprilFoolsManager.getProxiwashMachineDisplayNumber(parseInt(item.number));
401
+        const machineName = (section.title === i18n.t('proxiwashScreen.dryers') ?
402
+            i18n.t('proxiwashScreen.dryer') :
403
+            i18n.t('proxiwashScreen.washer')) + ' n°' + displayNumber;
391 404
         const isDryer = section.title === i18n.t('proxiwashScreen.dryers');
392 405
         const onPress = this.showModal.bind(this, machineName, item, isDryer);
393 406
         let width = item.donePercent !== '' ? (parseInt(item.donePercent)).toString() + '%' : 0;

+ 44
- 1
utils/AprilFoolsManager.js View File

@@ -9,6 +9,22 @@ export default class AprilFoolsManager {
9 9
 
10 10
     aprilFoolsEnabled: boolean;
11 11
 
12
+    static fakeMachineNumber = [
13
+        "",
14
+        "a",
15
+        "b",
16
+        "c",
17
+        "d",
18
+        "e",
19
+        "f",
20
+        "g",
21
+        "h",
22
+        "i",
23
+        "j",
24
+        "k",
25
+        "l",
26
+    ];
27
+
12 28
     constructor() {
13 29
         let today = new Date();
14 30
         this.aprilFoolsEnabled = (today.getDate() === 1 && today.getMonth() === 3);
@@ -25,13 +41,40 @@ export default class AprilFoolsManager {
25 41
     }
26 42
 
27 43
     static getFakeMenuItem(menu: Object) {
28
-        menu[1]["dishes"].splice(2, 0, {name: "Coq au vin"});
44
+        menu[1]["dishes"].splice(4, 0, {name: "Coq au vin"});
45
+        menu[1]["dishes"].splice(2, 0, {name: "Bat'Soupe"});
29 46
         menu[1]["dishes"].splice(1, 0, {name: "Pave de loup"});
30 47
         menu[1]["dishes"].splice(0, 0, {name: "Béranger à point"});
31 48
         menu[1]["dishes"].splice(0, 0, {name: "Pieds d'Arnaud"});
32 49
         return menu;
33 50
     }
34 51
 
52
+    static getNewProxiwashDryerOrderedList(dryers: Array<Object>) {
53
+        if (dryers !== undefined) {
54
+            let second = dryers[1];
55
+            dryers.splice(1, 1);
56
+            dryers.push(second);
57
+        }
58
+    }
59
+
60
+    static getNewProxiwashWasherOrderedList(washers: Array<Object>) {
61
+        if (washers !== undefined) {
62
+            let first = washers[0];
63
+            let second = washers[1];
64
+            let fifth = washers[4];
65
+            let ninth = washers[8];
66
+            washers.splice(8, 1, second);
67
+            washers.splice(4, 1, ninth);
68
+            washers.splice(1, 1, first);
69
+            washers.splice(0, 1, fifth);
70
+            // washers.push(fifth);
71
+        }
72
+    }
73
+
74
+    static getProxiwashMachineDisplayNumber(number: number) {
75
+        return AprilFoolsManager.fakeMachineNumber[number];
76
+    }
77
+
35 78
     static getAprilFoolsTheme(currentTheme: Object) {
36 79
         return {
37 80
             ...currentTheme,

Loading…
Cancel
Save