phase3: nullable fields/methods, casts, ?.call, pinput/YoutubePlayer v5, buttonColor, dead-code removal. 72->16

This commit is contained in:
2026-08-01 01:21:37 +08:00
parent 137eca4c69
commit 7c69197396
39 changed files with 107 additions and 113 deletions

View File

@@ -28,7 +28,7 @@ class MobileMySupport extends StatefulWidget {
}
class MobileMySupportState extends State<MobileMySupport> {
late List<Ticket> tickets;
List<Ticket>? tickets;
int _page = 1;
int _pageCount = 1;
@@ -41,7 +41,7 @@ class MobileMySupportState extends State<MobileMySupport> {
void _onRefresh() {
_page = 1;
if (tickets != null) {
tickets.clear();
tickets!.clear();
} else {
tickets = [];
}
@@ -101,7 +101,7 @@ class MobileMySupportState extends State<MobileMySupport> {
enablePullUp: true,
header: WaterDropHeader(),
footer: CustomFooter(
builder: (BuildContext context, LoadStatus mode){
builder: (BuildContext context, LoadStatus? mode){
Widget footer;
if(mode == LoadStatus.idle) {
footer = Text(S.of(context).pull_up_to_load_more);
@@ -143,9 +143,9 @@ class MobileMySupportState extends State<MobileMySupport> {
return SizedBox.shrink();
}
return ListView.builder(
itemCount: tickets.length <= 1 ? 1 : tickets.length,
itemCount: tickets!.length <= 1 ? 1 : tickets!.length,
itemBuilder: (BuildContext context, int i) {
if (tickets.length <= 0) {
if (tickets!.length <= 0) {
return Container(
padding: EdgeInsets.all(16.0),
child: Center(
@@ -153,7 +153,7 @@ class MobileMySupportState extends State<MobileMySupport> {
),
);
} else {
Ticket ticket = tickets[i];
Ticket ticket = tickets![i];
return GestureDetector(
onTap: () {
@@ -201,7 +201,7 @@ class MobileMySupportState extends State<MobileMySupport> {
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
ticket.isClosed ?
ticket.isClosed == true ?
Container(
padding: EdgeInsets.only(right: 10.0),
child: Icon(Icons.lock, color: Colors.green, size: 16.0,),
@@ -273,7 +273,7 @@ class MobileMySupportState extends State<MobileMySupport> {
if (tickets == null) {
tickets = [];
}
tickets.addAll((value['tickets'] as List).map((e) => Ticket.fromJson(e)).toList());
tickets!.addAll((value['tickets'] as List).map((e) => Ticket.fromJson(e)).toList());
});
}
}).catchError((error) {