@situm/react-native 3.0.0-beta.2 → 3.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/README.md +5 -9
  2. package/android/.gradle/5.6.4/fileHashes/fileHashes.lock +0 -0
  3. package/lib/commonjs/utils/requestPermission.js +12 -12
  4. package/lib/commonjs/utils/requestPermission.js.map +1 -1
  5. package/lib/commonjs/wayfinding/components/MapView.js +1 -1
  6. package/lib/commonjs/wayfinding/components/MapView.js.map +1 -1
  7. package/lib/commonjs/wayfinding/hooks/index.js +18 -9
  8. package/lib/commonjs/wayfinding/hooks/index.js.map +1 -1
  9. package/lib/commonjs/wayfinding/store/index.js +117 -89
  10. package/lib/commonjs/wayfinding/store/index.js.map +1 -1
  11. package/lib/commonjs/wayfinding/store/utils.js +16 -10
  12. package/lib/commonjs/wayfinding/store/utils.js.map +1 -1
  13. package/lib/module/utils/requestPermission.js +12 -12
  14. package/lib/module/utils/requestPermission.js.map +1 -1
  15. package/lib/module/wayfinding/components/MapView.js +1 -1
  16. package/lib/module/wayfinding/components/MapView.js.map +1 -1
  17. package/lib/module/wayfinding/hooks/index.js +18 -10
  18. package/lib/module/wayfinding/hooks/index.js.map +1 -1
  19. package/lib/module/wayfinding/store/index.js +116 -89
  20. package/lib/module/wayfinding/store/index.js.map +1 -1
  21. package/lib/module/wayfinding/store/utils.js +13 -8
  22. package/lib/module/wayfinding/store/utils.js.map +1 -1
  23. package/lib/typescript/src/utils/requestPermission.d.ts.map +1 -1
  24. package/lib/typescript/src/wayfinding/hooks/index.d.ts +2 -1
  25. package/lib/typescript/src/wayfinding/hooks/index.d.ts.map +1 -1
  26. package/lib/typescript/src/wayfinding/store/index.d.ts +9 -0
  27. package/lib/typescript/src/wayfinding/store/index.d.ts.map +1 -1
  28. package/lib/typescript/src/wayfinding/store/utils.d.ts +6 -1
  29. package/lib/typescript/src/wayfinding/store/utils.d.ts.map +1 -1
  30. package/package.json +5 -6
  31. package/src/sdk/types/index.d.ts +18 -18
  32. package/src/utils/requestPermission.ts +21 -12
  33. package/src/wayfinding/components/MapView.tsx +1 -1
  34. package/src/wayfinding/hooks/index.ts +23 -9
  35. package/src/wayfinding/store/index.tsx +76 -48
  36. package/src/wayfinding/store/utils.ts +18 -8
  37. package/android/.gradle/vcs-1/gc.properties +0 -0
  38. package/android/.idea/android.iml +0 -9
  39. package/android/.idea/gradle.xml +0 -13
  40. package/android/.idea/modules.xml +0 -8
  41. package/android/.idea/vcs.xml +0 -6
  42. package/android/.idea/workspace.xml +0 -63
  43. package/android/local.properties +0 -8
@@ -11,24 +11,30 @@ const checkIOSPermissions = async () => {
11
11
  let granted = await request(PERMISSIONS.IOS.LOCATION_WHEN_IN_USE);
12
12
 
13
13
  if (granted === RESULTS.GRANTED) {
14
- console.info("LOCATION_WHEN_IN_USE permission granted");
14
+ console.info(
15
+ "Situm > permissionns > LOCATION_WHEN_IN_USE permission granted"
16
+ );
15
17
 
16
18
  //@ts-ignore
17
19
  if (parseInt(Platform.Version, 10) > 12) {
18
20
  granted = await request(PERMISSIONS.IOS.BLUETOOTH_PERIPHERAL);
19
21
 
20
22
  if (granted === RESULTS.GRANTED) {
21
- console.info("BLUETOOTH_PERIPHERAL permission granted");
23
+ console.info(
24
+ "Situm > permissionns > BLUETOOTH_PERIPHERAL permission granted"
25
+ );
22
26
  return true;
23
27
  } else {
24
- throw "BLUETOOTH_PERIPHERAL permission not granted";
28
+ throw "Situm > permissionns > BLUETOOTH_PERIPHERAL permission not granted";
25
29
  }
26
30
  } else {
27
- console.warn("BLUETOOTH_PERIPHERAL permissions not required");
31
+ console.warn(
32
+ "Situm > permissionns > BLUETOOTH_PERIPHERAL permissions not required"
33
+ );
28
34
  return true;
29
35
  }
30
36
  } else {
31
- throw "ACCESS_FINE_LOCATION denied";
37
+ throw "Situm > permissionns > ACCESS_FINE_LOCATION denied";
32
38
  }
33
39
  };
