Skip to content
This repository has been archived by the owner on Apr 25, 2022. It is now read-only.

Commit

Permalink
Merge pull request #113 from CCXXXI/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
CCXXXI authored Oct 15, 2021
2 parents 1483bde + 82acc8e commit f126de2
Show file tree
Hide file tree
Showing 36 changed files with 1,916 additions and 154 deletions.
10 changes: 5 additions & 5 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,11 @@ jobs:
- uses: papeloto/action-zip@v1
with:
files: build/windows/runner/Release/
dest: ecnu_timetable_windows.zip
dest: windows-release.zip
- uses: actions/upload-artifact@v2
with:
name: ecnu_timetable_windows
path: ecnu_timetable_windows.zip
name: ecnu_timetable-windows
path: windows-release.zip

build-android:
runs-on: ubuntu-latest
Expand All @@ -45,7 +45,7 @@ jobs:

- uses: actions/upload-artifact@v2
with:
name: ecnu_timetable_android
name: ecnu_timetable-android
path: build/app/outputs/apk/release/*.apk

release:
Expand All @@ -59,4 +59,4 @@ jobs:
prerelease: false
files: |
**/*.apk
**/ecnu_timetable_windows.zip
**/windows-release.zip
8 changes: 8 additions & 0 deletions .run/all tests.run.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="all tests" type="FlutterTestConfigType" factoryName="Flutter Test">
<option name="testDir" value="$PROJECT_DIR$/test"/>
<option name="useRegexp" value="false"/>
<option name="additionalArgs" value=""/>
<method v="2"/>
</configuration>
</component>
2 changes: 1 addition & 1 deletion lib/home/home_view.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import '../settings/settings_view.dart';
import '../timetable/timetable_logic.dart';
import '../timetable/timetable_view.dart';
import '../toolbox/toolbox_view.dart';
import '../utils/messages.dart';
import '../utils/string.dart';
import 'home_logic.dart';

class HomePage extends StatelessWidget {
Expand Down
8 changes: 5 additions & 3 deletions lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import 'package:window_size/window_size.dart';
import 'home/home_view.dart';
import 'settings/theme.dart';
import 'utils/log.dart';
import 'utils/messages.dart';
import 'utils/string.dart';

void main() async {
await Settings.init();
Expand Down Expand Up @@ -48,8 +48,10 @@ void initDesktop() {
}

Future<void> initSentry(Widget app) async {
final id = Settings.getValue('ecnu.id', null);
final username = Settings.getValue('ecnu.username', null);
final id_ = Settings.getValue('ecnu.id', '');
final id = id_.isEmpty ? null : id_;
final username_ = Settings.getValue('ecnu.name', '');
final username = username_.isEmpty ? null : username_;
logInfo('id: $id, username: $username');
logInfo('release: $release');

Expand Down
39 changes: 25 additions & 14 deletions lib/settings/settings_logic.dart
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
import 'package:dio/dio.dart';
import 'package:get/get.dart';
import 'package:url_launcher/url_launcher.dart';
import 'package:quiver/iterables.dart';

import '../utils/dio.dart';
import '../utils/log.dart';
import '../utils/messages.dart';
import '../utils/string.dart';
import '../utils/web.dart';
import 'theme.dart' as theme;

class SettingsLogic extends GetxController with L {
final Dio dio;

SettingsLogic({Dio? dio}) : dio = dio ?? defaultDio;

void updateTheme(_) => theme.updateTheme();

/// - null: loading
Expand All @@ -27,14 +32,25 @@ class SettingsLogic extends GetxController with L {
}
}

bool get updateAvailable =>
latestVer.value != null && latestVer.value != version;
bool get updateAvailable {
final latest = latestVer.value;

if (latest == null || latest.isEmpty) return false;

final l = latest.split('.').map(int.parse);
final v = version.split('.').map(int.parse);
for (final pair in zip([l, v])) {
if (pair[0] > pair[1]) return true;
}

return false;
}

/// Get latest release version from GitHub.
Future<String?> _getLatestVer() async {
try {
final r = await dio.get(
'https://api.github.com/repos/ccxxxi/ecnu_timetable/releases',
Api.releases,
queryParameters: {'per_page': 1},
);
return (r.data[0]['name'] as String).substring(1);
Expand All @@ -44,14 +60,9 @@ class SettingsLogic extends GetxController with L {
}
}

static const _repoUrl = 'https://github.com/CCXXXI/ecnu_timetable';
static const latestUrl = '$_repoUrl/releases/latest';

static String _getVerUrl(String v) => '$_repoUrl/releases/tag/v$v';

void curVerOnTap() => launch(_getVerUrl(version));
void curVerOnTap() => Url.version(version).launch();

void latestVerOnTap() => launch(latestUrl);
void latestVerOnTap() => Url.latest.launch();

void feedbackOnTap() => launch('$_repoUrl/issues');
void feedbackOnTap() => Url.issues.launch();
}
2 changes: 1 addition & 1 deletion lib/settings/settings_view.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:get/get.dart';

import '../utils/loading.dart';
import '../utils/messages.dart';
import '../utils/string.dart';
import 'settings_logic.dart';
import 'theme.dart';
import 'trivia.dart';
Expand Down
2 changes: 1 addition & 1 deletion lib/settings/theme.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import 'package:get/get.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:loggy/loggy.dart';

import '../utils/messages.dart';
import '../utils/string.dart';

// region colorScheme
const _ecnuColorStr = '#ffa41f35';
Expand Down
5 changes: 2 additions & 3 deletions lib/settings/trivia.dart
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
import 'dart:math';

import 'package:dart_random_choice/dart_random_choice.dart';
import 'package:flutter/material.dart';
import 'package:flutter_markdown/flutter_markdown.dart';

import '../utils/messages.dart';
import '../utils/string.dart';

final _triviaStr = [
'GitHub的仓库名通常使用分隔符`ecnu-timetable`,但为了让Dart开心,本仓库使用了下划线`ecnu_timetable`。'.s,
Expand Down Expand Up @@ -40,4 +39,4 @@ final _triviaStr = [
final trivia =
_triviaStr.map((e) => MarkdownBody(data: e)).toList(growable: false);

Widget get randomTrivia => randomChoice(trivia);
MarkdownBody get randomTrivia => randomChoice(trivia);
Loading

0 comments on commit f126de2

Please sign in to comment.