Commit 4787dbd4 authored by Dio Maulana's avatar Dio Maulana

menambahkan double back ketika exit

parent 8a93e9ea
...@@ -7,22 +7,44 @@ import 'package:second_display/main.dart'; ...@@ -7,22 +7,44 @@ import 'package:second_display/main.dart';
import 'package:second_display/models/config_display.dart'; import 'package:second_display/models/config_display.dart';
import 'package:second_display/ui/carousel.dart'; import 'package:second_display/ui/carousel.dart';
import 'package:second_display/ui/orders.dart'; import 'package:second_display/ui/orders.dart';
import 'package:second_display/ui/settings/menu_setting.dart';
import 'package:second_display/ui/video_promotion.dart'; import 'package:second_display/ui/video_promotion.dart';
import 'package:second_display/ui/youtube.dart'; import 'package:second_display/ui/youtube.dart';
import 'package:double_back_to_close/double_back_to_close.dart';
// ignore: must_be_immutable // ignore: must_be_immutable
class MainPage extends StatelessWidget { class MainPage extends StatefulWidget {
bool isOrderActive = true; const MainPage({Key? key}) : super(key: key);
MainPage({Key? key}) : super(key: key);
@override
State<MainPage> createState() => _MainPageState();
}
class _MainPageState extends State<MainPage> {
final bool isOrderActive = prefs.getBool('isOrderActive') ?? true;
final bool isAdActive = prefs.getBool('isAdActive') ?? true;
bool allowClose = false;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
context.read<OrdersBloc>().getOrderList(); context.read<OrdersBloc>().getOrderList();
context.read<OrderDetailBloc>().getOrderDetailList(); context.read<OrderDetailBloc>().getOrderDetailList();
return SafeArea( return DoubleBack(
message: "Press back again to close",
condition: allowClose,
onConditionFail: () {
setState(() {
allowClose = true;
});
},
waitForSecondBackPress: 3,
child: SafeArea(
child: MaterialApp( child: MaterialApp(
debugShowCheckedModeBanner: false, debugShowCheckedModeBanner: false,
home: home: Scaffold(
Scaffold(body: BlocBuilder<ConfigDisplayBloc, List<ConfigDisplay>>( body: BlocBuilder<ConfigDisplayBloc, List<ConfigDisplay>>(
builder: (context, configState) { builder: (context, configState) {
if (configState.isEmpty) { if (configState.isEmpty) {
navigatorKey.currentState?.pushNamed('/error'); navigatorKey.currentState?.pushNamed('/error');
...@@ -48,9 +70,12 @@ class MainPage extends StatelessWidget { ...@@ -48,9 +70,12 @@ class MainPage extends StatelessWidget {
images.add(imageString[i].trim()); images.add(imageString[i].trim());
} }
prefs.setStringList("imageList", images); prefs.setStringList("imageList", images);
return Row( return Stack(
children: [ children: [
(configState[0].mediaType == 'video') Row(
children: [
(isAdActive)
? (configState[0].mediaType == 'video')
? Container( ? Container(
height: MediaQuery.of(context).size.height, height: MediaQuery.of(context).size.height,
width: (isOrderActive) width: (isOrderActive)
...@@ -59,33 +84,43 @@ class MainPage extends StatelessWidget { ...@@ -59,33 +84,43 @@ class MainPage extends StatelessWidget {
color: colorBackgroundCarouselandVideo, color: colorBackgroundCarouselandVideo,
// color: Colors.white, // color: Colors.white,
child: VideoPromotion( child: VideoPromotion(
videoUrl: configState[0].videoPromotionUrl), videoUrl:
configState[0].videoPromotionUrl),
) )
: (configState[0].mediaType == 'image') : (configState[0].mediaType == 'image')
? Container( ? SizedBox(
height: MediaQuery.of(context).size.height, height:
MediaQuery.of(context).size.height,
width: (isOrderActive) width: (isOrderActive)
? MediaQuery.of(context).size.width * 0.6 ? MediaQuery.of(context).size.width *
: MediaQuery.of(context).size.width * 1, 0.6
: MediaQuery.of(context).size.width *
1,
child: CarouselIndicator( child: CarouselIndicator(
backgroundColor: backgroundColor:
colorBackgroundCarouselandVideo), colorBackgroundCarouselandVideo),
) )
: Container( : SizedBox(
height: MediaQuery.of(context).size.height, height:
MediaQuery.of(context).size.height,
width: (isOrderActive) width: (isOrderActive)
? MediaQuery.of(context).size.width * 0.6 ? MediaQuery.of(context).size.width *
: MediaQuery.of(context).size.width * 1, 0.6
: MediaQuery.of(context).size.width *
1,
child: YoutubeVideo( child: YoutubeVideo(
backgroundColor: backgroundColor:
colorBackgroundCarouselandVideo, colorBackgroundCarouselandVideo,
youtubeId: configState[0].youtubeId, youtubeId: configState[0].youtubeId,
isOrderActive: isOrderActive), isOrderActive: isOrderActive),
), )
: const SizedBox(height: 0, width: 0),
(isOrderActive) (isOrderActive)
? Container( ? Container(
height: MediaQuery.of(context).size.height, height: MediaQuery.of(context).size.height,
width: MediaQuery.of(context).size.width * 0.4, width: (isAdActive)
? MediaQuery.of(context).size.width * 0.4
: MediaQuery.of(context).size.width * 1,
color: backgroundColorOrder, color: backgroundColorOrder,
// decoration: const BoxDecoration( // decoration: const BoxDecoration(
// gradient: LinearGradient( // gradient: LinearGradient(
...@@ -100,10 +135,38 @@ class MainPage extends StatelessWidget { ...@@ -100,10 +135,38 @@ class MainPage extends StatelessWidget {
) )
: const SizedBox(height: 0, width: 0) : const SizedBox(height: 0, width: 0)
], ],
),
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
Container(
margin: EdgeInsets.only(
top: MediaQuery.of(context).size.height * 0.01,
left: MediaQuery.of(context).size.height * 0.01),
child: GestureDetector(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (BuildContext context) =>
const SettingsMenu(),
),
);
},
child: Icon(
Icons.settings,
color: textColor,
),
),
),
],
)
],
); );
}, },
)), )),
), ),
),
); );
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment