Skip to content

Commit 5857efb

Browse files
committed
ANDROID: fix webui date column handling
1 parent 5fadbeb commit 5857efb

File tree

3 files changed

+28
-10
lines changed

3 files changed

+28
-10
lines changed

src/platform/android/app/src/main/java/net/sourceforge/smallbasic/WebServer.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,10 @@
1111
import java.net.ServerSocket;
1212
import java.net.Socket;
1313
import java.net.URLDecoder;
14-
import java.text.DateFormat;
14+
import java.time.Instant;
15+
import java.time.ZoneId;
16+
import java.time.ZonedDateTime;
17+
import java.time.format.DateTimeFormatter;
1518
import java.util.ArrayList;
1619
import java.util.Collection;
1720
import java.util.HashMap;
@@ -250,9 +253,9 @@ public FileData(String fileName, String date, long size) {
250253
}
251254

252255
public FileData(File file) {
253-
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.DEFAULT);
256+
ZonedDateTime zonedDateTime = Instant.ofEpochMilli(file.lastModified()).atZone(ZoneId.of("UTC"));
254257
this.fileName = file.getName();
255-
this.date = dateFormat.format(file.lastModified());
258+
this.date = DateTimeFormatter.RFC_1123_DATE_TIME.format(zonedDateTime);
256259
this.size = file.length();
257260
}
258261
}
@@ -321,7 +324,7 @@ public void run() {
321324
log("Invalid request");
322325
}
323326
}
324-
} catch (IOException e) {
327+
} catch (Exception e) {
325328
log("Request failed", e);
326329
}
327330
finally {

src/platform/android/webui/server/src/main/java/net/sourceforge/smallbasic/Server.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,26 @@
44

55
import java.io.ByteArrayInputStream;
66
import java.io.File;
7-
import java.io.FileOutputStream;
87
import java.io.IOException;
98
import java.io.InputStream;
109
import java.io.OutputStream;
1110
import java.nio.file.Files;
1211
import java.nio.file.attribute.BasicFileAttributes;
1312
import java.nio.file.attribute.FileTime;
14-
import java.text.DateFormat;
13+
import java.time.Instant;
14+
import java.time.ZoneId;
15+
import java.time.ZonedDateTime;
16+
import java.time.format.DateTimeFormatter;
1517
import java.util.ArrayList;
1618
import java.util.Collection;
1719
import java.util.Objects;
1820

1921
public class Server {
2022
private static final String BASIC_HOME = "../basic/";
2123

22-
public static void main(String[] args ) {
24+
public static void main(String[] args ) throws IOException {
25+
26+
2327
// ln -s ../../../../../../../../app/src/main/java/net/sourceforge/smallbasic/WebServer.java .
2428
WebServer webServer = new WebServer() {
2529
@Override
@@ -41,9 +45,9 @@ protected Collection<FileData> getFileData() throws IOException {
4145
BasicFileAttributes attr = Files.readAttributes(fileEntry.toPath(), BasicFileAttributes.class);
4246
if (!attr.isDirectory()) {
4347
FileTime lastModifiedTime = attr.lastModifiedTime();
44-
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.DEFAULT);
4548
String fileName = fileEntry.getName();
46-
String date = dateFormat.format(lastModifiedTime.toMillis());
49+
ZonedDateTime zonedDateTime = Instant.ofEpochMilli(lastModifiedTime.toMillis()).atZone(ZoneId.of("UTC"));
50+
String date = DateTimeFormatter.RFC_1123_DATE_TIME.format(zonedDateTime);
4751
long size = attr.size();
4852
result.add(new FileData(fileName, date, size));
4953
}

src/platform/android/webui/src/App.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,11 @@ const columns = [{
4949
}, {
5050
field: 'date',
5151
headerName: 'Modified',
52-
type: 'number',
52+
type: 'date',
53+
minWidth: 110,
54+
renderCell: (params) => {
55+
return new Date(params.row.date).toLocaleDateString();
56+
}
5357
}];
5458

5559
function getFetchHeader(body) {
@@ -227,10 +231,17 @@ function FileList(props) {
227231
rows: props.rows
228232
};
229233

234+
const sorting = {
235+
sorting: {
236+
sortModel: [{ field: 'fileName', sort: 'asc' }],
237+
},
238+
};
239+
230240
return (
231241
<Fragment>
232242
<ErrorMessage error={error} setError={setError} />
233243
<DataGrid rows={props.rows}
244+
initialState={sorting}
234245
columns={columns}
235246
onCellEditCommit={(params) => onCellEditCommit(props, params, setError)}
236247
autoPageSize

0 commit comments

Comments
 (0)