mirror of
https://github.com/ReVanced/revanced-manager.git
synced 2024-11-09 16:52:14 +01:00
fix: Patching Screen draw-behind Navigation Bar (#1945)
Co-authored-by: surya-technovert <surya.m@technovert.com>
This commit is contained in:
parent
96a21a5564
commit
f1b25d09da
2 changed files with 101 additions and 105 deletions
|
@ -25,114 +25,114 @@ class InstallerView extends StatelessWidget {
|
|||
model.onPopAttempt(context);
|
||||
}
|
||||
},
|
||||
child: SafeArea(
|
||||
top: false,
|
||||
bottom: model.isPatching,
|
||||
child: Scaffold(
|
||||
floatingActionButton: Visibility(
|
||||
visible:
|
||||
!model.isPatching && !model.hasErrors && !model.isInstalling,
|
||||
child: HapticFloatingActionButtonExtended(
|
||||
label: Text(
|
||||
model.isInstalled
|
||||
? t.installerView.openButton
|
||||
: t.installerView.installButton,
|
||||
),
|
||||
icon: model.isInstalled
|
||||
? const Icon(Icons.open_in_new)
|
||||
: const Icon(Icons.file_download_outlined),
|
||||
onPressed: model.isInstalled
|
||||
? () => {
|
||||
model.openApp(),
|
||||
model.cleanPatcher(),
|
||||
Navigator.of(context).pop(),
|
||||
}
|
||||
: () => model.installTypeDialog(context),
|
||||
elevation: 0,
|
||||
child: Scaffold(
|
||||
floatingActionButton: Visibility(
|
||||
visible:
|
||||
!model.isPatching && !model.hasErrors && !model.isInstalling,
|
||||
child: HapticFloatingActionButtonExtended(
|
||||
label: Text(
|
||||
model.isInstalled
|
||||
? t.installerView.openButton
|
||||
: t.installerView.installButton,
|
||||
),
|
||||
icon: model.isInstalled
|
||||
? const Icon(Icons.open_in_new)
|
||||
: const Icon(Icons.file_download_outlined),
|
||||
onPressed: model.isInstalled
|
||||
? () => {
|
||||
model.openApp(),
|
||||
model.cleanPatcher(),
|
||||
Navigator.of(context).pop(),
|
||||
}
|
||||
: () => model.installTypeDialog(context),
|
||||
elevation: 0,
|
||||
),
|
||||
floatingActionButtonLocation:
|
||||
FloatingActionButtonLocation.endContained,
|
||||
bottomNavigationBar: Visibility(
|
||||
visible: !model.isPatching,
|
||||
child: BottomAppBar(
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Visibility(
|
||||
visible: !model.hasErrors,
|
||||
child: IconButton.filledTonal(
|
||||
tooltip: t.installerView.exportApkButtonTooltip,
|
||||
icon: const Icon(Icons.save),
|
||||
onPressed: () => model.onButtonPressed(0),
|
||||
),
|
||||
),
|
||||
IconButton.filledTonal(
|
||||
tooltip: t.installerView.exportLogButtonTooltip,
|
||||
icon: const Icon(Icons.post_add),
|
||||
onPressed: () => model.onButtonPressed(1),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
body: NotificationListener<ScrollNotification>(
|
||||
onNotification: model.handleAutoScrollNotification,
|
||||
child: Stack(
|
||||
children: [
|
||||
CustomScrollView(
|
||||
key: model.logCustomScrollKey,
|
||||
controller: model.scrollController,
|
||||
slivers: <Widget>[
|
||||
CustomSliverAppBar(
|
||||
title: Text(
|
||||
model.headerLogs,
|
||||
style: GoogleFonts.inter(
|
||||
color:
|
||||
Theme.of(context).textTheme.titleLarge!.color,
|
||||
),
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
onBackButtonPressed: () => Navigator.maybePop(context),
|
||||
bottom: PreferredSize(
|
||||
preferredSize: const Size(double.infinity, 1.0),
|
||||
child: GradientProgressIndicator(
|
||||
progress: model.progress,
|
||||
),
|
||||
),
|
||||
),
|
||||
SliverPadding(
|
||||
padding: const EdgeInsets.all(20.0),
|
||||
sliver: SliverList(
|
||||
delegate: SliverChildListDelegate.fixed(
|
||||
<Widget>[
|
||||
CustomCard(
|
||||
child: Text(
|
||||
model.logs,
|
||||
style: GoogleFonts.jetBrainsMono(
|
||||
fontSize: 13,
|
||||
height: 1.5,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
floatingActionButtonLocation:
|
||||
FloatingActionButtonLocation.endContained,
|
||||
bottomNavigationBar: Visibility(
|
||||
visible: !model.isPatching,
|
||||
child: BottomAppBar(
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
Visibility(
|
||||
visible: model.showAutoScrollButton,
|
||||
child: Align(
|
||||
alignment: const Alignment(0.9, 0.97),
|
||||
child: FloatingActionButton(
|
||||
onPressed: model.scrollToBottom,
|
||||
child: const Icon(Icons.arrow_downward_rounded),
|
||||
visible: !model.hasErrors,
|
||||
child: IconButton.filledTonal(
|
||||
tooltip: t.installerView.exportApkButtonTooltip,
|
||||
icon: const Icon(Icons.save),
|
||||
onPressed: () => model.onButtonPressed(0),
|
||||
),
|
||||
),
|
||||
IconButton.filledTonal(
|
||||
tooltip: t.installerView.exportLogButtonTooltip,
|
||||
icon: const Icon(Icons.post_add),
|
||||
onPressed: () => model.onButtonPressed(1),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
body: NotificationListener<ScrollNotification>(
|
||||
onNotification: model.handleAutoScrollNotification,
|
||||
child: Scaffold(
|
||||
body: CustomScrollView(
|
||||
key: model.logCustomScrollKey,
|
||||
controller: model.scrollController,
|
||||
slivers: <Widget>[
|
||||
CustomSliverAppBar(
|
||||
title: Text(
|
||||
model.headerLogs,
|
||||
style: GoogleFonts.inter(
|
||||
color: Theme.of(context).textTheme.titleLarge!.color,
|
||||
),
|
||||
maxLines: 1,
|
||||
overflow: TextOverflow.ellipsis,
|
||||
),
|
||||
onBackButtonPressed: () => Navigator.maybePop(context),
|
||||
bottom: PreferredSize(
|
||||
preferredSize: const Size(double.infinity, 1.0),
|
||||
child: GradientProgressIndicator(
|
||||
progress: model.progress,
|
||||
),
|
||||
),
|
||||
),
|
||||
SliverPadding(
|
||||
padding: EdgeInsets.only(
|
||||
left: 20,
|
||||
right: 20,
|
||||
top: 20,
|
||||
bottom: MediaQuery.paddingOf(context).bottom,
|
||||
),
|
||||
sliver: SliverList(
|
||||
delegate: SliverChildListDelegate.fixed(
|
||||
<Widget>[
|
||||
CustomCard(
|
||||
child: Text(
|
||||
model.logs,
|
||||
style: GoogleFonts.jetBrainsMono(
|
||||
fontSize: 13,
|
||||
height: 1.5,
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
floatingActionButtonLocation:
|
||||
FloatingActionButtonLocation.endDocked,
|
||||
floatingActionButton: Visibility(
|
||||
visible: model.showAutoScrollButton,
|
||||
child: Align(
|
||||
alignment: const Alignment(1, 0.85),
|
||||
child: FloatingActionButton(
|
||||
onPressed: model.scrollToBottom,
|
||||
child: const Icon(Icons.arrow_downward_rounded),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
),
|
||||
|
|
|
@ -49,12 +49,8 @@ class NavigationViewModel extends IndexTrackingViewModel {
|
|||
|
||||
SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge);
|
||||
SystemChrome.setSystemUIOverlayStyle(
|
||||
SystemUiOverlayStyle(
|
||||
const SystemUiOverlayStyle(
|
||||
systemNavigationBarColor: Colors.transparent,
|
||||
systemNavigationBarIconBrightness:
|
||||
DynamicTheme.of(context)!.theme.brightness == Brightness.light
|
||||
? Brightness.dark
|
||||
: Brightness.light,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue