diff --git a/bytedesk_demo/android/app/src/main/res/drawable/launch_background.xml b/bytedesk_demo/android/app/src/main/res/drawable/launch_background.xml old mode 100644 new mode 100755 diff --git a/bytedesk_demo/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/bytedesk_demo/android/app/src/main/res/mipmap-hdpi/ic_launcher.png old mode 100644 new mode 100755 index db77bb4..d2f7c74 Binary files a/bytedesk_demo/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and b/bytedesk_demo/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/bytedesk_demo/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/bytedesk_demo/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100755 index 0000000..d2f7c74 Binary files /dev/null and b/bytedesk_demo/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/bytedesk_demo/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/bytedesk_demo/android/app/src/main/res/mipmap-mdpi/ic_launcher.png old mode 100644 new mode 100755 index 17987b7..6fd8bf4 Binary files a/bytedesk_demo/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and b/bytedesk_demo/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/bytedesk_demo/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/bytedesk_demo/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100755 index 0000000..6fd8bf4 Binary files /dev/null and b/bytedesk_demo/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/ic_arrow_back_white_24dp.png b/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/ic_arrow_back_white_24dp.png new file mode 100755 index 0000000..8214d9d Binary files /dev/null and b/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/ic_arrow_back_white_24dp.png differ diff --git a/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png old mode 100644 new mode 100755 index 09d4391..ce9321e Binary files a/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and b/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100755 index 0000000..ce9321e Binary files /dev/null and b/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/icon_tabbar_component.png b/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/icon_tabbar_component.png new file mode 100755 index 0000000..4e69b4c Binary files /dev/null and b/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/icon_tabbar_component.png differ diff --git a/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/icon_tabbar_component_selected.png b/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/icon_tabbar_component_selected.png new file mode 100755 index 0000000..4da085e Binary files /dev/null and b/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/icon_tabbar_component_selected.png differ diff --git a/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/icon_tabbar_lab.png b/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/icon_tabbar_lab.png new file mode 100755 index 0000000..8c211a3 Binary files /dev/null and b/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/icon_tabbar_lab.png differ diff --git a/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/icon_tabbar_lab_selected.png b/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/icon_tabbar_lab_selected.png new file mode 100755 index 0000000..19be002 Binary files /dev/null and b/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/icon_tabbar_lab_selected.png differ diff --git a/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/icon_tabbar_util.png b/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/icon_tabbar_util.png new file mode 100755 index 0000000..2e80b79 Binary files /dev/null and b/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/icon_tabbar_util.png differ diff --git a/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/icon_tabbar_util_selected.png b/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/icon_tabbar_util_selected.png new file mode 100755 index 0000000..567f543 Binary files /dev/null and b/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/icon_tabbar_util_selected.png differ diff --git a/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/icon_topbar_about.png b/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/icon_topbar_about.png new file mode 100755 index 0000000..02773b9 Binary files /dev/null and b/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/icon_topbar_about.png differ diff --git a/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/icon_topbar_overflow.png b/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/icon_topbar_overflow.png new file mode 100755 index 0000000..f92d3a1 Binary files /dev/null and b/bytedesk_demo/android/app/src/main/res/mipmap-xhdpi/icon_topbar_overflow.png differ diff --git a/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/ic_arrow_back_white_24dp.png b/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/ic_arrow_back_white_24dp.png new file mode 100755 index 0000000..0e43ff9 Binary files /dev/null and b/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/ic_arrow_back_white_24dp.png differ diff --git a/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png old mode 100644 new mode 100755 index d5f1c8d..29e12d5 Binary files a/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100755 index 0000000..29e12d5 Binary files /dev/null and b/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/icon_tabbar_component.png b/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/icon_tabbar_component.png new file mode 100755 index 0000000..5cc1315 Binary files /dev/null and b/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/icon_tabbar_component.png differ diff --git a/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/icon_tabbar_component_selected.png b/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/icon_tabbar_component_selected.png new file mode 100755 index 0000000..6eb0b0c Binary files /dev/null and b/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/icon_tabbar_component_selected.png differ diff --git a/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/icon_tabbar_lab.png b/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/icon_tabbar_lab.png new file mode 100755 index 0000000..5c8e923 Binary files /dev/null and b/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/icon_tabbar_lab.png differ diff --git a/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/icon_tabbar_lab_selected.png b/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/icon_tabbar_lab_selected.png new file mode 100755 index 0000000..30a59df Binary files /dev/null and b/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/icon_tabbar_lab_selected.png differ diff --git a/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/icon_tabbar_util.png b/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/icon_tabbar_util.png new file mode 100755 index 0000000..fc251e3 Binary files /dev/null and b/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/icon_tabbar_util.png differ diff --git a/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/icon_tabbar_util_selected.png b/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/icon_tabbar_util_selected.png new file mode 100755 index 0000000..712a213 Binary files /dev/null and b/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/icon_tabbar_util_selected.png differ diff --git a/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/icon_topbar_about.png b/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/icon_topbar_about.png new file mode 100755 index 0000000..4313791 Binary files /dev/null and b/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/icon_topbar_about.png differ diff --git a/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/icon_topbar_overflow.png b/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/icon_topbar_overflow.png new file mode 100755 index 0000000..1b6d918 Binary files /dev/null and b/bytedesk_demo/android/app/src/main/res/mipmap-xxhdpi/icon_topbar_overflow.png differ diff --git a/bytedesk_demo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/bytedesk_demo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png old mode 100644 new mode 100755 index 4d6372e..663f287 Binary files a/bytedesk_demo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and b/bytedesk_demo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/bytedesk_demo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/bytedesk_demo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100755 index 0000000..663f287 Binary files /dev/null and b/bytedesk_demo/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/bytedesk_demo/android/app/src/main/res/values-night/styles.xml b/bytedesk_demo/android/app/src/main/res/values-night/styles.xml index 3db14bb..449a9f9 100644 --- a/bytedesk_demo/android/app/src/main/res/values-night/styles.xml +++ b/bytedesk_demo/android/app/src/main/res/values-night/styles.xml @@ -10,7 +10,7 @@ This theme determines the color of the Android Window while your Flutter UI initializes, as well as behind your Flutter UI while its running. - + This Theme is only used starting with V2 of Flutter's Android embedding. --> diff --git a/bytedesk_demo/android/app/src/main/res/xml/file_paths.xml b/bytedesk_demo/android/app/src/main/res/xml/file_paths.xml new file mode 100755 index 0000000..fb3af1e --- /dev/null +++ b/bytedesk_demo/android/app/src/main/res/xml/file_paths.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/bytedesk_demo/android/app/src/main/res/xml/network_security_config.xml b/bytedesk_demo/android/app/src/main/res/xml/network_security_config.xml new file mode 100755 index 0000000..dca93c0 --- /dev/null +++ b/bytedesk_demo/android/app/src/main/res/xml/network_security_config.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/bytedesk_demo/ios/Podfile.lock b/bytedesk_demo/ios/Podfile.lock index 9beb501..ca1026c 100644 --- a/bytedesk_demo/ios/Podfile.lock +++ b/bytedesk_demo/ios/Podfile.lock @@ -50,7 +50,7 @@ PODS: - FMDB/standard (2.7.5) - image_gallery_saver (1.5.0): - Flutter - - image_picker (0.0.1): + - image_picker_ios (0.0.1): - Flutter - package_info (0.0.1): - Flutter @@ -84,7 +84,7 @@ DEPENDENCIES: - Flutter (from `Flutter`) - fluttertoast (from `.symlinks/plugins/fluttertoast/ios`) - image_gallery_saver (from `.symlinks/plugins/image_gallery_saver/ios`) - - image_picker (from `.symlinks/plugins/image_picker/ios`) + - image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`) - package_info (from `.symlinks/plugins/package_info/ios`) - path_provider_ios (from `.symlinks/plugins/path_provider_ios/ios`) - shared_preferences_ios (from `.symlinks/plugins/shared_preferences_ios/ios`) @@ -120,8 +120,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/fluttertoast/ios" image_gallery_saver: :path: ".symlinks/plugins/image_gallery_saver/ios" - image_picker: - :path: ".symlinks/plugins/image_picker/ios" + image_picker_ios: + :path: ".symlinks/plugins/image_picker_ios/ios" package_info: :path: ".symlinks/plugins/package_info/ios" path_provider_ios: @@ -151,7 +151,7 @@ SPEC CHECKSUMS: fluttertoast: 16fbe6039d06a763f3533670197d01fc73459037 FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a image_gallery_saver: 259eab68fb271cfd57d599904f7acdc7832e7ef2 - image_picker: 541dcbb3b9cf32d87eacbd957845d8651d6c62c3 + image_picker_ios: b786a5dcf033a8336a657191401bfdf12017dabb package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62 path_provider_ios: 14f3d2fd28c4fdb42f44e0f751d12861c43cee02 SDWebImage: 0905f1b7760fc8ac4198cae0036600d67478751e diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json old mode 100644 new mode 100755 index d36b1fa..193d0dc --- a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,122 +1,158 @@ { - "images" : [ - { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon-App-20x20@2x.png", - "scale" : "2x" - }, - { - "size" : "20x20", - "idiom" : "iphone", - "filename" : "Icon-App-20x20@3x.png", - "scale" : "3x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@1x.png", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@2x.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "Icon-App-29x29@3x.png", - "scale" : "3x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-App-40x40@2x.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "Icon-App-40x40@3x.png", - "scale" : "3x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-App-60x60@2x.png", - "scale" : "2x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "Icon-App-60x60@3x.png", - "scale" : "3x" - }, - { - "size" : "20x20", - "idiom" : "ipad", - "filename" : "Icon-App-20x20@1x.png", - "scale" : "1x" - }, - { - "size" : "20x20", - "idiom" : "ipad", - "filename" : "Icon-App-20x20@2x.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon-App-29x29@1x.png", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "Icon-App-29x29@2x.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon-App-40x40@1x.png", - "scale" : "1x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "Icon-App-40x40@2x.png", - "scale" : "2x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon-App-76x76@1x.png", - "scale" : "1x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "Icon-App-76x76@2x.png", - "scale" : "2x" - }, - { - "size" : "83.5x83.5", - "idiom" : "ipad", - "filename" : "Icon-App-83.5x83.5@2x.png", - "scale" : "2x" - }, - { - "size" : "1024x1024", - "idiom" : "ios-marketing", - "filename" : "Icon-App-1024x1024@1x.png", - "scale" : "1x" + "images": [ + { + "size": "20x20", + "idiom": "iphone", + "filename": "icon-20@2x.png", + "scale": "2x" + }, + { + "size": "20x20", + "idiom": "iphone", + "filename": "icon-20@3x.png", + "scale": "3x" + }, + { + "size": "29x29", + "idiom": "iphone", + "filename": "icon-29.png", + "scale": "1x" + }, + { + "size": "29x29", + "idiom": "iphone", + "filename": "icon-29@2x.png", + "scale": "2x" + }, + { + "size": "29x29", + "idiom": "iphone", + "filename": "icon-29@3x.png", + "scale": "3x" + }, + { + "size": "40x40", + "idiom": "iphone", + "filename": "icon-40@2x.png", + "scale": "2x" + }, + { + "size": "40x40", + "idiom": "iphone", + "filename": "icon-40@3x.png", + "scale": "3x" + }, + { + "size": "57x57", + "idiom": "iphone", + "filename": "icon-57.png", + "scale": "1x" + }, + { + "size": "57x57", + "idiom": "iphone", + "filename": "icon-57@2x.png", + "scale": "2x" + }, + { + "size": "60x60", + "idiom": "iphone", + "filename": "icon-60@2x.png", + "scale": "2x" + }, + { + "size": "60x60", + "idiom": "iphone", + "filename": "icon-60@3x.png", + "scale": "3x" + }, + { + "size": "20x20", + "idiom": "ipad", + "filename": "icon-20-ipad.png", + "scale": "1x" + }, + { + "size": "20x20", + "idiom": "ipad", + "filename": "icon-20@2x-ipad.png", + "scale": "2x" + }, + { + "size": "29x29", + "idiom": "ipad", + "filename": "icon-29-ipad.png", + "scale": "1x" + }, + { + "size": "29x29", + "idiom": "ipad", + "filename": "icon-29@2x-ipad.png", + "scale": "2x" + }, + { + "size": "40x40", + "idiom": "ipad", + "filename": "icon-40.png", + "scale": "1x" + }, + { + "size": "40x40", + "idiom": "ipad", + "filename": "icon-40@2x.png", + "scale": "2x" + }, + { + "size": "50x50", + "idiom": "ipad", + "filename": "icon-50.png", + "scale": "1x" + }, + { + "size": "50x50", + "idiom": "ipad", + "filename": "icon-50@2x.png", + "scale": "2x" + }, + { + "size": "72x72", + "idiom": "ipad", + "filename": "icon-72.png", + "scale": "1x" + }, + { + "size": "72x72", + "idiom": "ipad", + "filename": "icon-72@2x.png", + "scale": "2x" + }, + { + "size": "76x76", + "idiom": "ipad", + "filename": "icon-76.png", + "scale": "1x" + }, + { + "size": "76x76", + "idiom": "ipad", + "filename": "icon-76@2x.png", + "scale": "2x" + }, + { + "size": "83.5x83.5", + "idiom": "ipad", + "filename": "icon-83.5@2x.png", + "scale": "2x" + }, + { + "size": "1024x1024", + "idiom": "ios-marketing", + "filename": "icon-1024.png", + "scale": "1x" + } + ], + "info": { + "version": 1, + "author": "icon.wuruihong.com" } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} +} \ No newline at end of file diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png deleted file mode 100644 index dc9ada4..0000000 Binary files a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png and /dev/null differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png deleted file mode 100644 index 28c6bf0..0000000 Binary files a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png and /dev/null differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png deleted file mode 100644 index 2ccbfd9..0000000 Binary files a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png and /dev/null differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png deleted file mode 100644 index f091b6b..0000000 Binary files a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png and /dev/null differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png deleted file mode 100644 index 4cde121..0000000 Binary files a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png and /dev/null differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png deleted file mode 100644 index d0ef06e..0000000 Binary files a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png and /dev/null differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png deleted file mode 100644 index dcdc230..0000000 Binary files a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png and /dev/null differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png deleted file mode 100644 index 2ccbfd9..0000000 Binary files a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png and /dev/null differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png deleted file mode 100644 index c8f9ed8..0000000 Binary files a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png and /dev/null differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png deleted file mode 100644 index a6d6b86..0000000 Binary files a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png and /dev/null differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png deleted file mode 100644 index a6d6b86..0000000 Binary files a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png and /dev/null differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png deleted file mode 100644 index 75b2d16..0000000 Binary files a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png and /dev/null differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png deleted file mode 100644 index c4df70d..0000000 Binary files a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png and /dev/null differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png deleted file mode 100644 index 6a84f41..0000000 Binary files a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png and /dev/null differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png deleted file mode 100644 index d0e1f58..0000000 Binary files a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png and /dev/null differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-1024.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-1024.png new file mode 100755 index 0000000..6b9c5d0 Binary files /dev/null and b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-1024.png differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png new file mode 100755 index 0000000..684fee1 Binary files /dev/null and b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png new file mode 100755 index 0000000..66908ba Binary files /dev/null and b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png new file mode 100755 index 0000000..c85d39b Binary files /dev/null and b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png new file mode 100755 index 0000000..6d072eb Binary files /dev/null and b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png new file mode 100755 index 0000000..50dc4c7 Binary files /dev/null and b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29.png new file mode 100755 index 0000000..335469c Binary files /dev/null and b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29.png differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@2x-ipad.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@2x-ipad.png new file mode 100755 index 0000000..e585977 Binary files /dev/null and b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@2x-ipad.png differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png new file mode 100755 index 0000000..5dfbe16 Binary files /dev/null and b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png new file mode 100755 index 0000000..bd2376d Binary files /dev/null and b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40.png new file mode 100755 index 0000000..66908ba Binary files /dev/null and b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40.png differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png new file mode 100755 index 0000000..5672877 Binary files /dev/null and b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png new file mode 100755 index 0000000..e22345e Binary files /dev/null and b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-50.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-50.png new file mode 100755 index 0000000..870c163 Binary files /dev/null and b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-50.png differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-50@2x.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-50@2x.png new file mode 100755 index 0000000..8c6ff14 Binary files /dev/null and b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-50@2x.png differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-57.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-57.png new file mode 100755 index 0000000..bd97d1a Binary files /dev/null and b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-57.png differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-57@2x.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-57@2x.png new file mode 100755 index 0000000..b8a20f7 Binary files /dev/null and b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-57@2x.png differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png new file mode 100755 index 0000000..e22345e Binary files /dev/null and b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png new file mode 100755 index 0000000..50e31f4 Binary files /dev/null and b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-72.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-72.png new file mode 100755 index 0000000..62997ee Binary files /dev/null and b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-72.png differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png new file mode 100755 index 0000000..2bf71ff Binary files /dev/null and b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-76.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-76.png new file mode 100755 index 0000000..b6fd014 Binary files /dev/null and b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-76.png differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png new file mode 100755 index 0000000..949426c Binary files /dev/null and b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png differ diff --git a/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png new file mode 100755 index 0000000..b445a7f Binary files /dev/null and b/bytedesk_demo/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png differ diff --git a/bytedesk_demo/lib/main.dart b/bytedesk_demo/lib/main.dart index 5177e26..ae05be2 100644 --- a/bytedesk_demo/lib/main.dart +++ b/bytedesk_demo/lib/main.dart @@ -74,7 +74,7 @@ class _MyAppState extends State with WidgetsBindingObserver { // 第二步:联系客服,完毕 Navigator.of(context) .push(MaterialPageRoute(builder: (context) { - return const ChatTypePage(); + return ChatTypePage(); })); }, ), diff --git a/bytedesk_demo/lib/page/chat_type_page.dart b/bytedesk_demo/lib/page/chat_type_page.dart index 725e320..eb46538 100755 --- a/bytedesk_demo/lib/page/chat_type_page.dart +++ b/bytedesk_demo/lib/page/chat_type_page.dart @@ -15,10 +15,10 @@ class ChatTypePage extends StatefulWidget { class _ChatTypePageState extends State { // 第二步:到 客服管理->技能组-有一列 ‘唯一ID(wId)’, 默认设置工作组wid // 说明:一个技能组可以分配多个客服,访客会按照一定的规则分配给组内的各个客服账号 - final String _workGroupWid = "201807171659201"; // 默认人工 - final String _workGroupWidRobot = "201809061716221"; // 默认机器人, 在管理后台开启或关闭机器人 + String _workGroupWid = "201807171659201"; // 默认人工 + String _workGroupWidRobot = "201809061716221"; // 默认机器人, 在管理后台开启或关闭机器人 // 说明:直接发送给此一个客服账号,一对一会话 - final String _agentUid = "201808221551193"; + String _agentUid = "201808221551193"; // 未读消息数目 String _unreadMessageCount = "0"; // @@ -29,6 +29,7 @@ class _ChatTypePageState extends State { // super.initState(); } + // @override Widget build(BuildContext context) { @@ -41,12 +42,15 @@ class _ChatTypePageState extends State { children: ListTile.divideTiles(context: context, tiles: [ ListTile( title: Text('未读消息数目:' + _unreadMessageCount), - trailing: const Icon(Icons.keyboard_arrow_right), + // trailing: Icon(Icons.keyboard_arrow_right), onTap: () { // 加载未读消息数目 _getUnreadCountVisitor(); }, ), + Container( + height: 20, + ), ListTile( title: const Text('技能组客服'), trailing: const Icon(Icons.keyboard_arrow_right), @@ -180,9 +184,9 @@ class _ChatTypePageState extends State { }); BytedeskKefu.startAppointedChatShopCallback( context, _agentUid, "指定一对一客服-电商-回调", custom, (value) { - print('value为custom参数原样返回 $value'); - // 主要用途:用户在聊天页面点击商品消息,回调此接口,开发者可在此打开进入商品详情页 - }); + print('value为custom参数原样返回 $value'); + // 主要用途:用户在聊天页面点击商品消息,回调此接口,开发者可在此打开进入商品详情页 + }); }, ), ListTile( diff --git a/bytedesk_demo/lib/page/history_thread_page.dart b/bytedesk_demo/lib/page/history_thread_page.dart index edfabac..ce5cd5f 100755 --- a/bytedesk_demo/lib/page/history_thread_page.dart +++ b/bytedesk_demo/lib/page/history_thread_page.dart @@ -4,7 +4,7 @@ import 'package:flutter/material.dart'; // 历史会话列表 class HistoryThreadPage extends StatefulWidget { - HistoryThreadPage({Key? key}) : super(key: key); + const HistoryThreadPage({Key? key}) : super(key: key); @override _HistoryThreadPageState createState() => _HistoryThreadPageState(); @@ -27,12 +27,12 @@ class _HistoryThreadPageState extends State { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( - title: Text('历史会话'), + title: const Text('历史会话'), elevation: 0, ), body: RefreshIndicator( child: ListView.builder( - padding: EdgeInsets.all(8.0), + padding: const EdgeInsets.all(8.0), itemBuilder: (_, int index) => ListTile( leading: Image.network(_historyThreadList[index].avatar!), title: Text('${_historyThreadList[index].nickname}, ${_historyThreadList[index].timestamp}'), diff --git a/bytedesk_demo/lib/page/online_status_page.dart b/bytedesk_demo/lib/page/online_status_page.dart index 59f7c61..5bf0f20 100755 --- a/bytedesk_demo/lib/page/online_status_page.dart +++ b/bytedesk_demo/lib/page/online_status_page.dart @@ -3,7 +3,7 @@ import 'package:flutter/material.dart'; // 查询技能组和指定客服账号的在线状态 class OnlineStatusPage extends StatefulWidget { - OnlineStatusPage({Key? key}) : super(key: key); + const OnlineStatusPage({Key? key}) : super(key: key); @override _OnlineStatusPageState createState() => _OnlineStatusPageState(); @@ -32,7 +32,7 @@ class _OnlineStatusPageState extends State { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( - title: Text('在线状态'), + title: const Text('在线状态'), elevation: 0, ), body: ListView( @@ -40,14 +40,14 @@ class _OnlineStatusPageState extends State { context: context, tiles: [ ListTile( - title: Text('技能组在线状态'), + title: const Text('技能组在线状态'), subtitle: Text(_workGroupStatus), onTap: () { _getWorkGroupStatus(); }, ), ListTile( - title: Text('客服在线状态'), + title: const Text('客服在线状态'), subtitle: Text(_agentStatus), onTap: () { _getAgentStatus(); diff --git a/bytedesk_demo/lib/page/setting_page.dart b/bytedesk_demo/lib/page/setting_page.dart index d189717..ca23943 100755 --- a/bytedesk_demo/lib/page/setting_page.dart +++ b/bytedesk_demo/lib/page/setting_page.dart @@ -4,7 +4,7 @@ import 'package:list_tile_switch/list_tile_switch.dart'; // 消息声音、振动设置页面 class SettingPage extends StatefulWidget { - SettingPage({Key? key}) : super(key: key); + const SettingPage({Key? key}) : super(key: key); @override _SettingPageState createState() => _SettingPageState(); @@ -27,7 +27,7 @@ class _SettingPageState extends State { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( - title: Text('消息设置'), + title: const Text('消息设置'), elevation: 0, ), body: ListView( @@ -42,7 +42,7 @@ class _SettingPageState extends State { }); BytedeskKefu.setPlayAudioOnSendMessage(value); }, - title: Text('发送消息时播放声音'), + title: const Text('发送消息时播放声音'), ), ListTileSwitch( value: _playAudioOnReceiveMessage, @@ -52,7 +52,7 @@ class _SettingPageState extends State { }); BytedeskKefu.setPlayAudioOnReceiveMessage(value); }, - title: Text('收到消息时播放声音'), + title: const Text('收到消息时播放声音'), ), ListTileSwitch( value: _vibrateOnReceiveMessage, @@ -63,7 +63,7 @@ class _SettingPageState extends State { // 注意:需要在安卓AndroidManifest.xml添加权限 BytedeskKefu.setVibrateOnReceiveMessage(value); }, - title: Text('收到消息时振动'), + title: const Text('收到消息时振动'), ), ], ).toList()), diff --git a/bytedesk_demo/lib/page/user_info_page.dart b/bytedesk_demo/lib/page/user_info_page.dart index fe5422e..437931a 100755 --- a/bytedesk_demo/lib/page/user_info_page.dart +++ b/bytedesk_demo/lib/page/user_info_page.dart @@ -6,13 +6,12 @@ import 'package:fluttertoast/fluttertoast.dart'; // 需要首先调用anonymousLogin之后,再调用此接口 // 自定义用户信息接口-对接APP用户信息 class UserInfoPage extends StatefulWidget { - UserInfoPage({Key? key}) : super(key: key); + const UserInfoPage({Key? key}) : super(key: key); @override _UserInfoPageState createState() => _UserInfoPageState(); } - class _UserInfoPageState extends State { String _uid = ''; // 用户唯一uid String _username = ''; // 用户唯一用户名 @@ -29,7 +28,7 @@ class _UserInfoPageState extends State { Widget build(BuildContext context) { return Scaffold( appBar: AppBar( - title: Text('用户信息'), + title: const Text('用户信息'), elevation: 0, ), body: ListView( @@ -37,7 +36,15 @@ class _UserInfoPageState extends State { context: context, tiles: [ ListTile( - title: Text('设置昵称(见代码)'), + title: const Text('唯一uid'), + subtitle: Text(_uid), + ), + ListTile( + title: const Text('用户名'), + subtitle: Text(_username), + ), + ListTile( + title: const Text('设置昵称(见代码)'), subtitle: Text(_nickname), onTap: () { // @@ -50,14 +57,14 @@ class _UserInfoPageState extends State { height: 30, width: 30, ), - title: Text('设置头像(见代码)'), + title: const Text('设置头像(见代码)'), onTap: () { // _setAvatar(); }, ), ListTile( - title: Text('设置备注(见代码)'), + title: const Text('设置备注(见代码)'), subtitle: Text(_description), onTap: () { // @@ -94,7 +101,7 @@ class _UserInfoPageState extends State { } void _setAvatar() { - // 可自定义用户头像url-客服端可见 + // 可自定义用户头像url-客服端可见,注意:是头像网址,非本地图片路径 String myavatarurl = 'https://chainsnow.oss-cn-shenzhen.aliyuncs.com/avatars/visitor_default_avatar.png'; // 头像网址url BytedeskKefu.updateAvatar(myavatarurl).then((user) => { diff --git a/bytedesk_demo/pubspec.yaml b/bytedesk_demo/pubspec.yaml index c14de9b..2575f0f 100644 --- a/bytedesk_demo/pubspec.yaml +++ b/bytedesk_demo/pubspec.yaml @@ -46,7 +46,7 @@ dependencies: # 请在ios/Podfile中添加:use_frameworks! vibration: ^1.7.3 # 在线客服 https://pub.dev/packages/bytedesk_kefu - bytedesk_kefu: ^1.2.2 + bytedesk_kefu: ^1.2.4 # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons.