Skip to content

Commit cf51aea

Browse files
committed
Updates
1 parent ba42f46 commit cf51aea

File tree

7 files changed

+81
-40
lines changed

7 files changed

+81
-40
lines changed

README.md

+11-11
Original file line numberDiff line numberDiff line change
@@ -7,35 +7,35 @@
77
- Órák előtti tálca értesítés
88
- Névnapok a főképernyőn
99
- Idő alapú éjszakai mód
10-
<img src="images/base.jpg" width="1000"/>
10+
<img src="images/base.jpg" width="1100"/>
1111

1212
### Szerkesztés és importálás:
13-
- Importálni Neptun órarend excel exportból lehet (1 hét exportálás)
13+
- Importálni Neptun órarend excel exportból lehet (1 hét exportja)
1414
- Új óra hozzáadás: Dupla kattintás a napra
1515
- Óra módosítás/törlés/nem fontossá jelölés: Jobb kattintás az órára
16-
<img src="images/editing.jpg" width="600"/>
16+
<img src="images/editing.jpg" width="400"/>
1717

1818
### Tálca menü:
1919
- Alvó mód: Óra előtti értesítések kikapcsolása
2020
- Importálás: Excelből (Neptun órarend 1 hét exportja vagy kurzus exportja) vagy Json
2121
- Exportálás: Képbe, Excelbe (Neptun órarend formátumban) vagy Json-ba
22-
<img src="images/menu.jpg" width="250"/>
22+
<img src="images/menu.jpg" width="350"/>
2323

2424
### Beállítások menü:
2525
- Minden szín testreszabható
2626
- Különféle időpontok/tartamok testreszabhatóak
2727
- Lehetőség van számítógéppel történő indításra is (háttérben marad a tálcán)
28-
<img src="images/settings.jpg" width="350"/>
28+
<img src="images/settings.jpg" width="500"/>
2929

30-
## Telefon Alkalmazás:
30+
## Telefonos Alkalmazás:
3131
- Másodlagos alkalmazás, csak nézni lehet az órarendet
32-
<img src="images/phone.jpg" width="800"/>
32+
<img src="images/phone.jpg" width="700"/>
3333

34-
### Felhő:
34+
## Felhő:
3535
- Órarendeket fellehet tölteni felhőbe
3636
- Letölteni/szinkronizálni desktopon azonosító alapján, telefonon QR kódból/azonosítóval lehet
3737

38-
### Letöltés, futtatás:
38+
## Letöltés, futtatás:
3939
- 'Releases' Github menüfülből le kell szedni a legújabb telepítőket
40-
- Desktop: Telepíteni kell (Ne a program files mappába), majd tálcán levő ikonnal futtatni
41-
- Telefon: Apk fájl telepítés, majd TimeTable alkalmazás futtatás
40+
- Desktop: Telepíteni kell az exe fájlt (ne a program files mappába), majd tálcán levő ikonnal futtatni
41+
- Telefon: Apk fájl telepítés, majd TimeTable alkalmazás futtatás

desktop/build.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
print('Creating TimeTable.jar')
1919
call('mvn package', shell = True)
20-
rename('target/TimeTable-1.0.jar', 'lib/TimeTable.jar')
20+
rename('target/TimeTable_Desktop-1.0.jar', 'lib/TimeTable.jar')
2121

