@@ -149,25 +149,38 @@ public void getTimestamp(String uri, String mediaType, Promise promise) {
149
149
ExifInterface exif = new ExifInterface (inputStream );
150
150
String timestamp = exif .getAttribute (ExifInterface .TAG_DATETIME );
151
151
152
- Date date = new SimpleDateFormat ("yyyy:MM:dd HH:mm:ss" , Locale .US ).parse (timestamp );
153
- String formattedDate = new SimpleDateFormat ("yyyy-MM-dd'T'HH:mm:ss.SSSZ" , Locale .US ).format (date );
154
-
155
- promise .resolve (formattedDate );
152
+ // Timestamp can't be found in file
153
+ if (timestamp != null ) {
154
+ Date date = new SimpleDateFormat ("yyyy:MM:dd HH:mm:ss" , Locale .US ).parse (timestamp );
155
+
156
+ if (date != null ) {
157
+ String formattedDate = new SimpleDateFormat ("yyyy-MM-dd'T'HH:mm:ss.SSSZ" , Locale .US ).format (date );
158
+ promise .resolve (formattedDate );
159
+ } else {
160
+ promise .resolve (null );
161
+ }
162
+ } else {
163
+ promise .resolve (null );
164
+ }
156
165
} else {
157
- promise .reject ("Android version must be above: " + android .os .Build .VERSION_CODES .N );
166
+ promise .reject ("VERSION_NOT_SUPPORTED" , " Android version must be above: " + android .os .Build .VERSION_CODES .N );
158
167
}
159
168
} else {
160
- promise .reject ("File path not supported: " + uri );
169
+ promise .reject ("PATH_NOT_SUPPORTED" , " File path not supported: " + uri );
161
170
}
162
171
// Handle getting mime type for videos
163
172
} else {
164
173
MediaMetadataRetriever retriever = GetMediaMetadataRetriever (fileUri );
165
174
String timestamp = retriever .extractMetadata (MediaMetadataRetriever .METADATA_KEY_DATE );
166
175
Date date = new SimpleDateFormat ("yyyyMMdd'T'HHmmss" , Locale .US ).parse (timestamp );
167
- String formattedDate = new SimpleDateFormat ("yyyy-MM-dd'T'HH:mm:ss.SSSZ" , Locale .US ).format (date );
168
- retriever .release ();
169
-
170
- promise .resolve (formattedDate );
176
+
177
+ if (date != null ) {
178
+ String formattedDate = new SimpleDateFormat ("yyyy-MM-dd'T'HH:mm:ss.SSSZ" , Locale .US ).format (date );
179
+ retriever .release ();
180
+ promise .resolve (formattedDate );
181
+ } else {
182
+ promise .resolve (null );
183
+ }
171
184
}
172
185
} catch (Exception e ) {
173
186
promise .reject ("Error getting timestamp of media file" , e );
0 commit comments