34
40
 
@@ -36,7 +42,7 @@ const checkAndroidPermissions = async () => {
36
42
  let granted;
37
43
  //@ts-ignore
38
44
  if (Platform.Version > 30) {
39
- console.log("ANDROID VERSION > 30");
45
+ console.log("Situm > permissionns > ANDROID VERSION > 30");
40
46
  granted = await requestMultiple([
41
47
  PERMISSIONS.ANDROID.ACCESS_FINE_LOCATION,
42
48
  PERMISSIONS.ANDROID.BLUETOOTH_CONNECT,
@@ -49,21 +55,21 @@ const checkAndroidPermissions = async () => {
49
55
  granted["android.permission.BLUETOOTH_SCAN"] === RESULTS.GRANTED
50
56
  ) {
51
57
  console.info(
52
- "ACCESS_FINE_LOCATION, BLUETOOTH_CONNECT and BLUETOOTH_SCAN permissions granted"
58
+ "Situm > permissionns > ACCESS_FINE_LOCATION, BLUETOOTH_CONNECT and BLUETOOTH_SCAN permissions granted"
53
59
  );
54
60
  return true;
55
61
  }
56
62
 
57
- throw "ACCESS_FINE_LOCATION, BLUETOOTH_CONNECT and BLUETOOTH_SCAN permissions not granted";
63
+ throw "Situm > permissionns > ACCESS_FINE_LOCATION, BLUETOOTH_CONNECT and BLUETOOTH_SCAN permissions not granted";
58
64
  } else {
59
65
  console.info("ANDROID VERSION < 30");
60
66
  granted = await request(PERMISSIONS.ANDROID.ACCESS_FINE_LOCATION);
61
67
 
62
68
  if (granted === RESULTS.GRANTED) {
63
- console.info("ACCESS_FINE_LOCATION granted");
69
+ console.info("Situm > permissionns > ACCESS_FINE_LOCATION granted");
64
70
  return true;
65
71
  } else {
66
- throw "ACCESS_FINE_LOCATION permission not granted";
72
+ throw "Situm > permissionns > ACCESS_FINE_LOCATION permission not granted";
67
73
  }
68
74
  }
69
75
  };
@@ -71,7 +77,10 @@ const checkAndroidPermissions = async () => {
71
77
  const requestPermission = () =>
72
78
  // eslint-disable-next-line no-async-promise-executor
73
79
  new Promise<void>(async (resolve, reject) => {
74
- console.log("Retrieving permissions for platform " + Platform.OS);
80
+ console.log(
81
+ "Situm > permissionns > Retrieving permissions for platform " +
82
+ Platform.OS
83
+ );
75
84
  if (Platform.OS === "ios") {
76
85
  await checkIOSPermissions()
77
86
  .then(() => resolve())
@@ -88,7 +97,7 @@ const requestPermission = () =>
88
97
  });
89
98
  }
90
99
 
91
- reject(`Platform ${Platform.OS} not supported`);
100
+ reject(`Situm > permissionns > Platform ${Platform.OS} not supported`);
92
101
  });
93
102
 
94
103
  export default requestPermission;
@@ -193,7 +193,7 @@ const MapView = React.forwardRef<MapViewRef, MapViewProps>(
193
193
  }
194
194
  sendMessageToViewer(webViewRef.current, Mapper.selectPoi(poiId));
195
195
  },
196
- [pois, navigation.status]
196
+ [pois, navigation?.status]
197
197
  );
198
198
 
