Skip to content

Commit e82b9e7

Browse files
committed
Progress update auth file json
1 parent 8d9a28f commit e82b9e7

7 files changed

Lines changed: 107 additions & 61 deletions

File tree

assets/autogen_meta/data_content.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"author": "Te Sengthai",
3-
"created_date": "2026-03-10T23:33:29.045125",
3+
"created_date": "2026-03-16T21:50:08.529614",
44
"data": [
55
{
66
"created_date": "2025-12-24T23:49:10.965040",

lib/features/personal/personal_git_view.dart

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,12 @@ class _PersonalGitViewState extends State<PersonalGitView> {
3030
}
3131

3232
void fetchGitContent() async {
33-
if (!mounted) return;
3433
var githubApi = GithubAPI(personalAccessToken: widget.token);
3534
var data = await githubApi.listRepos(url: "${widget.url}/${widget.path}");
36-
list = GitListRepoData.fromJson(data);
37-
setState(() {});
35+
if (!mounted) return;
36+
setState(() {
37+
list = GitListRepoData.fromJson(data);
38+
});
3839
}
3940

4041
void showGitContentDetail(

lib/main.dart

Lines changed: 44 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -91,27 +91,48 @@ class _StateMainView extends State<MainView> {
9191
AppData().isLoading.dispose();
9292
}
9393

94-
void showGitContentDetail(BuildContext context) => showGithubLoginDialog(
95-
onSuccess: (response) {
96-
Navigator.pop(context);
97-
if (response == null) {
98-
return;
99-
}
100-
Map<String, dynamic> result = response as Map<String, dynamic>;
101-
if (result.isEmpty) {
102-
debugPrint("Empty repos");
103-
return;
104-
}
94+
void showGitContentDetail(BuildContext context) {
95+
bool isRememberedMe = appSettings?.isRememberedMe ?? false;
96+
String githubToken = appSettings?.githubToken ?? '';
97+
String githubUrl = appSettings?.githubUrl ?? '';
98+
if (isRememberedMe && githubToken.isNotEmpty && githubUrl.isNotEmpty) {
10599
Navigator.push(
106100
context,
107101
MaterialPageRoute(
108102
builder: (context) =>
109-
PersonalGitView(url: response['url'], path: "", token: response['token']),
103+
PersonalGitView(url: githubUrl, path: "", token: githubToken),
110104
fullscreenDialog: true,
111105
),
112106
);
113-
},
114-
);
107+
return;
108+
}
109+
showGithubLoginDialog(
110+
onSuccess: (response) {
111+
Navigator.pop(context);
112+
if (response == null) {
113+
return;
114+
}
115+
Map<String, dynamic> result = response as Map<String, dynamic>;
116+
String? url = response['url'];
117+
String? token = response['token'];
118+
if (result.isEmpty || url == null || token == null) {
119+
debugPrint("Empty repos");
120+
return;
121+
}
122+
Navigator.push(
123+
context,
124+
MaterialPageRoute(
125+
builder: (context) => PersonalGitView(
126+
url: response['url'],
127+
path: "",
128+
token: response['token'],
129+
),
130+
fullscreenDialog: true,
131+
),
132+
);
133+
},
134+
);
135+
}
115136

116137
@override
117138
Widget build(BuildContext context) {
@@ -174,6 +195,15 @@ class _StateMainView extends State<MainView> {
174195
}),
175196
),
176197
),
198+
Padding(
199+
padding: const EdgeInsets.all(8.0),
200+
child: IconButton.outlined(
201+
onPressed: () {
202+
AppData().appSettings?.delete();
203+
},
204+
icon: Text("Clear Cache"),
205+
),
206+
),
177207
],
178208
),
179209
),

