Skip to content

Commit cc1eb83

Browse files
feat: added csv functionalities (#2785)
1 parent f12fe78 commit cc1eb83

12 files changed

+1222
-55
lines changed

android/app/src/main/AndroidManifest.xml

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
1-
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
2-
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
1+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
2+
xmlns:tools="http://schemas.android.com/tools">
3+
<uses-permission android:name="android.permission.RECORD_AUDIO" />
34
<uses-feature android:name="android.hardware.usb.host" />
5+
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
6+
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
7+
android:maxSdkVersion="28" />
8+
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
49
<application
510
android:label="PSLab"
611
android:name="${applicationName}"
712
android:icon="@drawable/launcher_icon"
8-
android:roundIcon="@drawable/launcher_icon_round">
13+
android:roundIcon="@drawable/launcher_icon_round"
14+
android:requestLegacyExternalStorage="true"
15+
tools:ignore="ScopedStorage">
916
<activity
1017
android:name=".MainActivity"
1118
android:exported="true"
@@ -47,5 +54,6 @@
4754
<action android:name="android.intent.action.PROCESS_TEXT"/>
4855
<data android:mimeType="text/plain"/>
4956
</intent>
57+
<package android:name="com.android.externalstorage.documents" />
5058
</queries>
5159
</manifest>

ios/Runner/Info.plist

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,5 +47,9 @@
4747
<true/>
4848
<key>UIApplicationSupportsIndirectInputEvents</key>
4949
<true/>
50+
<key>LSSupportsOpeningDocumentsInPlace</key>
51+
<true/>
52+
<key>UIFileSharingEnabled</key>
53+
<true/>
5054
</dict>
5155
</plist>

lib/l10n/app_en.arb

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -306,6 +306,33 @@
306306
"baroMeterBulletPoint2": "If you want to use the sensor BMP-180, connect the sensor to PSLab device as shown in the figure.",
307307
"baroMeterBulletPoint3": "The above pin configuration has to be same except for the pin GND. GND is meant for Ground and any of the PSLab device GND pins can be used since they are common.",
308308
"baroMeterBulletPoint4": "Select the sensor by going to the Configure tab from the bottom navigation bar and choose BMP-180 in the drop down menu under Select Sensor.",
309+
"sharingMessage" : "Sharing PSLab Data",
310+
"delete" : "Delete",
311+
"deleteHint": "Are you sure you want to delete this file?",
312+
"deleteFile" : "Delete File",
313+
"deleteAllData" : "Delete All Data",
314+
"deleteCautionMessage" : "Are you sure you want to delete all logged data for this instrument?",
315+
"deleteAll" : "Delete All",
316+
"noLoggedData" : "No logged data found.",
317+
"importLog" : "Import Log",
318+
"failedToSave" : "Failed to save file. No data was recorded.",
319+
"fileSaved" : "File saved",
320+
"save" : "Save",
321+
"enterFileName" : "Enter filename (leave empty for auto-generated name)",
322+
"fileName" : "Filename",
323+
"saveRecording" : "Save Recording",
324+
"recordingStarted" : "Recording started",
325+
"noValidData" : "No valid data to display.",
326+
"csvPickingError" : "Error picking or reading CSV file",
327+
"csvReadingError" : "Error reading CSV from file",
328+
"sharingError" : "Error sharing file",
329+
"csvGettingError" : "Error getting saved files",
330+
"unsupportedPlatform" : "Unsupported platform",
331+
"noDataRecorded" : "No data recorded to save for",
332+
"csvFileSaved" : "CSV file saved at",
333+
"csvSavingError" : "Error saving CSV file",
334+
"csvDeletingError" : "Error deleting file",
335+
"fileDeleted" : "File deleted",
309336
"soundmeterConfig" : "Soundmeter Configurations",
310337
"barometerConfig" : "Barometer Configurations",
311338
"baroUpdatePeriodHint" : "Please provide time interval at which data will be updated (100 ms to 2000 ms)",

lib/l10n/app_localizations.dart

Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1930,6 +1930,168 @@ abstract class AppLocalizations {
19301930
/// **'Select the sensor by going to the Configure tab from the bottom navigation bar and choose BMP-180 in the drop down menu under Select Sensor.'**
19311931
String get baroMeterBulletPoint4;
19321932

1933+
/// No description provided for @sharingMessage.
1934+
///
1935+
/// In en, this message translates to:
1936+
/// **'Sharing PSLab Data'**
1937+
String get sharingMessage;
1938+
1939+
/// No description provided for @delete.
1940+
///
1941+
/// In en, this message translates to:
1942+
/// **'Delete'**
1943+
String get delete;
1944+
1945+
/// No description provided for @deleteHint.
1946+
///
1947+
/// In en, this message translates to:
1948+
/// **'Are you sure you want to delete this file?'**
1949+
String get deleteHint;
1950+
1951+
/// No description provided for @deleteFile.
1952+
///
1953+
/// In en, this message translates to:
1954+
/// **'Delete File'**
1955+
String get deleteFile;
1956+
1957+
/// No description provided for @deleteAllData.
1958+
///
1959+
/// In en, this message translates to:
1960+
/// **'Delete All Data'**
1961+
String get deleteAllData;
1962+
1963+
/// No description provided for @deleteCautionMessage.
1964+
///
1965+
/// In en, this message translates to:
1966+
/// **'Are you sure you want to delete all logged data for this instrument?'**
1967+
String get deleteCautionMessage;
1968+
1969+
/// No description provided for @deleteAll.
1970+
///
1971+
/// In en, this message translates to:
1972+
/// **'Delete All'**
1973+
String get deleteAll;
1974+
1975+
/// No description provided for @noLoggedData.
1976+
///
1977+
/// In en, this message translates to:
1978+
/// **'No logged data found.'**
1979+
String get noLoggedData;
1980+
1981+
/// No description provided for @importLog.
1982+
///
1983+
/// In en, this message translates to:
1984+
/// **'Import Log'**
1985+
String get importLog;
1986+
1987+
/// No description provided for @failedToSave.
1988+
///
1989+
/// In en, this message translates to:
1990+
/// **'Failed to save file. No data was recorded.'**
1991+
String get failedToSave;
1992+
1993+
/// No description provided for @fileSaved.
1994+
///
1995+
/// In en, this message translates to:
1996+
/// **'File saved'**
1997+
String get fileSaved;
1998+
1999+
/// No description provided for @save.
2000+
///
2001+
/// In en, this message translates to:
2002+
/// **'Save'**
2003+
String get save;
2004+
2005+
/// No description provided for @enterFileName.
2006+
///
2007+
/// In en, this message translates to:
2008+
/// **'Enter filename (leave empty for auto-generated name)'**
2009+
String get enterFileName;
2010+
2011+
/// No description provided for @fileName.
2012+
///
2013+
/// In en, this message translates to:
2014+
/// **'Filename'**
2015+
String get fileName;
2016+
2017+
/// No description provided for @saveRecording.
2018+
///
2019+
/// In en, this message translates to:
2020+
/// **'Save Recording'**
2021+
String get saveRecording;
2022+
2023+
/// No description provided for @recordingStarted.
2024+
///
2025+
/// In en, this message translates to:
2026+
/// **'Recording started'**
2027+
String get recordingStarted;
2028+
2029+
/// No description provided for @noValidData.
2030+
///
2031+
/// In en, this message translates to:
2032+
/// **'No valid data to display.'**
2033+
String get noValidData;
2034+
2035+
/// No description provided for @csvPickingError.
2036+
///
2037+
/// In en, this message translates to:
2038+
/// **'Error picking or reading CSV file'**
2039+
String get csvPickingError;
2040+
2041+
/// No description provided for @csvReadingError.
2042+
///
2043+
/// In en, this message translates to:
2044+
/// **'Error reading CSV from file'**
2045+
String get csvReadingError;
2046+
2047+
/// No description provided for @sharingError.
2048+
///
2049+
/// In en, this message translates to:
2050+
/// **'Error sharing file'**
2051+
String get sharingError;
2052+
2053+
/// No description provided for @csvGettingError.
2054+
///
2055+
/// In en, this message translates to:
2056+
/// **'Error getting saved files'**
2057+
String get csvGettingError;
2058+
2059+
/// No description provided for @unsupportedPlatform.
2060+
///
2061+
/// In en, this message translates to:
2062+
/// **'Unsupported platform'**
2063+
String get unsupportedPlatform;
2064+
2065+
/// No description provided for @noDataRecorded.
2066+
///
2067+
/// In en, this message translates to:
2068+
/// **'No data recorded to save for'**
2069+
String get noDataRecorded;
2070+
2071+
/// No description provided for @csvFileSaved.
2072+
///
2073+
/// In en, this message translates to:
2074+
/// **'CSV file saved at'**
2075+
String get csvFileSaved;
2076+
2077+
/// No description provided for @csvSavingError.
2078+
///
2079+
/// In en, this message translates to:
2080+
/// **'Error saving CSV file'**
2081+
String get csvSavingError;
2082+
2083+
/// No description provided for @csvDeletingError.
2084+
///
2085+
/// In en, this message translates to:
2086+
/// **'Error deleting file'**
2087+
String get csvDeletingError;
2088+
2089+
/// No description provided for @fileDeleted.
2090+
///
2091+
/// In en, this message translates to:
2092+
/// **'File deleted'**
2093+
String get fileDeleted;
2094+
19332095
/// No description provided for @soundmeterConfig.
19342096
///
19352097
/// In en, this message translates to:

lib/l10n/app_localizations_en.dart

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -987,6 +987,88 @@ class AppLocalizationsEn extends AppLocalizations {
987987
'Select the sensor by going to the Configure tab from the bottom navigation bar and choose BMP-180 in the drop down menu under Select Sensor.';
988988

989989
@override
990+
String get sharingMessage => 'Sharing PSLab Data';
991+
992+
@override
993+
String get delete => 'Delete';
994+
995+
@override
996+
String get deleteHint => 'Are you sure you want to delete this file?';
997+
998+
@override
999+
String get deleteFile => 'Delete File';
1000+
1001+
@override
1002+
String get deleteAllData => 'Delete All Data';
1003+
1004+
@override
1005+
String get deleteCautionMessage =>
1006+
'Are you sure you want to delete all logged data for this instrument?';
1007+
1008+
@override
1009+
String get deleteAll => 'Delete All';
1010+
1011+
@override
1012+
String get noLoggedData => 'No logged data found.';
1013+
1014+
@override
1015+
String get importLog => 'Import Log';
1016+
1017+
@override
1018+
String get failedToSave => 'Failed to save file. No data was recorded.';
1019+
1020+
@override
1021+
String get fileSaved => 'File saved';
1022+
1023+
@override
1024+
String get save => 'Save';
1025+
1026+
@override
1027+
String get enterFileName =>
1028+
'Enter filename (leave empty for auto-generated name)';
1029+
1030+
@override
1031+
String get fileName => 'Filename';
1032+
1033+
@override
1034+
String get saveRecording => 'Save Recording';
1035+
1036+
@override
1037+
String get recordingStarted => 'Recording started';
1038+
1039+
@override
1040+
String get noValidData => 'No valid data to display.';
1041+
1042+
@override
1043+
String get csvPickingError => 'Error picking or reading CSV file';
1044+
1045+
@override
1046+
String get csvReadingError => 'Error reading CSV from file';
1047+
1048+
@override
1049+
String get sharingError => 'Error sharing file';
1050+
1051+
@override
1052+
String get csvGettingError => 'Error getting saved files';
1053+
1054+
@override
1055+
String get unsupportedPlatform => 'Unsupported platform';
1056+
1057+
@override
1058+
String get noDataRecorded => 'No data recorded to save for';
1059+
1060+
@override
1061+
String get csvFileSaved => 'CSV file saved at';
1062+
1063+
@override
1064+
String get csvSavingError => 'Error saving CSV file';
1065+
1066+
@override
1067+
String get csvDeletingError => 'Error deleting file';
1068+
1069+
@override
1070+
String get fileDeleted => 'File deleted';
1071+
9901072
String get soundmeterConfig => 'Soundmeter Configurations';
9911073

9921074
@override

0 commit comments

Comments
 (0)