199
199
  useImperativeHandle(
@@ -1,5 +1,5 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { useEffect, useRef, useState } from "react";
2
+ import { useContext, useEffect, useRef, useState } from "react";
3
3
 
4
4
  import {
5
5
  type Building,
@@ -41,6 +41,7 @@ import {
41
41
  setPois,
42
42
  setSdkInitialized,
43
43
  State,
44
+ UseSitumContext,
44
45
  } from "../store/index";
45
46
  import { useDispatch, useSelector } from "../store/utils";
46
47
 
@@ -63,7 +64,7 @@ export const useCallbackRef = <T>(fn: T, deps: any[]) => {
63
64
  return fnRef;
64
65
  };
65
66
 
66
- const useSitum = () => {
67
+ export const useSitumInternal = () => {
67
68
  const dispatch = useDispatch();
68
69
  const isSdkInitialized = useSelector(selectIsSdkInitialized);
69
70
  const user = useSelector(selectUser);
@@ -142,7 +143,7 @@ const useSitum = () => {
142
143
  // Cartography
143
144
  const initializeBuildings = async () =>
144
145
  new Promise<Building[]>((resolve, reject) => {
145
- console.debug("Retrieving buildings from Situm API");
146
+ console.debug("Situm > hook > Retrieving buildings from Situm API");
146
147
 
147
148
  SitumPlugin.fetchBuildings(
148
149
  (buildingArray: Building[]) => {
@@ -154,7 +155,7 @@ const useSitum = () => {
154
155
  console.error(
155
156
  `Situm > hook > Could not retrieve buildings: ${_error}`
156
157
  );
157
- reject(`Could not retrieve buildings: ${_error}`);
158
+ reject(`Situm > hook> Could not retrieve buildings: ${_error}`);
158
159
  dispatch(setError({ message: _error, code: 3011 } as SDKError));
159
160
  }
160
161
  );
@@ -236,11 +237,12 @@ const useSitum = () => {
236
237
  },
237
238
  locationOptions
238
239
  );
239
- console.debug(`Successfully started positioning`);
240
+ console.debug(`Situm > hook > Successfully started positioning`);
240
241
  };
241
242
 
242
243
  const stopPositioning = async () => {
243
- console.debug(`Stopping positioning ...`);
244
+ console.debug(`Situm > hook > Stopping positioning…`);
245
+
244
246
  SitumPlugin.stopPositioning((success: boolean) => {
245
247
  if (success) {
246
248
  dispatch(resetLocation());
@@ -258,7 +260,8 @@ const useSitum = () => {
258
260
  to: Position,
259
261
  directionsOptions?: any
260
262
  ): Promise<State["directions"]> => {
261
- console.debug("Requesting directions");
263
+ console.debug("Situm > hook > Requesting directions");
264
+
262
265
  const fromPoint = {
263
266
  floorIdentifier: from.floorIdentifier,
264
267
  buildingIdentifier: from.buildingIdentifier,
@@ -306,7 +309,7 @@ const useSitum = () => {
306
309
 
307
310
  if (!poiDestination || (!poiOrigin && originId !== -1) || lockDirections) {
308
311
  console.debug(
309
- `Situm > hook >Could not compute route for origin: ${originId} or destination: ${destinationId} (lockDirections: ${lockDirections})`
312
+ `Situm > hook > Could not compute route for origin: ${originId} or destination: ${destinationId} (lockDirections: ${lockDirections})`
310
313
  );
311
314
  return;
312
315
  }
@@ -363,6 +366,7 @@ const useSitum = () => {
363
366
  originId: number;
364
367
  updateRoute?: boolean;
365
368
  }) => {
369
+ stopNavigation();
366
370
  calculateRoute({
367
371
  originId,
368
372
  destinationId,
@@ -413,7 +417,7 @@ const useSitum = () => {
413
417
  };
414
418
 
415
419
  const stopNavigation = (): void => {
416
- console.debug("Stopping navigation");
420
+ console.debug("Situm > hook > Stopping navigation");
417
421
  if (!navigation || navigation.status === NavigationStatus.STOP) {
418
422
  return;
419
423
  }
@@ -475,4 +479,14 @@ const useSitum = () => {
475
479
  };
476
480
  };
477
481
 
482
+ const useSitum = () => {
483
+ const context = useContext(UseSitumContext);
484
+
485
+ if (!context) {
486
+ throw new Error("Situm > hook > No SitumProvider found.");
487
+ }
488
+
489
+ return context.useSitum;
490
+ };
491
+
478
492
  export default useSitum;
@@ -10,7 +10,8 @@ import {
10
10
  SDKError,
11
11
  SDKNavigation,
12
12
  } from "../../sdk/types/index.d";
13
- import { createReducer } from "./utils";
13
+ import { useSitumInternal } from "../hooks";
14
+ import { createStore } from "./utils";
14
15
 
15
16
  // TODO: add types
16
17
  export type Directions = any;
@@ -52,48 +53,51 @@ export const SitumContext = createContext<
52
53
  { state: State; dispatch: React.Dispatch<(s: State) => State> } | undefined
53
54
  >(undefined);
54
55
 
55
- const Reducer = createReducer<State>({
56
- setWebViewRef: (state: State, payload: State["webViewRef"]) => {
57
- return { ...state, webViewRef: payload };
58
- },
59
- setSdkInitialized: (state: State, payload: State["sdkInitialized"]) => {
60
- return { ...state, sdkInitialized: payload };
61
- },
62
- setAuth: (state: State, payload: State["user"]) => {
63
- return { ...state, user: payload };
64
- },
65
- setLocation: (state: State, payload: State["location"]) => {
66
- return { ...state, location: payload };
67
- },
68
- setLocationStatus: (state: State, payload: LocationStatusName) => {
69
- return { ...state, location: { ...state.location, status: payload } };
70
- },
71
- resetLocation: (state: State) => {
72
- return {
73
- ...state,
74
- location: initialState.location,
75
- };
76
- },
77
- setBuildings: (state: State, payload: State["buildings"]) => {
78
- return { ...state, buildings: payload };
79
- },
80
- setCurrentBuilding: (state: State, payload: State["currentBuilding"]) => {
81
- return { ...state, currentBuilding: payload };
82
- },
83
- setPois: (state: State, payload: State["pois"]) => {
84
- return { ...state, pois: payload };
85
- },
86
- setDirections: (state: State, payload: State["directions"]) => {
87
- return { ...state, directions: payload };
88
- },
89
- setNavigation: (state: State, payload: State["navigation"]) => {
90
- return { ...state, navigation: payload };
91
- },
92
- setDestinationPoiID: (state: State, payload: State["destinationPoiID"]) => {
93
- return { ...state, destinationPoiID: payload };
94
- },
95
- setError: (state: State, payload: State["error"]) => {
96
- return { ...state, error: payload };
56
+ const store = createStore<State>({
57
+ initialState,
58
+ reducers: {
59
+ setWebViewRef: (state: State, payload: State["webViewRef"]) => {
60
+ return { ...state, webViewRef: payload };
61
+ },
62
+ setSdkInitialized: (state: State, payload: State["sdkInitialized"]) => {
63
+ return { ...state, sdkInitialized: payload };
64
+ },
65
+ setAuth: (state: State, payload: State["user"]) => {
66
+ return { ...state, user: payload };
67
+ },
68
+ setLocation: (state: State, payload: State["location"]) => {
69
+ return { ...state, location: payload };
70
+ },
71
+ setLocationStatus: (state: State, payload: LocationStatusName) => {
72
+ return { ...state, location: { ...state.location, status: payload } };
73
+ },
74
+ resetLocation: (state: State) => {
75
+ return {
76
+ ...state,
77
+ location: initialState.location,
78
+ };
79
+ },
80
+ setBuildings: (state: State, payload: State["buildings"]) => {
81
+ return { ...state, buildings: payload };
82
+ },
83
+ setCurrentBuilding: (state: State, payload: State["currentBuilding"]) => {
84
+ return { ...state, currentBuilding: payload };
85
+ },
86
+ setPois: (state: State, payload: State["pois"]) => {
87
+ return { ...state, pois: payload };
88
+ },
89
+ setDirections: (state: State, payload: State["directions"]) => {
90
+ return { ...state, directions: payload };
91
+ },
92
+ setNavigation: (state: State, payload: State["navigation"]) => {
93
+ return { ...state, navigation: payload };
94
+ },
95
+ setDestinationPoiID: (state: State, payload: State["destinationPoiID"]) => {
96
+ return { ...state, destinationPoiID: payload };
97
+ },
98
+ setError: (state: State, payload: State["error"]) => {
99
+ return { ...state, error: payload };
100
+ },
97
101
  },
98
102
  });
99
103
 
@@ -114,7 +118,7 @@ export const selectLocation = (state: State) => {
114
118
  };
115
119
 
116
120
  export const selectLocationStatus = (state: State) => {
117
- return state.location.status;
121
+ return state.location?.status;
118
122
  };
119
123
 
120
124
  export const selectBuildings = (state: State) => {
@@ -159,16 +163,40 @@ export const {
159
163
  setNavigation,
160
164
  setDestinationPoiID,
161
165
  setError,
162
- } = Reducer.actions;
166
+ } = store.actions;
167
+
168
+ /**
169
+ * Context specifically to store the only instance of our hook.
170
+ */
171
+ export const UseSitumContext = createContext<{ useSitum: any } | undefined>(
172
+ undefined
173
+ );
174
+
175
+ const UseSitumProvider: React.FC<{ children: React.ReactNode }> = ({
176
+ children,
177
+ }) => {
178
+ // TODO: if we have this, there is no need to have a context for the rest of the state
179
+ // as there is only one instance of the hook
180
+ const useSitum = useSitumInternal();
163
181
 
182
+ return (
183
+ <UseSitumContext.Provider value={{ useSitum }}>
184
+ {children}
185
+ </UseSitumContext.Provider>
186
+ );
187
+ };
188
+
189
+ /**
190
+ * Main context of the application, stores the plugins' state.
191
+ */
164
192
  const SitumProvider: React.FC<
165
193
  React.PropsWithChildren<{
166
194
  email?: string;
167
195
  apiKey?: string;
168
196
  }>
169
197
  > = ({ email, apiKey, children }) => {
170
- const [state, dispatch] = useReducer(Reducer.reducer, {
171
- ...initialState,
198
+ const [state, dispatch] = useReducer(store.reducer, {
199
+ ...store.initialState,
172
200
  user: { email, apiKey },
173
201
  });
174
202
 
@@ -179,7 +207,7 @@ const SitumProvider: React.FC<
179
207
  dispatch,
180
208
  }}
181
209
  >
182
- {children}
210
+ <UseSitumProvider>{children}</UseSitumProvider>
183
211
  </SitumContext.Provider>
184
212
  );
185
213
  };
@@ -3,20 +3,30 @@ import { useContext } from "react";
3
3
 
4
4
  import { SitumContext, State } from "./index";
5
5
 
6
- export const createReducer = <T>(
7
- reducers: Record<string, (state: T, payload: any) => T>
8
- ) => {
9
- // Actions
6
+ export const createReducer = <T>() => {
7
+ const reducer = (state: T, action: (state: T) => T): T => {
8
+ return action(state);
9
+ };
10
+ return reducer;
11
+ };
12
+
13
+ export const createStore = <T>({
14
+ initialState,
15
+ reducers,
16
+ }: {
17
+ initialState: T;
18
+ reducers: Record<string, (state: T, payload: any) => T>;
19
+ }) => {
10
20
  const actions = Object.keys(reducers).reduce((acc, r) => {
11
21
  acc[r] = (payload: any) => (state: T) => reducers[r](state, payload);
12
22
  return acc;
13
23
  }, {} as Record<string, (payload?: any) => (state: T) => T>);
14
24
 
15
- // Reducer
16
- const reducer = (state: T, action: (state: T) => T): T => {
17
- return action(state);
25
+ return {
26
+ initialState,
27
+ actions,
28
+ reducer: createReducer<T>(),
18
29
  };
19
- return { actions, reducer };
20
30
  };
21
31
 
22
32
  export const useSelector = (selector: (state: State) => any) => {
File without changes
@@ -1,9 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <module type="JAVA_MODULE" version="4">
3
- <component name="NewModuleRootManager" inherit-compiler-output="true">
4
- <exclude-output />
5
- <content url="file://$MODULE_DIR$" />
6
- <orderEntry type="inheritedJdk" />
7
- <orderEntry type="sourceFolder" forTests="false" />
8
- </component>
9
- </module>
@@ -1,13 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="GradleSettings">
4
- <option name="linkedExternalProjectsSettings">
5
- <GradleProjectSettings>
6
- <option name="testRunner" value="GRADLE" />
7
- <option name="distributionType" value="DEFAULT_WRAPPED" />
8
- <option name="externalProjectPath" value="$PROJECT_DIR$" />
9
- <option name="gradleJvm" value="11" />
10
- </GradleProjectSettings>
11
- </option>
12
- </component>
13
- </project>
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="ProjectModuleManager">
4
- <modules>
5
- <module fileurl="file://$PROJECT_DIR$/.idea/android.iml" filepath="$PROJECT_DIR$/.idea/android.iml" />
6
- </modules>
7
- </component>
8
- </project>
@@ -1,6 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="VcsDirectoryMappings">
4
- <mapping directory="$PROJECT_DIR$/.." vcs="Git" />
5
- </component>
6
- </project>
@@ -1,63 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <project version="4">
3
- <component name="AutoImportSettings">
4
- <option name="autoReloadType" value="NONE" />
5
- </component>
6
- <component name="ChangeListManager">
7
- <list default="true" id="db2c412e-9f6b-4909-82d6-141f9aeaf0f6" name="Changes" comment="">
8
- <change beforePath="$PROJECT_DIR$/../example/android/app/src/main/AndroidManifest.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../example/android/app/src/main/AndroidManifest.xml" afterDir="false" />
9
- <change beforePath="$PROJECT_DIR$/../example/src/situm.tsx" beforeDir="false" afterPath="$PROJECT_DIR$/../example/src/situm.tsx" afterDir="false" />
10
- <change beforePath="$PROJECT_DIR$/../example/yarn.lock" beforeDir="false" afterPath="$PROJECT_DIR$/../example/yarn.lock" afterDir="false" />
11
- </list>
12
- <option name="SHOW_DIALOG" value="false" />
13
- <option name="HIGHLIGHT_CONFLICTS" value="true" />
14
- <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
15
- <option name="LAST_RESOLUTION" value="IGNORE" />
16
- </component>
17
- <component name="ExternalProjectsManager">
18
- <system id="GRADLE">
19
- <state>
20
- <projects_view>
21
- <tree_state>
22
- <expand />
23
- <select />
24
- </tree_state>
25
- </projects_view>
26
- </state>
27
- </system>
28
- </component>
29
- <component name="Git.Settings">
30
- <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." />
31
- </component>
32
- <component name="MarkdownSettingsMigration">
33
- <option name="stateVersion" value="1" />
34
- </component>
35
- <component name="ProjectId" id="2MVC37412ztjIKQefc86OZl9bne" />
36
- <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
37
- <component name="ProjectViewState">
38
- <option name="hideEmptyMiddlePackages" value="true" />
39
- <option name="showLibraryContents" value="true" />
40
- </component>
41
- <component name="PropertiesComponent"><![CDATA[{
42
- "keyToString": {
43
- "RunOnceActivity.OpenProjectViewOnStart": "true",
44
- "RunOnceActivity.ShowReadmeOnStart": "true",
45
- "RunOnceActivity.cidr.known.project.marker": "true",
46
- "cidr.known.project.marker": "true",
47
- "dart.analysis.tool.window.visible": "false",
48
- "last_opened_file_path": "/home/alba/Descargas/GitRepos/situm-react-native-plugin/example/android",
49
- "show.migrate.to.gradle.popup": "false"
50
- }
51
- }]]></component>
52
- <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
53
- <component name="TaskManager">
54
- <task active="true" id="Default" summary="Default task">
55
- <changelist id="db2c412e-9f6b-4909-82d6-141f9aeaf0f6" name="Changes" comment="" />
56
- <created>1677843160978</created>
57
- <option name="number" value="Default" />
58
- <option name="presentableId" value="Default" />
59
- <updated>1677843160978</updated>
60
- </task>
61
- <servers />
62
- </component>
63
- </project>
@@ -1,8 +0,0 @@
1
- ## This file must *NOT* be checked into Version Control Systems,
2
- # as it contains information specific to your local configuration.
3
- #
4
- # Location of the SDK. This is only used by Gradle.
5
- # For customization when using a Version Control System, please read the
6
- # header note.
7
- #Fri Mar 03 12:32:53 CET 2023
8
- sdk.dir=/home/alba/Android/Sdk