1
1
import 'package:desktop_adb_file_browser/riverpod/package_list.dart' ;
2
2
import 'package:flutter/material.dart' ;
3
+ import 'package:flutter/services.dart' ;
3
4
import 'package:flutter_riverpod/flutter_riverpod.dart' ;
4
5
import 'package:freezed_annotation/freezed_annotation.dart' ;
5
6
@@ -51,6 +52,7 @@ class _PackageListState extends ConsumerState<PackageList> {
51
52
return packageMetadataFuture.when (
52
53
data: (packageMetadata) => ListTile (
53
54
title: Text (packageMetadata.packageName),
55
+ subtitle:
54
56
Text ("${packageMetadata .packageId } - ${packageMetadata .version }" ),
55
57
leading: const Icon (Icons .apps),
56
58
dense: true ,
@@ -59,6 +61,18 @@ class _PackageListState extends ConsumerState<PackageList> {
59
61
children: [
60
62
IconButton (onPressed: () {}, icon: const Icon (Icons .download)),
61
63
IconButton (onPressed: () {}, icon: const Icon (Icons .delete)),
64
+ IconButton (
65
+ onPressed: () async {
66
+ await Clipboard .setData (
67
+ ClipboardData (text: packageMetadata.packageId));
68
+
69
+ if (! context.mounted) return ;
70
+ const snackBar = SnackBar (
71
+ content: Text ('Copied package id to clipboard' ),
72
+ );
73
+ ScaffoldMessenger .of (context).showSnackBar (snackBar);
74
+ },
75
+ icon: const Icon (Icons .copy))
62
76
],
63
77
),
64
78
),
0 commit comments