Skip to content

Commit 691a425

Browse files
committed
学期改为从服务器异步获取,减少日后维护和更新的频率
1 parent 934ce84 commit 691a425

4 files changed

Lines changed: 43 additions & 7 deletions

File tree

app/build.gradle

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ android {
1010
applicationId "org.shirakawatyu.swust.handiswust"
1111
minSdk 26
1212
targetSdk 32
13-
versionCode 3
14-
versionName "紫微垣-天乙"
13+
versionCode 5
14+
versionName "紫微垣-玄戈"
1515

1616
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1717
}
@@ -32,6 +32,8 @@ android {
3232
}
3333

3434
dependencies {
35+
implementation 'com.squareup.okhttp3:okhttp:4.10.0'
36+
implementation 'com.squareup.okio:okio:3.2.0'
3537
implementation 'com.alibaba.fastjson2:fastjson2:2.0.16.android'
3638
implementation 'androidx.appcompat:appcompat:1.5.1'
3739
implementation 'com.google.android.material:material:1.7.0'

app/src/main/java/org/shirakawatyu/swust/MainActivity.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
import androidx.appcompat.app.AppCompatActivity;
2020
import org.shirakawatyu.swust.widget.CourseWidget;
2121

22+
import okio.Okio;
23+
2224
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
2325

2426
private WebView webView;
@@ -133,7 +135,7 @@ public void onPageFinished(WebView view, String url) {
133135

134136
public void setData() {
135137
// 设置版本号
136-
webView.evaluateJavascript("window.localStorage.setItem('version', '0.35')", value -> {});
138+
webView.evaluateJavascript("window.localStorage.setItem('version', '0.36')", value -> {});
137139
// 从本地缓存读取课程表
138140
webView.evaluateJavascript("window.localStorage.getItem('lessons')", value -> {
139141
// Toast.makeText(mContext, value, Toast.LENGTH_SHORT).show();

app/src/main/java/org/shirakawatyu/swust/utils/DateUtils.java

Lines changed: 35 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,48 @@
11
package org.shirakawatyu.swust.utils;
22

3+
import android.content.Context;
4+
import android.content.SharedPreferences;
5+
6+
import androidx.annotation.NonNull;
7+
8+
import com.alibaba.fastjson2.JSON;
9+
import com.alibaba.fastjson2.JSONObject;
10+
11+
import java.io.IOException;
312
import java.text.ParseException;
413
import java.text.SimpleDateFormat;
514
import java.util.Calendar;
615
import java.util.Date;
716
import java.util.TimeZone;
17+
import java.util.logging.Level;
18+
import java.util.logging.Logger;
19+
20+
import okhttp3.Call;
21+
import okhttp3.Callback;
22+
import okhttp3.OkHttpClient;
23+
import okhttp3.Request;
24+
import okhttp3.Response;
25+
826

927
public class DateUtils {
10-
public static long START_DATE = DateUtils.getDate("2022-8-29");
1128

12-
public static String curWeek() {
13-
long cur = (System.currentTimeMillis() - START_DATE) / (1000 * 60 * 60 * 24 * 7) + 1;
29+
public static String curWeek(Context context) {
30+
SharedPreferences week = context.getSharedPreferences("week", Context.MODE_PRIVATE);
31+
new Thread(() -> {
32+
OkHttpClient httpClient = new OkHttpClient();
33+
Request request = new Request.Builder().url("https://swust.aliceblog.co/api/week").get().build();
34+
try {
35+
Response response = httpClient.newCall(request).execute();
36+
if (response.isSuccessful()) {
37+
JSONObject jsonObject = JSON.parseObject(response.body().string());
38+
week.edit().putLong("startDate", jsonObject.getLong("startDate")).apply();
39+
week.edit().putInt("total", jsonObject.getIntValue("total")).apply();
40+
}
41+
}catch (Exception ignored) {}
42+
}).start();
43+
long cur = (System.currentTimeMillis() - week.getLong("startDate", DateUtils.getDate("2022-7-29"))) / (1000 * 60 * 60 * 24 * 7) + 1;
44+
int total = week.getInt("total", 20);
45+
if (cur > total) return Integer.toString(total);
1446
return Long.toString(cur);
1547
}
1648

app/src/main/java/org/shirakawatyu/swust/widget/CourseWidget.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ static void updateAppWidget(Context context, AppWidgetManager appWidgetManager,
5252
}
5353
// 判断数据是否过期
5454
String cur = courses.getString("cur", "0").replace("\"", "");
55-
String s = DateUtils.curWeek();
55+
String s = DateUtils.curWeek(context);
5656
Log.d("broadcast => cur ", s);
5757
Log.d("broadcast => cur2 ", cur);
5858
if(!cur.equals(s)) {

0 commit comments

Comments
 (0)