diff --git a/app/tmp/full-r8-config.txt b/app/tmp/full-r8-config.txt index 990053e41..f80ae5cc7 100644 --- a/app/tmp/full-r8-config.txt +++ b/app/tmp/full-r8-config.txt @@ -1,4 +1,4 @@ -# The proguard configuration file for the following section is E:\android\pandorapan\app\build\intermediates\default_proguard_files\global\proguard-android.txt-8.3.1 +# The proguard configuration file for the following section is D:\AndroidProject\pandorapanL\app\build\intermediates\default_proguard_files\global\proguard-android.txt-8.3.1 # This is a configuration file for ProGuard. # http://proguard.sourceforge.net/index.html#manual/usage.html # @@ -95,8 +95,8 @@ # These classes are duplicated between android.jar and core-lambda-stubs.jar. -dontnote java.lang.invoke.** -# End of content from E:\android\pandorapan\app\build\intermediates\default_proguard_files\global\proguard-android.txt-8.3.1 -# The proguard configuration file for the following section is E:\android\pandorapan\app\proguard-rules.pro +# End of content from D:\AndroidProject\pandorapanL\app\build\intermediates\default_proguard_files\global\proguard-android.txt-8.3.1 +# The proguard configuration file for the following section is D:\AndroidProject\pandorapanL\app\proguard-rules.pro # Add project specific ProGuard rules here. # By default, the flags in this file are appended to flags specified # in /Users/macpro/Library/Android/sdk/tools/proguard/proguard-android.txt @@ -419,8 +419,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; -keep class com.qiniu.**{public ();} -ignorewarnings -# End of content from E:\android\pandorapan\app\proguard-rules.pro -# The proguard configuration file for the following section is E:\android\pandorapan\app\build\intermediates\aapt_proguard_file\link_onlineRelease\processLink_onlineReleaseResources\aapt_rules.txt +# End of content from D:\AndroidProject\pandorapanL\app\proguard-rules.pro +# The proguard configuration file for the following section is D:\AndroidProject\pandorapanL\app\build\intermediates\aapt_proguard_file\google_testRelease\processGoogle_testReleaseResources\aapt_rules.txt -keep class androidx.core.app.CoreComponentFactory { (); } -keep class androidx.core.content.FileProvider { (); } -keep class androidx.core.content.FileProvider4Utils { (); } @@ -674,6 +674,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; -keep class androidx.constraintlayout.widget.ConstraintLayout { (android.content.Context, android.util.AttributeSet); } +-keep class androidx.constraintlayout.widget.Group { (android.content.Context, android.util.AttributeSet); } + -keep class androidx.constraintlayout.widget.Guideline { (android.content.Context, android.util.AttributeSet); } -keep class androidx.coordinatorlayout.widget.CoordinatorLayout { (android.content.Context, android.util.AttributeSet); } @@ -1091,11 +1093,11 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; -keepclassmembers class * { *** videoEditClick(android.view.View); } -# End of content from E:\android\pandorapan\app\build\intermediates\aapt_proguard_file\link_onlineRelease\processLink_onlineReleaseResources\aapt_rules.txt -# The proguard configuration file for the following section is E:\android\pandorapan\lib_faceunity\build\intermediates\consumer_proguard_dir\link_onlineRelease\exportLink_onlineReleaseConsumerProguardFiles\lib0\proguard.txt +# End of content from D:\AndroidProject\pandorapanL\app\build\intermediates\aapt_proguard_file\google_testRelease\processGoogle_testReleaseResources\aapt_rules.txt +# The proguard configuration file for the following section is D:\AndroidProject\pandorapanL\lib_faceunity\build\intermediates\consumer_proguard_dir\google_testRelease\exportGoogle_testReleaseConsumerProguardFiles\lib0\proguard.txt -# End of content from E:\android\pandorapan\lib_faceunity\build\intermediates\consumer_proguard_dir\link_onlineRelease\exportLink_onlineReleaseConsumerProguardFiles\lib0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\8d3e3177c15403546de73d87508067d6\transformed\jetified-XPopup-2.10.0\proguard.txt +# End of content from D:\AndroidProject\pandorapanL\lib_faceunity\build\intermediates\consumer_proguard_dir\google_testRelease\exportGoogle_testReleaseConsumerProguardFiles\lib0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\8d3e3177c15403546de73d87508067d6\transformed\jetified-XPopup-2.10.0\proguard.txt # Generated keep rule for Lifecycle observer adapter. -if class com.lxj.xpopup.core.BasePopupView { (...); @@ -1104,8 +1106,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; (...); } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\8d3e3177c15403546de73d87508067d6\transformed\jetified-XPopup-2.10.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\a1df9a6aa192455030f7c9970b70e0e9\transformed\material-1.4.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\8d3e3177c15403546de73d87508067d6\transformed\jetified-XPopup-2.10.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\a1df9a6aa192455030f7c9970b70e0e9\transformed\material-1.4.0\proguard.txt # Copyright (C) 2015 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -1153,16 +1155,16 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\a1df9a6aa192455030f7c9970b70e0e9\transformed\material-1.4.0\proguard.txt -# The proguard configuration file for the following section is E:\android\pandorapan\lib_google\build\intermediates\consumer_proguard_dir\link_onlineRelease\exportLink_onlineReleaseConsumerProguardFiles\lib0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\a1df9a6aa192455030f7c9970b70e0e9\transformed\material-1.4.0\proguard.txt +# The proguard configuration file for the following section is D:\AndroidProject\pandorapanL\lib_google\build\intermediates\consumer_proguard_dir\google_testRelease\exportGoogle_testReleaseConsumerProguardFiles\lib0\proguard.txt -# End of content from E:\android\pandorapan\lib_google\build\intermediates\consumer_proguard_dir\link_onlineRelease\exportLink_onlineReleaseConsumerProguardFiles\lib0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\2929985d9627ba3bb45a0ebd18eaf9d3\transformed\jetified-linesdk-5.0.1\proguard.txt +# End of content from D:\AndroidProject\pandorapanL\lib_google\build\intermediates\consumer_proguard_dir\google_testRelease\exportGoogle_testReleaseConsumerProguardFiles\lib0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\2929985d9627ba3bb45a0ebd18eaf9d3\transformed\jetified-linesdk-5.0.1\proguard.txt -keepattributes *Annotation* -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\2929985d9627ba3bb45a0ebd18eaf9d3\transformed\jetified-linesdk-5.0.1\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\6baa4e4ee96e21acbcf3a49ef89d9f1f\transformed\jetified-facebook-android-sdk-15.2.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\2929985d9627ba3bb45a0ebd18eaf9d3\transformed\jetified-linesdk-5.0.1\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\6baa4e4ee96e21acbcf3a49ef89d9f1f\transformed\jetified-facebook-android-sdk-15.2.0\proguard.txt # To enable ProGuard in your project, edit project.properties # to define the proguard.config property as described in that file. # @@ -1202,8 +1204,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; public android.os.Bundle getSkuDetails(int, java.lang.String, java.lang.String, android.os.Bundle); } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\6baa4e4ee96e21acbcf3a49ef89d9f1f\transformed\jetified-facebook-android-sdk-15.2.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\44135493e77410a01759fde38f8d0bd2\transformed\jetified-facebook-gamingservices-15.2.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\6baa4e4ee96e21acbcf3a49ef89d9f1f\transformed\jetified-facebook-android-sdk-15.2.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\44135493e77410a01759fde38f8d0bd2\transformed\jetified-facebook-gamingservices-15.2.0\proguard.txt # Copyright (c) Meta Platforms, Inc. and affiliates. # All rights reserved. # @@ -1244,8 +1246,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; -keep class com.facebook.gamingservices.GamingServices -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\44135493e77410a01759fde38f8d0bd2\transformed\jetified-facebook-gamingservices-15.2.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\c831739b6efc746f59d2a47471573f41\transformed\jetified-facebook-share-15.2.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\44135493e77410a01759fde38f8d0bd2\transformed\jetified-facebook-gamingservices-15.2.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\c831739b6efc746f59d2a47471573f41\transformed\jetified-facebook-share-15.2.0\proguard.txt # Copyright (c) Meta Platforms, Inc. and affiliates. # All rights reserved. # @@ -1286,8 +1288,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; -keep class com.facebook.share.Share -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\c831739b6efc746f59d2a47471573f41\transformed\jetified-facebook-share-15.2.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\3815d0ddf4b17772bdba730e93b11daf\transformed\jetified-facebook-login-15.2.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\c831739b6efc746f59d2a47471573f41\transformed\jetified-facebook-share-15.2.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\3815d0ddf4b17772bdba730e93b11daf\transformed\jetified-facebook-login-15.2.0\proguard.txt # Copyright (c) Meta Platforms, Inc. and affiliates. # All rights reserved. # @@ -1328,8 +1330,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; -keep class com.facebook.login.Login -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\3815d0ddf4b17772bdba730e93b11daf\transformed\jetified-facebook-login-15.2.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\43855db83adace9940918a3f6edcdc05\transformed\jetified-facebook-common-15.2.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\3815d0ddf4b17772bdba730e93b11daf\transformed\jetified-facebook-login-15.2.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\43855db83adace9940918a3f6edcdc05\transformed\jetified-facebook-common-15.2.0\proguard.txt # Copyright (c) Meta Platforms, Inc. and affiliates. # All rights reserved. # @@ -1370,12 +1372,12 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; -keep class com.facebook.common.Common -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\43855db83adace9940918a3f6edcdc05\transformed\jetified-facebook-common-15.2.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\7bbb003dbf2685697cd42cfb46e77b3f\transformed\jetified-subsampling-scale-image-view-androidx-3.10.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\43855db83adace9940918a3f6edcdc05\transformed\jetified-facebook-common-15.2.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\7bbb003dbf2685697cd42cfb46e77b3f\transformed\jetified-subsampling-scale-image-view-androidx-3.10.0\proguard.txt -keep class com.davemorrissey.labs.subscaleview.** { *; } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\7bbb003dbf2685697cd42cfb46e77b3f\transformed\jetified-subsampling-scale-image-view-androidx-3.10.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\0fdcb88552259c6c22dbd3bb46b31518\transformed\appcompat-1.3.1\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\7bbb003dbf2685697cd42cfb46e77b3f\transformed\jetified-subsampling-scale-image-view-androidx-3.10.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\0fdcb88552259c6c22dbd3bb46b31518\transformed\appcompat-1.3.1\proguard.txt # Copyright (C) 2018 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -1399,13 +1401,13 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; ; } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\0fdcb88552259c6c22dbd3bb46b31518\transformed\appcompat-1.3.1\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\b8e86bdadf487d72a43cd430b3f9db16\transformed\jetified-tweet-ui-3.1.1\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\0fdcb88552259c6c22dbd3bb46b31518\transformed\appcompat-1.3.1\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\b8e86bdadf487d72a43cd430b3f9db16\transformed\jetified-tweet-ui-3.1.1\proguard.txt #Picasso Proguard Config https://github.com/square/picasso -dontwarn com.squareup.okhttp.** -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\b8e86bdadf487d72a43cd430b3f9db16\transformed\jetified-tweet-ui-3.1.1\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\2dd2f4200d3a68f4165485a3d207312d\transformed\coordinatorlayout-1.2.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\b8e86bdadf487d72a43cd430b3f9db16\transformed\jetified-tweet-ui-3.1.1\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\2dd2f4200d3a68f4165485a3d207312d\transformed\coordinatorlayout-1.2.0\proguard.txt # Copyright (C) 2016 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -1432,13 +1434,13 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; RuntimeVisibleParameterAnnotations, RuntimeVisibleTypeAnnotations -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\2dd2f4200d3a68f4165485a3d207312d\transformed\coordinatorlayout-1.2.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\940a969ab3fccb91703d8a9245e2974b\transformed\jetified-x-1.3.2\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\2dd2f4200d3a68f4165485a3d207312d\transformed\coordinatorlayout-1.2.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\940a969ab3fccb91703d8a9245e2974b\transformed\jetified-x-1.3.2\proguard.txt -keepclasseswithmembers class androidx.recyclerview.widget.RecyclerView$ViewHolder { public final android.view.View *; } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\940a969ab3fccb91703d8a9245e2974b\transformed\jetified-x-1.3.2\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\e452872bf1c6c06c71776c88e0bd7b6a\transformed\jetified-exoplayer-ui-2.18.2\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\940a969ab3fccb91703d8a9245e2974b\transformed\jetified-x-1.3.2\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\e452872bf1c6c06c71776c88e0bd7b6a\transformed\jetified-exoplayer-ui-2.18.2\proguard.txt # Proguard rules specific to the UI module. # Constructor method accessed via reflection in StyledPlayerView @@ -1479,8 +1481,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; -dontwarn kotlin.annotations.jvm.** -dontwarn javax.annotation.** -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\e452872bf1c6c06c71776c88e0bd7b6a\transformed\jetified-exoplayer-ui-2.18.2\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\e9de7db2640f13ae2ab2a585dfd19337\transformed\recyclerview-1.2.1\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\e452872bf1c6c06c71776c88e0bd7b6a\transformed\jetified-exoplayer-ui-2.18.2\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\e9de7db2640f13ae2ab2a585dfd19337\transformed\recyclerview-1.2.1\proguard.txt # Copyright (C) 2015 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -1506,11 +1508,11 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; public void suppressLayout(boolean); public boolean isLayoutSuppressed(); } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\e9de7db2640f13ae2ab2a585dfd19337\transformed\recyclerview-1.2.1\proguard.txt -# The proguard configuration file for the following section is E:\android\pandorapan\TabLayout\build\intermediates\consumer_proguard_dir\release\exportReleaseConsumerProguardFiles\lib0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\e9de7db2640f13ae2ab2a585dfd19337\transformed\recyclerview-1.2.1\proguard.txt +# The proguard configuration file for the following section is D:\AndroidProject\pandorapanL\TabLayout\build\intermediates\consumer_proguard_dir\release\exportReleaseConsumerProguardFiles\lib0\proguard.txt -# End of content from E:\android\pandorapan\TabLayout\build\intermediates\consumer_proguard_dir\release\exportReleaseConsumerProguardFiles\lib0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\bb5ec4ef561b90312eb1ca52da1f144d\transformed\jetified-facebook-applinks-15.2.0\proguard.txt +# End of content from D:\AndroidProject\pandorapanL\TabLayout\build\intermediates\consumer_proguard_dir\release\exportReleaseConsumerProguardFiles\lib0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\bb5ec4ef561b90312eb1ca52da1f144d\transformed\jetified-facebook-applinks-15.2.0\proguard.txt # Copyright (c) Meta Platforms, Inc. and affiliates. # All rights reserved. # @@ -1551,8 +1553,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; -keep class com.facebook.applinks.AppLinks -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\bb5ec4ef561b90312eb1ca52da1f144d\transformed\jetified-facebook-applinks-15.2.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\88221c7028fd958b12579787bcf1d5e0\transformed\jetified-facebook-messenger-15.2.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\bb5ec4ef561b90312eb1ca52da1f144d\transformed\jetified-facebook-applinks-15.2.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\88221c7028fd958b12579787bcf1d5e0\transformed\jetified-facebook-messenger-15.2.0\proguard.txt # Copyright (c) Meta Platforms, Inc. and affiliates. # All rights reserved. # @@ -1597,8 +1599,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; -keep class com.facebook.messenger.Messenger -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\88221c7028fd958b12579787bcf1d5e0\transformed\jetified-facebook-messenger-15.2.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\d709769056a5279a71bbb18b41ee69d2\transformed\jetified-ui-1.0.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\88221c7028fd958b12579787bcf1d5e0\transformed\jetified-facebook-messenger-15.2.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\d709769056a5279a71bbb18b41ee69d2\transformed\jetified-ui-1.0.0\proguard.txt # Copyright (C) 2020 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -1627,16 +1629,16 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; android.view.View findViewByAccessibilityIdTraversal(int); } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\d709769056a5279a71bbb18b41ee69d2\transformed\jetified-ui-1.0.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\3591196def6c89c6af74e7d30dfb6618\transformed\jetified-runtime-1.0.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\d709769056a5279a71bbb18b41ee69d2\transformed\jetified-ui-1.0.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\3591196def6c89c6af74e7d30dfb6618\transformed\jetified-runtime-1.0.0\proguard.txt -assumenosideeffects public class androidx.compose.runtime.ComposerKt { void sourceInformation(androidx.compose.runtime.Composer,java.lang.String); void sourceInformationMarkerStart(androidx.compose.runtime.Composer,int,java.lang.String); void sourceInformationMarkerEnd(androidx.compose.runtime.Composer); } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\3591196def6c89c6af74e7d30dfb6618\transformed\jetified-runtime-1.0.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\7931210372c8927a076053831aae79b7\transformed\jetified-glide-transformations-3.1.1\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\3591196def6c89c6af74e7d30dfb6618\transformed\jetified-runtime-1.0.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\7931210372c8927a076053831aae79b7\transformed\jetified-glide-transformations-3.1.1\proguard.txt -dontwarn jp.co.cyberagent.android.gpuimage.** -keep public class * implements com.bumptech.glide.module.GlideModule @@ -1646,8 +1648,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; public *; } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\7931210372c8927a076053831aae79b7\transformed\jetified-glide-transformations-3.1.1\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\a9e5e066cbda5595303140a83b7c357f\transformed\jetified-glide-4.12.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\7931210372c8927a076053831aae79b7\transformed\jetified-glide-transformations-3.1.1\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\a9e5e066cbda5595303140a83b7c357f\transformed\jetified-glide-4.12.0\proguard.txt -keep public class * implements com.bumptech.glide.module.GlideModule -keep class * extends com.bumptech.glide.module.AppGlideModule { (...); @@ -1663,8 +1665,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; # Uncomment for DexGuard only #-keepresourcexmlelements manifest/application/meta-data@value=GlideModule -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\a9e5e066cbda5595303140a83b7c357f\transformed\jetified-glide-4.12.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\245cd6e28cb45ea53af06bd1902d8887\transformed\jetified-billing-7.0.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\a9e5e066cbda5595303140a83b7c357f\transformed\jetified-glide-4.12.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\245cd6e28cb45ea53af06bd1902d8887\transformed\jetified-billing-7.0.0\proguard.txt # Keep the AIDL interface -keep class com.android.vending.billing.** { *; } @@ -1699,8 +1701,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; ; } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\245cd6e28cb45ea53af06bd1902d8887\transformed\jetified-billing-7.0.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\389aac78ceffe6f037f7624d2175f98b\transformed\jetified-play-services-base-18.3.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\245cd6e28cb45ea53af06bd1902d8887\transformed\jetified-billing-7.0.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\389aac78ceffe6f037f7624d2175f98b\transformed\jetified-play-services-base-18.3.0\proguard.txt # b/35135904 Ensure that proguard will not strip the mResultGuardian. -keepclassmembers class com.google.android.gms.common.api.internal.BasePendingResult { com.google.android.gms.common.api.internal.BasePendingResult$ReleasableResultGuardian mResultGuardian; @@ -1708,8 +1710,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\389aac78ceffe6f037f7624d2175f98b\transformed\jetified-play-services-base-18.3.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\fdcd25b13ca01df0d64e21ab18452962\transformed\jetified-play-services-measurement-api-21.1.1\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\389aac78ceffe6f037f7624d2175f98b\transformed\jetified-play-services-base-18.3.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\fdcd25b13ca01df0d64e21ab18452962\transformed\jetified-play-services-measurement-api-21.1.1\proguard.txt # Can be removed once we pull in a dependency on firebase-common that includes # https://github.com/firebase/firebase-android-sdk/pull/1472/commits/856f1ca1151cdd88679bbc778892f23dfa34fc06#diff-a2ed34b5a38b4c6c686b09e54865eb48 -dontwarn com.google.auto.value.AutoValue @@ -1722,18 +1724,18 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; ; } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\fdcd25b13ca01df0d64e21ab18452962\transformed\jetified-play-services-measurement-api-21.1.1\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\1b549d0d5a78f93d1b3cd259941d27d6\transformed\jetified-firebase-common-20.1.2\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\fdcd25b13ca01df0d64e21ab18452962\transformed\jetified-play-services-measurement-api-21.1.1\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\1b549d0d5a78f93d1b3cd259941d27d6\transformed\jetified-firebase-common-20.1.2\proguard.txt -dontwarn com.google.firebase.platforminfo.KotlinDetector -dontwarn com.google.auto.value.AutoValue -dontwarn com.google.auto.value.AutoValue$Builder -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\1b549d0d5a78f93d1b3cd259941d27d6\transformed\jetified-firebase-common-20.1.2\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\1d73edc853ec5797eb8fbdbaf92a3a43\transformed\jetified-play-services-tasks-18.1.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\1b549d0d5a78f93d1b3cd259941d27d6\transformed\jetified-firebase-common-20.1.2\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\1d73edc853ec5797eb8fbdbaf92a3a43\transformed\jetified-play-services-tasks-18.1.0\proguard.txt -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\1d73edc853ec5797eb8fbdbaf92a3a43\transformed\jetified-play-services-tasks-18.1.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\53d8ae00710cb6dfde668ad5c2529a5c\transformed\jetified-play-services-measurement-21.1.1\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\1d73edc853ec5797eb8fbdbaf92a3a43\transformed\jetified-play-services-tasks-18.1.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\53d8ae00710cb6dfde668ad5c2529a5c\transformed\jetified-play-services-measurement-21.1.1\proguard.txt # We keep all fields for every generated proto file as the runtime uses # reflection over them that ProGuard cannot detect. Without this keep # rule, fields may be removed that would cause runtime failures. @@ -1741,8 +1743,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; ; } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\53d8ae00710cb6dfde668ad5c2529a5c\transformed\jetified-play-services-measurement-21.1.1\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\d9a1fa15000998f069a9eb095ddd5d6c\transformed\jetified-play-services-measurement-sdk-21.1.1\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\53d8ae00710cb6dfde668ad5c2529a5c\transformed\jetified-play-services-measurement-21.1.1\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\d9a1fa15000998f069a9eb095ddd5d6c\transformed\jetified-play-services-measurement-sdk-21.1.1\proguard.txt # We keep all fields for every generated proto file as the runtime uses # reflection over them that ProGuard cannot detect. Without this keep # rule, fields may be removed that would cause runtime failures. @@ -1750,8 +1752,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; ; } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\d9a1fa15000998f069a9eb095ddd5d6c\transformed\jetified-play-services-measurement-sdk-21.1.1\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\e3d5db4c204c05b688c67157d08d719e\transformed\jetified-play-services-measurement-impl-21.1.1\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\d9a1fa15000998f069a9eb095ddd5d6c\transformed\jetified-play-services-measurement-sdk-21.1.1\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\e3d5db4c204c05b688c67157d08d719e\transformed\jetified-play-services-measurement-impl-21.1.1\proguard.txt # We keep all fields for every generated proto file as the runtime uses # reflection over them that ProGuard cannot detect. Without this keep # rule, fields may be removed that would cause runtime failures. @@ -1759,8 +1761,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; ; } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\e3d5db4c204c05b688c67157d08d719e\transformed\jetified-play-services-measurement-impl-21.1.1\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\a14887389ea05f2c3a61b51470f02e11\transformed\jetified-play-services-measurement-sdk-api-21.1.1\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\e3d5db4c204c05b688c67157d08d719e\transformed\jetified-play-services-measurement-impl-21.1.1\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\a14887389ea05f2c3a61b51470f02e11\transformed\jetified-play-services-measurement-sdk-api-21.1.1\proguard.txt # We keep all fields for every generated proto file as the runtime uses # reflection over them that ProGuard cannot detect. Without this keep # rule, fields may be removed that would cause runtime failures. @@ -1768,8 +1770,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; ; } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\a14887389ea05f2c3a61b51470f02e11\transformed\jetified-play-services-measurement-sdk-api-21.1.1\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\a00f92aeac02d4041e8903bda4c31467\transformed\jetified-play-services-measurement-base-21.1.1\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\a14887389ea05f2c3a61b51470f02e11\transformed\jetified-play-services-measurement-sdk-api-21.1.1\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\a00f92aeac02d4041e8903bda4c31467\transformed\jetified-play-services-measurement-base-21.1.1\proguard.txt # We keep all fields for every generated proto file as the runtime uses # reflection over them that ProGuard cannot detect. Without this keep # rule, fields may be removed that would cause runtime failures. @@ -1777,8 +1779,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; ; } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\a00f92aeac02d4041e8903bda4c31467\transformed\jetified-play-services-measurement-base-21.1.1\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\6eda7df53f5a535e22df39c8e1d72650\transformed\jetified-play-services-basement-18.3.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\a00f92aeac02d4041e8903bda4c31467\transformed\jetified-play-services-measurement-base-21.1.1\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\6eda7df53f5a535e22df39c8e1d72650\transformed\jetified-play-services-basement-18.3.0\proguard.txt # Needed when building against pre-Marshmallow SDK. -dontwarn android.security.NetworkSecurityPolicy @@ -1856,8 +1858,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\6eda7df53f5a535e22df39c8e1d72650\transformed\jetified-play-services-basement-18.3.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\8daf89c63ab14ea80f11dcfb9154f87e\transformed\fragment-1.5.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\6eda7df53f5a535e22df39c8e1d72650\transformed\jetified-play-services-basement-18.3.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\8daf89c63ab14ea80f11dcfb9154f87e\transformed\fragment-1.5.0\proguard.txt # Copyright (C) 2020 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -1878,12 +1880,12 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; public (); } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\8daf89c63ab14ea80f11dcfb9154f87e\transformed\fragment-1.5.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\b826addf48d922103bc9588ad90ee0e6\transformed\jetified-Common-4.1.11\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\8daf89c63ab14ea80f11dcfb9154f87e\transformed\fragment-1.5.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\b826addf48d922103bc9588ad90ee0e6\transformed\jetified-Common-4.1.11\proguard.txt # 本库模块专用的混淆规则 -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\b826addf48d922103bc9588ad90ee0e6\transformed\jetified-Common-4.1.11\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\cee8df21fdda9dd7e6106d8566e7a8de\transformed\jetified-facebook-core-15.2.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\b826addf48d922103bc9588ad90ee0e6\transformed\jetified-Common-4.1.11\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\cee8df21fdda9dd7e6106d8566e7a8de\transformed\jetified-facebook-core-15.2.0\proguard.txt # Copyright (c) Meta Platforms, Inc. and affiliates. # All rights reserved. # @@ -1941,8 +1943,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; public ; } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\cee8df21fdda9dd7e6106d8566e7a8de\transformed\jetified-facebook-core-15.2.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\570c85082e748d036cbe1ff0c9d5e429\transformed\lifecycle-viewmodel-2.5.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\cee8df21fdda9dd7e6106d8566e7a8de\transformed\jetified-facebook-core-15.2.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\570c85082e748d036cbe1ff0c9d5e429\transformed\lifecycle-viewmodel-2.5.0\proguard.txt -keepclassmembers,allowobfuscation class * extends androidx.lifecycle.ViewModel { (); } @@ -1951,8 +1953,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; (android.app.Application); } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\570c85082e748d036cbe1ff0c9d5e429\transformed\lifecycle-viewmodel-2.5.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\badee3548ba9b653d6517fdeb8829767\transformed\jetified-lifecycle-viewmodel-savedstate-2.5.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\570c85082e748d036cbe1ff0c9d5e429\transformed\lifecycle-viewmodel-2.5.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\badee3548ba9b653d6517fdeb8829767\transformed\jetified-lifecycle-viewmodel-savedstate-2.5.0\proguard.txt -keepclassmembers,allowobfuscation class * extends androidx.lifecycle.ViewModel { (androidx.lifecycle.SavedStateHandle); } @@ -1961,8 +1963,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; (android.app.Application,androidx.lifecycle.SavedStateHandle); } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\badee3548ba9b653d6517fdeb8829767\transformed\jetified-lifecycle-viewmodel-savedstate-2.5.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\0e43e19966d3ba7fcce157667e087c7e\transformed\rules\lib\META-INF\com.android.tools\r8\coroutines.pro +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\badee3548ba9b653d6517fdeb8829767\transformed\jetified-lifecycle-viewmodel-savedstate-2.5.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\0e43e19966d3ba7fcce157667e087c7e\transformed\rules\lib\META-INF\com.android.tools\r8\coroutines.pro # When editing this file, update the following files as well: # - META-INF/proguard/coroutines.pro # - META-INF/com.android.tools/proguard/coroutines.pro @@ -1990,8 +1992,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; # An annotation used for build tooling, won't be directly accessed. -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\0e43e19966d3ba7fcce157667e087c7e\transformed\rules\lib\META-INF\com.android.tools\r8\coroutines.pro -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\039aa78b17fc1889d62d4e8e7d7c1859\transformed\rules\lib\META-INF\com.android.tools\r8-from-1.6.0\coroutines.pro +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\0e43e19966d3ba7fcce157667e087c7e\transformed\rules\lib\META-INF\com.android.tools\r8\coroutines.pro +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\039aa78b17fc1889d62d4e8e7d7c1859\transformed\rules\lib\META-INF\com.android.tools\r8-from-1.6.0\coroutines.pro # Allow R8 to optimize away the FastServiceLoader. # Together with ServiceLoader optimization in R8 # this results in direct instantiation when loading Dispatchers.Main @@ -2016,8 +2018,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; boolean getDEBUG() return false; boolean getRECOVER_STACK_TRACES() return false; } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\039aa78b17fc1889d62d4e8e7d7c1859\transformed\rules\lib\META-INF\com.android.tools\r8-from-1.6.0\coroutines.pro -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\33f970d366250728877e2f4671336331\transformed\jetified-twitter-core-3.1.1\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\039aa78b17fc1889d62d4e8e7d7c1859\transformed\rules\lib\META-INF\com.android.tools\r8-from-1.6.0\coroutines.pro +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\33f970d366250728877e2f4671336331\transformed\jetified-twitter-core-3.1.1\proguard.txt #GSON # Retain Annotations for model objects -keepattributes *Annotation* @@ -2041,8 +2043,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; -keepclasseswithmembers class * { @retrofit2.http.* ; } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\33f970d366250728877e2f4671336331\transformed\jetified-twitter-core-3.1.1\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\c77ecf57bcccb48a1c436095271858a9\transformed\rules\lib\META-INF\proguard\okhttp3.pro +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\33f970d366250728877e2f4671336331\transformed\jetified-twitter-core-3.1.1\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\c77ecf57bcccb48a1c436095271858a9\transformed\rules\lib\META-INF\proguard\okhttp3.pro # JSR 305 annotations are for embedding nullability information. -dontwarn javax.annotation.** @@ -2055,16 +2057,16 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; # OkHttp platform used only on JVM and when Conscrypt dependency is available. -dontwarn okhttp3.internal.platform.ConscryptPlatform -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\c77ecf57bcccb48a1c436095271858a9\transformed\rules\lib\META-INF\proguard\okhttp3.pro -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\ba2f6b8d754037d8f03e9dcac5bb54b5\transformed\rules\lib\META-INF\proguard\okio.pro +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\c77ecf57bcccb48a1c436095271858a9\transformed\rules\lib\META-INF\proguard\okhttp3.pro +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\ba2f6b8d754037d8f03e9dcac5bb54b5\transformed\rules\lib\META-INF\proguard\okio.pro # Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java. -dontwarn org.codehaus.mojo.animal_sniffer.* -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\ba2f6b8d754037d8f03e9dcac5bb54b5\transformed\rules\lib\META-INF\proguard\okio.pro -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\acd3bab55cb4f819050ef57ea2e25987\transformed\jetified-beautysdk-202202241203\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\ba2f6b8d754037d8f03e9dcac5bb54b5\transformed\rules\lib\META-INF\proguard\okio.pro +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\acd3bab55cb4f819050ef57ea2e25987\transformed\jetified-beautysdk-202202241203\proguard.txt -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\acd3bab55cb4f819050ef57ea2e25987\transformed\jetified-beautysdk-202202241203\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\6905c56d188193f144e40adf093778f1\transformed\jetified-utilcode-1.30.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\acd3bab55cb4f819050ef57ea2e25987\transformed\jetified-beautysdk-202202241203\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\6905c56d188193f144e40adf093778f1\transformed\jetified-utilcode-1.30.0\proguard.txt # Add project specific ProGuard rules here. # By default, the flags in this file are appended to flags specified # in G:\Android_IDE\ADT\sdk/tools/proguard/proguard-android.txt @@ -2093,8 +2095,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; -keep @com.blankj.utilcode.util.ApiUtils$Api class * -keepattributes *Annotation* -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\6905c56d188193f144e40adf093778f1\transformed\jetified-utilcode-1.30.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\b75b75d929caf1295aec25af1cc611a0\transformed\jetified-crash-1.0.8\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\6905c56d188193f144e40adf093778f1\transformed\jetified-utilcode-1.30.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\b75b75d929caf1295aec25af1cc611a0\transformed\jetified-crash-1.0.8\proguard.txt -keep class cn.rongcloud.xcrash.NativeHandler { native ; void crashCallback(...); @@ -2102,22 +2104,22 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; void traceCallbackBeforeDump(...); } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\b75b75d929caf1295aec25af1cc611a0\transformed\jetified-crash-1.0.8\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\a7d2b366ebb4fa695d83564a8f8d9b9e\transformed\jetified-roundedimageview-2.3.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\b75b75d929caf1295aec25af1cc611a0\transformed\jetified-crash-1.0.8\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\a7d2b366ebb4fa695d83564a8f8d9b9e\transformed\jetified-roundedimageview-2.3.0\proguard.txt # Proguard configuration. -dontwarn com.squareup.okhttp.** # References to Picasso are okay if the consuming app doesn't use it -dontwarn com.squareup.picasso.Transformation -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\a7d2b366ebb4fa695d83564a8f8d9b9e\transformed\jetified-roundedimageview-2.3.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\54e4d6b7585273307d9c6823366d92b9\transformed\jetified-android-gif-drawable-1.2.23\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\a7d2b366ebb4fa695d83564a8f8d9b9e\transformed\jetified-roundedimageview-2.3.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\54e4d6b7585273307d9c6823366d92b9\transformed\jetified-android-gif-drawable-1.2.23\proguard.txt -keep public class pl.droidsonroids.gif.GifIOException{(int, java.lang.String);} #Prevents warnings for consumers not using AndroidX -dontwarn androidx.annotation.** -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\54e4d6b7585273307d9c6823366d92b9\transformed\jetified-android-gif-drawable-1.2.23\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\11ff2b99188b7e7bf4e2771916717f0f\transformed\jetified-ShortcutBadger-1.1.22\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\54e4d6b7585273307d9c6823366d92b9\transformed\jetified-android-gif-drawable-1.2.23\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\11ff2b99188b7e7bf4e2771916717f0f\transformed\jetified-ShortcutBadger-1.1.22\proguard.txt #https://github.com/leolin310148/ShortcutBadger/issues/46 -keep class me.leolin.shortcutbadger.impl.AdwHomeBadger { (...); } -keep class me.leolin.shortcutbadger.impl.ApexHomeBadger { (...); } @@ -2128,8 +2130,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; -keep class me.leolin.shortcutbadger.impl.SolidHomeBadger { (...); } -keep class me.leolin.shortcutbadger.impl.SonyHomeBadger { (...); } -keep class me.leolin.shortcutbadger.impl.XiaomiHomeBadger { (...); } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\11ff2b99188b7e7bf4e2771916717f0f\transformed\jetified-ShortcutBadger-1.1.22\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\bf0366dad8fd25b42dec7a0b29d3ed94\transformed\jetified-EasyFloat-2.0.4\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\11ff2b99188b7e7bf4e2771916717f0f\transformed\jetified-ShortcutBadger-1.1.22\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\bf0366dad8fd25b42dec7a0b29d3ed94\transformed\jetified-EasyFloat-2.0.4\proguard.txt # Add project specific ProGuard rules here. # You can control the filterSet of applied configuration files using the # proguardFiles setting in build.gradle. @@ -2167,8 +2169,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; # 保持反射不被混淆 -keepattributes EnclosingMethod -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\bf0366dad8fd25b42dec7a0b29d3ed94\transformed\jetified-EasyFloat-2.0.4\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\6dd79c19a3de7f7b4d3014c08d02f4ca\transformed\jetified-PagerGridLayoutManager-1.1.7\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\bf0366dad8fd25b42dec7a0b29d3ed94\transformed\jetified-EasyFloat-2.0.4\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\6dd79c19a3de7f7b4d3014c08d02f4ca\transformed\jetified-PagerGridLayoutManager-1.1.7\proguard.txt # Add project specific ProGuard rules here. # You can control the set of applied configuration files using the # proguardFiles setting in build.gradle. @@ -2190,12 +2192,12 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode; # If you keep the line number information, uncomment this to # hide the original source file name. #-renamesourcefileattribute SourceFile -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\6dd79c19a3de7f7b4d3014c08d02f4ca\transformed\jetified-PagerGridLayoutManager-1.1.7\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\adfc563cfaac18f99ab49176e8311139\transformed\jetified-WheelView-4.1.11\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\6dd79c19a3de7f7b4d3014c08d02f4ca\transformed\jetified-PagerGridLayoutManager-1.1.7\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\adfc563cfaac18f99ab49176e8311139\transformed\jetified-WheelView-4.1.11\proguard.txt # 本库模块专用的混淆规则 -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\adfc563cfaac18f99ab49176e8311139\transformed\jetified-WheelView-4.1.11\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\483c0844792efef20618064763675691\transformed\jetified-SudMGP-1.4.3.1201\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\adfc563cfaac18f99ab49176e8311139\transformed\jetified-WheelView-4.1.11\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\483c0844792efef20618064763675691\transformed\jetified-SudMGP-1.4.3.1201\proguard.txt -keep class com.cocos.game.**{ *; } -keep class tech.sud.runtime.**{ *; } -keep class tech.sud.mgp.core.**{ *; } @@ -2849,8 +2851,8 @@ native ; } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\483c0844792efef20618064763675691\transformed\jetified-SudMGP-1.4.3.1201\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\9fef6e1dea59ce01cbe6739f12545786\transformed\jetified-SudASR-1.4.3.1201\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\483c0844792efef20618064763675691\transformed\jetified-SudMGP-1.4.3.1201\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\9fef6e1dea59ce01cbe6739f12545786\transformed\jetified-SudASR-1.4.3.1201\proguard.txt -keep class com.microsoft.cognitiveservices.** { *; } -keep class tech.sud.mgp.asr.azure.** { *; } @@ -2865,8 +2867,8 @@ native ; *** *Callback(long); } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\9fef6e1dea59ce01cbe6739f12545786\transformed\jetified-SudASR-1.4.3.1201\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\d5594233d50b1d727f4630790ca89a13\transformed\jetified-core-8.7.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\9fef6e1dea59ce01cbe6739f12545786\transformed\jetified-SudASR-1.4.3.1201\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\d5594233d50b1d727f4630790ca89a13\transformed\jetified-core-8.7.0\proguard.txt # Add project specific ProGuard rules here. # You can control the set of applied configuration files using the # proguardFiles setting in build.gradle. @@ -2893,8 +2895,8 @@ native ; -keep class com.faceunity.wrapper.faceunity {*;} -keep class com.faceunity.wrapper.faceunity$RotatedImage {*;} -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\d5594233d50b1d727f4630790ca89a13\transformed\jetified-core-8.7.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\526e7910eaa433763f36b642f34c1fee\transformed\jetified-exoplayer-core-2.18.2\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\d5594233d50b1d727f4630790ca89a13\transformed\jetified-core-8.7.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\526e7910eaa433763f36b642f34c1fee\transformed\jetified-exoplayer-core-2.18.2\proguard.txt # Proguard rules specific to the core module. # Constructors accessed via reflection in DefaultRenderersFactory @@ -2951,8 +2953,8 @@ native ; (); } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\526e7910eaa433763f36b642f34c1fee\transformed\jetified-exoplayer-core-2.18.2\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\2d16d937f787a1471d1fcefef8917ded\transformed\jetified-savedstate-1.2.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\526e7910eaa433763f36b642f34c1fee\transformed\jetified-exoplayer-core-2.18.2\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\2d16d937f787a1471d1fcefef8917ded\transformed\jetified-savedstate-1.2.0\proguard.txt # Copyright (C) 2019 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -2971,8 +2973,8 @@ native ; (); } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\2d16d937f787a1471d1fcefef8917ded\transformed\jetified-savedstate-1.2.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\f55e0290d55f2ec9dfa66384635c714c\transformed\transition-1.2.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\2d16d937f787a1471d1fcefef8917ded\transformed\jetified-savedstate-1.2.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\f55e0290d55f2ec9dfa66384635c714c\transformed\transition-1.2.0\proguard.txt # Copyright (C) 2017 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -2992,8 +2994,8 @@ native ; androidx.transition.ChangeBounds$ViewBounds mViewBounds; } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\f55e0290d55f2ec9dfa66384635c714c\transformed\transition-1.2.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\093cf4894c646f12adcf0608a8578513\transformed\vectordrawable-animated-1.1.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\f55e0290d55f2ec9dfa66384635c714c\transformed\transition-1.2.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\093cf4894c646f12adcf0608a8578513\transformed\vectordrawable-animated-1.1.0\proguard.txt # Copyright (C) 2016 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -3014,8 +3016,8 @@ native ; *** get*(); } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\093cf4894c646f12adcf0608a8578513\transformed\vectordrawable-animated-1.1.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\3db9f5e64eaa2a61a80545d78dbfe4ed\transformed\jetified-facebook-bolts-15.2.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\093cf4894c646f12adcf0608a8578513\transformed\vectordrawable-animated-1.1.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\3db9f5e64eaa2a61a80545d78dbfe4ed\transformed\jetified-facebook-bolts-15.2.0\proguard.txt # Copyright (c) Meta Platforms, Inc. and affiliates. # All rights reserved. # @@ -3051,8 +3053,8 @@ native ; java.lang.Object readResolve(); } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\3db9f5e64eaa2a61a80545d78dbfe4ed\transformed\jetified-facebook-bolts-15.2.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\13795feba8dd8fc2e0266a202e40730e\transformed\media-1.6.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\3db9f5e64eaa2a61a80545d78dbfe4ed\transformed\jetified-facebook-bolts-15.2.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\13795feba8dd8fc2e0266a202e40730e\transformed\media-1.6.0\proguard.txt # Copyright (C) 2017 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); @@ -3076,8 +3078,8 @@ native ; -keep class androidx.media.** implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\13795feba8dd8fc2e0266a202e40730e\transformed\media-1.6.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\c6ec9c31a3362678dbcc66f2e9ea7260\transformed\core-1.10.1\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\13795feba8dd8fc2e0266a202e40730e\transformed\media-1.6.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\c6ec9c31a3362678dbcc66f2e9ea7260\transformed\core-1.10.1\proguard.txt # Never inline methods, but allow shrinking and obfuscation. -keepclassmembernames,allowobfuscation,allowshrinking class androidx.core.view.ViewCompat$Api* { ; @@ -3095,8 +3097,8 @@ native ; ; } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\c6ec9c31a3362678dbcc66f2e9ea7260\transformed\core-1.10.1\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\2c964f4aa7e08caf6a082be78fa332c4\transformed\lifecycle-runtime-2.5.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\c6ec9c31a3362678dbcc66f2e9ea7260\transformed\core-1.10.1\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\2c964f4aa7e08caf6a082be78fa332c4\transformed\lifecycle-runtime-2.5.0\proguard.txt -keepattributes AnnotationDefault, RuntimeVisibleAnnotations, RuntimeVisibleParameterAnnotations, @@ -3120,8 +3122,8 @@ native ; # this rule is need to work properly when app is compiled with api 28, see b/142778206 # Also this rule prevents registerIn from being inlined. -keepclassmembers class androidx.lifecycle.ReportFragment$LifecycleCallbacks { *; } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\2c964f4aa7e08caf6a082be78fa332c4\transformed\lifecycle-runtime-2.5.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\4a3cce138aa30f2fd0df44bf999a62d2\transformed\jetified-exoplayer-datasource-2.18.2\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\2c964f4aa7e08caf6a082be78fa332c4\transformed\lifecycle-runtime-2.5.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\4a3cce138aa30f2fd0df44bf999a62d2\transformed\jetified-exoplayer-datasource-2.18.2\proguard.txt # Proguard rules specific to the DataSource module. # Constant folding for resource integers may mean that a resource passed to this method appears to be unused. Keep the method to prevent this from happening. @@ -3135,8 +3137,8 @@ native ; (); } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\4a3cce138aa30f2fd0df44bf999a62d2\transformed\jetified-exoplayer-datasource-2.18.2\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\cccc4dd1e5210aae5c702cc866696db2\transformed\jetified-exoplayer-extractor-2.18.2\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\4a3cce138aa30f2fd0df44bf999a62d2\transformed\jetified-exoplayer-datasource-2.18.2\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\cccc4dd1e5210aae5c702cc866696db2\transformed\jetified-exoplayer-extractor-2.18.2\proguard.txt # Proguard rules specific to the extractor module. # Methods accessed via reflection in DefaultExtractorsFactory @@ -3154,8 +3156,8 @@ native ; -dontwarn kotlin.annotations.jvm.** -dontwarn javax.annotation.** -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\cccc4dd1e5210aae5c702cc866696db2\transformed\jetified-exoplayer-extractor-2.18.2\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\5bd9c5cbdf66400a7932d1da1691bac0\transformed\jetified-exoplayer-common-2.18.2\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\cccc4dd1e5210aae5c702cc866696db2\transformed\jetified-exoplayer-extractor-2.18.2\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\5bd9c5cbdf66400a7932d1da1691bac0\transformed\jetified-exoplayer-common-2.18.2\proguard.txt # Proguard rules specific to the common module. # Don't warn about checkerframework and Kotlin annotations @@ -3179,30 +3181,30 @@ native ; # This is needed for ProGuard but not R8. -keepclassmembernames class com.google.common.base.Function { *; } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\5bd9c5cbdf66400a7932d1da1691bac0\transformed\jetified-exoplayer-common-2.18.2\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\25898cd92bff76be652caaeef3397500\transformed\versionedparcelable-1.1.1\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\5bd9c5cbdf66400a7932d1da1691bac0\transformed\jetified-exoplayer-common-2.18.2\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\25898cd92bff76be652caaeef3397500\transformed\versionedparcelable-1.1.1\proguard.txt -keep class * implements androidx.versionedparcelable.VersionedParcelable -keep public class android.support.**Parcelizer { *; } -keep public class androidx.**Parcelizer { *; } -keep public class androidx.versionedparcelable.ParcelImpl -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\25898cd92bff76be652caaeef3397500\transformed\versionedparcelable-1.1.1\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\8c49f53105b230fe43669879f576cab6\transformed\room-runtime-2.4.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\25898cd92bff76be652caaeef3397500\transformed\versionedparcelable-1.1.1\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\8c49f53105b230fe43669879f576cab6\transformed\room-runtime-2.4.0\proguard.txt -keep class * extends androidx.room.RoomDatabase -dontwarn androidx.room.paging.** -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\8c49f53105b230fe43669879f576cab6\transformed\room-runtime-2.4.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\c4bf50f4bef00295f739a61609b757c2\transformed\jetified-transport-backend-cct-3.1.8\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\8c49f53105b230fe43669879f576cab6\transformed\room-runtime-2.4.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\c4bf50f4bef00295f739a61609b757c2\transformed\jetified-transport-backend-cct-3.1.8\proguard.txt -dontwarn com.google.auto.value.AutoValue -dontwarn com.google.auto.value.AutoValue$Builder -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\c4bf50f4bef00295f739a61609b757c2\transformed\jetified-transport-backend-cct-3.1.8\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\ad1f4a6564b34286db155b9a62614b62\transformed\jetified-transport-api-3.0.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\c4bf50f4bef00295f739a61609b757c2\transformed\jetified-transport-backend-cct-3.1.8\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\ad1f4a6564b34286db155b9a62614b62\transformed\jetified-transport-api-3.0.0\proguard.txt -dontwarn com.google.auto.value.AutoValue -dontwarn com.google.auto.value.AutoValue$Builder -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\ad1f4a6564b34286db155b9a62614b62\transformed\jetified-transport-api-3.0.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\48f6f745536202396d49c6664e656f00\transformed\jetified-startup-runtime-1.0.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\ad1f4a6564b34286db155b9a62614b62\transformed\jetified-transport-api-3.0.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\48f6f745536202396d49c6664e656f00\transformed\jetified-startup-runtime-1.0.0\proguard.txt # This Proguard rule ensures that ComponentInitializers are are neither shrunk nor obfuscated. # This is because they are discovered and instantiated during application initialization. -keep class * extends androidx.startup.Initializer { @@ -3212,22 +3214,22 @@ native ; -assumenosideeffects class androidx.startup.StartupLogger -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\48f6f745536202396d49c6664e656f00\transformed\jetified-startup-runtime-1.0.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\e1bbd140b52a8e61bea52bf380947059\transformed\jetified-firebase-components-17.0.1\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\48f6f745536202396d49c6664e656f00\transformed\jetified-startup-runtime-1.0.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\e1bbd140b52a8e61bea52bf380947059\transformed\jetified-firebase-components-17.0.1\proguard.txt -dontwarn com.google.firebase.components.Component$Instantiation -dontwarn com.google.firebase.components.Component$ComponentType -keep class * implements com.google.firebase.components.ComponentRegistrar -keep,allowshrinking interface com.google.firebase.components.ComponentRegistrar -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\e1bbd140b52a8e61bea52bf380947059\transformed\jetified-firebase-components-17.0.1\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\ff39e13547528b628eacff5bee8aa481\transformed\jetified-firebase-encoders-json-18.0.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\e1bbd140b52a8e61bea52bf380947059\transformed\jetified-firebase-components-17.0.1\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\ff39e13547528b628eacff5bee8aa481\transformed\jetified-firebase-encoders-json-18.0.0\proguard.txt -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\ff39e13547528b628eacff5bee8aa481\transformed\jetified-firebase-encoders-json-18.0.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\eb4fdf1a1abe4d45e8a1ea6c65e9f330\transformed\jetified-model-8.7.0\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\ff39e13547528b628eacff5bee8aa481\transformed\jetified-firebase-encoders-json-18.0.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\eb4fdf1a1abe4d45e8a1ea6c65e9f330\transformed\jetified-model-8.7.0\proguard.txt -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\eb4fdf1a1abe4d45e8a1ea6c65e9f330\transformed\jetified-model-8.7.0\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\e4ea56c12de34fd26c2a84541f3aeb08\transformed\jetified-calligraphy3-3.1.1\proguard.txt +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\eb4fdf1a1abe4d45e8a1ea6c65e9f330\transformed\jetified-model-8.7.0\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\e4ea56c12de34fd26c2a84541f3aeb08\transformed\jetified-calligraphy3-3.1.1\proguard.txt # Add project specific ProGuard rules here. # By default, the flags in this file are appended to flags specified # in /Developer/android-sdk-osx/tools/proguard/proguard-android.txt @@ -3249,8 +3251,8 @@ native ; -keep class io.github.inflationx.calligraphy3.* { *; } -keep class io.github.inflationx.calligraphy3.*$* { *; } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\e4ea56c12de34fd26c2a84541f3aeb08\transformed\jetified-calligraphy3-3.1.1\proguard.txt -# The proguard configuration file for the following section is F:\AS\gradle-6.1.1\caches\transforms-3\6ee4aefc5377638487f62f6779665411\transformed\rules\lib\META-INF\proguard\androidx-annotations.pro +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\e4ea56c12de34fd26c2a84541f3aeb08\transformed\jetified-calligraphy3-3.1.1\proguard.txt +# The proguard configuration file for the following section is C:\Users\CVB88\.gradle\caches\transforms-3\6ee4aefc5377638487f62f6779665411\transformed\rules\lib\META-INF\proguard\androidx-annotations.pro -keep,allowobfuscation @interface androidx.annotation.Keep -keep @androidx.annotation.Keep class * {*;} @@ -3270,7 +3272,7 @@ native ; @androidx.annotation.DoNotInline ; } -# End of content from F:\AS\gradle-6.1.1\caches\transforms-3\6ee4aefc5377638487f62f6779665411\transformed\rules\lib\META-INF\proguard\androidx-annotations.pro +# End of content from C:\Users\CVB88\.gradle\caches\transforms-3\6ee4aefc5377638487f62f6779665411\transformed\rules\lib\META-INF\proguard\androidx-annotations.pro # The proguard configuration file for the following section is # End of content from \ No newline at end of file diff --git a/common/src/main/java/com/yunbao/common/adapter/MainConversationListAdapter.java b/common/src/main/java/com/yunbao/common/adapter/MainConversationListAdapter.java index 50a222466..bc31d942c 100644 --- a/common/src/main/java/com/yunbao/common/adapter/MainConversationListAdapter.java +++ b/common/src/main/java/com/yunbao/common/adapter/MainConversationListAdapter.java @@ -12,8 +12,10 @@ import android.widget.ImageView; import android.widget.TextView; import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; import com.blankj.utilcode.util.LogUtils; +import com.google.android.exoplayer2.C; import com.yunbao.common.R; import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.interfaces.OnRecyclerListRefreshListener; @@ -23,16 +25,21 @@ import com.yunbao.common.utils.AppManager; import com.yunbao.common.utils.ChatMsgTypeUtils; import com.yunbao.common.utils.DateFormatUtil; import com.yunbao.common.utils.StringUtil; +import com.yunbao.common.utils.UiConversationCodeUtil; import com.yunbao.common.utils.ViewUtils; import com.yunbao.common.utils.WordUtil; import com.yunbao.common.views.weight.ViewClicksAntiShake; +import org.spongycastle.jcajce.provider.asymmetric.rsa.ISOSignatureSpi; + import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import io.rong.imkit.IMCenter; +import io.rong.imkit.RongIM; import io.rong.imkit.conversationlist.ConversationListAdapter; import io.rong.imkit.conversationlist.model.BaseUiConversation; import io.rong.imkit.conversationlist.model.SingleConversation; @@ -52,18 +59,43 @@ public class MainConversationListAdapter extends ConversationListAdapter { public static final int TYPE_SEARCH_USER = 510; public static final int TYPE_SEARCH_CHAT = 520; private List srcList; + private List allDataList; private Context mContext; private boolean isChat = true; private OnRecyclerListRefreshListener> onRefreshListener; private Map timerMap = new HashMap<>(); + + public static final int FILTER_OFFLINE = 0; + public static final int FILTER_ONLINE = 1; + public static final int FILTER_UNREAD = 2; + public static final int FILTER_READ = 4; + public static final int FILTER_ALL = 7; + private int mFilter = FILTER_ALL; + + public int getFilter() { + return mFilter; + } + + public void setFilter(int mFilter) { + if (this.mFilter == mFilter) + return; + this.mFilter = mFilter; + + } + + public MainConversationListAdapter(Context mContext) { this.mContext = mContext; } public void setSrcList(List srcList) { this.srcList = srcList; - notifyDataSetChanged(); + if (mFilter== FILTER_OFFLINE || mFilter == FILTER_ONLINE) { + super.setDataCollection(UiConversationCodeUtil.FilterData(mFilter, allDataList)); + }else { + notifyDataSetChanged(); + } } public void setOnRefreshListener(OnRecyclerListRefreshListener> onRefreshListener) { @@ -87,7 +119,7 @@ public class MainConversationListAdapter extends ConversationListAdapter { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_main_msg_search_chat, parent, false); holder = ViewHolder.createViewHolder(parent.getContext(), view); } else if (viewType != -200) { - View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.rc_conversationlist_item, parent, false); + View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.rc_conversationlist_item2, parent, false); holder = ViewHolder.createViewHolder(parent.getContext(), view); } else { holder = super.onCreateViewHolder(parent, viewType); @@ -126,13 +158,72 @@ public class MainConversationListAdapter extends ConversationListAdapter { } else if (getItemViewType(position) == TYPE_SEARCH_TITLE) { bindTitle(holder, position); } else if (getItemViewType(position) != -200) { + bindChatNew(holder, position); super.onBindViewHolder(holder, position); + return; } if (getItemViewType(position) != -200) { bindDefault(holder, position); } } + + private void bindChatNew(ViewHolder holder, int position) { + BaseUiConversation conversation = mDataList.get(position); + ImgLoader.display(holder.getContext(), conversation.mCore.getPortraitUrl(), holder.getView(R.id.rc_conversation_portrait)); + holder.setText(R.id.rc_conversation_title, conversation.mCore.getConversationTitle()); + ((TextView) holder.getView(R.id.rc_conversation_content)).setText(ChatMsgTypeUtils.getMsg(conversation.mConversationContent.toString())); + if (conversation.mCore.getSentTime() != -1 && holder.getView(R.id.rc_conversation_date) != null) { + holder.setText(R.id.rc_conversation_date, DateFormatUtil.getDateTimeString(conversation.mCore.getSentTime(), true, holder.getContext())); + holder.getView(R.id.rc_conversation_date).setVisibility(View.VISIBLE); + } else if (holder.getView(R.id.rc_conversation_date) != null) { + holder.getView(R.id.rc_conversation_date).setVisibility(View.GONE); + } + holder.setVisible(R.id.rc_conversation_live_online, "0".equals(conversation.mCore.getDraft())); + int unReadCount = conversation.mCore.getUnreadMessageCount(); + + if (unReadCount > 0) { + holder.setVisible(R.id.rc_conversation_unread_count, true); + holder.setText(R.id.rc_conversation_unread_count, String.valueOf(unReadCount)); + } else { + holder.setVisible(R.id.rc_conversation_unread_count, false); + } + + + Message message = conversation.mCore.getMessage(); + if (message != null && message.getMessageDirection() == Message.MessageDirection.SEND) { + holder.setVisible(R.id.rc_conversation_unread_tv, true); + if (conversation.mCore.getSentStatus() == Message.SentStatus.READ) { + holder.setTextColor(R.id.rc_conversation_unread_tv, ContextCompat.getColor(holder.itemView.getContext(), R.color.rc_secondary_color)); + holder.setText(R.id.rc_conversation_unread_tv, WordUtil.getNewString(R.string.message_chat_msg_read_tip)); + } else { + holder.setTextColor(R.id.rc_conversation_unread_tv, ContextCompat.getColor(holder.itemView.getContext(), R.color.red)); + holder.setText(R.id.rc_conversation_unread_tv, WordUtil.getNewString(R.string.message_chat_msg_unread_tip)); + } + } else { + holder.setVisible(R.id.rc_conversation_unread_tv, false); + } + + + if (holder.getView(R.id.rc_conversation_live_status) == null || IMLoginManager.get(holder.getContext()).getAnchorB() != 1) { + return; + } + Integer timer = timerMap.get(mDataList.get(position).mCore.getTargetId()); + if (timer == null) { + holder.getView(R.id.rc_conversation_live_status).setVisibility(View.GONE); + return; + } + if (timer >= 10) { + holder.setText(R.id.rc_conversation_live_status, + String.format(WordUtil.getNewString(R.string.message_chat_msg_look_live), timer) + ); + holder.getView(R.id.rc_conversation_live_status).setVisibility(View.VISIBLE); + } else { + holder.getView(R.id.rc_conversation_live_status).setVisibility(View.GONE); + } + } + + private void bindDefault(ViewHolder holder, int position) { BaseUiConversation conversation = mDataList.get(position); Log.i("列表", "bindDefault: 用户头像:" + conversation.mCore.getPortraitUrl()); @@ -171,7 +262,9 @@ public class MainConversationListAdapter extends ConversationListAdapter { } } + private void bindEmpty(ViewHolder holder, int position) { + Log.i("聊天数据源", "bindEmpty: "); if (isChat) { ViewUtils.findViewById(holder.itemView, R.id.imageView, ImageView.class).setImageResource(R.mipmap.ic_message_not_chat_list); ViewUtils.findViewById(holder.itemView, R.id.textView, TextView.class).setText(R.string.not_data_message_chat_list); @@ -183,18 +276,19 @@ public class MainConversationListAdapter extends ConversationListAdapter { public void onFinish() { if (onRefreshListener != null) { - Log.i("聊天数据源", "设置数据源: " + mDataList.size()); - onRefreshListener.onFinish(mDataList); + Log.i("聊天数据源", "设置数据源: " + allDataList.size()); + onRefreshListener.onFinish(allDataList); } } private int listHashCode = 0; - @Override - public synchronized void setDataCollection(List data) { + + public synchronized void setDataCollectionV2(List data, boolean isSearch) { if (data.hashCode() == listHashCode) return; listHashCode = data.hashCode(); List tmp = new ArrayList<>(); - Log.i("聊天数据源", "setDataCollection: " + data.hashCode()); + Log.i("聊天数据源", "size()" + data.size() + " setDataCollection: " + data.hashCode()); + List urls = new ArrayList<>(); if (srcList == null) { srcList = new ArrayList<>(); @@ -236,13 +330,37 @@ public class MainConversationListAdapter extends ConversationListAdapter { } tmp.add(item); } - // ToastUtil.showDebug("消息数:"+data.size()); - super.setDataCollection(tmp); + List showData = null; + if (isSearch) { + Log.i("聊天数据源", "FilterData isSearch"); + showData = UiConversationCodeUtil.FilterData(mFilter, tmp, allDataList); + } else { + allDataList = tmp; + if (mFilter != FILTER_OFFLINE && mFilter != FILTER_ONLINE ) + { + Log.i("聊天数据源", "FilterData notSearch"); + showData = UiConversationCodeUtil.FilterData(mFilter, allDataList); + } + } + if (showData != null && !UiConversationCodeUtil.checkIsSame(showData, mDataList)) { + Log.i("聊天数据源", "数据源有变化" + showData.size()); + super.setDataCollection(showData); + } else { + Log.i("聊天数据源", "数据源无变化"); + } } + + @Override + public void setDataCollection(List data) { + setDataCollectionV2(data, false); + } + + private List tmpUids = new ArrayList<>(); public void clear() { + Log.i("聊天数据源", "clear: " + mDataList.size()); mDataList.clear(); if (srcList != null) { srcList.clear(); @@ -349,15 +467,15 @@ public class MainConversationListAdapter extends ConversationListAdapter { BaseUiConversation conversation = mDataList.get(id); conversation.mCore.setSentTime(bean.getSentTime()); conversation.mCore.setUnreadMessageCount(integer); - if(bean.getContent() instanceof SightMessage){ - conversation.mConversationContent = new SpannableString(WordUtil.isNewZh()?"[小視頻]":"[Video]"); - }else if(bean.getContent() instanceof HQVoiceMessage){ - conversation.mConversationContent = new SpannableString(WordUtil.isNewZh()?"[語音]":"[Voice]"); - } else if(bean.getContent() instanceof ImageMessage){ - conversation.mConversationContent = new SpannableString(WordUtil.isNewZh()?"[圖片]":"[picture]"); - }else if(bean.getContent() instanceof MessageChatCardContent){ - conversation.mConversationContent = new SpannableString(WordUtil.isNewZh()?"[站內分享]":"[In-app sharing]"); - } else{ + if (bean.getContent() instanceof SightMessage) { + conversation.mConversationContent = new SpannableString(WordUtil.isNewZh() ? "[小視頻]" : "[Video]"); + } else if (bean.getContent() instanceof HQVoiceMessage) { + conversation.mConversationContent = new SpannableString(WordUtil.isNewZh() ? "[語音]" : "[Voice]"); + } else if (bean.getContent() instanceof ImageMessage) { + conversation.mConversationContent = new SpannableString(WordUtil.isNewZh() ? "[圖片]" : "[picture]"); + } else if (bean.getContent() instanceof MessageChatCardContent) { + conversation.mConversationContent = new SpannableString(WordUtil.isNewZh() ? "[站內分享]" : "[In-app sharing]"); + } else { conversation.mConversationContent = new SpannableString(((TextMessage) bean.getContent()).getContent()); } mDataList.set(id, conversation); @@ -375,4 +493,6 @@ public class MainConversationListAdapter extends ConversationListAdapter { }); } + + } diff --git a/common/src/main/java/com/yunbao/common/fragment/ChatViewModel.java b/common/src/main/java/com/yunbao/common/fragment/ChatViewModel.java new file mode 100644 index 000000000..66f0d4189 --- /dev/null +++ b/common/src/main/java/com/yunbao/common/fragment/ChatViewModel.java @@ -0,0 +1,57 @@ +package com.yunbao.common.fragment; + +import android.app.Application; + +import androidx.annotation.NonNull; + +import androidx.lifecycle.ViewModel; + +import com.facebook.all.All; +import com.yunbao.common.R; +import com.yunbao.common.utils.UiConversationCodeUtil; + +public class ChatViewModel extends ViewModel { + + private int mChatFilter = UiConversationCodeUtil.FILTER_ALL; + + public int getChatFilter() { + return mChatFilter; + } + + public void setChatFilter(int mChatFilter) { + this.mChatFilter = mChatFilter; + } + +// public static final int FILTER_OFFLINE = 0; +// public static final int FILTER_ONLINE = 1; +// public static final int FILTER_UNREAD = 2; +// public static final int FILTER_READ = 4; +// public static final int FILTER_ALL = 7; +// All Chats +// Show Online +// Show Offline +// Show Read +// Show Unread + + public int getTitleTextId() { + int id = R.string.all_chats; + switch (mChatFilter) { + case UiConversationCodeUtil.FILTER_ALL: + id = R.string.all_chats; + break; + case UiConversationCodeUtil.FILTER_ONLINE: + id = R.string.online_only; + break; + case UiConversationCodeUtil.FILTER_OFFLINE: + id = R.string.offline_only; + break; + case UiConversationCodeUtil.FILTER_READ: + id = R.string.read_only; + break; + case UiConversationCodeUtil.FILTER_UNREAD: + id = R.string.unread_only; + break; + } + return id; + } +} diff --git a/common/src/main/java/com/yunbao/common/fragment/MainMessageChatFragment.java b/common/src/main/java/com/yunbao/common/fragment/MainMessageChatFragment.java index 73d5f9132..e6dcc4810 100644 --- a/common/src/main/java/com/yunbao/common/fragment/MainMessageChatFragment.java +++ b/common/src/main/java/com/yunbao/common/fragment/MainMessageChatFragment.java @@ -9,11 +9,13 @@ import android.view.ViewGroup; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProvider; import com.yunbao.common.R; import com.yunbao.common.adapter.MainConversationListAdapter; import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.ToastUtil; +import com.yunbao.common.utils.UiConversationCodeUtil; import com.yunbao.common.utils.WordUtil; import java.util.ArrayList; @@ -32,10 +34,12 @@ public class MainMessageChatFragment extends ConversationListFragment { private static final String TAG = "融云列表"; int listHashCode = 0; +// ChatViewModel chatViewModel; @Nullable public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { Log.i(TAG, "onCreateView: 创建融云"); +// chatViewModel = (ChatViewModel)(new ViewModelProvider(requireActivity())).get(ChatViewModel.class); return inflater.inflate(R.layout.rc_conversationlist_fragment, container, false); } @@ -46,10 +50,13 @@ public class MainMessageChatFragment extends ConversationListFragment { mConversationListViewModel.getConversationListLiveData().observe(this.getViewLifecycleOwner(), new Observer>() { @Override public void onChanged(List uiConversations) { - if (listHashCode != uiConversations.hashCode()) { - listHashCode = uiConversations.hashCode(); + int hashCode = UiConversationCodeUtil.getListHasCode(uiConversations); + if (listHashCode != hashCode) { + Log.i("nwq", "刷新数据"); + listHashCode = hashCode; ((MainConversationListAdapter) mAdapter).onFinish(); } + } }); mConversationListViewModel.getRefreshEventLiveData().observe(this.getViewLifecycleOwner(), new Observer() { @@ -58,7 +65,6 @@ public class MainMessageChatFragment extends ConversationListFragment { listHashCode = 0; } }); - } public void setEmptyView(int viewLayoutMsgId) { @@ -70,6 +76,11 @@ public class MainMessageChatFragment extends ConversationListFragment { } + public void refreshData() { + mRefreshLayout.autoRefresh(); + //onConversationListRefresh(mRefreshLayout) + } + public void search(String search) { ((MainConversationListAdapter) mAdapter).setSearch(); getContactsList(search); @@ -144,7 +155,7 @@ public class MainMessageChatFragment extends ConversationListFragment { list.remove(list.size() - 1); } list.addAll(data); - mAdapter.setDataCollection(list); + ((MainConversationListAdapter) mAdapter).setDataCollectionV2(list,true); } @Override @@ -156,17 +167,19 @@ public class MainMessageChatFragment extends ConversationListFragment { } public void onChatList() { - if(mConversationListViewModel==null)return; + if (mConversationListViewModel == null) return; ((MainConversationListAdapter) mAdapter).setChat(); ((MainConversationListAdapter) mAdapter).clear(); - System.out.println(">!>!>!>!!>"+mConversationListViewModel); + System.out.println(">!>!>!>!!>" + mConversationListViewModel); subscribeUi(); } @Override protected ConversationListAdapter onResolveAdapter() { - this.mAdapter = new MainConversationListAdapter(getContext()); + MainConversationListAdapter adapter = new MainConversationListAdapter(getContext()); +// adapter.setFilter(chatViewModel.getChatFilter()); + this.mAdapter = adapter; return this.mAdapter; } } diff --git a/common/src/main/java/com/yunbao/common/fragment/MainMessageChatListFragment.java b/common/src/main/java/com/yunbao/common/fragment/MainMessageChatListFragment.java index e479828d2..b85ed04ac 100644 --- a/common/src/main/java/com/yunbao/common/fragment/MainMessageChatListFragment.java +++ b/common/src/main/java/com/yunbao/common/fragment/MainMessageChatListFragment.java @@ -13,6 +13,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; +import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.LinearLayoutManager; import com.yunbao.common.R; @@ -49,7 +50,7 @@ public class MainMessageChatListFragment extends AbsMainMessageChatListFragment public MainMessageChatListFragment(Context mContext) { this.mContext =mContext; } - + ChatViewModel chatViewModel; @Nullable @Override public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { @@ -62,8 +63,10 @@ public class MainMessageChatListFragment extends AbsMainMessageChatListFragment @Override public void onResume() { super.onResume(); + chatViewModel = (new ViewModelProvider(requireActivity())).get(ChatViewModel.class); conversationListFragment = new MainMessageChatFragment(); setAdapter(conversationListFragment.getAdapter()); + mAdapter.setFilter(chatViewModel.getChatFilter()); FragmentManager manager = getChildFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); transaction.replace(R.id.container, conversationListFragment); @@ -165,6 +168,16 @@ public class MainMessageChatListFragment extends AbsMainMessageChatListFragment } + public int getFilter() { + return mAdapter.getFilter(); + } + + public void setFilter(int mFilter) { + mAdapter.setFilter(mFilter); + chatViewModel.setChatFilter(mFilter); + conversationListFragment.refreshData(); + } + @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { diff --git a/common/src/main/java/com/yunbao/common/http/PDLiveApi.java b/common/src/main/java/com/yunbao/common/http/PDLiveApi.java index aa7831883..93119834f 100644 --- a/common/src/main/java/com/yunbao/common/http/PDLiveApi.java +++ b/common/src/main/java/com/yunbao/common/http/PDLiveApi.java @@ -1295,7 +1295,7 @@ public interface PDLiveApi { @Query("open_off") int status ); - @GET("/api/public/?service=Pdlmsg.sendBefore") + @GET("/api/public/?service=Pdlmsg.sendBefore&new_pop=1") Observable> getMessageSayHiTimer( ); diff --git a/common/src/main/java/com/yunbao/common/utils/UiConversationCodeUtil.java b/common/src/main/java/com/yunbao/common/utils/UiConversationCodeUtil.java new file mode 100644 index 000000000..6662ceefb --- /dev/null +++ b/common/src/main/java/com/yunbao/common/utils/UiConversationCodeUtil.java @@ -0,0 +1,195 @@ +package com.yunbao.common.utils; + +import android.util.Log; + +import java.util.ArrayList; +import java.util.List; + +import io.rong.imkit.conversationlist.model.BaseUiConversation; +import io.rong.imlib.model.Conversation; +import io.rong.imlib.model.Message; + +public class UiConversationCodeUtil { + + + public static final int FILTER_OFFLINE = 0; + public static final int FILTER_ONLINE = 1; + public static final int FILTER_UNREAD = 2; + public static final int FILTER_READ = 4; + public static final int FILTER_ALL = 7; + + + public static boolean checkIsSame(List list1, List list2) { + if (list1.size() != list2.size()) return false; + int hashCode1 = getListHasCode(list1); + int hashCode2 = getListHasCode(list2); + return hashCode1 == hashCode2; + } + + public static boolean checkIsSame(int hashCode1, List list2) { + int hashCode2 = getListHasCode(list2); + return hashCode1 == hashCode2; + } + + public static int getListHasCode(List list) { + int hashCodeValue = 1; + if (list == null || list.isEmpty()) + return 1; + for (BaseUiConversation conversation : list) { + if (conversation != null) { + hashCodeValue = 31 * hashCodeValue + getBaseUiConversationHashCode(conversation); + } + } + return hashCodeValue; + } + + + //根据BaseUiConversation对象的属性计算hashCode + private static int getBaseUiConversationHashCode(BaseUiConversation item) { + final int prime = 31; + int result = 1; + Conversation mCore = item.mCore; + result = prime * result + ((mCore.getPortraitUrl() == null) ? 0 : mCore.getPortraitUrl().hashCode()); + result = prime * result + ((mCore.getConversationTitle() == null) ? 0 : mCore.getConversationTitle().hashCode()); + // result = prime * result + ((item.mConversationContent == null) ? 0 : item.mConversationContent.hashCode()); + result = prime * result + (int) (mCore.getSentTime() ^ (mCore.getSentTime() >>> 32)); + result = prime * result + ((mCore.getDraft() == null) ? 0 : mCore.getDraft().hashCode()); + result = prime * result + mCore.getUnreadMessageCount(); + + Message message = mCore.getMessage(); + if (message != null) { + Message.MessageDirection direction = message.getMessageDirection(); + if (direction != null) { + result = prime * result + direction.hashCode(); + } + } + + result = prime * result + ((mCore.getSentStatus() == null) ? 0 : mCore.getSentStatus().hashCode()); + result = prime * result + ((mCore.getReceivedStatus() == null) ? 0 : mCore.getReceivedStatus().hashCode()); + result = prime * result + ((mCore.getTargetId() == null) ? 0 : mCore.getTargetId().hashCode()); + return result; + } + + +private static boolean isContains(List list, BaseUiConversation item) { + // 根据 item.mCore.getChannelId() 判断 list 是否包含 + if (list == null || list.isEmpty() || item == null || item.mCore == null) { + return false; + } + for (BaseUiConversation conversation : list) { + // 增加空值检查 + if (conversation != null && conversation.mCore != null + && conversation.mCore.getTargetId() != null + && conversation.mCore.getTargetId().equals(item.mCore.getTargetId())) { + return true; + } + } + return false; +} + + + + public static List FilterData(int filterType, List keyList,List srcList) { + List showData = new ArrayList<>(); + if (keyList == null || keyList.isEmpty()) + return showData; + Log.i("MainConversationListAdapter", "FilterData: 源" + keyList.size()); + switch (filterType) { + case FILTER_ALL: + showData = keyList; + break; + case FILTER_ONLINE: + for (BaseUiConversation conversation : srcList) { + if ("0".equals(conversation.mCore.getDraft()) && isContains(keyList, conversation)) { + showData.add(conversation); + } + } + break; + case FILTER_OFFLINE: + for (BaseUiConversation conversation : keyList) { + if (!"0".equals(conversation.mCore.getDraft())) { + showData.add(conversation); + } + } + break; + case FILTER_READ: + for (BaseUiConversation conversation : keyList) + if (conversation.mCore.getMessage() != null && conversation.mCore.getMessage().getMessageDirection() != null) { + if (conversation.mCore.getMessage().getMessageDirection() == Message.MessageDirection.SEND) { + if (conversation.mCore.getSentStatus() == Message.SentStatus.READ) { + showData.add(conversation); + } + } + } + break; + case FILTER_UNREAD: + for (BaseUiConversation conversation : keyList) { + boolean isRead; + if (conversation.mCore.getMessage() != null && conversation.mCore.getMessage().getMessageDirection() != null) { + if (conversation.mCore.getMessage().getMessageDirection() == Message.MessageDirection.SEND) { + if (conversation.mCore.getSentStatus() != Message.SentStatus.READ) { + showData.add(conversation); + } + } + } + } + break; + } + Log.i("MainConversationListAdapter", "FilterData: 结果" + showData.size()); + return showData; + } + + + + + public static List FilterData(int filterType, List data) { + List showData = new ArrayList<>(); + if (data == null || data.isEmpty()) + return showData; + Log.i("MainConversationListAdapter", "设置数据源 FilterData: 源" + data.size()); + switch (filterType) { + case FILTER_ALL: + showData = data; + break; + case FILTER_ONLINE: + for (BaseUiConversation conversation : data) { + if ("0".equals(conversation.mCore.getDraft())) { + showData.add(conversation); + } + } + break; + case FILTER_OFFLINE: + for (BaseUiConversation conversation : data) { + if (!"0".equals(conversation.mCore.getDraft())) { + showData.add(conversation); + } + } + break; + case FILTER_READ: + for (BaseUiConversation conversation : data) + if (conversation.mCore.getMessage() != null && conversation.mCore.getMessage().getMessageDirection() != null) { + if (conversation.mCore.getMessage().getMessageDirection() == Message.MessageDirection.SEND) { + if (conversation.mCore.getSentStatus() == Message.SentStatus.READ) { + showData.add(conversation); + } + } + } + break; + case FILTER_UNREAD: + for (BaseUiConversation conversation : data) { + if (conversation.mCore.getMessage() != null && conversation.mCore.getMessage().getMessageDirection() != null) { + if (conversation.mCore.getMessage().getMessageDirection() == Message.MessageDirection.SEND) { + if (conversation.mCore.getSentStatus() != Message.SentStatus.READ) { + showData.add(conversation); + } + } + } + } + break; + } + Log.i("MainConversationListAdapter", " 设置数据源 FilterData: 结果" + showData.size()); + return showData; + } + + +} diff --git a/common/src/main/java/com/yunbao/common/views/MsgChatTypeSelectPoPupView.java b/common/src/main/java/com/yunbao/common/views/MsgChatTypeSelectPoPupView.java new file mode 100644 index 000000000..d3e217aac --- /dev/null +++ b/common/src/main/java/com/yunbao/common/views/MsgChatTypeSelectPoPupView.java @@ -0,0 +1,122 @@ +package com.yunbao.common.views; + +import static io.rong.imlib.publicservice.model.PublicServiceMenu.PublicServiceMenuItemType.View; + +import android.content.Context; +import android.util.DisplayMetrics; +import android.view.View; +import android.view.ViewGroup; +import android.widget.ImageView; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.core.content.ContextCompat; + +import com.lxj.xpopup.core.AttachPopupView; +import com.yunbao.common.R; +import com.yunbao.common.adapter.MainConversationListAdapter; +import com.yunbao.common.utils.DpUtil; +import com.yunbao.common.views.weight.ViewClicksAntiShake; + +import org.repackage.com.zui.opendeviceidlibrary.OpenDeviceId; + +public class MsgChatTypeSelectPoPupView extends AttachPopupView implements android.view.View.OnClickListener { + + private TextView chatTypeTv1, chatTypeTv2, chatTypeTv3, chatTypeTv4, chatTypeTv5; + private ImageView chatTypeImg1, chatTypeImg2, chatTypeImg3, chatTypeImg4, chatTypeImg5; + + private ResultCallBack mResultCallBack; + private int lastType; + + public MsgChatTypeSelectPoPupView(@NonNull Context context, int type, ResultCallBack itemDelListener) { + super(context); + mResultCallBack = itemDelListener; + lastType = type; + } + + + @Override + protected int getImplLayoutId() { + return R.layout.view_msg_select_chat_type; + } + + @Override + protected void onCreate() { + + // 获取屏幕宽度 + DisplayMetrics displayMetrics = getContext().getResources().getDisplayMetrics(); + int screenWidth = displayMetrics.widthPixels; + + // 设置弹窗宽度为屏幕宽度的 3/4 + View view = findViewById(R.id.root); + ViewGroup.LayoutParams layoutParams = view.getLayoutParams(); + layoutParams.width = screenWidth*3/4; + view.setLayoutParams(layoutParams); + + chatTypeTv1 = findViewById(R.id.chatTypeTv1); + chatTypeImg1 = findViewById(R.id.chatTypeImg1); + chatTypeTv2 = findViewById(R.id.chatTypeTv2); + chatTypeImg2 = findViewById(R.id.chatTypeImg2); + chatTypeTv3 = findViewById(R.id.chatTypeTv3); + chatTypeImg3 = findViewById(R.id.chatTypeImg3); + chatTypeTv4 = findViewById(R.id.chatTypeTv4); + chatTypeImg4 = findViewById(R.id.chatTypeImg4); + chatTypeTv5 = findViewById(R.id.chatTypeTv5); + chatTypeImg5 = findViewById(R.id.chatTypeImg5); + + chatTypeImg1.setOnClickListener(this); + chatTypeImg2.setOnClickListener(this); + chatTypeImg3.setOnClickListener(this); + chatTypeImg4.setOnClickListener(this); + chatTypeImg5.setOnClickListener(this); + + handleChatTypeClick(lastType); + } + + + private void handleChatTypeClick(int type) { + switch (type) { + case MainConversationListAdapter.FILTER_ALL: + chatTypeImg1.setImageResource(R.mipmap.ic_chat_type_select); + chatTypeTv1.setTextColor(ContextCompat.getColor(chatTypeTv1.getContext(), R.color.colorMainTab)); + break; + case MainConversationListAdapter.FILTER_ONLINE: + chatTypeImg2.setImageResource(R.mipmap.ic_chat_type_select); + chatTypeTv2.setTextColor(ContextCompat.getColor(chatTypeTv2.getContext(), R.color.colorMainTab)); + break; + case MainConversationListAdapter.FILTER_OFFLINE: + chatTypeImg3.setImageResource(R.mipmap.ic_chat_type_select); + chatTypeTv3.setTextColor(ContextCompat.getColor(chatTypeTv3.getContext(), R.color.colorMainTab)); + break; + case MainConversationListAdapter.FILTER_READ: + chatTypeImg4.setImageResource(R.mipmap.ic_chat_type_select); + chatTypeTv4.setTextColor(ContextCompat.getColor(chatTypeTv4.getContext(), R.color.colorMainTab)); + break; + case MainConversationListAdapter.FILTER_UNREAD: + chatTypeImg5.setImageResource(R.mipmap.ic_chat_type_select); + chatTypeTv5.setTextColor(ContextCompat.getColor(chatTypeTv5.getContext(), R.color.colorMainTab)); + break; + } + } + + @Override + public void onClick(android.view.View v) { + if (v.getId() == R.id.chatTypeImg1) { + mResultCallBack.callBack(MainConversationListAdapter.FILTER_ALL, chatTypeTv1.getText().toString()); + } else if (v.getId() == R.id.chatTypeImg2) { + mResultCallBack.callBack(MainConversationListAdapter.FILTER_ONLINE, chatTypeTv2.getText().toString()); + } else if (v.getId() == R.id.chatTypeImg3) { + mResultCallBack.callBack(MainConversationListAdapter.FILTER_OFFLINE, chatTypeTv3.getText().toString()); + } else if (v.getId() == R.id.chatTypeImg4) { + mResultCallBack.callBack(MainConversationListAdapter.FILTER_READ, chatTypeTv4.getText().toString()); + } else if (v.getId() == R.id.chatTypeImg5) { + mResultCallBack.callBack(MainConversationListAdapter.FILTER_UNREAD, chatTypeTv5.getText().toString()); + } + dismiss(); + } + + + public interface ResultCallBack { + void callBack(int i, String string); + } +} diff --git a/common/src/main/res/drawable/green_dot.xml b/common/src/main/res/drawable/green_dot.xml new file mode 100644 index 000000000..46fab62ef --- /dev/null +++ b/common/src/main/res/drawable/green_dot.xml @@ -0,0 +1,11 @@ + + + + + + + + diff --git a/common/src/main/res/drawable/red_dot.xml b/common/src/main/res/drawable/red_dot.xml new file mode 100644 index 000000000..39d9237fe --- /dev/null +++ b/common/src/main/res/drawable/red_dot.xml @@ -0,0 +1,10 @@ + + + + + + + diff --git a/common/src/main/res/drawable/shape_white.xml b/common/src/main/res/drawable/shape_white.xml new file mode 100644 index 000000000..a9043c57d --- /dev/null +++ b/common/src/main/res/drawable/shape_white.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/rc_conversation_type_item.xml b/common/src/main/res/layout/rc_conversation_type_item.xml new file mode 100644 index 000000000..5b7fe7538 --- /dev/null +++ b/common/src/main/res/layout/rc_conversation_type_item.xml @@ -0,0 +1,29 @@ + + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/rc_conversationlist_item.xml b/common/src/main/res/layout/rc_conversationlist_item.xml index 30703b211..da3a74afc 100644 --- a/common/src/main/res/layout/rc_conversationlist_item.xml +++ b/common/src/main/res/layout/rc_conversationlist_item.xml @@ -14,7 +14,6 @@ android:id="@+id/rc_conversation_portrait_rl" android:layout_width="48dp" android:layout_height="48dp" - android:layout_marginTop="@dimen/rc_margin_size_12" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -180,6 +179,7 @@ android:layout_marginBottom="@dimen/rc_margin_size_12" android:src="@drawable/rc_read_receipt" android:visibility="gone" + tools:visibility="visible" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toStartOf="@+id/rc_conversation_no_disturb" app:layout_goneMarginRight="@dimen/rc_margin_size_12" /> diff --git a/common/src/main/res/layout/rc_conversationlist_item2.xml b/common/src/main/res/layout/rc_conversationlist_item2.xml new file mode 100644 index 000000000..1d65f5c7f --- /dev/null +++ b/common/src/main/res/layout/rc_conversationlist_item2.xml @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/common/src/main/res/layout/view_msg_select_chat_type.xml b/common/src/main/res/layout/view_msg_select_chat_type.xml new file mode 100644 index 000000000..694295563 --- /dev/null +++ b/common/src/main/res/layout/view_msg_select_chat_type.xml @@ -0,0 +1,139 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/common/src/main/res/mipmap-mdpi/ic_chat_type_select.png b/common/src/main/res/mipmap-mdpi/ic_chat_type_select.png new file mode 100644 index 000000000..3f5330bc3 Binary files /dev/null and b/common/src/main/res/mipmap-mdpi/ic_chat_type_select.png differ diff --git a/common/src/main/res/mipmap-mdpi/ic_chat_type_unselect.png b/common/src/main/res/mipmap-mdpi/ic_chat_type_unselect.png new file mode 100644 index 000000000..8f04b106f Binary files /dev/null and b/common/src/main/res/mipmap-mdpi/ic_chat_type_unselect.png differ diff --git a/common/src/main/res/mipmap-xxhdpi/ic_chat_type_select.png b/common/src/main/res/mipmap-xxhdpi/ic_chat_type_select.png new file mode 100644 index 000000000..b203b6426 Binary files /dev/null and b/common/src/main/res/mipmap-xxhdpi/ic_chat_type_select.png differ diff --git a/common/src/main/res/mipmap-xxhdpi/ic_chat_type_unselect.png b/common/src/main/res/mipmap-xxhdpi/ic_chat_type_unselect.png new file mode 100644 index 000000000..09da11206 Binary files /dev/null and b/common/src/main/res/mipmap-xxhdpi/ic_chat_type_unselect.png differ diff --git a/common/src/main/res/mipmap-xxxhdpi/ic_chat_type_select.png b/common/src/main/res/mipmap-xxxhdpi/ic_chat_type_select.png new file mode 100644 index 000000000..f03e755b2 Binary files /dev/null and b/common/src/main/res/mipmap-xxxhdpi/ic_chat_type_select.png differ diff --git a/common/src/main/res/mipmap-xxxhdpi/ic_chat_type_unselect.png b/common/src/main/res/mipmap-xxxhdpi/ic_chat_type_unselect.png new file mode 100644 index 000000000..e68a3dd8f Binary files /dev/null and b/common/src/main/res/mipmap-xxxhdpi/ic_chat_type_unselect.png differ diff --git a/common/src/main/res/values-en-rUS/strings.xml b/common/src/main/res/values-en-rUS/strings.xml index 51b015de3..970edade2 100644 --- a/common/src/main/res/values-en-rUS/strings.xml +++ b/common/src/main/res/values-en-rUS/strings.xml @@ -1474,4 +1474,11 @@ Limited ride And limited avatar frame Include: 看直播%dmin Chat Records + [Read] + [Unread] + All Chats + Show Online + Show Offline + Show Read + Show Unread diff --git a/common/src/main/res/values-zh/strings.xml b/common/src/main/res/values-zh/strings.xml index da6004bf0..3be3715de 100644 --- a/common/src/main/res/values-zh/strings.xml +++ b/common/src/main/res/values-zh/strings.xml @@ -1604,5 +1604,11 @@ 違規原因: 處罰內容: 處罰時間: - + [已讀] + [未讀] + 全部聊天 + 僅展示在線 + 僅展示離線 + 展示對方已讀 + 展示對方未讀 diff --git a/common/src/main/res/values/strings.xml b/common/src/main/res/values/strings.xml index e59cb38c7..f1f515bd9 100644 --- a/common/src/main/res/values/strings.xml +++ b/common/src/main/res/values/strings.xml @@ -1412,5 +1412,11 @@ Limited ride And limited avatar frame Personal hal Whole site hal Honors - + [Read] + [Unread] + All Chats + Show Online + Show Offline + Show Read + Show Unread diff --git a/main/src/main/java/com/yunbao/main/views/MainMessageViewHolder.java b/main/src/main/java/com/yunbao/main/views/MainMessageViewHolder.java index 220d8341a..10a092bb6 100644 --- a/main/src/main/java/com/yunbao/main/views/MainMessageViewHolder.java +++ b/main/src/main/java/com/yunbao/main/views/MainMessageViewHolder.java @@ -32,9 +32,11 @@ import android.widget.Toast; import androidx.annotation.NonNull; import androidx.constraintlayout.widget.ConstraintLayout; +import androidx.constraintlayout.widget.Group; import androidx.core.content.ContextCompat; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; +import androidx.lifecycle.ViewModelProvider; import androidx.viewpager2.adapter.FragmentStateAdapter; import androidx.viewpager2.widget.ViewPager2; @@ -43,12 +45,15 @@ import com.binioter.guideview.Guide; import com.binioter.guideview.GuideBuilder; import com.facebook.appevents.AppEventsLogger; import com.lxj.xpopup.XPopup; +import com.lxj.xpopup.core.BasePopupView; import com.lxj.xpopup.enums.PopupPosition; +import com.lxj.xpopup.interfaces.XPopupCallback; import com.opensource.svgaplayer.SVGADrawable; import com.opensource.svgaplayer.SVGAImageView; import com.opensource.svgaplayer.SVGAParser; import com.opensource.svgaplayer.SVGAVideoEntity; import com.yunbao.common.CommonAppConfig; +import com.yunbao.common.fragment.ChatViewModel; import com.yunbao.common.fragment.MainMessageRecommendFragment; import com.yunbao.common.utils.DebugUtils; import com.yunbao.common.utils.DialogUitl; @@ -73,6 +78,7 @@ import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.ViewPageIndicatorUtils; import com.yunbao.common.utils.WordUtil; import com.yunbao.common.views.AbsMainViewHolder; +import com.yunbao.common.views.MsgChatTypeSelectPoPupView; import com.yunbao.common.views.MsgRecommendPopupView; import com.yunbao.common.views.MsgSysDelPopupView; import com.yunbao.common.views.weight.ViewClicksAntiShake; @@ -132,17 +138,20 @@ public class MainMessageViewHolder extends AbsMainViewHolder { private MagicIndicator mIndicator; private List fragmentList; - private ConstraintLayout tabLayout1, tabLayout2, tabLayout3; + private Group tabLayout1, tabLayout2, tabLayout3; private TextView tab1, tab2, tab3; + private ImageView imageView1, imageView2, imageView3; private View tab_line1, tab_line2, tab_line3; private ImageView tab_icon; - private List relativeLayouts = new ArrayList<>(); + private List relativeLayouts = new ArrayList<>(); private List tabTexts = new ArrayList<>(); private List tabLine = new ArrayList<>(); - private LinearLayout tabLayouts; + private List tabExpend = new ArrayList<>(); + private ConstraintLayout tabLayouts; private int userType = 0; // (0)普通用户 (1)主播A (2)主播B + ChatViewModel chatViewModel; public MainMessageViewHolder setHomeZdyPop(String homeZdyPop) { this.homeZdyPop = homeZdyPop; @@ -156,6 +165,7 @@ public class MainMessageViewHolder extends AbsMainViewHolder { public MainMessageViewHolder(MainActivity context, ViewGroup parentView) { super(context, parentView); mContext = context; + chatViewModel= (new ViewModelProvider(mContext)).get(ChatViewModel.class); } @Override @@ -193,14 +203,28 @@ public class MainMessageViewHolder extends AbsMainViewHolder { tabLayouts = findViewById(R.id.tabLayouts); tab_icon = findViewById(R.id.tab_icon); - tabLayout1 = findViewById(R.id.tabLayout1); - tabLayout2 = findViewById(R.id.tabLayout2); - tabLayout3 = findViewById(R.id.tabLayout3); + tabLayout1 = findViewById(R.id.group_tab1); + tabLayout2 = findViewById(R.id.group_tab2); + tabLayout3 = findViewById(R.id.group_tab3); tab1 = findViewById(R.id.tab1); tab2 = findViewById(R.id.tab2); tab3 = findViewById(R.id.tab3); + imageView1 = findViewById(R.id.expendImg1); + imageView2 = findViewById(R.id.expendImg2); + imageView3 = findViewById(R.id.expendImg3); + + imageView1.setOnClickListener(view -> { + selectChatType(view, 0); + }); + imageView2.setOnClickListener(view -> { + selectChatType(view, 1); + }); + imageView3.setOnClickListener(view -> { + selectChatType(view, 2); + }); + tab_line1 = findViewById(R.id.tab_line1); tab_line2 = findViewById(R.id.tab_line2); tab_line3 = findViewById(R.id.tab_line3); @@ -224,6 +248,73 @@ public class MainMessageViewHolder extends AbsMainViewHolder { }); } + private void selectChatType(View view, int position) { + AbsMainMessageChatListFragment fragment = fragmentList.get(position); + if (!(fragment instanceof MainMessageChatListFragment) || !(view instanceof ImageView)) { + return; + } + MainMessageChatListFragment chatFragment = (MainMessageChatListFragment) fragment; + ImageView expendImg = (ImageView) view; + expendImg.setImageResource(R.mipmap.ic_expend_up); + XPopup.Builder builder = new XPopup.Builder(mContext).atView(tabTexts.get(position)); + builder.offsetY(16); + builder.dismissOnTouchOutside(true); + builder.setPopupCallback(new XPopupCallback() { + @Override + public void onCreated(BasePopupView popupView) { + } + + @Override + public void beforeShow(BasePopupView popupView) { + + } + + @Override + public void onShow(BasePopupView popupView) { + + } + + @Override + public void onDismiss(BasePopupView popupView) { + expendImg.setImageResource(R.mipmap.ic_expend_down); + } + + @Override + public void beforeDismiss(BasePopupView popupView) { + + } + + @Override + public boolean onBackPressed(BasePopupView popupView) { + return false; + } + + @Override + public void onKeyBoardStateChanged(BasePopupView popupView, int height) { + + } + + @Override + public void onDrag(BasePopupView popupView, int value, float percent, boolean upOrLeft) { + + } + + @Override + public void onClickOutside(BasePopupView popupView) { + + } + }); + builder.asCustom(new MsgChatTypeSelectPoPupView(mContext, chatFragment.getFilter(), new MsgChatTypeSelectPoPupView.ResultCallBack() { + @Override + public void callBack(int i,String str) { + tabTexts.get(position).setText(str); + chatFragment.setFilter(i); + } + })).show(); + + } + + private void initFragment() { final String[] titles; fragmentList = new ArrayList<>(); @@ -264,9 +355,9 @@ public class MainMessageViewHolder extends AbsMainViewHolder { return fragmentList.get(i); } }); - if(userType==1){ + if (userType == 1) { viewPager.setCurrentItem(1); - }else{ + } else { viewPager.setCurrentItem(0); } viewPager.setUserInputEnabled(false); @@ -340,7 +431,7 @@ public class MainMessageViewHolder extends AbsMainViewHolder { @Override public void onPageSelected(int position) { super.onPageSelected(position); - if(!StringUtil.isEmpty(search.getText().toString())) { + if (!StringUtil.isEmpty(search.getText().toString())) { search.setText(""); } selectTab(position); @@ -369,6 +460,12 @@ public class MainMessageViewHolder extends AbsMainViewHolder { }); } + + private void showChatTypeSelect() { + + } + + private void initTabView() { relativeLayouts = new ArrayList<>(); tabTexts = new ArrayList<>(); @@ -382,14 +479,19 @@ public class MainMessageViewHolder extends AbsMainViewHolder { tabTexts.add(tab2); tabTexts.add(tab3); + tabExpend.add(imageView1); + tabExpend.add(imageView2); + tabExpend.add(imageView3); + tabLine.add(tab_line1); tabLine.add(tab_line2); tabLine.add(tab_line3); if (userType == 0) { //普通用户 relativeLayouts.get(0).setVisibility(View.VISIBLE); - tabTexts.get(0).setText(WordUtil.getNewString(R.string.message_chat_msg_all_an_a)); + tabTexts.get(0).setText(WordUtil.getNewString(chatViewModel.getTitleTextId())); ViewGroup.LayoutParams params = tabLayouts.getLayoutParams(); params.width = LinearLayout.LayoutParams.WRAP_CONTENT; + //tabExpend.get(0).setVisibility(View.VISIBLE); tabLayouts.setLayoutParams(params); } else if (userType == 1) {//主播A tab_icon.setVisibility(View.VISIBLE); @@ -409,10 +511,12 @@ public class MainMessageViewHolder extends AbsMainViewHolder { relativeLayouts.get(0).setVisibility(View.VISIBLE); tabTexts.get(0).setText(WordUtil.getNewString(R.string.message_chat_msg_recommend)); relativeLayouts.get(1).setVisibility(View.VISIBLE); - tabTexts.get(1).setText(WordUtil.getNewString(R.string.message_chat_msg_all_an_a)); + tabTexts.get(1).setText(WordUtil.getNewString(chatViewModel.getTitleTextId())); + // tabExpend.get(1).setVisibility(View.VISIBLE); } else { //主播B + tabExpend.get(0).setVisibility(View.VISIBLE); relativeLayouts.get(0).setVisibility(View.VISIBLE); - tabTexts.get(0).setText(WordUtil.getNewString(R.string.message_chat_msg_all)); + tabTexts.get(0).setText(WordUtil.getNewString(chatViewModel.getTitleTextId())); relativeLayouts.get(1).setVisibility(View.VISIBLE); tabTexts.get(1).setText(WordUtil.getNewString(R.string.message_chat_msg_system)); relativeLayouts.get(2).setVisibility(View.VISIBLE); @@ -420,7 +524,7 @@ public class MainMessageViewHolder extends AbsMainViewHolder { } for (int i = 0; i < relativeLayouts.size(); i++) { int finalI = i; - relativeLayouts.get(i).setOnClickListener(new View.OnClickListener() { + tabTexts.get(i).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { selectTab(finalI); @@ -428,9 +532,9 @@ public class MainMessageViewHolder extends AbsMainViewHolder { } }); } - if(userType==1){ + if (userType == 1) { selectTab(1); - }else{ + } else { selectTab(0); } } diff --git a/main/src/main/res/layout/view_main_message.xml b/main/src/main/res/layout/view_main_message.xml index 47097b605..d1c11947c 100644 --- a/main/src/main/res/layout/view_main_message.xml +++ b/main/src/main/res/layout/view_main_message.xml @@ -64,7 +64,7 @@ android:layout_width="0dp" android:layout_height="24dp" android:layout_gravity="end|bottom" - android:layout_marginStart="8dp" + android:layout_marginStart="5dp" android:layout_marginTop="18dp" android:layout_marginEnd="15dp" android:layout_marginBottom="16dp" @@ -303,185 +303,412 @@ android:layout_height="37dp" android:visibility="gone" /> - + android:paddingStart="12dp" + android:paddingEnd="12dp"> - + + + + + + + + + + + + + + + + + android:padding="5dp" + android:src="@mipmap/ic_expend_down" + android:visibility="gone" + app:layout_constraintBottom_toBottomOf="@+id/tab2" + app:layout_constraintStart_toEndOf="@+id/tab2" + app:layout_constraintTop_toTopOf="@+id/tab2" + tools:visibility="gone" /> - - - - - - - - - - - - + + + + + + + + + android:padding="5dp" + android:src="@mipmap/ic_expend_down" + android:visibility="gone" + app:layout_constraintBottom_toBottomOf="@+id/tab3" + app:layout_constraintStart_toEndOf="@+id/tab3" + app:layout_constraintTop_toTopOf="@+id/tab3" + tools:visibility="gone" /> - - - - - - - - - - - - - - - - - - - + app:constraint_referenced_ids="view3,tab3,tab_line3"/> + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +