4
4
import android .content .Intent ;
5
5
import android .content .SharedPreferences ;
6
6
import android .os .Bundle ;
7
- import android .view .LayoutInflater ;
8
7
import android .view .View ;
9
8
import android .widget .TableLayout ;
10
- import android .widget .TextView ;
11
9
12
10
import com .google .android .material .card .MaterialCardView ;
13
11
import com .google .android .material .textview .MaterialTextView ;
14
12
15
- import org .w3c .dom .Text ;
16
-
17
13
import java .time .LocalDateTime ;
14
+ import java .time .format .DateTimeFormatter ;
18
15
import java .time .format .TextStyle ;
19
- import java .util .List ;
20
16
import java .util .Locale ;
21
- import java .util .Map ;
22
17
23
18
import de .dlyt .yanndroid .oneui .layout .ToolbarLayout ;
24
19
import de .dlyt .yanndroid .oneui .widget .SwipeRefreshLayout ;
25
20
import dev .lucalewin .planer .base .BaseThemeActivity ;
26
21
import dev .lucalewin .planer .iserv .IservPlan ;
27
- import dev .lucalewin .planer .iserv .IservPlanRow ;
28
22
import dev .lucalewin .planer .iserv .web_scraping .IservWebScraper ;
29
- import dev .lucalewin .planer .iserv . web_scraping .TaskRunner ;
23
+ import dev .lucalewin .planer .util .TaskRunner ;
30
24
import dev .lucalewin .planer .preferences .Preferences ;
31
25
import dev .lucalewin .planer .util .Tuple ;
26
+ import dev .lucalewin .planer .version .UpdateManager ;
32
27
import dev .lucalewin .planer .views .TipsCardView ;
33
28
34
29
public class MainActivity extends BaseThemeActivity {
@@ -65,6 +60,15 @@ protected void onCreate(Bundle savedInstanceState) {
65
60
return true ;
66
61
});
67
62
63
+ UpdateManager updater = UpdateManager .getInstance (this );
64
+
65
+ new TaskRunner ().executeAsync (updater ::isLatestVersionInstalled , result -> {
66
+ if (!result ) {
67
+ toolbarLayout .getToolbarMenu ().findItem (R .id .settings_menu_item ).setBadge (ToolbarLayout .N_BADGE );
68
+ }
69
+ Preferences .getSharedPreferences (this ).edit ().putBoolean ("latestVersionInstalled" , result ).apply ();
70
+ });
71
+
68
72
swipeRefreshLayout = findViewById (R .id .main_swipe_refresh_layout );
69
73
swipeRefreshLayout .seslSetRefreshOnce (true );
70
74
swipeRefreshLayout .setOnRefreshListener (this ::loadIservData );
@@ -81,20 +85,6 @@ protected void onCreate(Bundle savedInstanceState) {
81
85
tipCardClass = findViewById (R .id .tip_card_set_class );
82
86
tipCardClass .setOnClickListener (view -> startActivity (new Intent ().setClass (this , SettingsActivity .class )));
83
87
84
- if (!isIservAccountSpecified ()) {
85
- // show tip card
86
- // make user set their iserv account
87
- tipCardIservAccount .setVisibility (View .VISIBLE );
88
- return ;
89
- }
90
-
91
- if (!isClassSpecified ()) {
92
- // show tip card
93
- // make user set their class (+ courses)
94
- tipCardClass .setVisibility (View .VISIBLE );
95
- return ;
96
- }
97
-
98
88
loadIservData ();
99
89
}
100
90
@@ -107,7 +97,7 @@ private boolean isIservAccountSpecified() {
107
97
108
98
System .out .println (baseURL + username + password );
109
99
110
- return baseURL != null && username != null && password != null ;
100
+ return baseURL != null && username != null && password != null && ! baseURL . equals ( "" ) && ! username . equals ( "" ) && ! password . equals ( "" ) ;
111
101
}
112
102
113
103
private boolean isClassSpecified () {
@@ -116,6 +106,24 @@ private boolean isClassSpecified() {
116
106
}
117
107
118
108
private void loadIservData () {
109
+
110
+ tipCardIservAccount .setVisibility (View .GONE );
111
+ tipCardClass .setVisibility (View .GONE );
112
+
113
+ if (!isIservAccountSpecified ()) {
114
+ // show tip card
115
+ // make user set their iserv account
116
+ tipCardIservAccount .setVisibility (View .VISIBLE );
117
+ return ;
118
+ }
119
+
120
+ if (!isClassSpecified ()) {
121
+ // show tip card
122
+ // make user set their class (+ courses)
123
+ tipCardClass .setVisibility (View .VISIBLE );
124
+ return ;
125
+ }
126
+
119
127
runner .executeAsync (() -> {
120
128
swipeRefreshLayout .setRefreshing (true );
121
129
IservWebScraper .login (this );
@@ -153,15 +161,18 @@ private void loadIservData() {
153
161
return ;
154
162
}
155
163
156
- TableLayout today = PlanerTable .initTable (MainActivity . this , clazz , currentPlan );
164
+ TableLayout today = currentPlan .initTable (this , clazz );
157
165
currentPlanerContainer .removeAllViews ();
158
166
currentPlanerContainer .addView (today );
159
167
160
- TableLayout tomorrow = PlanerTable .initTable (MainActivity . this , clazz , nextPlan );
168
+ TableLayout tomorrow = nextPlan .initTable (this , clazz );
161
169
nextPlanerContainer .removeAllViews ();
162
170
nextPlanerContainer .addView (tomorrow );
163
171
164
172
swipeRefreshLayout .setRefreshing (false );
173
+
174
+ DateTimeFormatter dateTimeFormatter = DateTimeFormatter .ofPattern ("HH:mm" );
175
+ toolbarLayout .setSubtitle (String .format (getString (R .string .iserv_synced_at ), LocalDateTime .now ().format (dateTimeFormatter )));
165
176
});
166
177
}
167
178
0 commit comments