Skip to content

Commit aa3e276

Browse files
committed
feat: close #308
1 parent 44329a5 commit aa3e276

6 files changed

+43
-9
lines changed

analysis_options.yaml

+4-1
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,7 @@ linter:
3333
analyzer:
3434
exclude: [ build/**, lib/generated/** ]
3535
language:
36-
strict-raw-types: true
36+
strict-raw-types: true
37+
# allow .git/ to be non-existent
38+
errors:
39+
asset_directory_does_not_exist: ignore

android/settings.gradle

+7
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,10 @@ localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
99
def flutterSdkPath = properties.getProperty("flutter.sdk")
1010
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
1111
apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"
12+
13+
// >>> Required by git_info to unignore .git directory
14+
import org.apache.tools.ant.DirectoryScanner
15+
16+
DirectoryScanner.removeDefaultExclude('**/.git')
17+
DirectoryScanner.removeDefaultExclude('**/.git/**')
18+
// <<< Required by git_info to unignore .git directory

lib/main.dart

+5-3
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ import 'package:flutter_fgbg/flutter_fgbg.dart';
6565
import 'package:flutter_localizations/flutter_localizations.dart';
6666
import 'package:flutter_phoenix/flutter_phoenix.dart';
6767
import 'package:flutter_platform_widgets/flutter_platform_widgets.dart';
68+
import 'package:git_info/git_info.dart';
6869
import 'package:material_color_generator/material_color_generator.dart';
6970
import 'package:provider/provider.dart';
7071
import 'package:xiao_mi_push_plugin/xiao_mi_push_plugin.dart';
@@ -79,8 +80,8 @@ void main() {
7980

8081
// Init Mi push Service.
8182
if (PlatformX.isAndroid) {
82-
XiaoMiPushPlugin.init(
83-
appId: "2882303761519940685", appKey: "5821994071685");
83+
unawaited(XiaoMiPushPlugin.init(
84+
appId: "2882303761519940685", appKey: "5821994071685"));
8485
}
8586

8687
// Init Feature registration.
@@ -324,7 +325,8 @@ class DanxiApp extends StatelessWidget {
324325
child: MultiProvider(providers: [
325326
ChangeNotifierProvider.value(value: SettingsProvider.getInstance()),
326327
ChangeNotifierProvider(create: (_) => NotificationProvider()),
327-
ChangeNotifierProvider.value(value: fduHoleProvider)
328+
ChangeNotifierProvider.value(value: fduHoleProvider),
329+
FutureProvider.value(value: GitInfo.get(), initialData: null)
328330
], child: mainApp),
329331
);
330332
}

lib/page/subpage_settings.dart

+13-5
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ import 'package:flutter_email_sender/flutter_email_sender.dart';
5656
import 'package:flutter_layout_grid/flutter_layout_grid.dart';
5757
import 'package:flutter_platform_widgets/flutter_platform_widgets.dart';
5858
import 'package:flutter_progress_dialog/flutter_progress_dialog.dart';
59+
import 'package:git_info/git_info.dart';
5960
import 'package:in_app_review/in_app_review.dart';
6061
import 'package:nil/nil.dart';
6162
import 'package:path_provider/path_provider.dart';
@@ -236,7 +237,9 @@ class SettingsSubpageState extends PlatformSubpageState<SettingsSubpage> {
236237
LicenseItem("device_identity", LICENSE_MIT,
237238
"https://devgit.starschina.com/flutter_open_srouce/device_identity"),
238239
LicenseItem("tutorial_coach_mark", LICENSE_MIT,
239-
"https://github.com/RafaelBarbosatec/tutorial_coach_mark")
240+
"https://github.com/RafaelBarbosatec/tutorial_coach_mark"),
241+
LicenseItem("git_info", LICENSE_BSD_3_0_CLAUSE,
242+
"https://github.com/Rexios80/git_info")
240243
];
241244

242245
String? _clearCacheSubtitle;
@@ -1033,10 +1036,15 @@ class SettingsSubpageState extends PlatformSubpageState<SettingsSubpage> {
10331036
//Version
10341037
Align(
10351038
alignment: Alignment.centerRight,
1036-
child: Text(
1037-
'${S.of(context).version} ${FlutterApp.versionName} build ${pubspec.build.first}',
1038-
textScaleFactor: 0.7,
1039-
style: const TextStyle(fontWeight: FontWeight.bold),
1039+
child: Consumer<GitInformation?>(
1040+
builder: (context, value, child) {
1041+
return Text(
1042+
'${S.of(context).version} ${FlutterApp.versionName} build ${pubspec.build.first} #${value?.hash?.substring(0, 7)}',
1043+
textScaleFactor: 0.7,
1044+
style:
1045+
const TextStyle(fontWeight: FontWeight.bold),
1046+
);
1047+
},
10401048
),
10411049
),
10421050
const SizedBox(height: 4),

pubspec.lock

+8
Original file line numberDiff line numberDiff line change
@@ -824,6 +824,14 @@ packages:
824824
url: "https://pub.dev"
825825
source: hosted
826826
version: "2.3.0"
827+
git_info:
828+
dependency: "direct main"
829+
description:
830+
name: git_info
831+
sha256: f00efd20ff8f084e7910afa071606c025eb4848db40000256cc1996427cf798b
832+
url: "https://pub.dev"
833+
source: hosted
834+
version: "1.1.2"
827835
glob:
828836
dependency: transitive
829837
description:

pubspec.yaml

+6
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ dependencies:
9595
encrypt_shared_preferences: ^0.3.5
9696
device_identity: ^1.0.0
9797
tutorial_coach_mark: ^1.2.9
98+
git_info: ^1.1.2
9899

99100

100101
dependency_overrides:
@@ -128,6 +129,11 @@ flutter:
128129
assets:
129130
- assets/graphics/
130131
- assets/texts/
132+
# to show Git commit hash in the app. Add your .git/refs/heads/<branch> file here!
133+
- .git/
134+
- .git/refs/heads/
135+
- .git/refs/heads/main
136+
- .git/refs/heads/foss-build
131137
fonts:
132138
- family: iconfont
133139
fonts:

0 commit comments

Comments
 (0)