forked from firka/student-legacy
finished 5s streak thing
This commit is contained in:
parent
4dbe3d07a3
commit
8c118eedc1
@ -65,6 +65,7 @@ class ProfileButton extends StatelessWidget {
|
|||||||
radius: child.radius,
|
radius: child.radius,
|
||||||
badge: child.badge,
|
badge: child.badge,
|
||||||
role: child.role,
|
role: child.role,
|
||||||
|
gradeStreak: child.gradeStreak,
|
||||||
profilePictureString: child.profilePictureString,
|
profilePictureString: child.profilePictureString,
|
||||||
onTap: () {
|
onTap: () {
|
||||||
showSlidingBottomSheet(
|
showSlidingBottomSheet(
|
||||||
|
@ -21,6 +21,7 @@ class ProfileImage extends StatefulWidget {
|
|||||||
this.censored = false,
|
this.censored = false,
|
||||||
this.profilePictureString = "",
|
this.profilePictureString = "",
|
||||||
this.isNotePfp = false,
|
this.isNotePfp = false,
|
||||||
|
this.gradeStreak = false,
|
||||||
});
|
});
|
||||||
|
|
||||||
final void Function()? onTap;
|
final void Function()? onTap;
|
||||||
@ -35,6 +36,7 @@ class ProfileImage extends StatefulWidget {
|
|||||||
final bool censored;
|
final bool censored;
|
||||||
final String profilePictureString;
|
final String profilePictureString;
|
||||||
final bool isNotePfp;
|
final bool isNotePfp;
|
||||||
|
final bool gradeStreak;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
State<ProfileImage> createState() => _ProfileImageState();
|
State<ProfileImage> createState() => _ProfileImageState();
|
||||||
@ -145,6 +147,20 @@ class _ProfileImageState extends State<ProfileImage> {
|
|||||||
color: roleColor, size: widget.radius / 1.3),
|
color: roleColor, size: widget.radius / 1.3),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
|
// streak indicator
|
||||||
|
// if (widget.gradeStreak)
|
||||||
|
// SizedBox(
|
||||||
|
// height: widget.radius * 2,
|
||||||
|
// width: widget.radius * 2,
|
||||||
|
// child: Container(
|
||||||
|
// alignment: Alignment.topLeft,
|
||||||
|
// child: Text(
|
||||||
|
// '🔥',
|
||||||
|
// style: TextStyle(fontSize: widget.radius * 0.9),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
|
// ),
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -238,6 +254,29 @@ class _ProfileImageState extends State<ProfileImage> {
|
|||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
|
// streak indicator
|
||||||
|
if (widget.gradeStreak)
|
||||||
|
Hero(
|
||||||
|
tag: "${widget.heroTag!}streak_indicator",
|
||||||
|
child: FittedBox(
|
||||||
|
fit: BoxFit.fitHeight,
|
||||||
|
child: SizedBox(
|
||||||
|
height: widget.radius * 2,
|
||||||
|
width: widget.radius * 2,
|
||||||
|
child: Transform.translate(
|
||||||
|
offset: Offset(-widget.radius / 4, -widget.radius / 4),
|
||||||
|
child: Container(
|
||||||
|
alignment: Alignment.topLeft,
|
||||||
|
child: Text(
|
||||||
|
'🔥',
|
||||||
|
style: TextStyle(fontSize: widget.radius * 0.8),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
|
||||||
Material(
|
Material(
|
||||||
color: Colors.transparent,
|
color: Colors.transparent,
|
||||||
clipBehavior: Clip.hardEdge,
|
clipBehavior: Clip.hardEdge,
|
||||||
|
@ -169,6 +169,7 @@ class AbsencesPageState extends State<AbsencesPage>
|
|||||||
badge: updateProvider.available,
|
badge: updateProvider.available,
|
||||||
role: user.role,
|
role: user.role,
|
||||||
profilePictureString: user.picture,
|
profilePictureString: user.picture,
|
||||||
|
gradeStreak: (user.gradeStreak ?? 0) > 1,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -566,6 +566,7 @@ class GradesPageState extends State<GradesPage> {
|
|||||||
badge: updateProvider.available,
|
badge: updateProvider.available,
|
||||||
role: user.role,
|
role: user.role,
|
||||||
profilePictureString: user.picture,
|
profilePictureString: user.picture,
|
||||||
|
gradeStreak: (user.gradeStreak ?? 0) > 1,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -317,6 +317,7 @@ class HomePageState extends State<HomePage> with TickerProviderStateMixin {
|
|||||||
badge: updateProvider.available,
|
badge: updateProvider.available,
|
||||||
role: user.role,
|
role: user.role,
|
||||||
profilePictureString: user.picture,
|
profilePictureString: user.picture,
|
||||||
|
gradeStreak: (user.gradeStreak ?? 0) > 1,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -109,6 +109,7 @@ class MessagesPageState extends State<MessagesPage>
|
|||||||
badge: updateProvider.available,
|
badge: updateProvider.available,
|
||||||
role: user.role,
|
role: user.role,
|
||||||
profilePictureString: user.picture,
|
profilePictureString: user.picture,
|
||||||
|
gradeStreak: (user.gradeStreak ?? 0) > 1,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -315,6 +315,7 @@ class NotesPageState extends State<NotesPage> with TickerProviderStateMixin {
|
|||||||
badge: updateProvider.available,
|
badge: updateProvider.available,
|
||||||
role: user.role,
|
role: user.role,
|
||||||
profilePictureString: user.picture,
|
profilePictureString: user.picture,
|
||||||
|
gradeStreak: (user.gradeStreak ?? 0) > 1,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -316,6 +316,7 @@ class TimetablePageState extends State<TimetablePage>
|
|||||||
badge: updateProvider.available,
|
badge: updateProvider.available,
|
||||||
role: user.role,
|
role: user.role,
|
||||||
profilePictureString: user.picture,
|
profilePictureString: user.picture,
|
||||||
|
gradeStreak: (user.gradeStreak ?? 0) > 1,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
@ -27,6 +27,7 @@ import 'package:refilc_mobile_ui/common/bottom_sheet_menu/bottom_sheet_menu.dart
|
|||||||
import 'package:refilc_mobile_ui/common/panel/panel.dart';
|
import 'package:refilc_mobile_ui/common/panel/panel.dart';
|
||||||
import 'package:refilc_mobile_ui/common/panel/panel_button.dart';
|
import 'package:refilc_mobile_ui/common/panel/panel_button.dart';
|
||||||
import 'package:refilc_mobile_ui/common/profile_image/profile_image.dart';
|
import 'package:refilc_mobile_ui/common/profile_image/profile_image.dart';
|
||||||
|
import 'package:refilc_mobile_ui/common/soon_alert/soon_alert.dart';
|
||||||
// import 'package:refilc_mobile_ui/common/soon_alert/soon_alert.dart';
|
// import 'package:refilc_mobile_ui/common/soon_alert/soon_alert.dart';
|
||||||
import 'package:refilc_mobile_ui/common/splitted_panel/splitted_panel.dart';
|
import 'package:refilc_mobile_ui/common/splitted_panel/splitted_panel.dart';
|
||||||
// import 'package:refilc_mobile_ui/common/system_chrome.dart';
|
// import 'package:refilc_mobile_ui/common/system_chrome.dart';
|
||||||
@ -320,6 +321,7 @@ class SettingsScreenState extends State<SettingsScreen>
|
|||||||
badge: updateProvider.available,
|
badge: updateProvider.available,
|
||||||
role: user.role,
|
role: user.role,
|
||||||
profilePictureString: user.picture,
|
profilePictureString: user.picture,
|
||||||
|
gradeStreak: (user.gradeStreak ?? 0) > 1,
|
||||||
backgroundColor: Theme.of(context)
|
backgroundColor: Theme.of(context)
|
||||||
.colorScheme
|
.colorScheme
|
||||||
.tertiary, //!settings.presentationMode
|
.tertiary, //!settings.presentationMode
|
||||||
@ -702,6 +704,46 @@ class SettingsScreenState extends State<SettingsScreen>
|
|||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
||||||
|
if ((user.gradeStreak ?? 0) > 1)
|
||||||
|
SplittedPanel(
|
||||||
|
padding: const EdgeInsets.only(
|
||||||
|
bottom: 12.0, left: 24.0, right: 24.0),
|
||||||
|
children: [
|
||||||
|
GestureDetector(
|
||||||
|
onTap: () {
|
||||||
|
SoonAlert.show(context: context);
|
||||||
|
},
|
||||||
|
child: ListTile(
|
||||||
|
title: Text(
|
||||||
|
"grade_streak".i18n,
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppColors.of(context).text.withOpacity(0.95),
|
||||||
|
fontWeight: FontWeight.w500,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
subtitle: Text(
|
||||||
|
"grade_streak_subtitle".i18n,
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppColors.of(context).text.withOpacity(0.75),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
leading: const Text(
|
||||||
|
"🔥",
|
||||||
|
style: TextStyle(fontSize: 22.0),
|
||||||
|
),
|
||||||
|
trailing: Text(
|
||||||
|
"${user.gradeStreak}",
|
||||||
|
style: TextStyle(
|
||||||
|
color: AppColors.of(context).text.withOpacity(0.95),
|
||||||
|
fontWeight: FontWeight.w500,
|
||||||
|
fontSize: 18.0,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
|
||||||
// plus subscribe inline
|
// plus subscribe inline
|
||||||
const PlusSettingsInline(),
|
const PlusSettingsInline(),
|
||||||
|
|
||||||
|
@ -116,6 +116,9 @@ extension SettingsLocalization on String {
|
|||||||
"exp_settings": "Export Settings",
|
"exp_settings": "Export Settings",
|
||||||
"manage_subs": "Manage Subscription",
|
"manage_subs": "Manage Subscription",
|
||||||
"copy_plus_id": "Copy reFilc+ ID",
|
"copy_plus_id": "Copy reFilc+ ID",
|
||||||
|
// grade streak
|
||||||
|
"grade_streak": "Grade 5 Streak",
|
||||||
|
"grade_streak_subtitle": "So many 5s in a row?!",
|
||||||
},
|
},
|
||||||
"hu_hu": {
|
"hu_hu": {
|
||||||
"personal_details": "Személyes információk",
|
"personal_details": "Személyes információk",
|
||||||
@ -230,6 +233,9 @@ extension SettingsLocalization on String {
|
|||||||
"exp_settings": "Beállítások exportálása",
|
"exp_settings": "Beállítások exportálása",
|
||||||
"manage_subs": "Előfizetés kezelése",
|
"manage_subs": "Előfizetés kezelése",
|
||||||
"copy_plus_id": "reFilc+ ID másolása",
|
"copy_plus_id": "reFilc+ ID másolása",
|
||||||
|
// grade streak
|
||||||
|
"grade_streak": "5-ös sorozat",
|
||||||
|
"grade_streak_subtitle": "Egymás után ennyi 5-ös?!",
|
||||||
},
|
},
|
||||||
"de_de": {
|
"de_de": {
|
||||||
"personal_details": "Persönliche Angaben",
|
"personal_details": "Persönliche Angaben",
|
||||||
@ -344,6 +350,9 @@ extension SettingsLocalization on String {
|
|||||||
"exp_settings": "Einstellungen exportieren",
|
"exp_settings": "Einstellungen exportieren",
|
||||||
"manage_subs": "Abonnement verwalten",
|
"manage_subs": "Abonnement verwalten",
|
||||||
"copy_plus_id": "reFilc+ ID kopieren",
|
"copy_plus_id": "reFilc+ ID kopieren",
|
||||||
|
// grade streak
|
||||||
|
"grade_streak": "5er-Streak",
|
||||||
|
"grade_streak_subtitle": "So viele 5er in Folge?!",
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user