2222
print('Creating installer file')
2323
call((r'"C:\Program Files\Java\jdk-14.0.2\bin\jpackage" --runtime-image runtime -i lib --main-class timetable.Main --main-jar TimeTable.jar '

desktop/pom.xml

+6-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,12 @@
33
<groupId>timetable</groupId>
44
<artifactId>TimeTable_Desktop</artifactId>
55
<version>1.0</version>
6-
6+
7+
<properties>
8+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
9+
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
10+
</properties>
11+
712
<dependencies>
813
<dependency>
914
<groupId>org.apache.poi</groupId>

desktop/src/main/java/timetable/SettingsPanel.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ protected void paintComponent(Graphics graphics) {
2525

2626
private static Image createQRCode() {
2727
if(Settings.cloudID.equals("null")) {
28-
return new BufferedImage(0, 0, BufferedImage.TYPE_INT_RGB);
28+
return new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB);
2929
}
3030

3131
try {

images/phone.jpg

61.8 KB
Loading

phone/android/app/src/main/AndroidManifest.xml

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.phone">
22
<uses-permission android:name="android.permission.CAMERA" />
3+
<uses-permission android:name="android.permission.INTERNET"/>
34
<application
45
android:name="io.flutter.app.FlutterApplication"
56
android:label="TimeTable"

phone/lib/main.dart

+61-26
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import 'dart:convert';
22
import 'dart:io';
3-
import 'dart:math';
43

54
import 'package:barcode_scan/barcode_scan.dart';
65
import 'package:http/http.dart' as http;
@@ -52,6 +51,8 @@ class ClassTableState extends State<ClassTable> {
5251
borderRadius: BorderRadius.circular(5),
5352
side: BorderSide(color: Colors.black87)
5453
);
54+
final classButtonPadding = EdgeInsets.symmetric(vertical: 5);
55+
final dayColumnPadding = EdgeInsets.symmetric(horizontal: 5);
5556

5657
Class currentClass;
5758
Map<String, List<Class>> classes = Map();
@@ -62,6 +63,8 @@ class ClassTableState extends State<ClassTable> {
6263
Widget build(BuildContext context) {
6364
currentClass = null;
6465

66+
final now = DateTime.now();
67+
6568
return Scaffold(
6669
appBar: AppBar(
6770
title: Text('TimeTable'),
@@ -92,12 +95,12 @@ class ClassTableState extends State<ClassTable> {
9295
]
9396
),
9497
body: SingleChildScrollView(
95-
child: Column(children: [
96-
Row(children: createColumnsForTable(context, DateTime.now()),
98+
child: Row(
99+
children: this.classes.keys.map((k) => createColumnForDay(k, now)).toList(),
97100
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
98-
crossAxisAlignment: CrossAxisAlignment.start)
99-
]
100-
))
101+
crossAxisAlignment: CrossAxisAlignment.start
102+
)
103+
)
101104
);
102105
}
103106

@@ -184,8 +187,18 @@ class ClassTableState extends State<ClassTable> {
184187
}
185188

186189
void updateClassListFromBackend(String id) async {
190+
showDialog(
191+
context: context,
192+
child: AlertDialog(
193+
title: Text('Szinkronizálás'),
194+
contentPadding: EdgeInsets.all(16),
195+
content: Text('Szinkronizálás a felhővel folyamatban')
196+
)
197+
);
187198
final backendResponse = await http.get('$backendURL?id=$id', headers: { 'Content-Type': 'application/json' });
188199

200+
Navigator.pop(context);
201+
189202
if(backendResponse.statusCode == 200) {
190203
this.hasLocalID = true;
191204

@@ -197,6 +210,21 @@ class ClassTableState extends State<ClassTable> {
197210
};
198211

199212
this.settingsFile.writeAsStringSync(jsonEncode(fileContent));
213+
}else{
214+
showDialog(
215+
context: context,
216+
child: AlertDialog(
217+
title: Text('Hiba'),
218+
contentPadding: EdgeInsets.all(16),
219+
content: Text("Nem sikerült lekérni az órarendet ehhez az azonosítóhoz: \n'$id'"),
220+
actions: [
221+
RaisedButton(
222+
child: Text('Vissza'),
223+
onPressed: () => Navigator.pop(context)
224+
)
225+
]
226+
)
227+
);
200228
}
201229
}
202230

@@ -214,31 +242,32 @@ class ClassTableState extends State<ClassTable> {
214242
return classesObject;
215243
}
216244

217-
List<Column> createColumnsForTable(BuildContext context, DateTime now) {
218-
return this.classes.keys.map((k) => Column(children: createButtonsForColumn(k, context, now)))
219-
.toList();
245+
Widget createColumnForDay(String day, DateTime now) {
246+
return Expanded(
247+
child: Padding(
248+
padding: dayColumnPadding,
249+
child: Column(
250+
crossAxisAlignment: CrossAxisAlignment.stretch,
251+
children: createButtonsForColumn(day, now)
252+
)
253+
)
254+
);
220255
}
221256

222-
List<Widget> createButtonsForColumn(String day, BuildContext context, DateTime now) {
223-
List<Widget> result = List();
257+
List<Widget> createButtonsForColumn(String day, DateTime now) {
258+
final result = List<Widget>();
259+
224260
result.add(RaisedButton(
225261
onPressed: () => {},
226262
shape: buttonShape,
227263
child: Text(day)
228264
));
229265

230-
result.add(SizedBox(height: 15));
231-
232-
final currentClasses = this.classes[day];
233-
for(var i = 0; i < currentClasses.length; ++i) {
234-
result.add(createClassButton(currentClasses[i], now, i, context));
235-
result.add(SizedBox(height: 10));
236-
}
237-
266+
this.classes[day].forEach((k) => result.add(createClassButton(k, now)));
238267
return result;
239268
}
240269

241-
Widget createClassButton(Class clazz, DateTime now, int index, BuildContext context) {
270+
Widget createClassButton(Class clazz, DateTime now) {
242271
final today = dayList[now.weekday - 1];
243272
final isToday = clazz.day == today;
244273
final isBefore = isToday && now.isBefore(clazz.startTime);
@@ -254,11 +283,17 @@ class ClassTableState extends State<ClassTable> {
254283
'Típus: ${clazz.type}\n' +
255284
'Terem: ${clazz.room}';
256285

257-
return RaisedButton(
258-
onPressed: () => {},
259-
shape: buttonShape,
260-
child: Text(buttonText, style: TextStyle(color: clazz.unImportant ? lightGray : Colors.black)),
261-
color: clazz.unImportant ? unimportantClassColor : isNext ? currentClassColor : isBefore ? upcomingClassColor : isAfter ? pastClassColor : otherDayClassColor
286+
return Padding(
287+
padding: classButtonPadding,
288+
child: RaisedButton(
289+
onPressed: () => {},
290+
shape: buttonShape,
291+
child: Padding(
292+
padding: classButtonPadding,
293+
child: Text(buttonText, style: TextStyle(color: clazz.unImportant ? lightGray : Colors.black))
294+
),
295+
color: clazz.unImportant ? unimportantClassColor : isNext ? currentClassColor : isBefore ? upcomingClassColor : isAfter ? pastClassColor : otherDayClassColor
296+
)
262297
);
263298
}
264299
}
@@ -276,7 +311,7 @@ class Class {
276311
this.day = jsonData['day'],
277312
this.startTime = parseTimeFrom(jsonData['startTime'], now),
278313
this.endTime = parseTimeFrom(jsonData['endTime'], now),
279-
this.name = jsonData['name'].substring(0, min(jsonData['name'].length as int, 15)),
314+
this.name = jsonData['name'],
280315
this.type = jsonData['type'],
281316
this.room = jsonData['room'],
282317
this.unImportant = jsonData['unImportant'];

0 commit comments

Comments
 (0)