lib/shared/data/appsetting.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,16 @@ class AppSettings extends HiveObject {
2121
String? githubToken;
2222
@HiveField(6)
2323
String? githubUrl;
24+
@HiveField(7)
25+
bool? rememberedMe;
2426

2527
set locale(Locale? value) {
2628
localeLanguageCode = value?.languageCode;
2729
localeCountryCode = value?.countryCode;
2830
}
2931

32+
bool get isRememberedMe => rememberedMe ?? false;
33+
3034
Locale? get locale {
3135
if (localeLanguageCode == null) return null;
3236
return Locale(localeLanguageCode!, localeCountryCode);

lib/shared/data/appsetting.g.dart

Lines changed: 6 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/shared/dialog/github_login_dialog.dart

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,25 @@ class GithubLoginWidget extends StatefulWidget {
2828

2929
class _GithubLoginWidgetState extends State<GithubLoginWidget> {
3030
bool rememberedMe = false;
31+
String? token;
32+
String? url;
33+
34+
@override
35+
void initState() {
36+
super.initState();
37+
rememberedMe = AppData().appSettings?.rememberedMe ?? true;
38+
token = AppData().appSettings?.githubToken;
39+
url = AppData().appSettings?.githubUrl;
40+
}
41+
3142
@override
3243
Widget build(BuildContext context) {
44+
final canLogin =
45+
rememberedMe &&
46+
token != null &&
47+
url != null &&
48+
widget.onSuccess != null;
49+
3350
return AlertDialog(
3451
icon: AssetIcons.github.image,
3552
title: Text("Github Login"),
@@ -40,9 +57,8 @@ class _GithubLoginWidgetState extends State<GithubLoginWidget> {
4057
children: [
4158
IconButton.outlined(
4259
onPressed: () async {
43-
String? fileContent = AppData().appSettings?.githubToken;
4460
try {
45-
fileContent ??= await openFilePicker();
61+
var fileContent = await openFilePicker();
4662
if (fileContent == null) {
4763
debugPrint("Invalid file");
4864
return;
@@ -53,6 +69,7 @@ class _GithubLoginWidgetState extends State<GithubLoginWidget> {
5369
if (rememberedMe && token != null && url != null) {
5470
AppData().appSettings?.githubToken = token;
5571
AppData().appSettings?.githubUrl = url;
72+
AppData().appSettings?.rememberedMe = true;
5673
AppData().saveAppSettings();
5774
}
5875
if (widget.onSuccess != null) widget.onSuccess!(jsonData);
@@ -64,6 +81,13 @@ class _GithubLoginWidgetState extends State<GithubLoginWidget> {
6481
icon: Text("Auth File"),
6582
),
6683
SizedBox(height: 8),
84+
if(canLogin) IconButton.filled(
85+
onPressed: () {
86+
widget.onSuccess!({'token': token, 'url': url});
87+
},
88+
icon: Text("Login"),
89+
),
90+
SizedBox(height: 8),
6791
Row(
6892
mainAxisSize: MainAxisSize.min,
6993
children: [

pubspec.lock

Lines changed: 22 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,6 @@ packages:
99
url: "https://pub.dev"
1010
source: hosted
1111
version: "91.0.0"
12-
adaptive_number:
13-
dependency: transitive
14-
description:
15-
name: adaptive_number
16-
sha256: "3a567544e9b5c9c803006f51140ad544aedc79604fd4f3f2c1380003f97c1d77"
17-
url: "https://pub.dev"
18-
source: hosted
19-
version: "1.0.0"
2012
analyzer:
2113
dependency: transitive
2214
description:
@@ -101,10 +93,10 @@ packages:
10193
dependency: transitive
10294
description:
10395
name: build
104-
sha256: "275bf6bb2a00a9852c28d4e0b410da1d833a734d57d39d44f94bfc895a484ec3"
96+
sha256: aadd943f4f8cc946882c954c187e6115a84c98c81ad1d9c6cbf0895a8c85da9c
10597
url: "https://pub.dev"
10698
source: hosted
107-
version: "4.0.4"
99+
version: "4.0.5"
108100
build_config:
109101
dependency: transitive
110102
description:
@@ -125,10 +117,10 @@ packages:
125117
dependency: "direct dev"
126118
description:
127119
name: build_runner
128-
sha256: "7981eb922842c77033026eb4341d5af651562008cdb116bdfa31fc46516b6462"
120+
sha256: "521daf8d189deb79ba474e43a696b41c49fb3987818dbacf3308f1e03673a75e"
129121
url: "https://pub.dev"
130122
source: hosted
131-
version: "2.12.2"
123+
version: "2.13.1"
132124
built_collection:
133125
dependency: transitive
134126
description:
@@ -301,10 +293,10 @@ packages:
301293
dependency: "direct main"
302294
description:
303295
name: dart_jsonwebtoken
304-
sha256: c6ecb3bb991c459b91c5adf9e871113dcb32bbe8fe7ca2c92723f88ffc1e0b7a
296+
sha256: cb79ed79baa02b4f59a597bf365873cbd83f9bb15273d63f7803802d21717c7d
305297
url: "https://pub.dev"
306298
source: hosted
307-
version: "3.3.2"
299+
version: "3.4.0"
308300
dart_quill_delta:
309301
dependency: transitive
310302
description:
@@ -385,14 +377,6 @@ packages:
385377
url: "https://pub.dev"
386378
source: hosted
387379
version: "0.4.5"
388-
ed25519_edwards:
389-
dependency: transitive
390-
description:
391-
name: ed25519_edwards
392-
sha256: "6ce0112d131327ec6d42beede1e5dfd526069b18ad45dcf654f15074ad9276cd"
393-
url: "https://pub.dev"
394-
source: hosted
395-
version: "0.3.1"
396380
equatable:
397381
dependency: transitive
398382
description:
@@ -793,18 +777,18 @@ packages:
793777
dependency: "direct dev"
794778
description:
795779
name: icons_launcher
796-
sha256: "6317d56a73ee528f1dd570d7cd7be120ce58014e0fe635d141ada3d88782f58d"
780+
sha256: b42b2f9b10e58d6a973f71293f00a1f0572595e5e50d676c53048e464f78cb7d
797781
url: "https://pub.dev"
798782
source: hosted
799-
version: "3.0.3"
783+
version: "3.1.0"
800784
image:
801785
dependency: "direct main"
802786
description:
803787
name: image
804-
sha256: "4e973fcf4caae1a4be2fa0a13157aa38a8f9cb049db6529aa00b4d71abc4d928"
788+
sha256: f9881ff4998044947ec38d098bc7c8316ae1186fa786eddffdb867b9bc94dfce
805789
url: "https://pub.dev"
806790
source: hosted
807-
version: "4.5.4"
791+
version: "4.8.0"
808792
intl:
809793
dependency: "direct main"
810794
description:
@@ -913,10 +897,10 @@ packages:
913897
dependency: "direct main"
914898
description:
915899
name: markdown
916-
sha256: "935e23e1ff3bc02d390bad4d4be001208ee92cc217cb5b5a6c19bc14aaa318c1"
900+
sha256: ee85086ad7698b42522c6ad42fe195f1b9898e4d974a1af4576c1a3a176cada9
917901
url: "https://pub.dev"
918902
source: hosted
919-
version: "7.3.0"
903+
version: "7.3.1"
920904
markdown_quill:
921905
dependency: "direct main"
922906
description:
@@ -993,10 +977,10 @@ packages:
993977
dependency: transitive
994978
description:
995979
name: native_toolchain_c
996-
sha256: "92b2ca62c8bd2b8d2f267cdfccf9bfbdb7322f778f8f91b3ce5b5cda23a3899f"
980+
sha256: "6ba77bb18063eebe9de401f5e6437e95e1438af0a87a3a39084fbd37c90df572"
997981
url: "https://pub.dev"
998982
source: hosted
999-
version: "0.17.5"
983+
version: "0.17.6"
1000984
nested:
1001985
dependency: transitive
1002986
description:
@@ -1089,10 +1073,10 @@ packages:
10891073
dependency: "direct main"
10901074
description:
10911075
name: pdf
1092-
sha256: "28eacad99bffcce2e05bba24e50153890ad0255294f4dd78a17075a2ba5c8416"
1076+
sha256: e47a275b267873d5944ad5f5ff0dcc7ac2e36c02b3046a0ffac9b72fd362c44b
10931077
url: "https://pub.dev"
10941078
source: hosted
1095-
version: "3.11.3"
1079+
version: "3.12.0"
10961080
petitparser:
10971081
dependency: transitive
10981082
description:
@@ -1366,10 +1350,10 @@ packages:
13661350
dependency: transitive
13671351
description:
13681352
name: source_gen
1369-
sha256: "1d562a3c1f713904ebbed50d2760217fd8a51ca170ac4b05b0db490699dbac17"
1353+
sha256: "732792cfd197d2161a65bb029606a46e0a18ff30ef9e141a7a82172b05ea8ecd"
13701354
url: "https://pub.dev"
13711355
source: hosted
1372-
version: "4.2.0"
1356+
version: "4.2.2"
13731357
source_helper:
13741358
dependency: transitive
13751359
description:
@@ -1534,10 +1518,10 @@ packages:
15341518
dependency: transitive
15351519
description:
15361520
name: vector_graphics
1537-
sha256: a4f059dc26fc8295b5921376600a194c4ec7d55e72f2fe4c7d2831e103d461e6
1521+
sha256: "7076216a10d5c390315fbe536a30f1254c341e7543e6c4c8a815e591307772b1"
15381522
url: "https://pub.dev"
15391523
source: hosted
1540-
version: "1.1.19"
1524+
version: "1.1.20"
15411525
vector_graphics_codec:
15421526
dependency: transitive
15431527
description:
@@ -1566,10 +1550,10 @@ packages:
15661550
dependency: "direct main"
15671551
description:
15681552
name: video_player
1569-
sha256: "08bfba72e311d48219acad4e191b1f9c27ff8cf928f2c7234874592d9c9d7341"
1553+
sha256: "48a7bdaa38a3d50ec10c78627abdbfad863fdf6f0d6e08c7c3c040cfd80ae36f"
15701554
url: "https://pub.dev"
15711555
source: hosted
1572-
version: "2.11.0"
1556+
version: "2.11.1"
15731557
video_player_android:
15741558
dependency: transitive
15751559
description:

0 commit comments

Comments
 (0)