printer setting null safety

This commit is contained in:
efrilm 2025-09-17 22:35:00 +07:00
parent bd02f389e5
commit 8aa326c513
5 changed files with 100 additions and 104 deletions

View File

@ -22,23 +22,22 @@ class BarPrinterPage extends StatefulWidget {
class _BarPrinterPageState extends State<BarPrinterPage> { class _BarPrinterPageState extends State<BarPrinterPage> {
String selectedPrinter = 'Bluetooth'; String selectedPrinter = 'Bluetooth';
TextEditingController? addressController; TextEditingController addressController = TextEditingController();
TextEditingController? printNameController; TextEditingController printNameController = TextEditingController();
String paper = '58'; String paper = '58';
bool isInitialized = false; bool isInitialized = false;
@override @override
void initState() { void initState() {
// TODO: implement initState
super.initState(); super.initState();
addressController = TextEditingController(); WidgetsBinding.instance.addPostFrameCallback((_) {
printNameController = TextEditingController(); context.read<GetPrinterBarBloc>().add(GetPrinterBarEvent.get());
context.read<GetPrinterBarBloc>().add(GetPrinterBarEvent.get()); });
} }
@override @override
void dispose() { void dispose() {
addressController!.dispose(); addressController.dispose();
printNameController!.dispose(); printNameController.dispose();
super.dispose(); super.dispose();
} }
@ -57,8 +56,8 @@ class _BarPrinterPageState extends State<BarPrinterPage> {
}, },
success: (data) { success: (data) {
if (data != null && !isInitialized) { if (data != null && !isInitialized) {
addressController!.text = data.address; addressController.text = data.address;
printNameController!.text = data.name; printNameController.text = data.name;
selectedPrinter = data.type; selectedPrinter = data.type;
paper = data.paper; paper = data.paper;
isInitialized = true; isInitialized = true;
@ -112,7 +111,7 @@ class _BarPrinterPageState extends State<BarPrinterPage> {
context: context, context: context,
builder: (context) => DialogSearchPrinter( builder: (context) => DialogSearchPrinter(
onSelected: (value) { onSelected: (value) {
addressController!.text = value; addressController.text = value;
setState(() {}); setState(() {});
}, },
), ),
@ -120,14 +119,14 @@ class _BarPrinterPageState extends State<BarPrinterPage> {
}, },
label: 'Search') label: 'Search')
: CustomTextField( : CustomTextField(
controller: addressController!, controller: addressController,
label: 'Address', label: 'Address',
showLabel: false, showLabel: false,
), ),
SpaceHeight(16), SpaceHeight(16),
// Textfield for name // Textfield for name
CustomTextField( CustomTextField(
controller: printNameController!, controller: printNameController,
label: 'Print Name', label: 'Print Name',
showLabel: false, showLabel: false,
), ),
@ -161,14 +160,14 @@ class _BarPrinterPageState extends State<BarPrinterPage> {
// button test print // button test print
Button.outlined( Button.outlined(
onPressed: () async { onPressed: () async {
if (addressController!.text.isNotEmpty && if (addressController.text.isNotEmpty &&
printNameController!.text.isNotEmpty) { printNameController.text.isNotEmpty) {
try { try {
// Create a test print model // Create a test print model
final testPrinter = PrintModel( final testPrinter = PrintModel(
code: 'bar', code: 'bar',
name: printNameController!.text, name: printNameController.text,
address: addressController!.text, address: addressController.text,
paper: paper, paper: paper,
type: selectedPrinter, type: selectedPrinter,
); );
@ -234,8 +233,8 @@ class _BarPrinterPageState extends State<BarPrinterPage> {
onPressed: () { onPressed: () {
final printData = PrintModel( final printData = PrintModel(
code: 'bar', code: 'bar',
name: printNameController!.text, name: printNameController.text,
address: addressController!.text, address: addressController.text,
paper: paper, paper: paper,
type: selectedPrinter, type: selectedPrinter,
); );
@ -279,8 +278,8 @@ class _BarPrinterPageState extends State<BarPrinterPage> {
final printData = PrintModel( final printData = PrintModel(
id: data.id, id: data.id,
code: 'bar', code: 'bar',
name: printNameController!.text, name: printNameController.text,
address: addressController!.text, address: addressController.text,
paper: paper, paper: paper,
type: selectedPrinter, type: selectedPrinter,
); );

View File

@ -22,23 +22,22 @@ class CheckerPrinterPage extends StatefulWidget {
class _CheckerPrinterPageState extends State<CheckerPrinterPage> { class _CheckerPrinterPageState extends State<CheckerPrinterPage> {
String selectedPrinter = 'Bluetooth'; String selectedPrinter = 'Bluetooth';
TextEditingController? addressController; TextEditingController addressController = TextEditingController();
TextEditingController? printNameController; TextEditingController printNameController = TextEditingController();
String paper = '58'; String paper = '58';
bool isInitialized = false; bool isInitialized = false;
@override @override
void initState() { void initState() {
// TODO: implement initState
super.initState(); super.initState();
addressController = TextEditingController(); WidgetsBinding.instance.addPostFrameCallback((_) {
printNameController = TextEditingController(); context.read<GetPrinterCheckerBloc>().add(GetPrinterCheckerEvent.get());
context.read<GetPrinterCheckerBloc>().add(GetPrinterCheckerEvent.get()); });
} }
@override @override
void dispose() { void dispose() {
addressController!.dispose(); addressController.dispose();
printNameController!.dispose(); printNameController.dispose();
isInitialized = false; isInitialized = false;
super.dispose(); super.dispose();
} }
@ -59,8 +58,8 @@ class _CheckerPrinterPageState extends State<CheckerPrinterPage> {
success: (data) { success: (data) {
log("Checker Printer: ${data?.toMap()}"); log("Checker Printer: ${data?.toMap()}");
if (data != null && !isInitialized) { if (data != null && !isInitialized) {
addressController!.text = data.address; addressController.text = data.address;
printNameController!.text = data.name; printNameController.text = data.name;
selectedPrinter = data.type; selectedPrinter = data.type;
paper = data.paper; paper = data.paper;
isInitialized = true; isInitialized = true;
@ -114,7 +113,7 @@ class _CheckerPrinterPageState extends State<CheckerPrinterPage> {
context: context, context: context,
builder: (context) => DialogSearchPrinter( builder: (context) => DialogSearchPrinter(
onSelected: (value) { onSelected: (value) {
addressController!.text = value; addressController.text = value;
setState(() {}); setState(() {});
}, },
), ),
@ -122,14 +121,14 @@ class _CheckerPrinterPageState extends State<CheckerPrinterPage> {
}, },
label: 'Search') label: 'Search')
: CustomTextField( : CustomTextField(
controller: addressController!, controller: addressController,
label: 'Address', label: 'Address',
showLabel: false, showLabel: false,
), ),
SpaceHeight(16), SpaceHeight(16),
// Textfield for name // Textfield for name
CustomTextField( CustomTextField(
controller: printNameController!, controller: printNameController,
label: 'Print Name', label: 'Print Name',
showLabel: false, showLabel: false,
), ),
@ -163,14 +162,14 @@ class _CheckerPrinterPageState extends State<CheckerPrinterPage> {
// button test print // button test print
Button.outlined( Button.outlined(
onPressed: () async { onPressed: () async {
if (addressController!.text.isNotEmpty && if (addressController.text.isNotEmpty &&
printNameController!.text.isNotEmpty) { printNameController.text.isNotEmpty) {
try { try {
// Create a test print model // Create a test print model
final testPrinter = PrintModel( final testPrinter = PrintModel(
code: 'checker', code: 'checker',
name: printNameController!.text, name: printNameController.text,
address: addressController!.text, address: addressController.text,
paper: paper, paper: paper,
type: selectedPrinter, type: selectedPrinter,
); );
@ -237,8 +236,8 @@ class _CheckerPrinterPageState extends State<CheckerPrinterPage> {
onPressed: () { onPressed: () {
final printData = PrintModel( final printData = PrintModel(
code: 'checker', code: 'checker',
name: printNameController!.text, name: printNameController.text,
address: addressController!.text, address: addressController.text,
paper: paper, paper: paper,
type: selectedPrinter, type: selectedPrinter,
); );
@ -282,8 +281,8 @@ class _CheckerPrinterPageState extends State<CheckerPrinterPage> {
final printData = PrintModel( final printData = PrintModel(
id: data.id, id: data.id,
code: 'checker', code: 'checker',
name: printNameController!.text, name: printNameController.text,
address: addressController!.text, address: addressController.text,
paper: paper, paper: paper,
type: selectedPrinter, type: selectedPrinter,
); );

View File

@ -22,23 +22,22 @@ class KitchenPrinterPage extends StatefulWidget {
class _KitchenPrinterPageState extends State<KitchenPrinterPage> { class _KitchenPrinterPageState extends State<KitchenPrinterPage> {
String selectedPrinter = 'Bluetooth'; String selectedPrinter = 'Bluetooth';
TextEditingController? addressController; TextEditingController addressController = TextEditingController();
TextEditingController? printNameController; TextEditingController printNameController = TextEditingController();
String paper = '58'; String paper = '58';
bool isInitialized = false; bool isInitialized = false;
@override @override
void initState() { void initState() {
// TODO: implement initState
super.initState(); super.initState();
addressController = TextEditingController(); WidgetsBinding.instance.addPostFrameCallback((_) {
printNameController = TextEditingController(); context.read<GetPrinterKitchenBloc>().add(GetPrinterKitchenEvent.get());
context.read<GetPrinterKitchenBloc>().add(GetPrinterKitchenEvent.get()); });
} }
@override @override
void dispose() { void dispose() {
addressController!.dispose(); addressController.dispose();
printNameController!.dispose(); printNameController.dispose();
super.dispose(); super.dispose();
} }
@ -57,8 +56,8 @@ class _KitchenPrinterPageState extends State<KitchenPrinterPage> {
}, },
success: (data) { success: (data) {
if (data != null && !isInitialized) { if (data != null && !isInitialized) {
addressController!.text = data.address; addressController.text = data.address;
printNameController!.text = data.name; printNameController.text = data.name;
selectedPrinter = data.type; selectedPrinter = data.type;
paper = data.paper; paper = data.paper;
isInitialized = true; isInitialized = true;
@ -112,7 +111,7 @@ class _KitchenPrinterPageState extends State<KitchenPrinterPage> {
context: context, context: context,
builder: (context) => DialogSearchPrinter( builder: (context) => DialogSearchPrinter(
onSelected: (value) { onSelected: (value) {
addressController!.text = value; addressController.text = value;
setState(() {}); setState(() {});
}, },
), ),
@ -120,14 +119,14 @@ class _KitchenPrinterPageState extends State<KitchenPrinterPage> {
}, },
label: 'Search') label: 'Search')
: CustomTextField( : CustomTextField(
controller: addressController!, controller: addressController,
label: 'Address', label: 'Address',
showLabel: false, showLabel: false,
), ),
SpaceHeight(16), SpaceHeight(16),
// Textfield for name // Textfield for name
CustomTextField( CustomTextField(
controller: printNameController!, controller: printNameController,
label: 'Print Name', label: 'Print Name',
showLabel: false, showLabel: false,
), ),
@ -161,14 +160,14 @@ class _KitchenPrinterPageState extends State<KitchenPrinterPage> {
// button test print // button test print
Button.outlined( Button.outlined(
onPressed: () async { onPressed: () async {
if (addressController!.text.isNotEmpty && if (addressController.text.isNotEmpty &&
printNameController!.text.isNotEmpty) { printNameController.text.isNotEmpty) {
try { try {
// Create a test print model // Create a test print model
final testPrinter = PrintModel( final testPrinter = PrintModel(
code: 'kitchen', code: 'kitchen',
name: printNameController!.text, name: printNameController.text,
address: addressController!.text, address: addressController.text,
paper: paper, paper: paper,
type: selectedPrinter, type: selectedPrinter,
); );
@ -235,8 +234,8 @@ class _KitchenPrinterPageState extends State<KitchenPrinterPage> {
onPressed: () { onPressed: () {
final printData = PrintModel( final printData = PrintModel(
code: 'kitchen', code: 'kitchen',
name: printNameController!.text, name: printNameController.text,
address: addressController!.text, address: addressController.text,
paper: paper, paper: paper,
type: selectedPrinter, type: selectedPrinter,
); );
@ -280,8 +279,8 @@ class _KitchenPrinterPageState extends State<KitchenPrinterPage> {
final printData = PrintModel( final printData = PrintModel(
id: data.id, id: data.id,
code: 'kitchen', code: 'kitchen',
name: printNameController!.text, name: printNameController.text,
address: addressController!.text, address: addressController.text,
paper: paper, paper: paper,
type: selectedPrinter, type: selectedPrinter,
); );

View File

@ -23,23 +23,22 @@ class ReceiptPrinterPage extends StatefulWidget {
class _ReceiptPrinterPageState extends State<ReceiptPrinterPage> { class _ReceiptPrinterPageState extends State<ReceiptPrinterPage> {
String selectedPrinter = 'Bluetooth'; String selectedPrinter = 'Bluetooth';
TextEditingController? addressController; TextEditingController addressController = TextEditingController();
TextEditingController? printNameController; TextEditingController printNameController = TextEditingController();
String paper = '58'; String paper = '58';
bool isInitialized = false; bool isInitialized = false;
@override @override
void initState() { void initState() {
// TODO: implement initState
super.initState(); super.initState();
addressController = TextEditingController(); WidgetsBinding.instance.addPostFrameCallback((_) {
printNameController = TextEditingController(); context.read<GetPrinterReceiptBloc>().add(GetPrinterReceiptEvent.get());
context.read<GetPrinterReceiptBloc>().add(GetPrinterReceiptEvent.get()); });
} }
@override @override
void dispose() { void dispose() {
addressController!.dispose(); addressController.dispose();
printNameController!.dispose(); printNameController.dispose();
super.dispose(); super.dispose();
} }
@ -58,8 +57,8 @@ class _ReceiptPrinterPageState extends State<ReceiptPrinterPage> {
}, },
success: (data) { success: (data) {
if (data != null && !isInitialized) { if (data != null && !isInitialized) {
addressController!.text = data.address; addressController.text = data.address;
printNameController!.text = data.name; printNameController.text = data.name;
selectedPrinter = data.type; selectedPrinter = data.type;
paper = data.paper; paper = data.paper;
isInitialized = true; isInitialized = true;
@ -113,7 +112,7 @@ class _ReceiptPrinterPageState extends State<ReceiptPrinterPage> {
context: context, context: context,
builder: (context) => DialogSearchPrinter( builder: (context) => DialogSearchPrinter(
onSelected: (value) { onSelected: (value) {
addressController!.text = value; addressController.text = value;
setState(() {}); setState(() {});
}, },
), ),
@ -121,14 +120,14 @@ class _ReceiptPrinterPageState extends State<ReceiptPrinterPage> {
}, },
label: 'Search') label: 'Search')
: CustomTextField( : CustomTextField(
controller: addressController!, controller: addressController,
label: 'Address', label: 'Address',
showLabel: false, showLabel: false,
), ),
SpaceHeight(16), SpaceHeight(16),
// Textfield for name // Textfield for name
CustomTextField( CustomTextField(
controller: printNameController!, controller: printNameController,
label: 'Print Name', label: 'Print Name',
showLabel: false, showLabel: false,
), ),
@ -162,8 +161,8 @@ class _ReceiptPrinterPageState extends State<ReceiptPrinterPage> {
// button test print // button test print
Button.outlined( Button.outlined(
onPressed: () async { onPressed: () async {
if (addressController!.text.isNotEmpty && if (addressController.text.isNotEmpty &&
printNameController!.text.isNotEmpty) { printNameController.text.isNotEmpty) {
try { try {
// Get actual tax and service charge settings // Get actual tax and service charge settings
final settingsLocalDatasource = final settingsLocalDatasource =
@ -177,8 +176,8 @@ class _ReceiptPrinterPageState extends State<ReceiptPrinterPage> {
// Create a test print model // Create a test print model
final testPrinter = PrintModel( final testPrinter = PrintModel(
code: 'receipt', code: 'receipt',
name: printNameController!.text, name: printNameController.text,
address: addressController!.text, address: addressController.text,
paper: paper, paper: paper,
type: selectedPrinter, type: selectedPrinter,
); );
@ -253,8 +252,8 @@ class _ReceiptPrinterPageState extends State<ReceiptPrinterPage> {
onPressed: () { onPressed: () {
final printData = PrintModel( final printData = PrintModel(
code: 'receipt', code: 'receipt',
name: printNameController!.text, name: printNameController.text,
address: addressController!.text, address: addressController.text,
paper: paper, paper: paper,
type: selectedPrinter, type: selectedPrinter,
); );
@ -298,8 +297,8 @@ class _ReceiptPrinterPageState extends State<ReceiptPrinterPage> {
final printData = PrintModel( final printData = PrintModel(
id: data.id, id: data.id,
code: 'receipt', code: 'receipt',
name: printNameController!.text, name: printNameController.text,
address: addressController!.text, address: addressController.text,
paper: paper, paper: paper,
type: selectedPrinter, type: selectedPrinter,
); );

View File

@ -23,22 +23,22 @@ class TicketPrinterPage extends StatefulWidget {
class _TicketPrinterPageState extends State<TicketPrinterPage> { class _TicketPrinterPageState extends State<TicketPrinterPage> {
String selectedPrinter = 'Bluetooth'; String selectedPrinter = 'Bluetooth';
TextEditingController? addressController; TextEditingController addressController = TextEditingController();
TextEditingController? printNameController; TextEditingController printNameController = TextEditingController();
String paper = '58'; String paper = '58';
bool isInitialized = false; bool isInitialized = false;
@override @override
void initState() { void initState() {
super.initState(); super.initState();
addressController = TextEditingController(); WidgetsBinding.instance.addPostFrameCallback((_) {
printNameController = TextEditingController(); context.read<GetPrinterTicketBloc>().add(GetPrinterTicketEvent.get());
context.read<GetPrinterTicketBloc>().add(GetPrinterTicketEvent.get()); });
} }
@override @override
void dispose() { void dispose() {
addressController!.dispose(); addressController.dispose();
printNameController!.dispose(); printNameController.dispose();
super.dispose(); super.dispose();
} }
@ -57,8 +57,8 @@ class _TicketPrinterPageState extends State<TicketPrinterPage> {
}, },
success: (data) { success: (data) {
if (data != null && !isInitialized) { if (data != null && !isInitialized) {
addressController!.text = data.address; addressController.text = data.address;
printNameController!.text = data.name; printNameController.text = data.name;
selectedPrinter = data.type; selectedPrinter = data.type;
paper = data.paper; paper = data.paper;
isInitialized = true; isInitialized = true;
@ -112,7 +112,7 @@ class _TicketPrinterPageState extends State<TicketPrinterPage> {
context: context, context: context,
builder: (context) => DialogSearchPrinter( builder: (context) => DialogSearchPrinter(
onSelected: (value) { onSelected: (value) {
addressController!.text = value; addressController.text = value;
setState(() {}); setState(() {});
}, },
), ),
@ -120,14 +120,14 @@ class _TicketPrinterPageState extends State<TicketPrinterPage> {
}, },
label: 'Search') label: 'Search')
: CustomTextField( : CustomTextField(
controller: addressController!, controller: addressController,
label: 'Address', label: 'Address',
showLabel: false, showLabel: false,
), ),
SpaceHeight(16), SpaceHeight(16),
// Textfield for name // Textfield for name
CustomTextField( CustomTextField(
controller: printNameController!, controller: printNameController,
label: 'Print Name', label: 'Print Name',
showLabel: false, showLabel: false,
), ),
@ -161,14 +161,14 @@ class _TicketPrinterPageState extends State<TicketPrinterPage> {
// button test print // button test print
Button.outlined( Button.outlined(
onPressed: () async { onPressed: () async {
if (addressController!.text.isNotEmpty && if (addressController.text.isNotEmpty &&
printNameController!.text.isNotEmpty) { printNameController.text.isNotEmpty) {
try { try {
// Create a test print model // Create a test print model
final testPrinter = PrintModel( final testPrinter = PrintModel(
code: 'ticket', code: 'ticket',
name: printNameController!.text, name: printNameController.text,
address: addressController!.text, address: addressController.text,
paper: paper, paper: paper,
type: selectedPrinter, type: selectedPrinter,
); );
@ -231,8 +231,8 @@ class _TicketPrinterPageState extends State<TicketPrinterPage> {
onPressed: () { onPressed: () {
final printData = PrintModel( final printData = PrintModel(
code: 'ticket', code: 'ticket',
name: printNameController!.text, name: printNameController.text,
address: addressController!.text, address: addressController.text,
paper: paper, paper: paper,
type: selectedPrinter, type: selectedPrinter,
); );
@ -276,8 +276,8 @@ class _TicketPrinterPageState extends State<TicketPrinterPage> {
final printData = PrintModel( final printData = PrintModel(
id: data.id, id: data.id,
code: 'ticket', code: 'ticket',
name: printNameController!.text, name: printNameController.text,
address: addressController!.text, address: addressController.text,
paper: paper, paper: paper,
type: selectedPrinter, type: selectedPrinter,
); );