diff --git a/assets/custom_face_resource/4349/[NO]@2x.png b/assets/custom_face_resource/4349/[NO]@2x.png deleted file mode 100644 index b7ae6d7..0000000 Binary files a/assets/custom_face_resource/4349/[NO]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[OK]@2x.png b/assets/custom_face_resource/4349/[OK]@2x.png deleted file mode 100644 index e723cb6..0000000 Binary files a/assets/custom_face_resource/4349/[OK]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[下雨]@2x.png b/assets/custom_face_resource/4349/[下雨]@2x.png deleted file mode 100644 index d049b49..0000000 Binary files a/assets/custom_face_resource/4349/[下雨]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[么么哒]@2x.png b/assets/custom_face_resource/4349/[么么哒]@2x.png deleted file mode 100644 index f47fa56..0000000 Binary files a/assets/custom_face_resource/4349/[么么哒]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[乒乓]@2x.png b/assets/custom_face_resource/4349/[乒乓]@2x.png deleted file mode 100644 index 56f307d..0000000 Binary files a/assets/custom_face_resource/4349/[乒乓]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[便便]@2x.png b/assets/custom_face_resource/4349/[便便]@2x.png deleted file mode 100644 index adf4cc2..0000000 Binary files a/assets/custom_face_resource/4349/[便便]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[信封]@2x.png b/assets/custom_face_resource/4349/[信封]@2x.png deleted file mode 100644 index c571ad2..0000000 Binary files a/assets/custom_face_resource/4349/[信封]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[偷笑]@2x.png b/assets/custom_face_resource/4349/[偷笑]@2x.png deleted file mode 100644 index a303375..0000000 Binary files a/assets/custom_face_resource/4349/[偷笑]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[傲慢]@2x.png b/assets/custom_face_resource/4349/[傲慢]@2x.png deleted file mode 100644 index 34fa967..0000000 Binary files a/assets/custom_face_resource/4349/[傲慢]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[再见]@2x.png b/assets/custom_face_resource/4349/[再见]@2x.png deleted file mode 100644 index 497e464..0000000 Binary files a/assets/custom_face_resource/4349/[再见]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[冷汗]@2x.png b/assets/custom_face_resource/4349/[冷汗]@2x.png deleted file mode 100644 index 137ec0f..0000000 Binary files a/assets/custom_face_resource/4349/[冷汗]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[凋谢]@2x.png b/assets/custom_face_resource/4349/[凋谢]@2x.png deleted file mode 100644 index dd05090..0000000 Binary files a/assets/custom_face_resource/4349/[凋谢]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[刀]@2x.png b/assets/custom_face_resource/4349/[刀]@2x.png deleted file mode 100644 index ab4fc8d..0000000 Binary files a/assets/custom_face_resource/4349/[刀]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[删除]@2x.png b/assets/custom_face_resource/4349/[删除]@2x.png deleted file mode 100644 index 113e20f..0000000 Binary files a/assets/custom_face_resource/4349/[删除]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[勾引]@2x.png b/assets/custom_face_resource/4349/[勾引]@2x.png deleted file mode 100644 index 04060f5..0000000 Binary files a/assets/custom_face_resource/4349/[勾引]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[发呆]@2x.png b/assets/custom_face_resource/4349/[发呆]@2x.png deleted file mode 100644 index d8393d9..0000000 Binary files a/assets/custom_face_resource/4349/[发呆]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[发抖]@2x.png b/assets/custom_face_resource/4349/[发抖]@2x.png deleted file mode 100644 index 094ed1d..0000000 Binary files a/assets/custom_face_resource/4349/[发抖]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[可怜]@2x.png b/assets/custom_face_resource/4349/[可怜]@2x.png deleted file mode 100644 index 73963b7..0000000 Binary files a/assets/custom_face_resource/4349/[可怜]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[可爱]@2x.png b/assets/custom_face_resource/4349/[可爱]@2x.png deleted file mode 100644 index a235324..0000000 Binary files a/assets/custom_face_resource/4349/[可爱]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[右哼哼]@2x.png b/assets/custom_face_resource/4349/[右哼哼]@2x.png deleted file mode 100644 index e1ca267..0000000 Binary files a/assets/custom_face_resource/4349/[右哼哼]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[右太极]@2x.png b/assets/custom_face_resource/4349/[右太极]@2x.png deleted file mode 100644 index 6b55dfb..0000000 Binary files a/assets/custom_face_resource/4349/[右太极]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[右车头]@2x.png b/assets/custom_face_resource/4349/[右车头]@2x.png deleted file mode 100644 index 85fdb86..0000000 Binary files a/assets/custom_face_resource/4349/[右车头]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[吐]@2x.png b/assets/custom_face_resource/4349/[吐]@2x.png deleted file mode 100644 index 0265a28..0000000 Binary files a/assets/custom_face_resource/4349/[吐]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[吓]@2x.png b/assets/custom_face_resource/4349/[吓]@2x.png deleted file mode 100644 index b03f3b6..0000000 Binary files a/assets/custom_face_resource/4349/[吓]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[咒骂]@2x.png b/assets/custom_face_resource/4349/[咒骂]@2x.png deleted file mode 100644 index c65faa6..0000000 Binary files a/assets/custom_face_resource/4349/[咒骂]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[咖啡]@2x.png b/assets/custom_face_resource/4349/[咖啡]@2x.png deleted file mode 100644 index dd595d3..0000000 Binary files a/assets/custom_face_resource/4349/[咖啡]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[啤酒]@2x.png b/assets/custom_face_resource/4349/[啤酒]@2x.png deleted file mode 100644 index 52289b0..0000000 Binary files a/assets/custom_face_resource/4349/[啤酒]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[嘘]@2x.png b/assets/custom_face_resource/4349/[嘘]@2x.png deleted file mode 100644 index e011a35..0000000 Binary files a/assets/custom_face_resource/4349/[嘘]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[回头]@2x.png b/assets/custom_face_resource/4349/[回头]@2x.png deleted file mode 100644 index 84660e2..0000000 Binary files a/assets/custom_face_resource/4349/[回头]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[困]@2x.png b/assets/custom_face_resource/4349/[困]@2x.png deleted file mode 100644 index cc0447f..0000000 Binary files a/assets/custom_face_resource/4349/[困]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[坏笑]@2x.png b/assets/custom_face_resource/4349/[坏笑]@2x.png deleted file mode 100644 index 36f3c32..0000000 Binary files a/assets/custom_face_resource/4349/[坏笑]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[多云]@2x.png b/assets/custom_face_resource/4349/[多云]@2x.png deleted file mode 100644 index 71d23d6..0000000 Binary files a/assets/custom_face_resource/4349/[多云]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[大兵]@2x.png b/assets/custom_face_resource/4349/[大兵]@2x.png deleted file mode 100644 index 94b0d52..0000000 Binary files a/assets/custom_face_resource/4349/[大兵]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[大哭]@2x.png b/assets/custom_face_resource/4349/[大哭]@2x.png deleted file mode 100644 index e816c56..0000000 Binary files a/assets/custom_face_resource/4349/[大哭]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[太阳]@2x.png b/assets/custom_face_resource/4349/[太阳]@2x.png deleted file mode 100644 index a0d229a..0000000 Binary files a/assets/custom_face_resource/4349/[太阳]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[奋斗]@2x.png b/assets/custom_face_resource/4349/[奋斗]@2x.png deleted file mode 100644 index 3347c97..0000000 Binary files a/assets/custom_face_resource/4349/[奋斗]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[奶瓶]@2x.png b/assets/custom_face_resource/4349/[奶瓶]@2x.png deleted file mode 100644 index 0d4b8d9..0000000 Binary files a/assets/custom_face_resource/4349/[奶瓶]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[委屈]@2x.png b/assets/custom_face_resource/4349/[委屈]@2x.png deleted file mode 100644 index 3f136dd..0000000 Binary files a/assets/custom_face_resource/4349/[委屈]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[害羞]@2x.png b/assets/custom_face_resource/4349/[害羞]@2x.png deleted file mode 100644 index 30a9341..0000000 Binary files a/assets/custom_face_resource/4349/[害羞]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[尴尬]@2x.png b/assets/custom_face_resource/4349/[尴尬]@2x.png deleted file mode 100644 index 62afd7e..0000000 Binary files a/assets/custom_face_resource/4349/[尴尬]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[左哼哼]@2x.png b/assets/custom_face_resource/4349/[左哼哼]@2x.png deleted file mode 100644 index e6f64df..0000000 Binary files a/assets/custom_face_resource/4349/[左哼哼]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[左太极]@2x.png b/assets/custom_face_resource/4349/[左太极]@2x.png deleted file mode 100644 index 5a88a56..0000000 Binary files a/assets/custom_face_resource/4349/[左太极]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[左车头]@2x.png b/assets/custom_face_resource/4349/[左车头]@2x.png deleted file mode 100644 index e05c11c..0000000 Binary files a/assets/custom_face_resource/4349/[左车头]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[差劲]@2x.png b/assets/custom_face_resource/4349/[差劲]@2x.png deleted file mode 100644 index 455365a..0000000 Binary files a/assets/custom_face_resource/4349/[差劲]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[弱]@2x.png b/assets/custom_face_resource/4349/[弱]@2x.png deleted file mode 100644 index fe5fbf9..0000000 Binary files a/assets/custom_face_resource/4349/[弱]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[强]@2x.png b/assets/custom_face_resource/4349/[强]@2x.png deleted file mode 100644 index f4f7a5b..0000000 Binary files a/assets/custom_face_resource/4349/[强]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[彩带]@2x.png b/assets/custom_face_resource/4349/[彩带]@2x.png deleted file mode 100644 index 88cd3f0..0000000 Binary files a/assets/custom_face_resource/4349/[彩带]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[彩球]@2x.png b/assets/custom_face_resource/4349/[彩球]@2x.png deleted file mode 100644 index 8a60eed..0000000 Binary files a/assets/custom_face_resource/4349/[彩球]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[得意]@2x.png b/assets/custom_face_resource/4349/[得意]@2x.png deleted file mode 100644 index 4027f8c..0000000 Binary files a/assets/custom_face_resource/4349/[得意]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[心碎了]@2x.png b/assets/custom_face_resource/4349/[心碎了]@2x.png deleted file mode 100644 index a11ed0f..0000000 Binary files a/assets/custom_face_resource/4349/[心碎了]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[快哭了]@2x.png b/assets/custom_face_resource/4349/[快哭了]@2x.png deleted file mode 100644 index 8f49f69..0000000 Binary files a/assets/custom_face_resource/4349/[快哭了]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[怄火]@2x.png b/assets/custom_face_resource/4349/[怄火]@2x.png deleted file mode 100644 index 7277dae..0000000 Binary files a/assets/custom_face_resource/4349/[怄火]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[怒]@2x.png b/assets/custom_face_resource/4349/[怒]@2x.png deleted file mode 100644 index a4e4a69..0000000 Binary files a/assets/custom_face_resource/4349/[怒]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[惊恐]@2x.png b/assets/custom_face_resource/4349/[惊恐]@2x.png deleted file mode 100644 index 617810a..0000000 Binary files a/assets/custom_face_resource/4349/[惊恐]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[惊讶]@2x.png b/assets/custom_face_resource/4349/[惊讶]@2x.png deleted file mode 100644 index df93544..0000000 Binary files a/assets/custom_face_resource/4349/[惊讶]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[憨笑]@2x.png b/assets/custom_face_resource/4349/[憨笑]@2x.png deleted file mode 100644 index 4c5b4ba..0000000 Binary files a/assets/custom_face_resource/4349/[憨笑]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[手枪]@2x.png b/assets/custom_face_resource/4349/[手枪]@2x.png deleted file mode 100644 index 58af826..0000000 Binary files a/assets/custom_face_resource/4349/[手枪]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[打哈欠]@2x.png b/assets/custom_face_resource/4349/[打哈欠]@2x.png deleted file mode 100644 index 14490ce..0000000 Binary files a/assets/custom_face_resource/4349/[打哈欠]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[抓狂]@2x.png b/assets/custom_face_resource/4349/[抓狂]@2x.png deleted file mode 100644 index 0556a4d..0000000 Binary files a/assets/custom_face_resource/4349/[抓狂]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[折磨]@2x.png b/assets/custom_face_resource/4349/[折磨]@2x.png deleted file mode 100644 index d9dfd53..0000000 Binary files a/assets/custom_face_resource/4349/[折磨]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[抠鼻]@2x.png b/assets/custom_face_resource/4349/[抠鼻]@2x.png deleted file mode 100644 index cbc61e8..0000000 Binary files a/assets/custom_face_resource/4349/[抠鼻]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[抱抱]@2x.png b/assets/custom_face_resource/4349/[抱抱]@2x.png deleted file mode 100644 index 828971e..0000000 Binary files a/assets/custom_face_resource/4349/[抱抱]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[抱拳]@2x.png b/assets/custom_face_resource/4349/[抱拳]@2x.png deleted file mode 100644 index 95b5ee0..0000000 Binary files a/assets/custom_face_resource/4349/[抱拳]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[拳头]@2x.png b/assets/custom_face_resource/4349/[拳头]@2x.png deleted file mode 100644 index 6d501d3..0000000 Binary files a/assets/custom_face_resource/4349/[拳头]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[挥手]@2x.png b/assets/custom_face_resource/4349/[挥手]@2x.png deleted file mode 100644 index ad5d3e0..0000000 Binary files a/assets/custom_face_resource/4349/[挥手]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[握手]@2x.png b/assets/custom_face_resource/4349/[握手]@2x.png deleted file mode 100644 index 10a615b..0000000 Binary files a/assets/custom_face_resource/4349/[握手]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[撇嘴]@2x.png b/assets/custom_face_resource/4349/[撇嘴]@2x.png deleted file mode 100644 index d8839f4..0000000 Binary files a/assets/custom_face_resource/4349/[撇嘴]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[擦汗]@2x.png b/assets/custom_face_resource/4349/[擦汗]@2x.png deleted file mode 100644 index 8804e98..0000000 Binary files a/assets/custom_face_resource/4349/[擦汗]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[敲打]@2x.png b/assets/custom_face_resource/4349/[敲打]@2x.png deleted file mode 100644 index 3dfff7b..0000000 Binary files a/assets/custom_face_resource/4349/[敲打]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[晕]@2x.png b/assets/custom_face_resource/4349/[晕]@2x.png deleted file mode 100644 index 2bd83a4..0000000 Binary files a/assets/custom_face_resource/4349/[晕]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[月亮]@2x.png b/assets/custom_face_resource/4349/[月亮]@2x.png deleted file mode 100644 index eb37fb9..0000000 Binary files a/assets/custom_face_resource/4349/[月亮]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[棒棒糖]@2x.png b/assets/custom_face_resource/4349/[棒棒糖]@2x.png deleted file mode 100644 index 4f58458..0000000 Binary files a/assets/custom_face_resource/4349/[棒棒糖]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[汽车]@2x.png b/assets/custom_face_resource/4349/[汽车]@2x.png deleted file mode 100644 index 14363af..0000000 Binary files a/assets/custom_face_resource/4349/[汽车]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[沙发]@2x.png b/assets/custom_face_resource/4349/[沙发]@2x.png deleted file mode 100644 index 87d233a..0000000 Binary files a/assets/custom_face_resource/4349/[沙发]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[流汗]@2x.png b/assets/custom_face_resource/4349/[流汗]@2x.png deleted file mode 100644 index d835eeb..0000000 Binary files a/assets/custom_face_resource/4349/[流汗]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[流泪]@2x.png b/assets/custom_face_resource/4349/[流泪]@2x.png deleted file mode 100644 index 61dab0a..0000000 Binary files a/assets/custom_face_resource/4349/[流泪]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[激动]@2x.png b/assets/custom_face_resource/4349/[激动]@2x.png deleted file mode 100644 index 262b317..0000000 Binary files a/assets/custom_face_resource/4349/[激动]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[灯泡]@2x.png b/assets/custom_face_resource/4349/[灯泡]@2x.png deleted file mode 100644 index b61a829..0000000 Binary files a/assets/custom_face_resource/4349/[灯泡]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[炸弹]@2x.png b/assets/custom_face_resource/4349/[炸弹]@2x.png deleted file mode 100644 index 62b5736..0000000 Binary files a/assets/custom_face_resource/4349/[炸弹]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[熊猫]@2x.png b/assets/custom_face_resource/4349/[熊猫]@2x.png deleted file mode 100644 index e4088f8..0000000 Binary files a/assets/custom_face_resource/4349/[熊猫]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[爆筋]@2x.png b/assets/custom_face_resource/4349/[爆筋]@2x.png deleted file mode 100644 index af054a7..0000000 Binary files a/assets/custom_face_resource/4349/[爆筋]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[爱你]@2x.png b/assets/custom_face_resource/4349/[爱你]@2x.png deleted file mode 100644 index 5be2bd0..0000000 Binary files a/assets/custom_face_resource/4349/[爱你]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[爱心]@2x.png b/assets/custom_face_resource/4349/[爱心]@2x.png deleted file mode 100644 index 4474769..0000000 Binary files a/assets/custom_face_resource/4349/[爱心]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[爱情]@2x.png b/assets/custom_face_resource/4349/[爱情]@2x.png deleted file mode 100644 index 4f2263d..0000000 Binary files a/assets/custom_face_resource/4349/[爱情]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[猪头]@2x.png b/assets/custom_face_resource/4349/[猪头]@2x.png deleted file mode 100644 index 535548b..0000000 Binary files a/assets/custom_face_resource/4349/[猪头]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[猫咪]@2x.png b/assets/custom_face_resource/4349/[猫咪]@2x.png deleted file mode 100644 index c0b1a89..0000000 Binary files a/assets/custom_face_resource/4349/[猫咪]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[献吻]@2x.png b/assets/custom_face_resource/4349/[献吻]@2x.png deleted file mode 100644 index 33da041..0000000 Binary files a/assets/custom_face_resource/4349/[献吻]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[玫瑰]@2x.png b/assets/custom_face_resource/4349/[玫瑰]@2x.png deleted file mode 100644 index faac04b..0000000 Binary files a/assets/custom_face_resource/4349/[玫瑰]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[瓢虫]@2x.png b/assets/custom_face_resource/4349/[瓢虫]@2x.png deleted file mode 100644 index 8fcd467..0000000 Binary files a/assets/custom_face_resource/4349/[瓢虫]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[疑问]@2x.png b/assets/custom_face_resource/4349/[疑问]@2x.png deleted file mode 100644 index 72376dd..0000000 Binary files a/assets/custom_face_resource/4349/[疑问]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[白眼]@2x.png b/assets/custom_face_resource/4349/[白眼]@2x.png deleted file mode 100644 index 0a8a259..0000000 Binary files a/assets/custom_face_resource/4349/[白眼]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[皮球]@2x.png b/assets/custom_face_resource/4349/[皮球]@2x.png deleted file mode 100644 index 6dcf45e..0000000 Binary files a/assets/custom_face_resource/4349/[皮球]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[睡觉]@2x.png b/assets/custom_face_resource/4349/[睡觉]@2x.png deleted file mode 100644 index aafb55f..0000000 Binary files a/assets/custom_face_resource/4349/[睡觉]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[磕头]@2x.png b/assets/custom_face_resource/4349/[磕头]@2x.png deleted file mode 100644 index 817923a..0000000 Binary files a/assets/custom_face_resource/4349/[磕头]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[示爱]@2x.png b/assets/custom_face_resource/4349/[示爱]@2x.png deleted file mode 100644 index 7be52ca..0000000 Binary files a/assets/custom_face_resource/4349/[示爱]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[礼品袋]@2x.png b/assets/custom_face_resource/4349/[礼品袋]@2x.png deleted file mode 100644 index 5d017c8..0000000 Binary files a/assets/custom_face_resource/4349/[礼品袋]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[礼物]@2x.png b/assets/custom_face_resource/4349/[礼物]@2x.png deleted file mode 100644 index 5b606ff..0000000 Binary files a/assets/custom_face_resource/4349/[礼物]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[篮球]@2x.png b/assets/custom_face_resource/4349/[篮球]@2x.png deleted file mode 100644 index aee5674..0000000 Binary files a/assets/custom_face_resource/4349/[篮球]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[米饭]@2x.png b/assets/custom_face_resource/4349/[米饭]@2x.png deleted file mode 100644 index 2c469a9..0000000 Binary files a/assets/custom_face_resource/4349/[米饭]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[糗大了]@2x.png b/assets/custom_face_resource/4349/[糗大了]@2x.png deleted file mode 100644 index 4373f1b..0000000 Binary files a/assets/custom_face_resource/4349/[糗大了]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[红双喜]@2x.png b/assets/custom_face_resource/4349/[红双喜]@2x.png deleted file mode 100644 index b37d964..0000000 Binary files a/assets/custom_face_resource/4349/[红双喜]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[红灯笼]@2x.png b/assets/custom_face_resource/4349/[红灯笼]@2x.png deleted file mode 100644 index bb432af..0000000 Binary files a/assets/custom_face_resource/4349/[红灯笼]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[纸巾]@2x.png b/assets/custom_face_resource/4349/[纸巾]@2x.png deleted file mode 100644 index 10469fe..0000000 Binary files a/assets/custom_face_resource/4349/[纸巾]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[胜利]@2x.png b/assets/custom_face_resource/4349/[胜利]@2x.png deleted file mode 100644 index ac5cefa..0000000 Binary files a/assets/custom_face_resource/4349/[胜利]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[色]@2x.png b/assets/custom_face_resource/4349/[色]@2x.png deleted file mode 100644 index a45e109..0000000 Binary files a/assets/custom_face_resource/4349/[色]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[药]@2x.png b/assets/custom_face_resource/4349/[药]@2x.png deleted file mode 100644 index 1588f9e..0000000 Binary files a/assets/custom_face_resource/4349/[药]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[菜刀]@2x.png b/assets/custom_face_resource/4349/[菜刀]@2x.png deleted file mode 100644 index 69072bb..0000000 Binary files a/assets/custom_face_resource/4349/[菜刀]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[蛋糕]@2x.png b/assets/custom_face_resource/4349/[蛋糕]@2x.png deleted file mode 100644 index 279eb79..0000000 Binary files a/assets/custom_face_resource/4349/[蛋糕]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[蜡烛]@2x.png b/assets/custom_face_resource/4349/[蜡烛]@2x.png deleted file mode 100644 index 9f06f3e..0000000 Binary files a/assets/custom_face_resource/4349/[蜡烛]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[街舞]@2x.png b/assets/custom_face_resource/4349/[街舞]@2x.png deleted file mode 100644 index c8045d8..0000000 Binary files a/assets/custom_face_resource/4349/[街舞]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[衰]@2x.png b/assets/custom_face_resource/4349/[衰]@2x.png deleted file mode 100644 index b055d46..0000000 Binary files a/assets/custom_face_resource/4349/[衰]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[西瓜]@2x.png b/assets/custom_face_resource/4349/[西瓜]@2x.png deleted file mode 100644 index 0d79d2a..0000000 Binary files a/assets/custom_face_resource/4349/[西瓜]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[调皮]@2x.png b/assets/custom_face_resource/4349/[调皮]@2x.png deleted file mode 100644 index 11f0646..0000000 Binary files a/assets/custom_face_resource/4349/[调皮]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[象棋]@2x.png b/assets/custom_face_resource/4349/[象棋]@2x.png deleted file mode 100644 index cf35cad..0000000 Binary files a/assets/custom_face_resource/4349/[象棋]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[跳绳]@2x.png b/assets/custom_face_resource/4349/[跳绳]@2x.png deleted file mode 100644 index 17cffd3..0000000 Binary files a/assets/custom_face_resource/4349/[跳绳]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[跳跳]@2x.png b/assets/custom_face_resource/4349/[跳跳]@2x.png deleted file mode 100644 index b5646c6..0000000 Binary files a/assets/custom_face_resource/4349/[跳跳]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[车厢]@2x.png b/assets/custom_face_resource/4349/[车厢]@2x.png deleted file mode 100644 index a1276eb..0000000 Binary files a/assets/custom_face_resource/4349/[车厢]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[转圈]@2x.png b/assets/custom_face_resource/4349/[转圈]@2x.png deleted file mode 100644 index 2c15311..0000000 Binary files a/assets/custom_face_resource/4349/[转圈]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[鄙视]@2x.png b/assets/custom_face_resource/4349/[鄙视]@2x.png deleted file mode 100644 index 65b1aec..0000000 Binary files a/assets/custom_face_resource/4349/[鄙视]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[酷]@2x.png b/assets/custom_face_resource/4349/[酷]@2x.png deleted file mode 100644 index 06d8163..0000000 Binary files a/assets/custom_face_resource/4349/[酷]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[钞票]@2x.png b/assets/custom_face_resource/4349/[钞票]@2x.png deleted file mode 100644 index 7218532..0000000 Binary files a/assets/custom_face_resource/4349/[钞票]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[钻戒]@2x.png b/assets/custom_face_resource/4349/[钻戒]@2x.png deleted file mode 100644 index 787cb6a..0000000 Binary files a/assets/custom_face_resource/4349/[钻戒]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[闪电]@2x.png b/assets/custom_face_resource/4349/[闪电]@2x.png deleted file mode 100644 index 84f1526..0000000 Binary files a/assets/custom_face_resource/4349/[闪电]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[闭嘴]@2x.png b/assets/custom_face_resource/4349/[闭嘴]@2x.png deleted file mode 100644 index d1d3d3b..0000000 Binary files a/assets/custom_face_resource/4349/[闭嘴]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[闹钟]@2x.png b/assets/custom_face_resource/4349/[闹钟]@2x.png deleted file mode 100644 index daade80..0000000 Binary files a/assets/custom_face_resource/4349/[闹钟]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[阴险]@2x.png b/assets/custom_face_resource/4349/[阴险]@2x.png deleted file mode 100644 index e277198..0000000 Binary files a/assets/custom_face_resource/4349/[阴险]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[难过]@2x.png b/assets/custom_face_resource/4349/[难过]@2x.png deleted file mode 100644 index 35bd8ec..0000000 Binary files a/assets/custom_face_resource/4349/[难过]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[雨伞]@2x.png b/assets/custom_face_resource/4349/[雨伞]@2x.png deleted file mode 100644 index 5011da4..0000000 Binary files a/assets/custom_face_resource/4349/[雨伞]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[青蛙]@2x.png b/assets/custom_face_resource/4349/[青蛙]@2x.png deleted file mode 100644 index 4b69277..0000000 Binary files a/assets/custom_face_resource/4349/[青蛙]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[面条]@2x.png b/assets/custom_face_resource/4349/[面条]@2x.png deleted file mode 100644 index 78e8e71..0000000 Binary files a/assets/custom_face_resource/4349/[面条]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[鞭炮]@2x.png b/assets/custom_face_resource/4349/[鞭炮]@2x.png deleted file mode 100644 index ec12c3e..0000000 Binary files a/assets/custom_face_resource/4349/[鞭炮]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[风车]@2x.png b/assets/custom_face_resource/4349/[风车]@2x.png deleted file mode 100644 index 02321c3..0000000 Binary files a/assets/custom_face_resource/4349/[风车]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[飞吻]@2x.png b/assets/custom_face_resource/4349/[飞吻]@2x.png deleted file mode 100644 index a9a4e16..0000000 Binary files a/assets/custom_face_resource/4349/[飞吻]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[飞机]@2x.png b/assets/custom_face_resource/4349/[飞机]@2x.png deleted file mode 100644 index f407930..0000000 Binary files a/assets/custom_face_resource/4349/[飞机]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[饥饿]@2x.png b/assets/custom_face_resource/4349/[饥饿]@2x.png deleted file mode 100644 index 5bbd805..0000000 Binary files a/assets/custom_face_resource/4349/[饥饿]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[香蕉]@2x.png b/assets/custom_face_resource/4349/[香蕉]@2x.png deleted file mode 100644 index b3bde3c..0000000 Binary files a/assets/custom_face_resource/4349/[香蕉]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[骷髅]@2x.png b/assets/custom_face_resource/4349/[骷髅]@2x.png deleted file mode 100644 index c4ee653..0000000 Binary files a/assets/custom_face_resource/4349/[骷髅]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[麦克风]@2x.png b/assets/custom_face_resource/4349/[麦克风]@2x.png deleted file mode 100644 index 0e0ae99..0000000 Binary files a/assets/custom_face_resource/4349/[麦克风]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[麻将]@2x.png b/assets/custom_face_resource/4349/[麻将]@2x.png deleted file mode 100644 index 011d8e2..0000000 Binary files a/assets/custom_face_resource/4349/[麻将]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[鼓掌]@2x.png b/assets/custom_face_resource/4349/[鼓掌]@2x.png deleted file mode 100644 index 18cd1d2..0000000 Binary files a/assets/custom_face_resource/4349/[鼓掌]@2x.png and /dev/null differ diff --git a/assets/custom_face_resource/4349/[龇牙]@2x.png b/assets/custom_face_resource/4349/[龇牙]@2x.png deleted file mode 100644 index 4fed0fc..0000000 Binary files a/assets/custom_face_resource/4349/[龇牙]@2x.png and /dev/null differ diff --git a/example/pubspec.lock b/example/pubspec.lock index db7d299..be95703 100644 --- a/example/pubspec.lock +++ b/example/pubspec.lock @@ -985,13 +985,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.1.1" - super_tooltip: - dependency: transitive - description: - name: super_tooltip - url: "https://pub.dartlang.org" - source: hosted - version: "1.0.1" synchronized: dependency: transitive description: @@ -1019,7 +1012,7 @@ packages: path: ".." relative: true source: path - version: "1.0.0" + version: "1.0.0+1" tencent_extended_text: dependency: transitive description: @@ -1047,7 +1040,7 @@ packages: name: tencent_im_base url: "https://pub.dartlang.org" source: hosted - version: "1.0.2" + version: "1.0.3" tencent_im_sdk_plugin_platform_interface: dependency: transitive description: @@ -1069,6 +1062,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "4.0.9" + tencent_super_tooltip: + dependency: transitive + description: + name: tencent_super_tooltip + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.1" tencent_wechat_camera_picker: dependency: transitive description: diff --git a/lib/business_logic/life_cycle/profile_life_cycle.dart b/lib/business_logic/life_cycle/profile_life_cycle.dart index ffb3f94..b46fa2c 100644 --- a/lib/business_logic/life_cycle/profile_life_cycle.dart +++ b/lib/business_logic/life_cycle/profile_life_cycle.dart @@ -1,4 +1,3 @@ -import 'package:flutter/cupertino.dart'; import 'package:tencent_cloud_chat_uikit/business_logic/life_cycle/base_life_cycle.dart'; class ProfileLifeCycle { diff --git a/lib/business_logic/separate_models/tui_chat_separate_view_model.dart b/lib/business_logic/separate_models/tui_chat_separate_view_model.dart index da86095..0414ebb 100644 --- a/lib/business_logic/separate_models/tui_chat_separate_view_model.dart +++ b/lib/business_logic/separate_models/tui_chat_separate_view_model.dart @@ -1,9 +1,9 @@ import 'dart:async'; import 'dart:convert'; import 'dart:io'; -import 'dart:math'; import 'package:flutter/cupertino.dart'; +// ignore: unnecessary_import import 'package:flutter/foundation.dart'; import 'package:flutter_image_compress/flutter_image_compress.dart'; import 'package:path_provider/path_provider.dart'; @@ -205,7 +205,6 @@ class TUIChatSeparateViewModel extends ChangeNotifier { required int count, String? lastMsgID, }) async { - print(lastMsgID); haveMoreData = false; final currentHistoryMsgList = globalModel.messageListMap[conversationID]; final response = await _messageService.getHistoryMessageListWithComplete( @@ -755,6 +754,7 @@ class TUIChatSeparateViewModel extends ChangeNotifier { image = result?.path; } } catch (e) { + // ignore: avoid_print print(e); } } diff --git a/lib/business_logic/separate_models/tui_group_profile_model.dart b/lib/business_logic/separate_models/tui_group_profile_model.dart index f610166..8613e1d 100644 --- a/lib/business_logic/separate_models/tui_group_profile_model.dart +++ b/lib/business_logic/separate_models/tui_group_profile_model.dart @@ -1,4 +1,4 @@ -// ignore_for_file: unnecessary_getters_setters +// ignore_for_file: unnecessary_getters_setters, avoid_print import 'package:flutter/cupertino.dart'; import 'package:tencent_im_base/tencent_im_base.dart'; diff --git a/lib/business_logic/view_models/tui_chat_global_model.dart b/lib/business_logic/view_models/tui_chat_global_model.dart index c38c74d..99f8895 100644 --- a/lib/business_logic/view_models/tui_chat_global_model.dart +++ b/lib/business_logic/view_models/tui_chat_global_model.dart @@ -4,12 +4,9 @@ import 'dart:async'; import 'dart:convert'; import 'dart:io'; import 'dart:math'; - -import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:tencent_cloud_chat_uikit/base_widgets/tim_ui_kit_class.dart'; - import 'package:tencent_cloud_chat_uikit/business_logic/life_cycle/chat_life_cycle.dart'; import 'package:tencent_cloud_chat_uikit/business_logic/separate_models/tui_chat_model_tools.dart'; import 'package:tencent_cloud_chat_uikit/data_services/group/group_services.dart'; @@ -17,9 +14,7 @@ import 'package:tencent_cloud_chat_uikit/data_services/message/message_services. import 'package:tencent_cloud_chat_uikit/data_services/services_locatar.dart'; import 'package:tencent_cloud_chat_uikit/tencent_cloud_chat_uikit.dart'; import 'package:tencent_cloud_chat_uikit/ui/constants/history_message_constant.dart'; - import 'package:tencent_cloud_chat_uikit/ui/utils/message.dart'; -import 'package:tencent_im_base/base_widgets/tim_callback.dart'; enum ConvType { none, c2c, group } @@ -394,7 +389,7 @@ class TUIChatGlobalModel extends ChangeNotifier with TIMUIKitClass { List needPreViewList = msgList.sublist(0, max(0, min(5, msgList.length - 1))); for (var msgItem in needPreViewList) { - V2TimImage? getImageFromList(V2_TIM_IMAGE_TYPES_ENUM imgType) { + V2TimImage? getImageFromList(V2TimImageTypesEnum imgType) { V2TimImage? img = MessageUtils.getImageFromImgList( msgItem.imageElem?.imageList, HistoryMessageDartConstant.imgPriorMap[imgType] ?? @@ -402,7 +397,7 @@ class TUIChatGlobalModel extends ChangeNotifier with TIMUIKitClass { return img; } - V2TimImage? originalImg = getImageFromList(V2_TIM_IMAGE_TYPES_ENUM.small); + V2TimImage? originalImg = getImageFromList(V2TimImageTypesEnum.small); if (originalImg?.localUrl != null && originalImg!.localUrl != "") { try { ImageConfiguration configuration = const ImageConfiguration(); diff --git a/lib/business_logic/view_models/tui_conversation_view_model.dart b/lib/business_logic/view_models/tui_conversation_view_model.dart index 4b35131..95e11a1 100644 --- a/lib/business_logic/view_models/tui_conversation_view_model.dart +++ b/lib/business_logic/view_models/tui_conversation_view_model.dart @@ -59,6 +59,7 @@ class TUIConversationViewModel extends ChangeNotifier { _conversationList.removeWhere((element) => element?.isPinned == true); _conversationList = [...pinnedConversation, ..._conversationList]; } catch (e) { + // ignore: avoid_print print(e); } } else { diff --git a/lib/data_services/core/web_support/uikit_web_support_implement.dart b/lib/data_services/core/web_support/uikit_web_support_implement.dart index 808bf94..d391bb4 100644 --- a/lib/data_services/core/web_support/uikit_web_support_implement.dart +++ b/lib/data_services/core/web_support/uikit_web_support_implement.dart @@ -1,5 +1,5 @@ +// ignore: avoid_web_libraries_in_flutter import 'dart:js'; -import 'package:js/js_util.dart'; class TUIKitWebSupport { static void addSetterToWindow() {} diff --git a/lib/ui/constants/history_message_constant.dart b/lib/ui/constants/history_message_constant.dart index 0138d93..1118509 100644 --- a/lib/ui/constants/history_message_constant.dart +++ b/lib/ui/constants/history_message_constant.dart @@ -1,4 +1,4 @@ -enum V2_TIM_IMAGE_TYPES_ENUM { +enum V2TimImageTypesEnum { original, big, small, @@ -14,10 +14,10 @@ class HistoryMessageDartConstant { 'SMALL': 2, }; - static Map> imgPriorMap = { - V2_TIM_IMAGE_TYPES_ENUM.original: oriImgPrior, - V2_TIM_IMAGE_TYPES_ENUM.big: bigImgPrior, - V2_TIM_IMAGE_TYPES_ENUM.small: smallImgPrior, + static Map> imgPriorMap = { + V2TimImageTypesEnum.original: oriImgPrior, + V2TimImageTypesEnum.big: bigImgPrior, + V2TimImageTypesEnum.small: smallImgPrior, }; // 缩略图优先,大图次之,最后是原图 diff --git a/lib/ui/utils/message.dart b/lib/ui/utils/message.dart index 30785fb..0345dff 100644 --- a/lib/ui/utils/message.dart +++ b/lib/ui/utils/message.dart @@ -7,7 +7,6 @@ import 'package:tencent_im_base/tencent_im_base.dart'; import 'package:tencent_cloud_chat_uikit/ui/constants/history_message_constant.dart'; import 'package:tencent_cloud_chat_uikit/ui/constants/time.dart'; import 'package:tencent_cloud_chat_uikit/ui/utils/tui_theme.dart'; -import 'package:tencent_cloud_chat_uikit/ui/views/TIMUIKitChat/TIMUIKitMessageItem/tim_uikit_chat_custom_elem.dart'; class MessageUtils { // 判断CallingData的方式和Trtc的方法一致 diff --git a/lib/ui/views/TIMUIKitChat/TIMUIKItMessageList/tim_uikit_chat_history_message_list.dart b/lib/ui/views/TIMUIKitChat/TIMUIKItMessageList/tim_uikit_chat_history_message_list.dart index 329b634..39ded93 100644 --- a/lib/ui/views/TIMUIKitChat/TIMUIKItMessageList/tim_uikit_chat_history_message_list.dart +++ b/lib/ui/views/TIMUIKitChat/TIMUIKItMessageList/tim_uikit_chat_history_message_list.dart @@ -314,7 +314,7 @@ class _TIMUIKitHistoryMessageListState final endPoint = haveTimeStampMessage ? recivedMessageListCount + 1 : recivedMessageListCount; - return widget.messageList.sublist(0, endPoint).toList(); + return widget.messageList.sublist(0, endPoint).reversed.toList(); } @override @@ -329,9 +329,8 @@ class _TIMUIKitHistoryMessageListState final messageList = widget.messageList; final globalModel = context.read(); - final unreadCount = globalModel.unreadCountForConversation; final recivedNewMessageList = globalModel.recivedMessageListCount; - final shouldShowUnreadMessage = unreadCount > 0; + final shouldShowUnreadMessage = recivedNewMessageList > 0; final unreadMessageList = _getRecivedMessageList(recivedNewMessageList); final readedMessageList = messageList .sublist(unreadMessageList.length, messageList.length) diff --git a/lib/ui/views/TIMUIKitChat/TIMUIKItMessageList/tim_uikit_chat_history_message_list_item.dart b/lib/ui/views/TIMUIKitChat/TIMUIKItMessageList/tim_uikit_chat_history_message_list_item.dart index a13fd22..922b79c 100644 --- a/lib/ui/views/TIMUIKitChat/TIMUIKItMessageList/tim_uikit_chat_history_message_list_item.dart +++ b/lib/ui/views/TIMUIKitChat/TIMUIKItMessageList/tim_uikit_chat_history_message_list_item.dart @@ -3,13 +3,11 @@ import 'dart:convert'; import 'package:flutter/cupertino.dart'; -import 'package:flutter/foundation.dart'; import 'package:flutter/gestures.dart'; import 'package:flutter/material.dart'; -import 'package:fluttertoast/fluttertoast.dart'; import 'package:loading_animation_widget/loading_animation_widget.dart'; import 'package:provider/provider.dart'; -import 'package:super_tooltip/super_tooltip.dart'; +import 'package:tencent_super_tooltip/tencent_super_tooltip.dart'; import 'package:tencent_cloud_chat_uikit/base_widgets/tim_ui_kit_state.dart'; import 'package:tencent_cloud_chat_uikit/base_widgets/tim_ui_kit_statelesswidget.dart'; import 'package:tencent_cloud_chat_uikit/business_logic/separate_models/tui_chat_separate_view_model.dart'; @@ -231,7 +229,7 @@ class TIMUIKitHistoryMessageListItem extends StatefulWidget { /// Whether to use the default emoji final bool isUseDefaultEmoji; - final customEmojiStickerList; + final List customEmojiStickerList; const TIMUIKitHistoryMessageListItem( {Key? key, @@ -604,7 +602,8 @@ class _TIMUIKItHistoryMessageListItemState bool isRevokable(int timestamp) => (DateTime.now().millisecondsSinceEpoch / 1000).ceil() - timestamp < 120; - _onLongPress(c, V2TimMessage message, TUIChatSeparateViewModel model) { + _onLongPress(c, V2TimMessage message, TUIChatSeparateViewModel model, + TapDownDetails? details) { if (tooltip != null && tooltip!.isOpen) { tooltip!.close(); return; @@ -612,8 +611,9 @@ class _TIMUIKItHistoryMessageListItemState tooltip = null; final screenHeight = MediaQuery.of(context).size.height; - if (context.size!.height + 180 > screenHeight) { - initTools(context: c, isLongMessage: true, model: model); + if (context.size!.height + 180 > screenHeight && !PlatformUtils().isWeb) { + initTools( + context: c, isLongMessage: true, model: model, details: details); if (widget.onScrollToIndexBegin != null) { widget.onScrollToIndexBegin!(message); } @@ -621,8 +621,8 @@ class _TIMUIKItHistoryMessageListItemState tooltip!.show(c); }); } else { - initTools(context: c, model: model); - tooltip!.show(c); + initTools(context: c, model: model, details: details); + tooltip!.show(c, targetCenter: details?.globalPosition); } } @@ -642,13 +642,16 @@ class _TIMUIKItHistoryMessageListItemState }); } - initTools({ - BuildContext? context, - bool isLongMessage = false, - required TUIChatSeparateViewModel model, - }) { + initTools( + {BuildContext? context, + bool isLongMessage = false, + required TUIChatSeparateViewModel model, + TapDownDetails? details}) { final isSelf = widget.message.isSelf ?? false; double arrowTipDistance = 30; + double arrowBaseWidth = 10; + double arrowLength = 10; + bool hasArrow = true; TooltipDirection popupDirection = TooltipDirection.up; double? left; double? right; @@ -656,34 +659,48 @@ class _TIMUIKItHistoryMessageListItemState SelectEmojiPanelPosition.down; if (context != null) { RenderBox? box = _key.currentContext?.findRenderObject() as RenderBox?; - if (box != null) { + if (details != null && box != null) { double screenWidth = MediaQuery.of(context).size.width; - Offset offset = box.localToGlobal(Offset.zero); - double boxWidth = box.size.width; + final mousePosition = details.globalPosition; + hasArrow = false; + arrowTipDistance = 0; + arrowBaseWidth = 0; + arrowLength = 0; + popupDirection = TooltipDirection.down; if (isSelf) { - right = screenWidth - offset.dx - boxWidth; + right = screenWidth - mousePosition.dx; } else { - left = offset.dx; + left = mousePosition.dx; } - if (offset.dy < 300 && !isLongMessage) { - selectEmojiPanelPosition = SelectEmojiPanelPosition.up; - popupDirection = TooltipDirection.down; + } else { + if (box != null) { + double screenWidth = MediaQuery.of(context).size.width; + Offset offset = box.localToGlobal(Offset.zero); + double boxWidth = box.size.width; + if (isSelf) { + right = screenWidth - offset.dx - boxWidth; + } else { + left = offset.dx; + } + if (offset.dy < 300 && !isLongMessage) { + selectEmojiPanelPosition = SelectEmojiPanelPosition.up; + popupDirection = TooltipDirection.down; + } } + arrowTipDistance = (context.size!.height / 2).roundToDouble() + + (isLongMessage ? -120 : 10); } - arrowTipDistance = (context.size!.height / 2).roundToDouble() + - (isLongMessage ? -120 : 10); } tooltip = SuperTooltip( popupDirection: popupDirection, minimumOutSidePadding: 0, arrowTipDistance: arrowTipDistance, - arrowBaseWidth: 10.0, - arrowLength: 10.0, - // right: kIsWeb ? right : (widget.message.isSelf! ? 60 : null), - // left: kIsWeb ? left : (widget.message.isSelf! ? null : 60), + arrowBaseWidth: arrowBaseWidth, + arrowLength: arrowLength, right: right, left: left, + hasArrow: hasArrow, borderColor: Colors.white, backgroundColor: Colors.white, shadowColor: Colors.black26, @@ -1029,10 +1046,11 @@ class _TIMUIKItHistoryMessageListItemState ignoring: model.isMultiSelect, child: _getMessageItemBuilder( message, message.status, model)), - onSecondaryTap: () { + onSecondaryTapDown: (details) { if (PlatformUtils().isWeb) { if (widget.allowLongPress) { - _onLongPress(context, message, model); + _onLongPress( + context, message, model, details); } if (widget.onLongPress != null) { widget.onLongPress!(context, message); @@ -1041,7 +1059,8 @@ class _TIMUIKItHistoryMessageListItemState }, onLongPress: () { if (widget.allowLongPress) { - _onLongPress(context, message, model); + _onLongPress( + context, message, model, null); } if (widget.onLongPress != null) { widget.onLongPress!(context, message); diff --git a/lib/ui/views/TIMUIKitChat/TIMUIKItMessageList/tim_uikit_chat_message_tooltip.dart b/lib/ui/views/TIMUIKitChat/TIMUIKItMessageList/tim_uikit_chat_message_tooltip.dart index 81402d9..1fc5f83 100644 --- a/lib/ui/views/TIMUIKitChat/TIMUIKItMessageList/tim_uikit_chat_message_tooltip.dart +++ b/lib/ui/views/TIMUIKitChat/TIMUIKItMessageList/tim_uikit_chat_message_tooltip.dart @@ -1,4 +1,4 @@ -// ignore_for_file: non_constant_identifier_names +// ignore_for_file: non_constant_identifier_names, avoid_print import 'dart:math'; diff --git a/lib/ui/views/TIMUIKitChat/TIMUIKItMessageList/tim_uikit_history_message_list_container.dart b/lib/ui/views/TIMUIKitChat/TIMUIKItMessageList/tim_uikit_history_message_list_container.dart index d340d59..809e154 100644 --- a/lib/ui/views/TIMUIKitChat/TIMUIKItMessageList/tim_uikit_history_message_list_container.dart +++ b/lib/ui/views/TIMUIKitChat/TIMUIKItMessageList/tim_uikit_history_message_list_container.dart @@ -59,7 +59,7 @@ class TIMUIKitHistoryMessageListContainer extends StatefulWidget { /// Whether to use the default emoji final bool isUseDefaultEmoji; - final customEmojiStickerList; + final List customEmojiStickerList; final bool isAllowScroll; diff --git a/lib/ui/views/TIMUIKitChat/TIMUIKitAppBar/tim_uikit_appbar.dart b/lib/ui/views/TIMUIKitChat/TIMUIKitAppBar/tim_uikit_appbar.dart index 9143f69..37b728f 100644 --- a/lib/ui/views/TIMUIKitChat/TIMUIKitAppBar/tim_uikit_appbar.dart +++ b/lib/ui/views/TIMUIKitChat/TIMUIKitAppBar/tim_uikit_appbar.dart @@ -1,3 +1,5 @@ +// ignore_for_file: deprecated_member_use + import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:tencent_cloud_chat_uikit/base_widgets/tim_ui_kit_state.dart'; @@ -75,6 +77,7 @@ class _TIMUIKitAppBarState extends TIMUIKitState { ""; } } catch (e) { + // ignore: avoid_print print(e); } }, @@ -98,6 +101,7 @@ class _TIMUIKitAppBarState extends TIMUIKitState { } } } catch (e) { + // ignore: avoid_print print(e); } }, @@ -156,6 +160,7 @@ class _TIMUIKitAppBarState extends TIMUIKitState { }); } } catch (e) { + // ignore: avoid_print print(e); } } diff --git a/lib/ui/views/TIMUIKitChat/TIMUIKitMessageItem/TIMUIKitMessageReaction/tim_uikit_message_reaction_detail.dart b/lib/ui/views/TIMUIKitChat/TIMUIKitMessageItem/TIMUIKitMessageReaction/tim_uikit_message_reaction_detail.dart index b45a0fd..5983a56 100644 --- a/lib/ui/views/TIMUIKitChat/TIMUIKitMessageItem/TIMUIKitMessageReaction/tim_uikit_message_reaction_detail.dart +++ b/lib/ui/views/TIMUIKitChat/TIMUIKitMessageItem/TIMUIKitMessageReaction/tim_uikit_message_reaction_detail.dart @@ -1,9 +1,7 @@ import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; import 'package:tencent_im_base/tencent_im_base.dart'; import 'package:tencent_cloud_chat_uikit/base_widgets/tim_ui_kit_base.dart'; import 'package:tencent_cloud_chat_uikit/base_widgets/tim_ui_kit_state.dart'; -import 'package:tencent_cloud_chat_uikit/business_logic/separate_models/tui_chat_separate_view_model.dart'; import 'package:tencent_cloud_chat_uikit/business_logic/view_models/tui_self_info_view_model.dart'; import 'package:tencent_cloud_chat_uikit/data_services/services_locatar.dart'; import 'package:tencent_cloud_chat_uikit/ui/utils/color.dart'; diff --git a/lib/ui/views/TIMUIKitChat/TIMUIKitMessageItem/tim_uikit_chat_file_elem.dart b/lib/ui/views/TIMUIKitChat/TIMUIKitMessageItem/tim_uikit_chat_file_elem.dart index 03b4df6..0f7f5fe 100644 --- a/lib/ui/views/TIMUIKitChat/TIMUIKitMessageItem/tim_uikit_chat_file_elem.dart +++ b/lib/ui/views/TIMUIKitChat/TIMUIKitMessageItem/tim_uikit_chat_file_elem.dart @@ -3,13 +3,10 @@ import 'dart:io'; import 'dart:math'; -import 'package:dio/dio.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:loading_animation_widget/loading_animation_widget.dart'; import 'package:tencent_open_file/tencent_open_file.dart'; import 'package:package_info_plus/package_info_plus.dart'; -import 'package:path_provider/path_provider.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:provider/provider.dart'; import 'package:tencent_im_base/tencent_im_base.dart'; @@ -106,13 +103,6 @@ class _TIMUIKitFileElemState extends TIMUIKitState { } Future getSavePath() async { - var appDocDir = await getTemporaryDirectory(); - // String savePathWithAppPath = appDocDir.path + - // '/' + - // (widget.message.msgID ?? "") + - // widget.fileElem!.fileName!; - // return savePathWithAppPath; - String savePathWithAppPath = '/storage/emulated/0/Android/data/com.tencent.flutter.tuikit/cache/' + (widget.message.msgID ?? "") + diff --git a/lib/ui/views/TIMUIKitChat/TIMUIKitMessageItem/tim_uikit_chat_image_elem.dart b/lib/ui/views/TIMUIKitChat/TIMUIKitMessageItem/tim_uikit_chat_image_elem.dart index cb48236..423fbc6 100644 --- a/lib/ui/views/TIMUIKitChat/TIMUIKitMessageItem/tim_uikit_chat_image_elem.dart +++ b/lib/ui/views/TIMUIKitChat/TIMUIKitMessageItem/tim_uikit_chat_image_elem.dart @@ -113,7 +113,6 @@ class _TIMUIKitImageElem extends TIMUIKitState { //保存网络图片到本地 _saveImageToLocal(context, String imageUrl, {bool isAsset = true}) async { - var response; if (PlatformUtils().isWeb) { download(imageUrl) async { final http.Response r = await http.get(Uri.parse(imageUrl)); @@ -268,7 +267,7 @@ class _TIMUIKitImageElem extends TIMUIKitState { } } - V2TimImage? getImageFromList(V2_TIM_IMAGE_TYPES_ENUM imgType) { + V2TimImage? getImageFromList(V2TimImageTypesEnum imgType) { V2TimImage? img = MessageUtils.getImageFromImgList( widget.message.imageElem!.imageList, HistoryMessageDartConstant.imgPriorMap[imgType] ?? @@ -386,9 +385,9 @@ class _TIMUIKitImageElem extends TIMUIKitState { void setOnlineImageRatio() { if (networkImagePositionRadio == null) { - V2TimImage? smallImg = getImageFromList(V2_TIM_IMAGE_TYPES_ENUM.small); + V2TimImage? smallImg = getImageFromList(V2TimImageTypesEnum.small); V2TimImage? originalImg = - getImageFromList(V2_TIM_IMAGE_TYPES_ENUM.original); + getImageFromList(V2TimImageTypesEnum.original); Image image = Image.network(smallImg?.url ?? originalImg?.url ?? ""); image.image @@ -506,6 +505,7 @@ class _TIMUIKitImageElem extends TIMUIKitState { networkImagePositionRadio ?? positionRadio, theme); } } catch (e) { + // ignore: avoid_print print(e); } @@ -517,6 +517,7 @@ class _TIMUIKitImageElem extends TIMUIKitState { networkImagePositionRadio ?? positionRadio, theme); } } catch (e) { + // ignore: avoid_print print(e); } @@ -539,8 +540,8 @@ class _TIMUIKitImageElem extends TIMUIKitState { "${widget.message.msgID ?? widget.message.id ?? widget.message.timestamp ?? DateTime.now().millisecondsSinceEpoch}${widget.isFrom}"; V2TimImage? originalImg = - getImageFromList(V2_TIM_IMAGE_TYPES_ENUM.original); - V2TimImage? smallImg = getImageFromList(V2_TIM_IMAGE_TYPES_ENUM.small); + getImageFromList(V2TimImageTypesEnum.original); + V2TimImage? smallImg = getImageFromList(V2TimImageTypesEnum.small); return TIMUIKitMessageReactionWrapper( chatModel: widget.chatModel, isShowJump: widget.isShowJump, diff --git a/lib/ui/views/TIMUIKitChat/TIMUIKitMessageItem/tim_uikit_chat_reply_elem.dart b/lib/ui/views/TIMUIKitChat/TIMUIKitMessageItem/tim_uikit_chat_reply_elem.dart index 0c1db00..b9e2bc4 100644 --- a/lib/ui/views/TIMUIKitChat/TIMUIKitMessageItem/tim_uikit_chat_reply_elem.dart +++ b/lib/ui/views/TIMUIKitChat/TIMUIKitMessageItem/tim_uikit_chat_reply_elem.dart @@ -82,14 +82,14 @@ class _TIMUIKitReplyElemState extends TIMUIKitState { final messageID = cloudCustomData.messageID; final message = await widget.chatModel.findMessage(messageID); if (message != null) { - if (this.mounted) { + if(mounted){ setState(() { rawMessage = message; }); } } } - if (this.mounted) { + if(mounted){ setState(() { repliedMessage = cloudCustomData; }); @@ -105,11 +105,11 @@ class _TIMUIKitReplyElemState extends TIMUIKitState { } _rawMessageBuilder(V2TimMessage? message, TUITheme? theme) { - if (repliedMessage == null) { + if(repliedMessage == null){ return const SizedBox(width: 0, height: 12); } if (message == null) { - if (repliedMessage?.messageAbstract != null) { + if(repliedMessage?.messageAbstract != null){ return _defaultRawMessageText(repliedMessage!.messageAbstract, theme); } return const SizedBox(width: 0, height: 12); @@ -149,14 +149,11 @@ class _TIMUIKitReplyElemState extends TIMUIKitState { case MessageElemType.V2TIM_ELEM_TYPE_IMAGE: return TIMUIKitImageElem( chatModel: widget.chatModel, - message: message, - isFrom: "reply", - isShowMessageReaction: false); + message: message, isFrom: "reply", isShowMessageReaction: false); case MessageElemType.V2TIM_ELEM_TYPE_VIDEO: return TIMUIKitVideoElem(message, chatModel: widget.chatModel, - isFrom: "reply", - isShowMessageReaction: false); + isFrom: "reply", isShowMessageReaction: false); case MessageElemType.V2TIM_ELEM_TYPE_LOCATION: return _defaultRawMessageText(TIM_t("[位置]"), theme); case MessageElemType.V2TIM_ELEM_TYPE_MERGER: @@ -322,9 +319,7 @@ class _TIMUIKitReplyElemState extends TIMUIKitState { crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( - repliedMessage != null - ? "${repliedMessage!.messageSender}:" - : "", + repliedMessage != null ? "${repliedMessage!.messageSender}:" : "", style: TextStyle( fontSize: 12, color: theme.weakTextColor, diff --git a/lib/ui/views/TIMUIKitChat/TIMUIKitMessageItem/tim_uikit_chat_text_elem.dart b/lib/ui/views/TIMUIKitChat/TIMUIKitMessageItem/tim_uikit_chat_text_elem.dart index 0ffbb1c..1ad6163 100644 --- a/lib/ui/views/TIMUIKitChat/TIMUIKitMessageItem/tim_uikit_chat_text_elem.dart +++ b/lib/ui/views/TIMUIKitChat/TIMUIKitMessageItem/tim_uikit_chat_text_elem.dart @@ -3,7 +3,6 @@ import 'dart:convert'; import 'package:tencent_extended_text/extended_text.dart'; import 'package:flutter/material.dart'; -import 'package:fluttertoast/fluttertoast.dart'; import 'package:tencent_cloud_chat_uikit/base_widgets/tim_ui_kit_base.dart'; import 'package:tencent_cloud_chat_uikit/base_widgets/tim_ui_kit_state.dart'; import 'package:tencent_cloud_chat_uikit/business_logic/separate_models/tui_chat_separate_view_model.dart'; diff --git a/lib/ui/views/TIMUIKitChat/TIMUIKitMessageItem/tim_uikit_chat_video_elem.dart b/lib/ui/views/TIMUIKitChat/TIMUIKitMessageItem/tim_uikit_chat_video_elem.dart index af66269..f9a784d 100644 --- a/lib/ui/views/TIMUIKitChat/TIMUIKitMessageItem/tim_uikit_chat_video_elem.dart +++ b/lib/ui/views/TIMUIKitChat/TIMUIKitMessageItem/tim_uikit_chat_video_elem.dart @@ -1,7 +1,6 @@ import 'dart:io'; import 'dart:math'; -import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -19,7 +18,6 @@ import 'package:tencent_cloud_chat_uikit/ui/utils/platform.dart'; import 'package:tencent_cloud_chat_uikit/ui/utils/tui_theme.dart'; import 'package:tencent_cloud_chat_uikit/ui/views/TIMUIKitChat/TIMUIKitMessageItem/TIMUIKitMessageReaction/tim_uikit_message_reaction_wrapper.dart'; import 'package:tencent_cloud_chat_uikit/ui/widgets/video_screen.dart'; -import 'package:transparent_image/transparent_image.dart'; class TIMUIKitVideoElem extends StatefulWidget { final V2TimMessage message; @@ -78,22 +76,22 @@ class _TIMUIKitVideoElemState extends TIMUIKitState { final current = (DateTime.now().millisecondsSinceEpoch / 1000).ceil(); final timeStamp = widget.message.timestamp ?? current; if (current - timeStamp < 300) { - if (stateElement!.snapshotPath != null && - stateElement!.snapshotPath != '') { - File imgF = File(stateElement!.snapshotPath!); + if (stateElement.snapshotPath != null && + stateElement.snapshotPath != '') { + File imgF = File(stateElement.snapshotPath!); bool isExist = imgF.existsSync(); if (isExist) { - return Image.file(File(stateElement!.snapshotPath!), + return Image.file(File(stateElement.snapshotPath!), fit: BoxFit.fitWidth); } } } } - if ((stateElement!.snapshotUrl == null || - stateElement!.snapshotUrl == '') && - (stateElement!.snapshotPath == null || - stateElement!.snapshotPath == '')) { + if ((stateElement.snapshotUrl == null || + stateElement.snapshotUrl == '') && + (stateElement.snapshotPath == null || + stateElement.snapshotPath == '')) { return Container( decoration: BoxDecoration( borderRadius: const BorderRadius.all(Radius.circular(5)), @@ -115,18 +113,18 @@ class _TIMUIKitVideoElemState extends TIMUIKitState { ), ); } - return (!kIsWeb && stateElement!.snapshotUrl == null || + return (!kIsWeb && stateElement.snapshotUrl == null || widget.message.status == MessageStatus.V2TIM_MSG_STATUS_SENDING) - ? (stateElement!.snapshotPath!.isNotEmpty - ? Image.file(File(stateElement!.snapshotPath!), + ? (stateElement.snapshotPath!.isNotEmpty + ? Image.file(File(stateElement.snapshotPath!), fit: BoxFit.fitWidth) - : Image.file(File(stateElement!.localSnapshotUrl!), + : Image.file(File(stateElement.localSnapshotUrl!), fit: BoxFit.fitWidth)) : (kIsWeb || - stateElement?.localSnapshotUrl == null || - stateElement?.localSnapshotUrl == "") - ? Image.network(stateElement!.snapshotUrl!, fit: BoxFit.fitWidth) - : Image.file(File(stateElement!.localSnapshotUrl!), + stateElement.localSnapshotUrl == null || + stateElement.localSnapshotUrl == "") + ? Image.network(stateElement.snapshotUrl!, fit: BoxFit.fitWidth) + : Image.file(File(stateElement.localSnapshotUrl!), fit: BoxFit.fitWidth); } @@ -203,12 +201,12 @@ class _TIMUIKitVideoElemState extends TIMUIKitState { child: LayoutBuilder(builder: (BuildContext context, BoxConstraints constraints) { double positionRadio = 0.56; - if (stateElement?.snapshotWidth != null && - stateElement?.snapshotHeight != null && - stateElement?.snapshotWidth != 0 && - stateElement?.snapshotHeight != 0) { - positionRadio = (stateElement!.snapshotWidth! / - stateElement!.snapshotHeight!); + if (stateElement.snapshotWidth != null && + stateElement.snapshotHeight != null && + stateElement.snapshotWidth != 0 && + stateElement.snapshotHeight != 0) { + positionRadio = (stateElement.snapshotWidth! / + stateElement.snapshotHeight!); } return ConstrainedBox( @@ -223,8 +221,8 @@ class _TIMUIKitVideoElemState extends TIMUIKitState { aspectRatio: positionRadio, child: Stack( children: [ - if (stateElement!.snapshotUrl != null || - stateElement!.snapshotUrl != null) + if (stateElement.snapshotUrl != null || + stateElement.snapshotUrl != null) AspectRatio( aspectRatio: positionRadio, child: Container( @@ -237,18 +235,18 @@ class _TIMUIKitVideoElemState extends TIMUIKitState { Expanded( child: generateSnapshot( theme, - stateElement!.snapshotHeight ?? + stateElement.snapshotHeight ?? 100)) ], ), if (widget.message.status != MessageStatus .V2TIM_MSG_STATUS_SENDING && - (stateElement!.snapshotUrl != null || - stateElement!.snapshotPath != + (stateElement.snapshotUrl != null || + stateElement.snapshotPath != null) && - stateElement!.videoPath != null || - stateElement!.videoUrl != null) + stateElement.videoPath != null || + stateElement.videoUrl != null) Positioned.fill( // alignment: Alignment.center, child: Center( diff --git a/lib/ui/views/TIMUIKitChat/TIMUIKitMessageItem/tim_uikit_merger_message_elem.dart b/lib/ui/views/TIMUIKitChat/TIMUIKitMessageItem/tim_uikit_merger_message_elem.dart index b62a3ff..2bd5c75 100644 --- a/lib/ui/views/TIMUIKitChat/TIMUIKitMessageItem/tim_uikit_merger_message_elem.dart +++ b/lib/ui/views/TIMUIKitChat/TIMUIKitMessageItem/tim_uikit_merger_message_elem.dart @@ -1,7 +1,6 @@ import 'dart:async'; import 'package:flutter/material.dart'; -import 'package:provider/provider.dart'; import 'package:tencent_cloud_chat_uikit/base_widgets/tim_ui_kit_state.dart'; import 'package:tencent_cloud_chat_uikit/business_logic/separate_models/tui_chat_separate_view_model.dart'; import 'package:tencent_cloud_chat_uikit/ui/utils/color.dart'; diff --git a/lib/ui/views/TIMUIKitChat/TIMUIKitTextField/special_text/DefaultSpecialTextSpanBuilder.dart b/lib/ui/views/TIMUIKitChat/TIMUIKitTextField/special_text/DefaultSpecialTextSpanBuilder.dart index 18c3874..852b017 100644 --- a/lib/ui/views/TIMUIKitChat/TIMUIKitTextField/special_text/DefaultSpecialTextSpanBuilder.dart +++ b/lib/ui/views/TIMUIKitChat/TIMUIKitTextField/special_text/DefaultSpecialTextSpanBuilder.dart @@ -1,6 +1,8 @@ + +// ignore_for_file: file_names + import 'package:tencent_extended_text_field/extended_text_field.dart'; import 'package:flutter/material.dart'; -import 'package:tencent_cloud_chat_uikit/ui/utils/custom_emoji_face_data_class.dart'; import 'package:tencent_cloud_chat_uikit/ui/views/TIMUIKitChat/TIMUIKitTextField/special_text/http_text.dart'; import 'emoji_text.dart'; diff --git a/lib/ui/views/TIMUIKitChat/TIMUIKitTextField/special_text/emoji_text.dart b/lib/ui/views/TIMUIKitChat/TIMUIKitTextField/special_text/emoji_text.dart index 84724c1..0756ce8 100644 --- a/lib/ui/views/TIMUIKitChat/TIMUIKitTextField/special_text/emoji_text.dart +++ b/lib/ui/views/TIMUIKitChat/TIMUIKitTextField/special_text/emoji_text.dart @@ -13,7 +13,7 @@ class EmojiText extends SpecialText { static const String flag = '['; final int? start; final bool isUseDefaultEmoji; - final customEmojiStickerList; + final List customEmojiStickerList; @override InlineSpan finishText() { final String key = toString(); diff --git a/lib/ui/views/TIMUIKitChat/TIMUIKitTextField/tim_uikit_emoji_panel.dart b/lib/ui/views/TIMUIKitChat/TIMUIKitTextField/tim_uikit_emoji_panel.dart index e6555cc..bafa2b0 100644 --- a/lib/ui/views/TIMUIKitChat/TIMUIKitTextField/tim_uikit_emoji_panel.dart +++ b/lib/ui/views/TIMUIKitChat/TIMUIKitTextField/tim_uikit_emoji_panel.dart @@ -1,13 +1,9 @@ import 'package:flutter/material.dart'; import 'package:tencent_cloud_chat_uikit/base_widgets/tim_ui_kit_statelesswidget.dart'; -import 'package:tencent_cloud_chat_uikit/ui/constants/emoji.dart'; import 'package:tencent_im_base/tencent_im_base.dart'; import 'package:tencent_cloud_chat_uikit/ui/utils/platform.dart'; -import 'package:tencent_cloud_chat_uikit/ui/widgets/emoji.dart'; import 'package:tencent_cloud_chat_uikit/base_widgets/tim_ui_kit_base.dart'; -import 'package:tencent_cloud_chat_uikit/ui/widgets/link_preview/common/extensions.dart'; -import 'package:url_launcher/url_launcher.dart'; class EmojiPanel extends TIMUIKitStatelessWidget { final void Function(int unicode) onTapEmoji; @@ -25,6 +21,7 @@ class EmojiPanel extends TIMUIKitStatelessWidget { @override Widget tuiBuild(BuildContext context, TUIKitBuildValue value) { + // ignore: avoid_print print(TIM_t( "暂未安装表情包插件,如需使用表情相关功能,请根据本文档安装:https://cloud.tencent.com/document/product/269/70746")); return SingleChildScrollView( diff --git a/lib/ui/views/TIMUIKitChat/TIMUIKitTextField/tim_uikit_more_panel.dart b/lib/ui/views/TIMUIKitChat/TIMUIKitTextField/tim_uikit_more_panel.dart index 6adb9f9..99a61ed 100644 --- a/lib/ui/views/TIMUIKitChat/TIMUIKitTextField/tim_uikit_more_panel.dart +++ b/lib/ui/views/TIMUIKitChat/TIMUIKitTextField/tim_uikit_more_panel.dart @@ -1,7 +1,6 @@ // ignore_for_file: unused_field, avoid_print, unused_import import 'dart:io'; -import 'dart:typed_data'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; @@ -29,6 +28,8 @@ import 'package:tencent_cloud_chat_uikit/ui/widgets/toast.dart'; import 'package:video_thumbnail/video_thumbnail.dart' as video_thumbnail; import 'package:wechat_assets_picker/wechat_assets_picker.dart'; import 'package:tencent_cloud_chat_uikit/base_widgets/tim_ui_kit_base.dart'; +// ignore: unnecessary_import +import 'dart:typed_data'; import 'package:tencent_cloud_chat_uikit/ui/utils/shared_theme.dart'; import 'package:universal_html/html.dart' as html; diff --git a/lib/ui/views/TIMUIKitChat/TIMUIKitTextField/tim_uikit_text_field.dart b/lib/ui/views/TIMUIKitChat/TIMUIKitTextField/tim_uikit_text_field.dart index e7f9675..e8dadc0 100644 --- a/lib/ui/views/TIMUIKitChat/TIMUIKitTextField/tim_uikit_text_field.dart +++ b/lib/ui/views/TIMUIKitChat/TIMUIKitTextField/tim_uikit_text_field.dart @@ -1,5 +1,7 @@ import 'dart:async'; +import 'package:tencent_cloud_chat_uikit/ui/utils/constant_data.dart'; +import 'package:tencent_cloud_chat_uikit/ui/utils/custom_emoji_face_data_class.dart'; import 'package:tencent_extended_text_field/extended_text_field.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; @@ -7,7 +9,6 @@ import 'package:flutter/services.dart'; import 'package:flutter_svg/svg.dart'; import 'package:provider/provider.dart'; import 'package:scroll_to_index/scroll_to_index.dart'; -import 'package:tencent_extended_text_field/extended_text_field.dart'; import 'package:tencent_cloud_chat_uikit/base_widgets/tim_ui_kit_state.dart'; import 'package:tencent_cloud_chat_uikit/business_logic/separate_models/tui_chat_separate_view_model.dart'; import 'package:tencent_cloud_chat_uikit/business_logic/view_models/tui_chat_global_model.dart'; @@ -23,12 +24,7 @@ import 'package:tencent_cloud_chat_uikit/ui/views/TIMUIKitChat/TIMUIKitTextField import 'package:tencent_cloud_chat_uikit/base_widgets/tim_ui_kit_base.dart'; import 'package:tencent_cloud_chat_uikit/ui/views/TIMUIKitChat/TIMUIKitTextField/tim_uikit_send_sound_message.dart'; import 'package:tencent_cloud_chat_uikit/ui/utils/permission.dart'; - -import '../../../utils/constant_data.dart'; -import '../../../utils/custom_emoji_face_data_class.dart'; -import '../../../utils/custom_sticker.dart'; import 'special_text/DefaultSpecialTextSpanBuilder.dart'; -import 'special_text/emoji_text.dart'; enum MuteStatus { none, me, all } @@ -446,6 +442,7 @@ class _InputTextFieldState extends TIMUIKitState { ); } } catch (e) { + // ignore: avoid_print print(e); } }); diff --git a/lib/ui/views/TIMUIKitChat/tim_uikit_chat.dart b/lib/ui/views/TIMUIKitChat/tim_uikit_chat.dart index 03db957..f580770 100644 --- a/lib/ui/views/TIMUIKitChat/tim_uikit_chat.dart +++ b/lib/ui/views/TIMUIKitChat/tim_uikit_chat.dart @@ -16,11 +16,10 @@ import 'package:tencent_cloud_chat_uikit/tencent_cloud_chat_uikit.dart'; import 'package:tencent_cloud_chat_uikit/ui/constants/history_message_constant.dart'; import 'package:tencent_cloud_chat_uikit/ui/controller/tim_uikit_chat_controller.dart'; import 'package:tencent_cloud_chat_uikit/ui/utils/color.dart'; +import 'package:tencent_cloud_chat_uikit/ui/utils/custom_emoji_face_data_class.dart'; import 'package:tencent_cloud_chat_uikit/ui/utils/frame.dart'; import 'package:tencent_cloud_chat_uikit/ui/utils/optimize_utils.dart'; import 'package:tencent_cloud_chat_uikit/ui/views/TIMUIKitChat/tim_uikit_multi_select_panel.dart'; -import '../../utils/custom_emoji_face_data_class.dart'; -import '../../utils/custom_sticker.dart'; import 'TIMUIKItMessageList/TIMUIKitTongue/tim_uikit_chat_history_message_list_tongue.dart'; import 'TIMUIKItMessageList/tim_uikit_chat_history_message_list_config.dart'; import 'TIMUIKItMessageList/tim_uikit_history_message_list_container.dart'; @@ -314,9 +313,6 @@ class _TUIChatState extends TIMUIKitState { listContainerKey.currentContext?.findRenderObject() as RenderBox?; final listContainerBoxHeight = listContainerBox?.size.height ?? 0; - print( - 'hjkadshjghajklsdhfjklsahgjkl: alignBox${alignHeight},listContainerBox${listContainerBoxHeight}, isAllow:${(!(listContainerBoxHeight < alignHeight))}'); - return GestureDetector( onTap: () { textFieldController.hideAllPanel(); diff --git a/lib/ui/views/TIMUIKitConversation/tim_uikit_conversation_last_msg.dart b/lib/ui/views/TIMUIKitConversation/tim_uikit_conversation_last_msg.dart index 31b0822..b429512 100644 --- a/lib/ui/views/TIMUIKitConversation/tim_uikit_conversation_last_msg.dart +++ b/lib/ui/views/TIMUIKitConversation/tim_uikit_conversation_last_msg.dart @@ -1,6 +1,5 @@ // ignore_for_file: unrelated_type_equality_checks -import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; @@ -9,7 +8,6 @@ import 'package:tencent_cloud_chat_uikit/business_logic/view_models/tui_theme_vi import 'package:tencent_cloud_chat_uikit/ui/utils/message.dart'; import 'package:tencent_cloud_chat_uikit/ui/utils/tui_theme.dart'; -import 'package:tencent_cloud_chat_uikit/ui/views/TIMUIKitChat/TIMUIKitMessageItem/tim_uikit_chat_custom_elem.dart'; import 'package:tencent_cloud_chat_uikit/base_widgets/tim_ui_kit_base.dart'; import 'package:tencent_im_base/tencent_im_base.dart'; diff --git a/lib/ui/widgets/link_preview/common/utils.dart b/lib/ui/widgets/link_preview/common/utils.dart index e15a15a..ca83a68 100644 --- a/lib/ui/widgets/link_preview/common/utils.dart +++ b/lib/ui/widgets/link_preview/common/utils.dart @@ -27,7 +27,6 @@ class LinkUtils { /// Launch URL static Future launchURL(BuildContext context, String url) async { - print(url); try { await launchUrl( Uri.parse(url).withScheme, diff --git a/lib/ui/widgets/link_preview/widgets/link_text.dart b/lib/ui/widgets/link_preview/widgets/link_text.dart index bd8bd3a..1dd63ac 100644 --- a/lib/ui/widgets/link_preview/widgets/link_text.dart +++ b/lib/ui/widgets/link_preview/widgets/link_text.dart @@ -57,7 +57,7 @@ class LinkText extends TIMStatelessWidget { final bool isUseDefaultEmoji; - final customEmojiStickerList; + final List customEmojiStickerList; const LinkText( {Key? key, diff --git a/lib/ui/widgets/merger_message_screen.dart b/lib/ui/widgets/merger_message_screen.dart index 4593b64..ef16687 100644 --- a/lib/ui/widgets/merger_message_screen.dart +++ b/lib/ui/widgets/merger_message_screen.dart @@ -4,7 +4,6 @@ import 'package:flutter/material.dart'; import 'package:loading_animation_widget/loading_animation_widget.dart'; import 'package:provider/provider.dart'; import 'package:tencent_cloud_chat_uikit/base_widgets/tim_ui_kit_state.dart'; -import 'package:tencent_cloud_chat_uikit/base_widgets/tim_ui_kit_statelesswidget.dart'; import 'package:tencent_im_base/tencent_im_base.dart'; import 'package:tencent_cloud_chat_uikit/business_logic/separate_models/tui_chat_separate_view_model.dart'; import 'package:tencent_cloud_chat_uikit/business_logic/view_models/tui_theme_view_model.dart'; @@ -23,7 +22,7 @@ class MergerMessageScreen extends StatefulWidget { final TUIChatSeparateViewModel model; final String msgID; - MergerMessageScreen( + const MergerMessageScreen( {Key? key, required this.model, required this.msgID}) : super(key: key); diff --git a/lib/ui/widgets/textSize.dart b/lib/ui/widgets/textSize.dart index bea01da..6f49560 100644 --- a/lib/ui/widgets/textSize.dart +++ b/lib/ui/widgets/textSize.dart @@ -1,3 +1,6 @@ + +// ignore_for_file: file_names + import 'package:flutter/material.dart'; class TextSize { diff --git a/lib/ui/widgets/text_input_bottom_sheet.dart b/lib/ui/widgets/text_input_bottom_sheet.dart index 44c575a..28802d7 100644 --- a/lib/ui/widgets/text_input_bottom_sheet.dart +++ b/lib/ui/widgets/text_input_bottom_sheet.dart @@ -1,12 +1,9 @@ import 'package:flutter/material.dart'; import 'package:tencent_im_base/tencent_im_base.dart'; -import 'package:tencent_cloud_chat_uikit/data_services/core/core_services_implements.dart'; -import 'package:tencent_cloud_chat_uikit/data_services/services_locatar.dart'; class TextInputBottomSheet { static showTextInputBottomSheet(BuildContext context, String title, String tips, Function(String text) onSubmitted) { - final CoreServicesImpl _coreService = serviceLocator(); TextEditingController _selectionController = TextEditingController(); showModalBottomSheet( diff --git a/lib/ui/widgets/video_screen.dart b/lib/ui/widgets/video_screen.dart index 1cbd179..a7fad16 100644 --- a/lib/ui/widgets/video_screen.dart +++ b/lib/ui/widgets/video_screen.dart @@ -3,17 +3,14 @@ import 'dart:io'; import 'dart:math'; import 'package:crypto/crypto.dart'; -import 'package:dio/dio.dart'; import 'package:fluttertoast/fluttertoast.dart'; import 'package:tencent_im_base/tencent_im_base.dart'; import 'package:extended_image/extended_image.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:image_gallery_saver/image_gallery_saver.dart'; -import 'package:path_provider/path_provider.dart'; import 'package:permission_handler/permission_handler.dart'; import 'package:tencent_cloud_chat_uikit/business_logic/view_models/tui_chat_global_model.dart'; -import 'package:tencent_cloud_chat_uikit/data_services/message/message_services.dart'; import 'package:tencent_cloud_chat_uikit/data_services/services_locatar.dart'; import 'package:universal_html/html.dart' as html; import 'package:chewie/chewie.dart'; @@ -46,7 +43,6 @@ class _VideoScreenState extends TIMUIKitState { late ChewieController chewieController; GlobalKey slidePagekey = GlobalKey(); - final MessageService _messageService = serviceLocator(); final TUIChatGlobalModel model = serviceLocator(); bool isInit = false; @override @@ -180,34 +176,34 @@ class _VideoScreenState extends TIMUIKitState { void _saveVideo() { if (PlatformUtils().isWeb) { - _saveNetworkVideo(context, widget.videoElement!.videoPath!, + _saveNetworkVideo(context, widget.videoElement.videoPath!, isAsset: true); return; } - if (widget.videoElement!.videoPath != '' && - widget.videoElement!.videoPath != null) { - File f = File(widget.videoElement!.videoPath!); + if (widget.videoElement.videoPath != '' && + widget.videoElement.videoPath != null) { + File f = File(widget.videoElement.videoPath!); if (f.existsSync()) { - _saveNetworkVideo(context, widget.videoElement!.videoPath!, + _saveNetworkVideo(context, widget.videoElement.videoPath!, isAsset: true); return; } } - if (widget.videoElement!.localVideoUrl != '' && - widget.videoElement!.localVideoUrl != null) { - File f = File(widget.videoElement!.localVideoUrl!); + if (widget.videoElement.localVideoUrl != '' && + widget.videoElement.localVideoUrl != null) { + File f = File(widget.videoElement.localVideoUrl!); if (f.existsSync()) { - _saveNetworkVideo(context, widget.videoElement!.localVideoUrl!, + _saveNetworkVideo(context, widget.videoElement.localVideoUrl!, isAsset: true); return; } } - _saveNetworkVideo(context, widget.videoElement!.videoUrl!, isAsset: false); + _saveNetworkVideo(context, widget.videoElement.videoUrl!, isAsset: false); } double getVideoHeight() { - double height = widget.videoElement!.snapshotHeight!.toDouble(); - double width = widget.videoElement!.snapshotWidth!.toDouble(); + double height = widget.videoElement.snapshotHeight!.toDouble(); + double width = widget.videoElement.snapshotWidth!.toDouble(); // 横图 if (width > height) { return height * 1.3; @@ -216,8 +212,8 @@ class _VideoScreenState extends TIMUIKitState { } double getVideoWidth() { - double height = widget.videoElement!.snapshotHeight!.toDouble(); - double width = widget.videoElement!.snapshotWidth!.toDouble(); + double height = widget.videoElement.snapshotHeight!.toDouble(); + double width = widget.videoElement.snapshotWidth!.toDouble(); // 横图 if (width > height) { return width * 1.3; @@ -252,7 +248,7 @@ class _VideoScreenState extends TIMUIKitState { } File f = File(savePath); if (f.existsSync()) { - widget.videoElement!.localVideoUrl = + widget.videoElement.localVideoUrl = model.getFileMessageLocation(widget.message.msgID); } } @@ -260,31 +256,31 @@ class _VideoScreenState extends TIMUIKitState { } VideoPlayerController player = PlatformUtils().isWeb - ? ((widget.videoElement!.videoPath != null && - widget.videoElement!.videoPath!.isNotEmpty) || + ? ((widget.videoElement.videoPath != null && + widget.videoElement.videoPath!.isNotEmpty) || widget.message.status == MessageStatus.V2TIM_MSG_STATUS_SENDING ? VideoPlayerController.network( - widget.videoElement!.videoPath!, + widget.videoElement.videoPath!, ) - : (widget.videoElement?.localVideoUrl == null || - widget.videoElement?.localVideoUrl == "") + : (widget.videoElement.localVideoUrl == null || + widget.videoElement.localVideoUrl == "") ? VideoPlayerController.network( - widget.videoElement!.videoUrl!, + widget.videoElement.videoUrl!, ) : VideoPlayerController.network( - widget.videoElement!.localVideoUrl!, + widget.videoElement.localVideoUrl!, )) - : (widget.videoElement!.videoPath != null && - widget.videoElement!.videoPath!.isNotEmpty) || + : (widget.videoElement.videoPath != null && + widget.videoElement.videoPath!.isNotEmpty) || widget.message.status == MessageStatus.V2TIM_MSG_STATUS_SENDING - ? VideoPlayerController.file(File(widget.videoElement!.videoPath!)) - : (widget.videoElement?.localVideoUrl == null || - widget.videoElement?.localVideoUrl == "") + ? VideoPlayerController.file(File(widget.videoElement.videoPath!)) + : (widget.videoElement.localVideoUrl == null || + widget.videoElement.localVideoUrl == "") ? VideoPlayerController.network( - widget.videoElement!.videoUrl!, + widget.videoElement.videoUrl!, ) : VideoPlayerController.file(File( - widget.videoElement!.localVideoUrl!, + widget.videoElement.localVideoUrl!, )); await player.initialize(); WidgetsBinding.instance?.addPostFrameCallback((_) { @@ -308,8 +304,8 @@ class _VideoScreenState extends TIMUIKitState { @override didUpdateWidget(oldWidget) { - if (oldWidget.videoElement!.videoUrl != widget.videoElement!.videoUrl || - oldWidget.videoElement!.videoPath != widget.videoElement!.videoPath) { + if (oldWidget.videoElement.videoUrl != widget.videoElement.videoUrl || + oldWidget.videoElement.videoPath != widget.videoElement.videoPath) { setVideoMessage(); } super.didUpdateWidget(oldWidget); diff --git a/pubspec.lock b/pubspec.lock index 3dfbbf1..19b8582 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1057,13 +1057,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.1.1" - super_tooltip: - dependency: "direct main" - description: - name: super_tooltip - url: "https://pub.dartlang.org" - source: hosted - version: "1.0.1" synchronized: dependency: transitive description: @@ -1112,7 +1105,7 @@ packages: name: tencent_im_base url: "https://pub.dartlang.org" source: hosted - version: "1.0.2" + version: "1.0.3" tencent_im_sdk_plugin_platform_interface: dependency: transitive description: @@ -1127,6 +1120,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "4.0.9" + tencent_super_tooltip: + dependency: "direct main" + description: + name: tencent_super_tooltip + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.1" tencent_wechat_camera_picker: dependency: "direct main" description: diff --git a/pubspec.yaml b/pubspec.yaml index e7fda21..a9c0295 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,6 +1,6 @@ name: tencent_cloud_chat_uikit description: UI components library and basic chat business logic for Tencent Cloud Chat service, helping you build In-APP Chat module easily. -version: 1.0.0 +version: 1.0.0+1 homepage: https://www.tencentcloud.com/products/im?from=pub repository: https://github.com/TencentCloud/tc-chat-uikit-flutter documentation: https://comm.qq.com/im/doc/flutter/en/TUIKit/readme.html @@ -27,7 +27,7 @@ dependencies: flutter_svg: ^1.0.0 image_picker: ^0.8.5+3 file_picker: ^4.6.1 - super_tooltip: ^1.0.1 + tencent_super_tooltip: ^0.0.1 video_player: ^2.4.2 chewie: ^1.3.2 flutter_slidable_for_tencent_im: ^1.4.0 @@ -64,7 +64,7 @@ dependencies: url_launcher: ^6.1.4 universal_html: ^2.0.8 link_preview_generator: ^1.2.0 - tencent_im_base: ^1.0.2 + tencent_im_base: ^1.0.3 disk_space: ^0.2.1 http: ^0.13.5 crypto: ^3.0.2 @@ -87,7 +87,7 @@ flutter: uses-material-design: true assets: - images/ - - assets/custom_face_resource/4349/ + # - assets/custom_face_resource/4349/ # To add assets to your package, add an assets section, like this: # assets: