Skip to content

Commit 934ce84

Browse files
committed
修复了可能导致闪退的恶性BUG,修复了夜间模式主题
1 parent 230f8cf commit 934ce84

8 files changed

Lines changed: 41 additions & 37 deletions

File tree

app/build.gradle

Lines changed: 2 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 2
14-
versionName "紫微垣-北极"
13+
versionCode 3
14+
versionName "紫微垣-天乙"
1515

1616
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
1717
}

app/release/output-metadata.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
"type": "SINGLE",
1212
"filters": [],
1313
"attributes": [],
14-
"versionCode": 2,
15-
"versionName": "紫微垣-北极",
14+
"versionCode": 3,
15+
"versionName": "紫微垣-天乙",
1616
"outputFile": "app-release.apk"
1717
}
1818
],

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

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,8 @@
66
import android.content.SharedPreferences;
77
import android.content.pm.PackageManager;
88
import android.graphics.Bitmap;
9-
import android.os.Build;
109
import android.os.Bundle;
1110
import android.view.View;
12-
import android.view.WindowInsetsController;
1311
import android.view.WindowManager;
1412
import android.webkit.WebChromeClient;
1513
import android.webkit.WebSettings;
@@ -19,10 +17,6 @@
1917
import android.widget.Toast;
2018
import androidx.core.splashscreen.SplashScreen;
2119
import androidx.appcompat.app.AppCompatActivity;
22-
import com.alibaba.fastjson2.JSON;
23-
import com.alibaba.fastjson2.JSONArray;
24-
import org.shirakawatyu.swust.utils.CourseUtils;
25-
import org.shirakawatyu.swust.utils.DateUtils;
2620
import org.shirakawatyu.swust.widget.CourseWidget;
2721

2822
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
@@ -139,7 +133,7 @@ public void onPageFinished(WebView view, String url) {
139133

140134
public void setData() {
141135
// 设置版本号
142-
webView.evaluateJavascript("window.localStorage.setItem('version', '0.33')", value -> {});
136+
webView.evaluateJavascript("window.localStorage.setItem('version', '0.35')", value -> {});
143137
// 从本地缓存读取课程表
144138
webView.evaluateJavascript("window.localStorage.getItem('lessons')", value -> {
145139
// Toast.makeText(mContext, value, Toast.LENGTH_SHORT).show();

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

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33
import com.alibaba.fastjson2.JSON;
44
import com.alibaba.fastjson2.JSONArray;
55
import com.alibaba.fastjson2.JSONObject;
6-
76
import org.shirakawatyu.swust.entity.Course;
8-
97
import java.util.ArrayList;
108
import java.util.Collections;
119
import java.util.List;
@@ -32,17 +30,22 @@ public static List<Course> toCourseList(String jsonString) {
3230
if("".equals(jsonString)) {
3331
courses.add(new Course("今天没有课哦", "好好休息吧", "0-0", 0));
3432
}else {
35-
JSONArray objects = JSON.parseArray(jsonString);
36-
for (int i = 0; i < objects.size(); i++) {
37-
JSONObject jsonObject = objects.getJSONObject(i);
38-
courses.add(new Course(
39-
jsonObject.getString("jw_course_name"),
40-
jsonObject.getString("base_room_name"),
41-
jsonObject.getString("section_start") + "-" + jsonObject.getString("section_end"),
42-
Integer.parseInt(jsonObject.getString("section_start"))
43-
));
33+
try {
34+
JSONArray objects = JSON.parseArray(jsonString);
35+
for (int i = 0; i < objects.size(); i++) {
36+
JSONObject jsonObject = objects.getJSONObject(i);
37+
courses.add(new Course(
38+
jsonObject.getString("jw_course_name"),
39+
jsonObject.getString("base_room_name"),
40+
jsonObject.getString("section_start") + "-" + jsonObject.getString("section_end"),
41+
Integer.parseInt(jsonObject.getString("section_start"))
42+
));
43+
}
44+
Collections.sort(courses);
45+
} catch (Exception e) {
46+
e.printStackTrace();
47+
return null;
4448
}
45-
Collections.sort(courses);
4649
}
4750
return courses;
4851
}

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,9 @@
55
import android.content.SharedPreferences;
66
import android.widget.RemoteViews;
77
import android.widget.RemoteViewsService;
8-
98
import org.shirakawatyu.swust.R;
109
import org.shirakawatyu.swust.entity.Course;
1110
import org.shirakawatyu.swust.utils.CourseUtils;
12-
1311
import java.util.ArrayList;
1412
import java.util.List;
1513

@@ -35,7 +33,10 @@ public void onCreate() {
3533
public void onDataSetChanged() {
3634
SharedPreferences courses = context.getSharedPreferences("courses", MODE_PRIVATE);
3735
String today_courses = courses.getString("today_courses", "");
38-
courseList = CourseUtils.toCourseList(today_courses);
36+
List<Course> courses1 = CourseUtils.toCourseList(today_courses);
37+
if(courses1 != null) {
38+
courseList = courses1;
39+
}
3940
}
4041

4142
@Override

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

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,15 @@ static void updateAppWidget(Context context, AppWidgetManager appWidgetManager,
4141
// 设置课表数据
4242
SharedPreferences courses = context.getSharedPreferences("courses", Context.MODE_PRIVATE);
4343
String weekCourses = courses.getString("week_courses", "[]");
44-
JSONArray objects = JSON.parseArray(weekCourses);
45-
JSONArray todayCourse = CourseUtils.getTodayCourse(objects);
46-
SharedPreferences.Editor edit = courses.edit();
47-
edit.putString("today_courses", JSON.toJSONString(todayCourse));
48-
edit.apply();
44+
try {
45+
JSONArray objects = JSON.parseArray(weekCourses);
46+
JSONArray todayCourse = CourseUtils.getTodayCourse(objects);
47+
SharedPreferences.Editor edit = courses.edit();
48+
edit.putString("today_courses", JSON.toJSONString(todayCourse));
49+
edit.apply();
50+
} catch (Exception e) {
51+
e.printStackTrace();
52+
}
4953
// 判断数据是否过期
5054
String cur = courses.getString("cur", "0").replace("\"", "");
5155
String s = DateUtils.curWeek();
Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
<resources xmlns:tools="http://schemas.android.com/tools">
22
<!-- Base application theme. -->
3-
<style name="Theme.掌上西科Beta" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
3+
<style name="Theme.掌上西科Beta" parent="Theme.MaterialComponents.DayNight.NoActionBar">
44
<!-- Primary brand color. -->
5-
<item name="colorPrimary">@color/purple_200</item>
6-
<item name="colorPrimaryVariant">@color/purple_700</item>
7-
<item name="colorOnPrimary">@color/black</item>
5+
<item name="colorPrimary">@color/white</item>
6+
<item name="colorPrimaryVariant">@color/white</item>
7+
<item name="colorOnPrimary">@color/white</item>
88
<!-- Secondary brand color. -->
99
<item name="colorSecondary">@color/teal_200</item>
10-
<item name="colorSecondaryVariant">@color/teal_200</item>
10+
<item name="colorSecondaryVariant">@color/teal_700</item>
1111
<item name="colorOnSecondary">@color/black</item>
1212
<!-- Status bar color. -->
1313
<item name="android:statusBarColor">?attr/colorPrimaryVariant</item>
1414
<!-- Customize your theme here. -->
15+
<item name="colorAccent">@color/colorAccent</item>
16+
<item name="android:navigationBarColor">@color/white</item>
1517
</style>
1618
</resources>

app/src/main/res/values/strings.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<resources>
2-
<string name="app_name">掌上西科Beta</string>
2+
<string name="app_name">掌上西科</string>
33
<!-- 网站首页 -->
44
<string name="home_url">https://swust.aliceblog.co/#/</string>
55
<string name="appwidget_text">EXAMPLE</string>

0 commit comments

Comments
 (0)