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

menambahkan double back ketika exit

parent 8a93e9ea
...@@ -7,102 +7,165 @@ import 'package:second_display/main.dart'; ...@@ -7,102 +7,165 @@ 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(
child: MaterialApp( message: "Press back again to close",
debugShowCheckedModeBanner: false, condition: allowClose,
home: onConditionFail: () {
Scaffold(body: BlocBuilder<ConfigDisplayBloc, List<ConfigDisplay>>( setState(() {
builder: (context, configState) { allowClose = true;
if (configState.isEmpty) { });
navigatorKey.currentState?.pushNamed('/error'); },
} waitForSecondBackPress: 3,
int valueIntBackgroundColorCarouselVideo = int.parse( child: SafeArea(
configState[0].backgroundColorCarouselVideo, child: MaterialApp(
radix: 16); debugShowCheckedModeBanner: false,
final Color colorBackgroundCarouselandVideo = home: Scaffold(
Color(valueIntBackgroundColorCarouselVideo); body: BlocBuilder<ConfigDisplayBloc, List<ConfigDisplay>>(
builder: (context, configState) {
if (configState.isEmpty) {
navigatorKey.currentState?.pushNamed('/error');
}
int valueIntBackgroundColorCarouselVideo = int.parse(
configState[0].backgroundColorCarouselVideo,
radix: 16);
final Color colorBackgroundCarouselandVideo =
Color(valueIntBackgroundColorCarouselVideo);
int valueIntTextColor = int valueIntTextColor =
int.parse(configState[0].textColor, radix: 16); int.parse(configState[0].textColor, radix: 16);
final Color textColor = Color(valueIntTextColor); final Color textColor = Color(valueIntTextColor);
int valueIntBackgroundColorOrder = int valueIntBackgroundColorOrder =
int.parse(configState[0].backgroundColorOrder, radix: 16); int.parse(configState[0].backgroundColorOrder, radix: 16);
final Color backgroundColorOrder = final Color backgroundColorOrder =
Color(valueIntBackgroundColorOrder); Color(valueIntBackgroundColorOrder);
List<String> images = []; List<String> images = [];
var imageString = configState[0].images.split(';'); var imageString = configState[0].images.split(';');
for (int i = 0; i < imageString.length; i++) { for (int i = 0; i < imageString.length; i++) {
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(
? Container( children: [
height: MediaQuery.of(context).size.height, (isAdActive)
width: (isOrderActive) ? (configState[0].mediaType == 'video')
? MediaQuery.of(context).size.width * 0.6 ? Container(
: MediaQuery.of(context).size.width * 1, height: MediaQuery.of(context).size.height,
color: colorBackgroundCarouselandVideo, width: (isOrderActive)
// color: Colors.white, ? MediaQuery.of(context).size.width * 0.6
child: VideoPromotion( : MediaQuery.of(context).size.width * 1,
videoUrl: configState[0].videoPromotionUrl), color: colorBackgroundCarouselandVideo,
) // color: Colors.white,
: (configState[0].mediaType == 'image') child: VideoPromotion(
? Container( videoUrl:
height: MediaQuery.of(context).size.height, configState[0].videoPromotionUrl),
width: (isOrderActive) )
? MediaQuery.of(context).size.width * 0.6 : (configState[0].mediaType == 'image')
: MediaQuery.of(context).size.width * 1, ? SizedBox(
child: CarouselIndicator( height:
backgroundColor: MediaQuery.of(context).size.height,
colorBackgroundCarouselandVideo), width: (isOrderActive)
) ? MediaQuery.of(context).size.width *
: Container( 0.6
height: MediaQuery.of(context).size.height, : MediaQuery.of(context).size.width *
width: (isOrderActive) 1,
? MediaQuery.of(context).size.width * 0.6 child: CarouselIndicator(
: MediaQuery.of(context).size.width * 1, backgroundColor:
child: YoutubeVideo( colorBackgroundCarouselandVideo),
backgroundColor: )
colorBackgroundCarouselandVideo, : SizedBox(
youtubeId: configState[0].youtubeId, height:
isOrderActive: isOrderActive), MediaQuery.of(context).size.height,
width: (isOrderActive)
? MediaQuery.of(context).size.width *
0.6
: MediaQuery.of(context).size.width *
1,
child: YoutubeVideo(
backgroundColor:
colorBackgroundCarouselandVideo,
youtubeId: configState[0].youtubeId,
isOrderActive: isOrderActive),
)
: const SizedBox(height: 0, width: 0),
(isOrderActive)
? Container(
height: MediaQuery.of(context).size.height,
width: (isAdActive)
? MediaQuery.of(context).size.width * 0.4
: MediaQuery.of(context).size.width * 1,
color: backgroundColorOrder,
// decoration: const BoxDecoration(
// gradient: LinearGradient(
// begin: Alignment.topLeft,
// end: Alignment.bottomRight,
// colors: [
// Colors.blue,
// Colors.white,
// ],
// )),
child: OrderPage(textColor: textColor),
)
: 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,
), ),
(isOrderActive) ),
? Container( ),
height: MediaQuery.of(context).size.height, ],
width: MediaQuery.of(context).size.width * 0.4, )
color: backgroundColorOrder, ],
// decoration: const BoxDecoration( );
// gradient: LinearGradient( },
// begin: Alignment.topLeft, )),
// end: Alignment.bottomRight, ),
// colors: [
// Colors.blue,
// Colors.white,
// ],
// )),
child: OrderPage(textColor: textColor),
)
: const SizedBox(height: 0, width: 0)
],
);
},
)),
), ),
); );
} }
......
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