Merge branch 'refs/heads/新潘多拉6.8.1' into 新潘多拉_6.8.2

# Conflicts:
#	common/src/main/res/values-en-rUS/strings.xml
#	common/src/main/res/values-zh/strings.xml
#	common/src/main/res/values/strings.xml
#	config.gradle
This commit is contained in:
ningwenqiang 2024-09-06 14:05:47 +08:00
commit a349e94bf3
50 changed files with 2025 additions and 598 deletions

View File

@ -4,7 +4,7 @@
> >
<queries> <queries>
<package android:name="com.pandora.sy"/> <package android:name="${applicationId}"/>
<package android:name="com.facebook.orca"/> <package android:name="com.facebook.orca"/>
<package <package

View File

@ -297,8 +297,7 @@ android {
defaultConfig { defaultConfig {
// applicationId "myname.pdlive.shayu" applicationId "com.newpandora.yo"
applicationId "com.pandora.sy"
minSdkVersion rootProject.ext.android.minSdkVersion minSdkVersion rootProject.ext.android.minSdkVersion
// //
targetSdkVersion rootProject.ext.android.targetSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion

View File

@ -1,57 +1,73 @@
{ {
"project_info": { "project_info": {
"project_number": "867032862719", "project_number": "671943160079",
"project_id": "pdlnew", "project_id": "pdlnews",
"storage_bucket": "pdlnew.appspot.com" "storage_bucket": "pdlnews.appspot.com"
}, },
"client": [ "client": [
{ {
"client_info": { "client_info": {
"mobilesdk_app_id": "1:867032862719:android:841a73fdfb6c37453ae1ca", "mobilesdk_app_id": "1:671943160079:android:e3116655ea962750fb8e7a",
"android_client_info": { "android_client_info": {
"package_name": "com.pandora.sy" "package_name": "com.newpandora.yo"
} }
}, },
"oauth_client": [ "oauth_client": [
{ {
"client_id": "867032862719-af2dnojobjd8s6ekdr1is1vev8nk36sv.apps.googleusercontent.com", "client_id": "671943160079-9olh3lsv7mo2mrjr16u0cqtlmde8r4ps.apps.googleusercontent.com",
"client_type": 1, "client_type": 1,
"android_info": { "android_info": {
"package_name": "com.pandora.sy", "package_name": "com.newpandora.yo",
"certificate_hash": "38cc19306c9facee36a9224e9a4070bc0be15c7d"
}
},
{
"client_id": "867032862719-ohaa1f18e186qpasvgt7qkk1i1pivniq.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.pandora.sy",
"certificate_hash": "b66dc8d21cfcf6c729577ddcf0c312b2a31ed872"
}
},
{
"client_id": "867032862719-snpbqruvqcc9fsifjnmm1h3dcgtr8am4.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.pandora.sy",
"certificate_hash": "15fc5e70cf238323bf7111c8c627803985478e87" "certificate_hash": "15fc5e70cf238323bf7111c8c627803985478e87"
} }
}, },
{ {
"client_id": "867032862719-ep4r92lpjmn7gs9tg0r7q0l75a4gm9mt.apps.googleusercontent.com", "client_id": "671943160079-evu2q1gur12tb34cimc9g14t9vffb9sm.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.newpandora.yo",
"certificate_hash": "38cc19306c9facee36a9224e9a4070bc0be15c7d"
}
},
{
"client_id": "671943160079-gd4v6mr8t330ik8a00po6psdsn6p7b9k.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.newpandora.yo",
"certificate_hash": "89f318e9603ae92835b6dab299a45afc59485b9e"
}
},
{
"client_id": "671943160079-gs1mv4vpdjgofj541cuqkfhija98rna0.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.newpandora.yo",
"certificate_hash": "b55235e71e9e1d2f8f7120ddc4224db85125e085"
}
},
{
"client_id": "671943160079-pdtdv5k1s4mamo7obssuo99rtghkd503.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.newpandora.yo",
"certificate_hash": "b66dc8d21cfcf6c729577ddcf0c312b2a31ed872"
}
},
{
"client_id": "671943160079-9259s527l99jlrfikv6hd4ljcieup34u.apps.googleusercontent.com",
"client_type": 3 "client_type": 3
} }
], ],
"api_key": [ "api_key": [
{ {
"current_key": "AIzaSyAnlY2aBEGyg7QpghHo7EaMRkM89dVNgq8" "current_key": "AIzaSyCf7-JJ44TD09I34Yt4DVzcAO7VCDCa424"
} }
], ],
"services": { "services": {
"appinvite_service": { "appinvite_service": {
"other_platform_oauth_client": [ "other_platform_oauth_client": [
{ {
"client_id": "867032862719-ep4r92lpjmn7gs9tg0r7q0l75a4gm9mt.apps.googleusercontent.com", "client_id": "671943160079-9259s527l99jlrfikv6hd4ljcieup34u.apps.googleusercontent.com",
"client_type": 3 "client_type": 3
} }
] ]

View File

@ -1,4 +1,4 @@
# The proguard configuration file for the following section is D:\android project\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. # This is a configuration file for ProGuard.
# http://proguard.sourceforge.net/index.html#manual/usage.html # 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. # These classes are duplicated between android.jar and core-lambda-stubs.jar.
-dontnote java.lang.invoke.** -dontnote java.lang.invoke.**
# End of content from D:\android project\pandorapan\app\build\intermediates\default_proguard_files\global\proguard-android.txt-8.3.1 # 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:\android project\pandorapan\app\proguard-rules.pro # The proguard configuration file for the following section is D:\AndroidProject\pandorapanL\app\proguard-rules.pro
# Add project specific ProGuard rules here. # Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified # By default, the flags in this file are appended to flags specified
# in /Users/macpro/Library/Android/sdk/tools/proguard/proguard-android.txt # 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 <init>();} -keep class com.qiniu.**{public <init>();}
-ignorewarnings -ignorewarnings
# End of content from D:\android project\pandorapan\app\proguard-rules.pro # End of content from D:\AndroidProject\pandorapanL\app\proguard-rules.pro
# The proguard configuration file for the following section is D:\android project\pandorapan\app\build\intermediates\aapt_proguard_file\google_onlineRelease\processGoogle_onlineReleaseResources\aapt_rules.txt # 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 { <init>(); } -keep class androidx.core.app.CoreComponentFactory { <init>(); }
-keep class androidx.core.content.FileProvider { <init>(); } -keep class androidx.core.content.FileProvider { <init>(); }
-keep class androidx.core.content.FileProvider4Utils { <init>(); } -keep class androidx.core.content.FileProvider4Utils { <init>(); }
@ -674,6 +674,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
-keep class androidx.constraintlayout.widget.ConstraintLayout { <init>(android.content.Context, android.util.AttributeSet); } -keep class androidx.constraintlayout.widget.ConstraintLayout { <init>(android.content.Context, android.util.AttributeSet); }
-keep class androidx.constraintlayout.widget.Group { <init>(android.content.Context, android.util.AttributeSet); }
-keep class androidx.constraintlayout.widget.Guideline { <init>(android.content.Context, android.util.AttributeSet); } -keep class androidx.constraintlayout.widget.Guideline { <init>(android.content.Context, android.util.AttributeSet); }
-keep class androidx.coordinatorlayout.widget.CoordinatorLayout { <init>(android.content.Context, android.util.AttributeSet); } -keep class androidx.coordinatorlayout.widget.CoordinatorLayout { <init>(android.content.Context, android.util.AttributeSet); }
@ -1091,11 +1093,11 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
-keepclassmembers class * { *** videoEditClick(android.view.View); } -keepclassmembers class * { *** videoEditClick(android.view.View); }
# End of content from D:\android project\pandorapan\app\build\intermediates\aapt_proguard_file\google_onlineRelease\processGoogle_onlineReleaseResources\aapt_rules.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:\android project\pandorapan\lib_faceunity\build\intermediates\consumer_proguard_dir\google_onlineRelease\exportGoogle_onlineReleaseConsumerProguardFiles\lib0\proguard.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 D:\android project\pandorapan\lib_faceunity\build\intermediates\consumer_proguard_dir\google_onlineRelease\exportGoogle_onlineReleaseConsumerProguardFiles\lib0\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\Administrator\.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\8d3e3177c15403546de73d87508067d6\transformed\jetified-XPopup-2.10.0\proguard.txt
# Generated keep rule for Lifecycle observer adapter. # Generated keep rule for Lifecycle observer adapter.
-if class com.lxj.xpopup.core.BasePopupView { -if class com.lxj.xpopup.core.BasePopupView {
<init>(...); <init>(...);
@ -1104,8 +1106,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
<init>(...); <init>(...);
} }
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\8d3e3177c15403546de73d87508067d6\transformed\jetified-XPopup-2.10.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\Administrator\.gradle\caches\transforms-3\a1df9a6aa192455030f7c9970b70e0e9\transformed\material-1.4.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 # Copyright (C) 2015 The Android Open Source Project
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
@ -1153,16 +1155,16 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
} }
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\a1df9a6aa192455030f7c9970b70e0e9\transformed\material-1.4.0\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:\android project\pandorapan\lib_google\build\intermediates\consumer_proguard_dir\google_onlineRelease\exportGoogle_onlineReleaseConsumerProguardFiles\lib0\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 D:\android project\pandorapan\lib_google\build\intermediates\consumer_proguard_dir\google_onlineRelease\exportGoogle_onlineReleaseConsumerProguardFiles\lib0\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\Administrator\.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\2929985d9627ba3bb45a0ebd18eaf9d3\transformed\jetified-linesdk-5.0.1\proguard.txt
-keepattributes *Annotation* -keepattributes *Annotation*
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\2929985d9627ba3bb45a0ebd18eaf9d3\transformed\jetified-linesdk-5.0.1\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\Administrator\.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\6baa4e4ee96e21acbcf3a49ef89d9f1f\transformed\jetified-facebook-android-sdk-15.2.0\proguard.txt
# To enable ProGuard in your project, edit project.properties # To enable ProGuard in your project, edit project.properties
# to define the proguard.config property as described in that file. # 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); public android.os.Bundle getSkuDetails(int, java.lang.String, java.lang.String, android.os.Bundle);
} }
# End of content from C:\Users\Administrator\.gradle\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\6baa4e4ee96e21acbcf3a49ef89d9f1f\transformed\jetified-facebook-android-sdk-15.2.0\proguard.txt
# The proguard configuration file for the following section is C:\Users\Administrator\.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\44135493e77410a01759fde38f8d0bd2\transformed\jetified-facebook-gamingservices-15.2.0\proguard.txt
# Copyright (c) Meta Platforms, Inc. and affiliates. # Copyright (c) Meta Platforms, Inc. and affiliates.
# All rights reserved. # All rights reserved.
# #
@ -1244,8 +1246,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
-keep class com.facebook.gamingservices.GamingServices -keep class com.facebook.gamingservices.GamingServices
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\44135493e77410a01759fde38f8d0bd2\transformed\jetified-facebook-gamingservices-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\Administrator\.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\c831739b6efc746f59d2a47471573f41\transformed\jetified-facebook-share-15.2.0\proguard.txt
# Copyright (c) Meta Platforms, Inc. and affiliates. # Copyright (c) Meta Platforms, Inc. and affiliates.
# All rights reserved. # All rights reserved.
# #
@ -1286,8 +1288,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
-keep class com.facebook.share.Share -keep class com.facebook.share.Share
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\c831739b6efc746f59d2a47471573f41\transformed\jetified-facebook-share-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\Administrator\.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\3815d0ddf4b17772bdba730e93b11daf\transformed\jetified-facebook-login-15.2.0\proguard.txt
# Copyright (c) Meta Platforms, Inc. and affiliates. # Copyright (c) Meta Platforms, Inc. and affiliates.
# All rights reserved. # All rights reserved.
# #
@ -1328,8 +1330,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
-keep class com.facebook.login.Login -keep class com.facebook.login.Login
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\3815d0ddf4b17772bdba730e93b11daf\transformed\jetified-facebook-login-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\Administrator\.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\43855db83adace9940918a3f6edcdc05\transformed\jetified-facebook-common-15.2.0\proguard.txt
# Copyright (c) Meta Platforms, Inc. and affiliates. # Copyright (c) Meta Platforms, Inc. and affiliates.
# All rights reserved. # All rights reserved.
# #
@ -1370,12 +1372,12 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
-keep class com.facebook.common.Common -keep class com.facebook.common.Common
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\43855db83adace9940918a3f6edcdc05\transformed\jetified-facebook-common-15.2.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\Administrator\.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\7bbb003dbf2685697cd42cfb46e77b3f\transformed\jetified-subsampling-scale-image-view-androidx-3.10.0\proguard.txt
-keep class com.davemorrissey.labs.subscaleview.** { *; } -keep class com.davemorrissey.labs.subscaleview.** { *; }
# End of content from C:\Users\Administrator\.gradle\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\7bbb003dbf2685697cd42cfb46e77b3f\transformed\jetified-subsampling-scale-image-view-androidx-3.10.0\proguard.txt
# The proguard configuration file for the following section is C:\Users\Administrator\.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\0fdcb88552259c6c22dbd3bb46b31518\transformed\appcompat-1.3.1\proguard.txt
# Copyright (C) 2018 The Android Open Source Project # Copyright (C) 2018 The Android Open Source Project
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
@ -1399,13 +1401,13 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
<methods>; <methods>;
} }
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\0fdcb88552259c6c22dbd3bb46b31518\transformed\appcompat-1.3.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\Administrator\.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\b8e86bdadf487d72a43cd430b3f9db16\transformed\jetified-tweet-ui-3.1.1\proguard.txt
#Picasso Proguard Config https://github.com/square/picasso #Picasso Proguard Config https://github.com/square/picasso
-dontwarn com.squareup.okhttp.** -dontwarn com.squareup.okhttp.**
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\b8e86bdadf487d72a43cd430b3f9db16\transformed\jetified-tweet-ui-3.1.1\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\Administrator\.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\2dd2f4200d3a68f4165485a3d207312d\transformed\coordinatorlayout-1.2.0\proguard.txt
# Copyright (C) 2016 The Android Open Source Project # Copyright (C) 2016 The Android Open Source Project
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
@ -1432,13 +1434,13 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
RuntimeVisibleParameterAnnotations, RuntimeVisibleParameterAnnotations,
RuntimeVisibleTypeAnnotations RuntimeVisibleTypeAnnotations
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\2dd2f4200d3a68f4165485a3d207312d\transformed\coordinatorlayout-1.2.0\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\Administrator\.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\940a969ab3fccb91703d8a9245e2974b\transformed\jetified-x-1.3.2\proguard.txt
-keepclasseswithmembers class androidx.recyclerview.widget.RecyclerView$ViewHolder { -keepclasseswithmembers class androidx.recyclerview.widget.RecyclerView$ViewHolder {
public final android.view.View *; public final android.view.View *;
} }
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\940a969ab3fccb91703d8a9245e2974b\transformed\jetified-x-1.3.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\Administrator\.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\e452872bf1c6c06c71776c88e0bd7b6a\transformed\jetified-exoplayer-ui-2.18.2\proguard.txt
# Proguard rules specific to the UI module. # Proguard rules specific to the UI module.
# Constructor method accessed via reflection in StyledPlayerView # Constructor method accessed via reflection in StyledPlayerView
@ -1479,8 +1481,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
-dontwarn kotlin.annotations.jvm.** -dontwarn kotlin.annotations.jvm.**
-dontwarn javax.annotation.** -dontwarn javax.annotation.**
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\e452872bf1c6c06c71776c88e0bd7b6a\transformed\jetified-exoplayer-ui-2.18.2\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\Administrator\.gradle\caches\transforms-3\e9de7db2640f13ae2ab2a585dfd19337\transformed\recyclerview-1.2.1\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 # Copyright (C) 2015 The Android Open Source Project
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # 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 void suppressLayout(boolean);
public boolean isLayoutSuppressed(); public boolean isLayoutSuppressed();
} }
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\e9de7db2640f13ae2ab2a585dfd19337\transformed\recyclerview-1.2.1\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:\android project\pandorapan\TabLayout\build\intermediates\consumer_proguard_dir\release\exportReleaseConsumerProguardFiles\lib0\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 D:\android project\pandorapan\TabLayout\build\intermediates\consumer_proguard_dir\release\exportReleaseConsumerProguardFiles\lib0\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\Administrator\.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\bb5ec4ef561b90312eb1ca52da1f144d\transformed\jetified-facebook-applinks-15.2.0\proguard.txt
# Copyright (c) Meta Platforms, Inc. and affiliates. # Copyright (c) Meta Platforms, Inc. and affiliates.
# All rights reserved. # All rights reserved.
# #
@ -1551,8 +1553,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
-keep class com.facebook.applinks.AppLinks -keep class com.facebook.applinks.AppLinks
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\bb5ec4ef561b90312eb1ca52da1f144d\transformed\jetified-facebook-applinks-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\Administrator\.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\88221c7028fd958b12579787bcf1d5e0\transformed\jetified-facebook-messenger-15.2.0\proguard.txt
# Copyright (c) Meta Platforms, Inc. and affiliates. # Copyright (c) Meta Platforms, Inc. and affiliates.
# All rights reserved. # All rights reserved.
# #
@ -1597,8 +1599,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
-keep class com.facebook.messenger.Messenger -keep class com.facebook.messenger.Messenger
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\88221c7028fd958b12579787bcf1d5e0\transformed\jetified-facebook-messenger-15.2.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\Administrator\.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\d709769056a5279a71bbb18b41ee69d2\transformed\jetified-ui-1.0.0\proguard.txt
# Copyright (C) 2020 The Android Open Source Project # Copyright (C) 2020 The Android Open Source Project
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # 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); android.view.View findViewByAccessibilityIdTraversal(int);
} }
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\d709769056a5279a71bbb18b41ee69d2\transformed\jetified-ui-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\Administrator\.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\3591196def6c89c6af74e7d30dfb6618\transformed\jetified-runtime-1.0.0\proguard.txt
-assumenosideeffects public class androidx.compose.runtime.ComposerKt { -assumenosideeffects public class androidx.compose.runtime.ComposerKt {
void sourceInformation(androidx.compose.runtime.Composer,java.lang.String); void sourceInformation(androidx.compose.runtime.Composer,java.lang.String);
void sourceInformationMarkerStart(androidx.compose.runtime.Composer,int,java.lang.String); void sourceInformationMarkerStart(androidx.compose.runtime.Composer,int,java.lang.String);
void sourceInformationMarkerEnd(androidx.compose.runtime.Composer); void sourceInformationMarkerEnd(androidx.compose.runtime.Composer);
} }
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\3591196def6c89c6af74e7d30dfb6618\transformed\jetified-runtime-1.0.0\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\Administrator\.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\7931210372c8927a076053831aae79b7\transformed\jetified-glide-transformations-3.1.1\proguard.txt
-dontwarn jp.co.cyberagent.android.gpuimage.** -dontwarn jp.co.cyberagent.android.gpuimage.**
-keep public class * implements com.bumptech.glide.module.GlideModule -keep public class * implements com.bumptech.glide.module.GlideModule
@ -1646,8 +1648,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
public *; public *;
} }
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\7931210372c8927a076053831aae79b7\transformed\jetified-glide-transformations-3.1.1\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\Administrator\.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\a9e5e066cbda5595303140a83b7c357f\transformed\jetified-glide-4.12.0\proguard.txt
-keep public class * implements com.bumptech.glide.module.GlideModule -keep public class * implements com.bumptech.glide.module.GlideModule
-keep class * extends com.bumptech.glide.module.AppGlideModule { -keep class * extends com.bumptech.glide.module.AppGlideModule {
<init>(...); <init>(...);
@ -1663,8 +1665,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
# Uncomment for DexGuard only # Uncomment for DexGuard only
#-keepresourcexmlelements manifest/application/meta-data@value=GlideModule #-keepresourcexmlelements manifest/application/meta-data@value=GlideModule
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\a9e5e066cbda5595303140a83b7c357f\transformed\jetified-glide-4.12.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\Administrator\.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\245cd6e28cb45ea53af06bd1902d8887\transformed\jetified-billing-7.0.0\proguard.txt
# Keep the AIDL interface # Keep the AIDL interface
-keep class com.android.vending.billing.** { *; } -keep class com.android.vending.billing.** { *; }
@ -1699,8 +1701,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
<fields>; <fields>;
} }
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\245cd6e28cb45ea53af06bd1902d8887\transformed\jetified-billing-7.0.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\Administrator\.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\389aac78ceffe6f037f7624d2175f98b\transformed\jetified-play-services-base-18.3.0\proguard.txt
# b/35135904 Ensure that proguard will not strip the mResultGuardian. # b/35135904 Ensure that proguard will not strip the mResultGuardian.
-keepclassmembers class com.google.android.gms.common.api.internal.BasePendingResult { -keepclassmembers class com.google.android.gms.common.api.internal.BasePendingResult {
com.google.android.gms.common.api.internal.BasePendingResult$ReleasableResultGuardian mResultGuardian; com.google.android.gms.common.api.internal.BasePendingResult$ReleasableResultGuardian mResultGuardian;
@ -1708,8 +1710,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
# End of content from C:\Users\Administrator\.gradle\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\389aac78ceffe6f037f7624d2175f98b\transformed\jetified-play-services-base-18.3.0\proguard.txt
# The proguard configuration file for the following section is C:\Users\Administrator\.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\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 # 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 # https://github.com/firebase/firebase-android-sdk/pull/1472/commits/856f1ca1151cdd88679bbc778892f23dfa34fc06#diff-a2ed34b5a38b4c6c686b09e54865eb48
-dontwarn com.google.auto.value.AutoValue -dontwarn com.google.auto.value.AutoValue
@ -1722,18 +1724,18 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
<fields>; <fields>;
} }
# End of content from C:\Users\Administrator\.gradle\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\fdcd25b13ca01df0d64e21ab18452962\transformed\jetified-play-services-measurement-api-21.1.1\proguard.txt
# The proguard configuration file for the following section is C:\Users\Administrator\.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\1b549d0d5a78f93d1b3cd259941d27d6\transformed\jetified-firebase-common-20.1.2\proguard.txt
-dontwarn com.google.firebase.platforminfo.KotlinDetector -dontwarn com.google.firebase.platforminfo.KotlinDetector
-dontwarn com.google.auto.value.AutoValue -dontwarn com.google.auto.value.AutoValue
-dontwarn com.google.auto.value.AutoValue$Builder -dontwarn com.google.auto.value.AutoValue$Builder
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\1b549d0d5a78f93d1b3cd259941d27d6\transformed\jetified-firebase-common-20.1.2\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\Administrator\.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\1d73edc853ec5797eb8fbdbaf92a3a43\transformed\jetified-play-services-tasks-18.1.0\proguard.txt
# End of content from C:\Users\Administrator\.gradle\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\1d73edc853ec5797eb8fbdbaf92a3a43\transformed\jetified-play-services-tasks-18.1.0\proguard.txt
# The proguard configuration file for the following section is C:\Users\Administrator\.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\53d8ae00710cb6dfde668ad5c2529a5c\transformed\jetified-play-services-measurement-21.1.1\proguard.txt
# We keep all fields for every generated proto file as the runtime uses # We keep all fields for every generated proto file as the runtime uses
# reflection over them that ProGuard cannot detect. Without this keep # reflection over them that ProGuard cannot detect. Without this keep
# rule, fields may be removed that would cause runtime failures. # rule, fields may be removed that would cause runtime failures.
@ -1741,8 +1743,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
<fields>; <fields>;
} }
# End of content from C:\Users\Administrator\.gradle\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\53d8ae00710cb6dfde668ad5c2529a5c\transformed\jetified-play-services-measurement-21.1.1\proguard.txt
# The proguard configuration file for the following section is C:\Users\Administrator\.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\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 # We keep all fields for every generated proto file as the runtime uses
# reflection over them that ProGuard cannot detect. Without this keep # reflection over them that ProGuard cannot detect. Without this keep
# rule, fields may be removed that would cause runtime failures. # rule, fields may be removed that would cause runtime failures.
@ -1750,8 +1752,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
<fields>; <fields>;
} }
# End of content from C:\Users\Administrator\.gradle\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\d9a1fa15000998f069a9eb095ddd5d6c\transformed\jetified-play-services-measurement-sdk-21.1.1\proguard.txt
# The proguard configuration file for the following section is C:\Users\Administrator\.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\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 # We keep all fields for every generated proto file as the runtime uses
# reflection over them that ProGuard cannot detect. Without this keep # reflection over them that ProGuard cannot detect. Without this keep
# rule, fields may be removed that would cause runtime failures. # rule, fields may be removed that would cause runtime failures.
@ -1759,8 +1761,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
<fields>; <fields>;
} }
# End of content from C:\Users\Administrator\.gradle\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\e3d5db4c204c05b688c67157d08d719e\transformed\jetified-play-services-measurement-impl-21.1.1\proguard.txt
# The proguard configuration file for the following section is C:\Users\Administrator\.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\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 # We keep all fields for every generated proto file as the runtime uses
# reflection over them that ProGuard cannot detect. Without this keep # reflection over them that ProGuard cannot detect. Without this keep
# rule, fields may be removed that would cause runtime failures. # rule, fields may be removed that would cause runtime failures.
@ -1768,8 +1770,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
<fields>; <fields>;
} }
# End of content from C:\Users\Administrator\.gradle\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\a14887389ea05f2c3a61b51470f02e11\transformed\jetified-play-services-measurement-sdk-api-21.1.1\proguard.txt
# The proguard configuration file for the following section is C:\Users\Administrator\.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\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 # We keep all fields for every generated proto file as the runtime uses
# reflection over them that ProGuard cannot detect. Without this keep # reflection over them that ProGuard cannot detect. Without this keep
# rule, fields may be removed that would cause runtime failures. # rule, fields may be removed that would cause runtime failures.
@ -1777,8 +1779,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
<fields>; <fields>;
} }
# End of content from C:\Users\Administrator\.gradle\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\a00f92aeac02d4041e8903bda4c31467\transformed\jetified-play-services-measurement-base-21.1.1\proguard.txt
# The proguard configuration file for the following section is C:\Users\Administrator\.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\6eda7df53f5a535e22df39c8e1d72650\transformed\jetified-play-services-basement-18.3.0\proguard.txt
# Needed when building against pre-Marshmallow SDK. # Needed when building against pre-Marshmallow SDK.
-dontwarn android.security.NetworkSecurityPolicy -dontwarn android.security.NetworkSecurityPolicy
@ -1856,8 +1858,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
# End of content from C:\Users\Administrator\.gradle\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\6eda7df53f5a535e22df39c8e1d72650\transformed\jetified-play-services-basement-18.3.0\proguard.txt
# The proguard configuration file for the following section is C:\Users\Administrator\.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\8daf89c63ab14ea80f11dcfb9154f87e\transformed\fragment-1.5.0\proguard.txt
# Copyright (C) 2020 The Android Open Source Project # Copyright (C) 2020 The Android Open Source Project
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
@ -1878,12 +1880,12 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
public <init>(); public <init>();
} }
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\8daf89c63ab14ea80f11dcfb9154f87e\transformed\fragment-1.5.0\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\Administrator\.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\b826addf48d922103bc9588ad90ee0e6\transformed\jetified-Common-4.1.11\proguard.txt
# 本库模块专用的混淆规则 # 本库模块专用的混淆规则
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\b826addf48d922103bc9588ad90ee0e6\transformed\jetified-Common-4.1.11\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\Administrator\.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\cee8df21fdda9dd7e6106d8566e7a8de\transformed\jetified-facebook-core-15.2.0\proguard.txt
# Copyright (c) Meta Platforms, Inc. and affiliates. # Copyright (c) Meta Platforms, Inc. and affiliates.
# All rights reserved. # All rights reserved.
# #
@ -1941,8 +1943,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
public <methods>; public <methods>;
} }
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\cee8df21fdda9dd7e6106d8566e7a8de\transformed\jetified-facebook-core-15.2.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\Administrator\.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\570c85082e748d036cbe1ff0c9d5e429\transformed\lifecycle-viewmodel-2.5.0\proguard.txt
-keepclassmembers,allowobfuscation class * extends androidx.lifecycle.ViewModel { -keepclassmembers,allowobfuscation class * extends androidx.lifecycle.ViewModel {
<init>(); <init>();
} }
@ -1951,8 +1953,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
<init>(android.app.Application); <init>(android.app.Application);
} }
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\570c85082e748d036cbe1ff0c9d5e429\transformed\lifecycle-viewmodel-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\Administrator\.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\badee3548ba9b653d6517fdeb8829767\transformed\jetified-lifecycle-viewmodel-savedstate-2.5.0\proguard.txt
-keepclassmembers,allowobfuscation class * extends androidx.lifecycle.ViewModel { -keepclassmembers,allowobfuscation class * extends androidx.lifecycle.ViewModel {
<init>(androidx.lifecycle.SavedStateHandle); <init>(androidx.lifecycle.SavedStateHandle);
} }
@ -1961,8 +1963,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
<init>(android.app.Application,androidx.lifecycle.SavedStateHandle); <init>(android.app.Application,androidx.lifecycle.SavedStateHandle);
} }
# End of content from C:\Users\Administrator\.gradle\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\badee3548ba9b653d6517fdeb8829767\transformed\jetified-lifecycle-viewmodel-savedstate-2.5.0\proguard.txt
# The proguard configuration file for the following section is C:\Users\Administrator\.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\0e43e19966d3ba7fcce157667e087c7e\transformed\rules\lib\META-INF\com.android.tools\r8\coroutines.pro
# When editing this file, update the following files as well: # When editing this file, update the following files as well:
# - META-INF/proguard/coroutines.pro # - META-INF/proguard/coroutines.pro
# - META-INF/com.android.tools/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. # An annotation used for build tooling, won't be directly accessed.
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
# End of content from C:\Users\Administrator\.gradle\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\0e43e19966d3ba7fcce157667e087c7e\transformed\rules\lib\META-INF\com.android.tools\r8\coroutines.pro
# The proguard configuration file for the following section is C:\Users\Administrator\.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\039aa78b17fc1889d62d4e8e7d7c1859\transformed\rules\lib\META-INF\com.android.tools\r8-from-1.6.0\coroutines.pro
# Allow R8 to optimize away the FastServiceLoader. # Allow R8 to optimize away the FastServiceLoader.
# Together with ServiceLoader optimization in R8 # Together with ServiceLoader optimization in R8
# this results in direct instantiation when loading Dispatchers.Main # this results in direct instantiation when loading Dispatchers.Main
@ -2016,8 +2018,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
boolean getDEBUG() return false; boolean getDEBUG() return false;
boolean getRECOVER_STACK_TRACES() return false; boolean getRECOVER_STACK_TRACES() return false;
} }
# End of content from C:\Users\Administrator\.gradle\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\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\Administrator\.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\33f970d366250728877e2f4671336331\transformed\jetified-twitter-core-3.1.1\proguard.txt
#GSON #GSON
# Retain Annotations for model objects # Retain Annotations for model objects
-keepattributes *Annotation* -keepattributes *Annotation*
@ -2041,8 +2043,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
-keepclasseswithmembers class * { -keepclasseswithmembers class * {
@retrofit2.http.* <methods>; @retrofit2.http.* <methods>;
} }
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\33f970d366250728877e2f4671336331\transformed\jetified-twitter-core-3.1.1\proguard.txt # 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\Administrator\.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\c77ecf57bcccb48a1c436095271858a9\transformed\rules\lib\META-INF\proguard\okhttp3.pro
# JSR 305 annotations are for embedding nullability information. # JSR 305 annotations are for embedding nullability information.
-dontwarn javax.annotation.** -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. # OkHttp platform used only on JVM and when Conscrypt dependency is available.
-dontwarn okhttp3.internal.platform.ConscryptPlatform -dontwarn okhttp3.internal.platform.ConscryptPlatform
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\c77ecf57bcccb48a1c436095271858a9\transformed\rules\lib\META-INF\proguard\okhttp3.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\Administrator\.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\ba2f6b8d754037d8f03e9dcac5bb54b5\transformed\rules\lib\META-INF\proguard\okio.pro
# Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java. # Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java.
-dontwarn org.codehaus.mojo.animal_sniffer.* -dontwarn org.codehaus.mojo.animal_sniffer.*
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\ba2f6b8d754037d8f03e9dcac5bb54b5\transformed\rules\lib\META-INF\proguard\okio.pro # 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\Administrator\.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\acd3bab55cb4f819050ef57ea2e25987\transformed\jetified-beautysdk-202202241203\proguard.txt
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\acd3bab55cb4f819050ef57ea2e25987\transformed\jetified-beautysdk-202202241203\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\Administrator\.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\6905c56d188193f144e40adf093778f1\transformed\jetified-utilcode-1.30.0\proguard.txt
# Add project specific ProGuard rules here. # Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified # By default, the flags in this file are appended to flags specified
# in G:\Android_IDE\ADT\sdk/tools/proguard/proguard-android.txt # 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 * -keep @com.blankj.utilcode.util.ApiUtils$Api class *
-keepattributes *Annotation* -keepattributes *Annotation*
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\6905c56d188193f144e40adf093778f1\transformed\jetified-utilcode-1.30.0\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\Administrator\.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\b75b75d929caf1295aec25af1cc611a0\transformed\jetified-crash-1.0.8\proguard.txt
-keep class cn.rongcloud.xcrash.NativeHandler { -keep class cn.rongcloud.xcrash.NativeHandler {
native <methods>; native <methods>;
void crashCallback(...); void crashCallback(...);
@ -2102,22 +2104,22 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
void traceCallbackBeforeDump(...); void traceCallbackBeforeDump(...);
} }
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\b75b75d929caf1295aec25af1cc611a0\transformed\jetified-crash-1.0.8\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\Administrator\.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\a7d2b366ebb4fa695d83564a8f8d9b9e\transformed\jetified-roundedimageview-2.3.0\proguard.txt
# Proguard configuration. # Proguard configuration.
-dontwarn com.squareup.okhttp.** -dontwarn com.squareup.okhttp.**
# References to Picasso are okay if the consuming app doesn't use it # References to Picasso are okay if the consuming app doesn't use it
-dontwarn com.squareup.picasso.Transformation -dontwarn com.squareup.picasso.Transformation
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\a7d2b366ebb4fa695d83564a8f8d9b9e\transformed\jetified-roundedimageview-2.3.0\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\Administrator\.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\54e4d6b7585273307d9c6823366d92b9\transformed\jetified-android-gif-drawable-1.2.23\proguard.txt
-keep public class pl.droidsonroids.gif.GifIOException{<init>(int, java.lang.String);} -keep public class pl.droidsonroids.gif.GifIOException{<init>(int, java.lang.String);}
#Prevents warnings for consumers not using AndroidX #Prevents warnings for consumers not using AndroidX
-dontwarn androidx.annotation.** -dontwarn androidx.annotation.**
# End of content from C:\Users\Administrator\.gradle\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\54e4d6b7585273307d9c6823366d92b9\transformed\jetified-android-gif-drawable-1.2.23\proguard.txt
# The proguard configuration file for the following section is C:\Users\Administrator\.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\11ff2b99188b7e7bf4e2771916717f0f\transformed\jetified-ShortcutBadger-1.1.22\proguard.txt
#https://github.com/leolin310148/ShortcutBadger/issues/46 #https://github.com/leolin310148/ShortcutBadger/issues/46
-keep class me.leolin.shortcutbadger.impl.AdwHomeBadger { <init>(...); } -keep class me.leolin.shortcutbadger.impl.AdwHomeBadger { <init>(...); }
-keep class me.leolin.shortcutbadger.impl.ApexHomeBadger { <init>(...); } -keep class me.leolin.shortcutbadger.impl.ApexHomeBadger { <init>(...); }
@ -2128,8 +2130,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
-keep class me.leolin.shortcutbadger.impl.SolidHomeBadger { <init>(...); } -keep class me.leolin.shortcutbadger.impl.SolidHomeBadger { <init>(...); }
-keep class me.leolin.shortcutbadger.impl.SonyHomeBadger { <init>(...); } -keep class me.leolin.shortcutbadger.impl.SonyHomeBadger { <init>(...); }
-keep class me.leolin.shortcutbadger.impl.XiaomiHomeBadger { <init>(...); } -keep class me.leolin.shortcutbadger.impl.XiaomiHomeBadger { <init>(...); }
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\11ff2b99188b7e7bf4e2771916717f0f\transformed\jetified-ShortcutBadger-1.1.22\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\Administrator\.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\bf0366dad8fd25b42dec7a0b29d3ed94\transformed\jetified-EasyFloat-2.0.4\proguard.txt
# Add project specific ProGuard rules here. # Add project specific ProGuard rules here.
# You can control the filterSet of applied configuration files using the # You can control the filterSet of applied configuration files using the
# proguardFiles setting in build.gradle. # proguardFiles setting in build.gradle.
@ -2167,8 +2169,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
# 保持反射不被混淆 # 保持反射不被混淆
-keepattributes EnclosingMethod -keepattributes EnclosingMethod
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\bf0366dad8fd25b42dec7a0b29d3ed94\transformed\jetified-EasyFloat-2.0.4\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\Administrator\.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\6dd79c19a3de7f7b4d3014c08d02f4ca\transformed\jetified-PagerGridLayoutManager-1.1.7\proguard.txt
# Add project specific ProGuard rules here. # Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the # You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle. # 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 # If you keep the line number information, uncomment this to
# hide the original source file name. # hide the original source file name.
#-renamesourcefileattribute SourceFile #-renamesourcefileattribute SourceFile
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\6dd79c19a3de7f7b4d3014c08d02f4ca\transformed\jetified-PagerGridLayoutManager-1.1.7\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\Administrator\.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\adfc563cfaac18f99ab49176e8311139\transformed\jetified-WheelView-4.1.11\proguard.txt
# 本库模块专用的混淆规则 # 本库模块专用的混淆规则
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\adfc563cfaac18f99ab49176e8311139\transformed\jetified-WheelView-4.1.11\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\Administrator\.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\483c0844792efef20618064763675691\transformed\jetified-SudMGP-1.4.3.1201\proguard.txt
-keep class com.cocos.game.**{ *; } -keep class com.cocos.game.**{ *; }
-keep class tech.sud.runtime.**{ *; } -keep class tech.sud.runtime.**{ *; }
-keep class tech.sud.mgp.core.**{ *; } -keep class tech.sud.mgp.core.**{ *; }
@ -2849,8 +2851,8 @@ native <methods>;
} }
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\483c0844792efef20618064763675691\transformed\jetified-SudMGP-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\Administrator\.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\9fef6e1dea59ce01cbe6739f12545786\transformed\jetified-SudASR-1.4.3.1201\proguard.txt
-keep class com.microsoft.cognitiveservices.** { *; } -keep class com.microsoft.cognitiveservices.** { *; }
-keep class tech.sud.mgp.asr.azure.** { *; } -keep class tech.sud.mgp.asr.azure.** { *; }
@ -2865,8 +2867,8 @@ native <methods>;
*** *Callback(long); *** *Callback(long);
} }
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\9fef6e1dea59ce01cbe6739f12545786\transformed\jetified-SudASR-1.4.3.1201\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\Administrator\.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\d5594233d50b1d727f4630790ca89a13\transformed\jetified-core-8.7.0\proguard.txt
# Add project specific ProGuard rules here. # Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the # You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle. # proguardFiles setting in build.gradle.
@ -2893,8 +2895,8 @@ native <methods>;
-keep class com.faceunity.wrapper.faceunity {*;} -keep class com.faceunity.wrapper.faceunity {*;}
-keep class com.faceunity.wrapper.faceunity$RotatedImage {*;} -keep class com.faceunity.wrapper.faceunity$RotatedImage {*;}
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\d5594233d50b1d727f4630790ca89a13\transformed\jetified-core-8.7.0\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\Administrator\.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\526e7910eaa433763f36b642f34c1fee\transformed\jetified-exoplayer-core-2.18.2\proguard.txt
# Proguard rules specific to the core module. # Proguard rules specific to the core module.
# Constructors accessed via reflection in DefaultRenderersFactory # Constructors accessed via reflection in DefaultRenderersFactory
@ -2951,8 +2953,8 @@ native <methods>;
<init>(); <init>();
} }
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\526e7910eaa433763f36b642f34c1fee\transformed\jetified-exoplayer-core-2.18.2\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\Administrator\.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\2d16d937f787a1471d1fcefef8917ded\transformed\jetified-savedstate-1.2.0\proguard.txt
# Copyright (C) 2019 The Android Open Source Project # Copyright (C) 2019 The Android Open Source Project
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
@ -2971,8 +2973,8 @@ native <methods>;
<init>(); <init>();
} }
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\2d16d937f787a1471d1fcefef8917ded\transformed\jetified-savedstate-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\Administrator\.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\f55e0290d55f2ec9dfa66384635c714c\transformed\transition-1.2.0\proguard.txt
# Copyright (C) 2017 The Android Open Source Project # Copyright (C) 2017 The Android Open Source Project
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
@ -2992,8 +2994,8 @@ native <methods>;
androidx.transition.ChangeBounds$ViewBounds mViewBounds; androidx.transition.ChangeBounds$ViewBounds mViewBounds;
} }
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\f55e0290d55f2ec9dfa66384635c714c\transformed\transition-1.2.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\Administrator\.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\093cf4894c646f12adcf0608a8578513\transformed\vectordrawable-animated-1.1.0\proguard.txt
# Copyright (C) 2016 The Android Open Source Project # Copyright (C) 2016 The Android Open Source Project
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
@ -3014,8 +3016,8 @@ native <methods>;
*** get*(); *** get*();
} }
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\093cf4894c646f12adcf0608a8578513\transformed\vectordrawable-animated-1.1.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\Administrator\.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\3db9f5e64eaa2a61a80545d78dbfe4ed\transformed\jetified-facebook-bolts-15.2.0\proguard.txt
# Copyright (c) Meta Platforms, Inc. and affiliates. # Copyright (c) Meta Platforms, Inc. and affiliates.
# All rights reserved. # All rights reserved.
# #
@ -3051,8 +3053,8 @@ native <methods>;
java.lang.Object readResolve(); java.lang.Object readResolve();
} }
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\3db9f5e64eaa2a61a80545d78dbfe4ed\transformed\jetified-facebook-bolts-15.2.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\Administrator\.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\13795feba8dd8fc2e0266a202e40730e\transformed\media-1.6.0\proguard.txt
# Copyright (C) 2017 The Android Open Source Project # Copyright (C) 2017 The Android Open Source Project
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
@ -3076,8 +3078,8 @@ native <methods>;
-keep class androidx.media.** implements android.os.Parcelable { -keep class androidx.media.** implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *; public static final android.os.Parcelable$Creator *;
} }
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\13795feba8dd8fc2e0266a202e40730e\transformed\media-1.6.0\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\Administrator\.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\c6ec9c31a3362678dbcc66f2e9ea7260\transformed\core-1.10.1\proguard.txt
# Never inline methods, but allow shrinking and obfuscation. # Never inline methods, but allow shrinking and obfuscation.
-keepclassmembernames,allowobfuscation,allowshrinking class androidx.core.view.ViewCompat$Api* { -keepclassmembernames,allowobfuscation,allowshrinking class androidx.core.view.ViewCompat$Api* {
<methods>; <methods>;
@ -3095,8 +3097,8 @@ native <methods>;
<methods>; <methods>;
} }
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\c6ec9c31a3362678dbcc66f2e9ea7260\transformed\core-1.10.1\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\Administrator\.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\2c964f4aa7e08caf6a082be78fa332c4\transformed\lifecycle-runtime-2.5.0\proguard.txt
-keepattributes AnnotationDefault, -keepattributes AnnotationDefault,
RuntimeVisibleAnnotations, RuntimeVisibleAnnotations,
RuntimeVisibleParameterAnnotations, RuntimeVisibleParameterAnnotations,
@ -3120,8 +3122,8 @@ native <methods>;
# this rule is need to work properly when app is compiled with api 28, see b/142778206 # 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. # Also this rule prevents registerIn from being inlined.
-keepclassmembers class androidx.lifecycle.ReportFragment$LifecycleCallbacks { *; } -keepclassmembers class androidx.lifecycle.ReportFragment$LifecycleCallbacks { *; }
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\2c964f4aa7e08caf6a082be78fa332c4\transformed\lifecycle-runtime-2.5.0\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\Administrator\.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\4a3cce138aa30f2fd0df44bf999a62d2\transformed\jetified-exoplayer-datasource-2.18.2\proguard.txt
# Proguard rules specific to the DataSource module. # 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. # 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 <methods>;
<init>(); <init>();
} }
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\4a3cce138aa30f2fd0df44bf999a62d2\transformed\jetified-exoplayer-datasource-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\Administrator\.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\cccc4dd1e5210aae5c702cc866696db2\transformed\jetified-exoplayer-extractor-2.18.2\proguard.txt
# Proguard rules specific to the extractor module. # Proguard rules specific to the extractor module.
# Methods accessed via reflection in DefaultExtractorsFactory # Methods accessed via reflection in DefaultExtractorsFactory
@ -3154,8 +3156,8 @@ native <methods>;
-dontwarn kotlin.annotations.jvm.** -dontwarn kotlin.annotations.jvm.**
-dontwarn javax.annotation.** -dontwarn javax.annotation.**
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\cccc4dd1e5210aae5c702cc866696db2\transformed\jetified-exoplayer-extractor-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\Administrator\.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\5bd9c5cbdf66400a7932d1da1691bac0\transformed\jetified-exoplayer-common-2.18.2\proguard.txt
# Proguard rules specific to the common module. # Proguard rules specific to the common module.
# Don't warn about checkerframework and Kotlin annotations # Don't warn about checkerframework and Kotlin annotations
@ -3179,30 +3181,30 @@ native <methods>;
# This is needed for ProGuard but not R8. # This is needed for ProGuard but not R8.
-keepclassmembernames class com.google.common.base.Function { *; } -keepclassmembernames class com.google.common.base.Function { *; }
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\5bd9c5cbdf66400a7932d1da1691bac0\transformed\jetified-exoplayer-common-2.18.2\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\Administrator\.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\25898cd92bff76be652caaeef3397500\transformed\versionedparcelable-1.1.1\proguard.txt
-keep class * implements androidx.versionedparcelable.VersionedParcelable -keep class * implements androidx.versionedparcelable.VersionedParcelable
-keep public class android.support.**Parcelizer { *; } -keep public class android.support.**Parcelizer { *; }
-keep public class androidx.**Parcelizer { *; } -keep public class androidx.**Parcelizer { *; }
-keep public class androidx.versionedparcelable.ParcelImpl -keep public class androidx.versionedparcelable.ParcelImpl
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\25898cd92bff76be652caaeef3397500\transformed\versionedparcelable-1.1.1\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\Administrator\.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\8c49f53105b230fe43669879f576cab6\transformed\room-runtime-2.4.0\proguard.txt
-keep class * extends androidx.room.RoomDatabase -keep class * extends androidx.room.RoomDatabase
-dontwarn androidx.room.paging.** -dontwarn androidx.room.paging.**
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\8c49f53105b230fe43669879f576cab6\transformed\room-runtime-2.4.0\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\Administrator\.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\c4bf50f4bef00295f739a61609b757c2\transformed\jetified-transport-backend-cct-3.1.8\proguard.txt
-dontwarn com.google.auto.value.AutoValue -dontwarn com.google.auto.value.AutoValue
-dontwarn com.google.auto.value.AutoValue$Builder -dontwarn com.google.auto.value.AutoValue$Builder
# End of content from C:\Users\Administrator\.gradle\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\c4bf50f4bef00295f739a61609b757c2\transformed\jetified-transport-backend-cct-3.1.8\proguard.txt
# The proguard configuration file for the following section is C:\Users\Administrator\.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\ad1f4a6564b34286db155b9a62614b62\transformed\jetified-transport-api-3.0.0\proguard.txt
-dontwarn com.google.auto.value.AutoValue -dontwarn com.google.auto.value.AutoValue
-dontwarn com.google.auto.value.AutoValue$Builder -dontwarn com.google.auto.value.AutoValue$Builder
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\ad1f4a6564b34286db155b9a62614b62\transformed\jetified-transport-api-3.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\Administrator\.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\48f6f745536202396d49c6664e656f00\transformed\jetified-startup-runtime-1.0.0\proguard.txt
# This Proguard rule ensures that ComponentInitializers are are neither shrunk nor obfuscated. # This Proguard rule ensures that ComponentInitializers are are neither shrunk nor obfuscated.
# This is because they are discovered and instantiated during application initialization. # This is because they are discovered and instantiated during application initialization.
-keep class * extends androidx.startup.Initializer { -keep class * extends androidx.startup.Initializer {
@ -3212,22 +3214,22 @@ native <methods>;
-assumenosideeffects class androidx.startup.StartupLogger -assumenosideeffects class androidx.startup.StartupLogger
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\48f6f745536202396d49c6664e656f00\transformed\jetified-startup-runtime-1.0.0\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\Administrator\.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\e1bbd140b52a8e61bea52bf380947059\transformed\jetified-firebase-components-17.0.1\proguard.txt
-dontwarn com.google.firebase.components.Component$Instantiation -dontwarn com.google.firebase.components.Component$Instantiation
-dontwarn com.google.firebase.components.Component$ComponentType -dontwarn com.google.firebase.components.Component$ComponentType
-keep class * implements com.google.firebase.components.ComponentRegistrar -keep class * implements com.google.firebase.components.ComponentRegistrar
-keep,allowshrinking interface com.google.firebase.components.ComponentRegistrar -keep,allowshrinking interface com.google.firebase.components.ComponentRegistrar
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\e1bbd140b52a8e61bea52bf380947059\transformed\jetified-firebase-components-17.0.1\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\Administrator\.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\ff39e13547528b628eacff5bee8aa481\transformed\jetified-firebase-encoders-json-18.0.0\proguard.txt
# End of content from C:\Users\Administrator\.gradle\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\ff39e13547528b628eacff5bee8aa481\transformed\jetified-firebase-encoders-json-18.0.0\proguard.txt
# The proguard configuration file for the following section is C:\Users\Administrator\.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\eb4fdf1a1abe4d45e8a1ea6c65e9f330\transformed\jetified-model-8.7.0\proguard.txt
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\eb4fdf1a1abe4d45e8a1ea6c65e9f330\transformed\jetified-model-8.7.0\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\Administrator\.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\e4ea56c12de34fd26c2a84541f3aeb08\transformed\jetified-calligraphy3-3.1.1\proguard.txt
# Add project specific ProGuard rules here. # Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified # By default, the flags in this file are appended to flags specified
# in /Developer/android-sdk-osx/tools/proguard/proguard-android.txt # in /Developer/android-sdk-osx/tools/proguard/proguard-android.txt
@ -3249,8 +3251,8 @@ native <methods>;
-keep class io.github.inflationx.calligraphy3.* { *; } -keep class io.github.inflationx.calligraphy3.* { *; }
-keep class io.github.inflationx.calligraphy3.*$* { *; } -keep class io.github.inflationx.calligraphy3.*$* { *; }
# End of content from C:\Users\Administrator\.gradle\caches\transforms-3\e4ea56c12de34fd26c2a84541f3aeb08\transformed\jetified-calligraphy3-3.1.1\proguard.txt # 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\Administrator\.gradle\caches\transforms-3\6ee4aefc5377638487f62f6779665411\transformed\rules\lib\META-INF\proguard\androidx-annotations.pro # 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,allowobfuscation @interface androidx.annotation.Keep
-keep @androidx.annotation.Keep class * {*;} -keep @androidx.annotation.Keep class * {*;}
@ -3270,7 +3272,7 @@ native <methods>;
@androidx.annotation.DoNotInline <methods>; @androidx.annotation.DoNotInline <methods>;
} }
# End of content from C:\Users\Administrator\.gradle\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 <unknown> # The proguard configuration file for the following section is <unknown>
# End of content from <unknown> # End of content from <unknown>

View File

@ -25,7 +25,7 @@
<provider <provider
android:name="androidx.core.content.FileProvider" android:name="androidx.core.content.FileProvider"
android:authorities="com.pandora.sy.fileprovider" android:authorities="${applicationId}.fileprovider"
android:exported="false" android:exported="false"
android:grantUriPermissions="true"> android:grantUriPermissions="true">
<meta-data <meta-data

View File

@ -12,8 +12,10 @@ import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.core.content.ContextCompat;
import com.blankj.utilcode.util.LogUtils; import com.blankj.utilcode.util.LogUtils;
import com.google.android.exoplayer2.C;
import com.yunbao.common.R; import com.yunbao.common.R;
import com.yunbao.common.glide.ImgLoader; import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.interfaces.OnRecyclerListRefreshListener; 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.ChatMsgTypeUtils;
import com.yunbao.common.utils.DateFormatUtil; import com.yunbao.common.utils.DateFormatUtil;
import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.UiConversationCodeUtil;
import com.yunbao.common.utils.ViewUtils; import com.yunbao.common.utils.ViewUtils;
import com.yunbao.common.utils.WordUtil; import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.weight.ViewClicksAntiShake; import com.yunbao.common.views.weight.ViewClicksAntiShake;
import org.spongycastle.jcajce.provider.asymmetric.rsa.ISOSignatureSpi;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects;
import io.rong.imkit.IMCenter; import io.rong.imkit.IMCenter;
import io.rong.imkit.RongIM;
import io.rong.imkit.conversationlist.ConversationListAdapter; import io.rong.imkit.conversationlist.ConversationListAdapter;
import io.rong.imkit.conversationlist.model.BaseUiConversation; import io.rong.imkit.conversationlist.model.BaseUiConversation;
import io.rong.imkit.conversationlist.model.SingleConversation; import io.rong.imkit.conversationlist.model.SingleConversation;
@ -52,19 +59,44 @@ public class MainConversationListAdapter extends ConversationListAdapter {
public static final int TYPE_SEARCH_USER = 510; public static final int TYPE_SEARCH_USER = 510;
public static final int TYPE_SEARCH_CHAT = 520; public static final int TYPE_SEARCH_CHAT = 520;
private List<BaseUiConversation> srcList; private List<BaseUiConversation> srcList;
private List<BaseUiConversation> allDataList;
private Context mContext; private Context mContext;
private boolean isChat = true; private boolean isChat = true;
private OnRecyclerListRefreshListener<List<BaseUiConversation>> onRefreshListener; private OnRecyclerListRefreshListener<List<BaseUiConversation>> onRefreshListener;
private Map<String, Integer> timerMap = new HashMap<>(); private Map<String, Integer> 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) { public MainConversationListAdapter(Context mContext) {
this.mContext = mContext; this.mContext = mContext;
} }
public void setSrcList(List<BaseUiConversation> srcList) { public void setSrcList(List<BaseUiConversation> srcList) {
this.srcList = srcList; this.srcList = srcList;
if (mFilter== FILTER_OFFLINE || mFilter == FILTER_ONLINE) {
super.setDataCollection(UiConversationCodeUtil.FilterData(mFilter, allDataList));
}else {
notifyDataSetChanged(); notifyDataSetChanged();
} }
}
public void setOnRefreshListener(OnRecyclerListRefreshListener<List<BaseUiConversation>> onRefreshListener) { public void setOnRefreshListener(OnRecyclerListRefreshListener<List<BaseUiConversation>> onRefreshListener) {
this.onRefreshListener = onRefreshListener; this.onRefreshListener = 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); View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_main_msg_search_chat, parent, false);
holder = ViewHolder.createViewHolder(parent.getContext(), view); holder = ViewHolder.createViewHolder(parent.getContext(), view);
} else if (viewType != -200) { } 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); holder = ViewHolder.createViewHolder(parent.getContext(), view);
} else { } else {
holder = super.onCreateViewHolder(parent, viewType); holder = super.onCreateViewHolder(parent, viewType);
@ -100,11 +132,13 @@ public class MainConversationListAdapter extends ConversationListAdapter {
int type = super.getItemViewType(position); int type = super.getItemViewType(position);
if (mDataList.size() > position) { if (mDataList.size() > position) {
String objectName = mDataList.get(position).mCore.getObjectName(); String objectName = mDataList.get(position).mCore.getObjectName();
Log.i("聊天数据源发现","objectName"+objectName);
if (!StringUtil.isEmpty(objectName) && objectName.startsWith("SEARCH_USER")) { if (!StringUtil.isEmpty(objectName) && objectName.startsWith("SEARCH_USER")) {
type = TYPE_SEARCH_USER; type = TYPE_SEARCH_USER;
} else if (!StringUtil.isEmpty(objectName) && objectName.startsWith("SEARCH_CHAT")) { } else if (!StringUtil.isEmpty(objectName) && objectName.startsWith("SEARCH_CHAT")) {
type = TYPE_SEARCH_CHAT; type = TYPE_SEARCH_CHAT;
} else if (!StringUtil.isEmpty(objectName) && objectName.startsWith("SEARCH_TITLE")) { } else if (!StringUtil.isEmpty(objectName) && objectName.startsWith("SEARCH_TITLE")) {
Log.i("聊天数据源发现 ","getItemViewTypeSEARCH_TITLE");
type = TYPE_SEARCH_TITLE; type = TYPE_SEARCH_TITLE;
} }
} else if (mDataList.isEmpty() || isEmpty() || srcList.isEmpty()) { } else if (mDataList.isEmpty() || isEmpty() || srcList.isEmpty()) {
@ -124,15 +158,76 @@ public class MainConversationListAdapter extends ConversationListAdapter {
} else if (getItemViewType(position) == TYPE_SEARCH_CHAT) { } else if (getItemViewType(position) == TYPE_SEARCH_CHAT) {
bindChat(holder, position); bindChat(holder, position);
} else if (getItemViewType(position) == TYPE_SEARCH_TITLE) { } else if (getItemViewType(position) == TYPE_SEARCH_TITLE) {
Log.i("聊天数据源设置标题头","SEARCH_TITLE::"+position);
bindTitle(holder, position); bindTitle(holder, position);
return;
} else if (getItemViewType(position) != -200) { } else if (getItemViewType(position) != -200) {
bindChatNew(holder, position);
super.onBindViewHolder(holder, position); super.onBindViewHolder(holder, position);
return;
} }
if (getItemViewType(position) != -200) { if (getItemViewType(position) != -200) {
bindDefault(holder, position); 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) { private void bindDefault(ViewHolder holder, int position) {
BaseUiConversation conversation = mDataList.get(position); BaseUiConversation conversation = mDataList.get(position);
Log.i("列表", "bindDefault: 用户头像:" + conversation.mCore.getPortraitUrl()); Log.i("列表", "bindDefault: 用户头像:" + conversation.mCore.getPortraitUrl());
@ -171,7 +266,9 @@ public class MainConversationListAdapter extends ConversationListAdapter {
} }
} }
private void bindEmpty(ViewHolder holder, int position) { private void bindEmpty(ViewHolder holder, int position) {
Log.i("聊天数据源", "bindEmpty: ");
if (isChat) { 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.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); ViewUtils.findViewById(holder.itemView, R.id.textView, TextView.class).setText(R.string.not_data_message_chat_list);
@ -183,18 +280,19 @@ public class MainConversationListAdapter extends ConversationListAdapter {
public void onFinish() { public void onFinish() {
if (onRefreshListener != null) { if (onRefreshListener != null) {
Log.i("聊天数据源", "设置数据源: " + mDataList.size()); Log.i("聊天数据源", "设置数据源: " + allDataList.size());
onRefreshListener.onFinish(mDataList); onRefreshListener.onFinish(allDataList);
} }
} }
private int listHashCode = 0; private int listHashCode = 0;
@Override
public synchronized void setDataCollection(List<BaseUiConversation> data) { public synchronized void setDataCollectionV2(List<BaseUiConversation> data, boolean isSearch) {
if (data.hashCode() == listHashCode) return; if (data.hashCode() == listHashCode) return;
listHashCode = data.hashCode(); listHashCode = data.hashCode();
List<BaseUiConversation> tmp = new ArrayList<>(); List<BaseUiConversation> tmp = new ArrayList<>();
Log.i("聊天数据源", "setDataCollection: " + data.hashCode()); Log.i("聊天数据源", "size()" + data.size() + " setDataCollection: " + data.hashCode());
List<String> urls = new ArrayList<>(); List<String> urls = new ArrayList<>();
if (srcList == null) { if (srcList == null) {
srcList = new ArrayList<>(); srcList = new ArrayList<>();
@ -203,7 +301,8 @@ public class MainConversationListAdapter extends ConversationListAdapter {
if (mContext == null) if (mContext == null)
mContext = AppManager.getInstance().getLastActivity(); mContext = AppManager.getInstance().getLastActivity();
for (BaseUiConversation item : data) { for (BaseUiConversation item : data) {
if (urls.contains(item.mCore.getTargetId())) continue; if (urls.contains(item.mCore.getTargetId()) && item.mCore.getTargetId()!=null) continue;
// if ( item.mCore.getConversationTitle()==null || item.mCore.getTargetId()==null) continue;
if (item.mConversationContent != null && item.mConversationContent.toString().contains("_method_")) { if (item.mConversationContent != null && item.mConversationContent.toString().contains("_method_")) {
IMCenter.getInstance().deleteMessages(Conversation.ConversationType.PRIVATE, IMCenter.getInstance().deleteMessages(Conversation.ConversationType.PRIVATE,
item.mCore.getTargetId(), item.mCore.getTargetId(),
@ -222,7 +321,8 @@ public class MainConversationListAdapter extends ConversationListAdapter {
IMCenter.getInstance().clearMessagesUnreadStatus(Conversation.ConversationType.PRIVATE, item.mCore.getTargetId(), null); IMCenter.getInstance().clearMessagesUnreadStatus(Conversation.ConversationType.PRIVATE, item.mCore.getTargetId(), null);
} }
urls.add(item.mCore.getTargetId()); urls.add(item.mCore.getTargetId());
Log.i("聊天数据源", item.mCore.getConversationTitle() + "|" + item.mCore.getPortraitUrl() + "|" + item.mCore.getTargetId()); Log.i("聊天数据源", item.mCore.getConversationTitle() + "|" + item.mCore.getPortraitUrl() + "|" + item.mCore.getTargetId() +"|"+item.mCore.getObjectName());
if (!tmpUids.contains(item.mCore.getTargetId())) { if (!tmpUids.contains(item.mCore.getTargetId())) {
BaseUiConversation cn = new SingleConversation(mContext, item.mCore); BaseUiConversation cn = new SingleConversation(mContext, item.mCore);
srcList.add(cn); srcList.add(cn);
@ -236,13 +336,37 @@ public class MainConversationListAdapter extends ConversationListAdapter {
} }
tmp.add(item); tmp.add(item);
} }
// ToastUtil.showDebug("消息数:"+data.size()); List<BaseUiConversation> showData = null;
super.setDataCollection(tmp); if (isSearch) {
// Log.i("聊天数据源", "FilterData isSearch");
showData = tmp ;//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<BaseUiConversation> data) {
setDataCollectionV2(data, false);
}
private List<String> tmpUids = new ArrayList<>(); private List<String> tmpUids = new ArrayList<>();
public void clear() { public void clear() {
Log.i("聊天数据源", "clear: " + mDataList.size());
mDataList.clear(); mDataList.clear();
if (srcList != null) { if (srcList != null) {
srcList.clear(); srcList.clear();
@ -349,15 +473,15 @@ public class MainConversationListAdapter extends ConversationListAdapter {
BaseUiConversation conversation = mDataList.get(id); BaseUiConversation conversation = mDataList.get(id);
conversation.mCore.setSentTime(bean.getSentTime()); conversation.mCore.setSentTime(bean.getSentTime());
conversation.mCore.setUnreadMessageCount(integer); conversation.mCore.setUnreadMessageCount(integer);
if(bean.getContent() instanceof SightMessage){ if (bean.getContent() instanceof SightMessage) {
conversation.mConversationContent = new SpannableString(WordUtil.isNewZh()?"[小視頻]":"[Video]"); conversation.mConversationContent = new SpannableString(WordUtil.isNewZh() ? "[小視頻]" : "[Video]");
}else if(bean.getContent() instanceof HQVoiceMessage){ } else if (bean.getContent() instanceof HQVoiceMessage) {
conversation.mConversationContent = new SpannableString(WordUtil.isNewZh()?"[語音]":"[Voice]"); conversation.mConversationContent = new SpannableString(WordUtil.isNewZh() ? "[語音]" : "[Voice]");
} else if(bean.getContent() instanceof ImageMessage){ } else if (bean.getContent() instanceof ImageMessage) {
conversation.mConversationContent = new SpannableString(WordUtil.isNewZh()?"[圖片]":"[picture]"); conversation.mConversationContent = new SpannableString(WordUtil.isNewZh() ? "[圖片]" : "[picture]");
}else if(bean.getContent() instanceof MessageChatCardContent){ } else if (bean.getContent() instanceof MessageChatCardContent) {
conversation.mConversationContent = new SpannableString(WordUtil.isNewZh()?"[站內分享]":"[In-app sharing]"); conversation.mConversationContent = new SpannableString(WordUtil.isNewZh() ? "[站內分享]" : "[In-app sharing]");
} else{ } else {
conversation.mConversationContent = new SpannableString(((TextMessage) bean.getContent()).getContent()); conversation.mConversationContent = new SpannableString(((TextMessage) bean.getContent()).getContent());
} }
mDataList.set(id, conversation); mDataList.set(id, conversation);
@ -375,4 +499,6 @@ public class MainConversationListAdapter extends ConversationListAdapter {
}); });
} }
} }

View File

@ -56,7 +56,7 @@ public class SudGameSearchDialogPopup extends AbsDialogPopupWindow {
@Override @Override
public void dismiss() { public void dismiss() {
Bus.getOff(this); // Bus.getOff(this);
super.dismiss(); super.dismiss();
} }
@ -78,7 +78,7 @@ public class SudGameSearchDialogPopup extends AbsDialogPopupWindow {
@Override @Override
protected void onCreate() { protected void onCreate() {
super.onCreate(); super.onCreate();
Bus.getOn(this); // Bus.getOn(this);
editSearch = findViewById(R.id.edit_search); editSearch = findViewById(R.id.edit_search);
// listHistory = findViewById(R.id.list_history); // listHistory = findViewById(R.id.list_history);
listRoom = findViewById(R.id.list_room); listRoom = findViewById(R.id.list_room);

View File

@ -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;
// <string name="all_chats">All Chats</string>
// <string name="online_only">Show Online </string>
// <string name="offline_only">Show Offline </string>
// <string name="read_only">Show Read </string>
// <string name="unread_only">Show Unread </string>
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;
}
}

View File

@ -1,6 +1,8 @@
package com.yunbao.common.fragment; package com.yunbao.common.fragment;
import android.os.Bundle; import android.os.Bundle;
import android.os.Parcel;
import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
@ -9,11 +11,13 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.lifecycle.Observer; import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import com.yunbao.common.R; import com.yunbao.common.R;
import com.yunbao.common.adapter.MainConversationListAdapter; import com.yunbao.common.adapter.MainConversationListAdapter;
import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.UiConversationCodeUtil;
import com.yunbao.common.utils.WordUtil; import com.yunbao.common.utils.WordUtil;
import java.util.ArrayList; import java.util.ArrayList;
@ -26,16 +30,20 @@ import io.rong.imkit.conversationlist.model.SingleConversation;
import io.rong.imkit.event.Event; import io.rong.imkit.event.Event;
import io.rong.imlib.RongIMClient; import io.rong.imlib.RongIMClient;
import io.rong.imlib.model.Conversation; import io.rong.imlib.model.Conversation;
import io.rong.imlib.model.Message;
import io.rong.imlib.model.MessageContent;
import io.rong.imlib.model.SearchConversationResult; import io.rong.imlib.model.SearchConversationResult;
public class MainMessageChatFragment extends ConversationListFragment { public class MainMessageChatFragment extends ConversationListFragment {
private static final String TAG = "融云列表"; private static final String TAG = "融云列表";
int listHashCode = 0; int listHashCode = 0;
// ChatViewModel chatViewModel;
@Nullable @Nullable
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
Log.i(TAG, "onCreateView: 创建融云"); Log.i(TAG, "onCreateView: 创建融云");
// chatViewModel = (ChatViewModel)(new ViewModelProvider(requireActivity())).get(ChatViewModel.class);
return inflater.inflate(R.layout.rc_conversationlist_fragment, container, false); return inflater.inflate(R.layout.rc_conversationlist_fragment, container, false);
} }
@ -46,10 +54,13 @@ public class MainMessageChatFragment extends ConversationListFragment {
mConversationListViewModel.getConversationListLiveData().observe(this.getViewLifecycleOwner(), new Observer<List<BaseUiConversation>>() { mConversationListViewModel.getConversationListLiveData().observe(this.getViewLifecycleOwner(), new Observer<List<BaseUiConversation>>() {
@Override @Override
public void onChanged(List<BaseUiConversation> uiConversations) { public void onChanged(List<BaseUiConversation> uiConversations) {
if (listHashCode != uiConversations.hashCode()) { int hashCode = UiConversationCodeUtil.getListHasCode(uiConversations);
listHashCode = uiConversations.hashCode(); if (listHashCode != hashCode) {
Log.i("nwq", "刷新数据");
listHashCode = hashCode;
((MainConversationListAdapter) mAdapter).onFinish(); ((MainConversationListAdapter) mAdapter).onFinish();
} }
} }
}); });
mConversationListViewModel.getRefreshEventLiveData().observe(this.getViewLifecycleOwner(), new Observer<Event.RefreshEvent>() { mConversationListViewModel.getRefreshEventLiveData().observe(this.getViewLifecycleOwner(), new Observer<Event.RefreshEvent>() {
@ -58,7 +69,6 @@ public class MainMessageChatFragment extends ConversationListFragment {
listHashCode = 0; listHashCode = 0;
} }
}); });
} }
public void setEmptyView(int viewLayoutMsgId) { public void setEmptyView(int viewLayoutMsgId) {
@ -70,7 +80,16 @@ public class MainMessageChatFragment extends ConversationListFragment {
} }
public void refreshData() {
mRefreshLayout.autoRefresh();
//onConversationListRefresh(mRefreshLayout)
}
public void search(String search) { public void search(String search) {
if (TextUtils.isEmpty(search)){
mRefreshLayout.autoRefresh();
return;
}
((MainConversationListAdapter) mAdapter).setSearch(); ((MainConversationListAdapter) mAdapter).setSearch();
getContactsList(search); getContactsList(search);
} }
@ -84,10 +103,11 @@ public class MainMessageChatFragment extends ConversationListFragment {
List<String> uidList = new ArrayList<>(); List<String> uidList = new ArrayList<>();
BaseUiConversation conversation = new SingleConversation(getContext(), new Conversation()); BaseUiConversation conversation = new SingleConversation(getContext(), new Conversation());
conversation.mCore.setMessage(new Message());
conversation.mCore.setObjectName("SEARCH_TITLE" + WordUtil.getNewString(R.string.activity_msg_list_title_contacts)); conversation.mCore.setObjectName("SEARCH_TITLE" + WordUtil.getNewString(R.string.activity_msg_list_title_contacts));
Log.i("聊天数据源设置数据", "聊天数据源: " + conversation.mCore.getObjectName());
conversation.mCore.setConversationType(Conversation.ConversationType.PRIVATE); conversation.mCore.setConversationType(Conversation.ConversationType.PRIVATE);
list.add(conversation); list.add(conversation);
List<BaseUiConversation> data = new ArrayList<>(); List<BaseUiConversation> data = new ArrayList<>();
System.err.println(" ----------------------->" + mAdapter.getData().size()); System.err.println(" ----------------------->" + mAdapter.getData().size());
for (BaseUiConversation cn : ((MainConversationListAdapter) mAdapter).getSrcList()) { for (BaseUiConversation cn : ((MainConversationListAdapter) mAdapter).getSrcList()) {
@ -126,7 +146,9 @@ public class MainMessageChatFragment extends ConversationListFragment {
@Override @Override
public void onSuccess(List<SearchConversationResult> searchConversationResults) { public void onSuccess(List<SearchConversationResult> searchConversationResults) {
BaseUiConversation conversation = new SingleConversation(getContext(), new Conversation()); BaseUiConversation conversation = new SingleConversation(getContext(), new Conversation());
conversation.mCore.setMessage(new Message());
conversation.mCore.setObjectName("SEARCH_TITLE" + WordUtil.getNewString(R.string.activity_msg_list_title_chat_records)); conversation.mCore.setObjectName("SEARCH_TITLE" + WordUtil.getNewString(R.string.activity_msg_list_title_chat_records));
Log.i("聊天数据源设置数据", "聊天数据源: " + conversation.mCore.getObjectName());
conversation.mCore.setConversationType(Conversation.ConversationType.PRIVATE); conversation.mCore.setConversationType(Conversation.ConversationType.PRIVATE);
list.add(conversation); list.add(conversation);
List<BaseUiConversation> data = new ArrayList<>(); List<BaseUiConversation> data = new ArrayList<>();
@ -144,7 +166,10 @@ public class MainMessageChatFragment extends ConversationListFragment {
list.remove(list.size() - 1); list.remove(list.size() - 1);
} }
list.addAll(data); list.addAll(data);
mAdapter.setDataCollection(list); for (BaseUiConversation cn : list){
Log.i("聊天数据源搜索前的", cn.mCore.getConversationTitle() + "|" + cn.mCore.getPortraitUrl() + "|" + cn.mCore.getTargetId());
}
((MainConversationListAdapter) mAdapter).setDataCollectionV2(list,true);
} }
@Override @Override
@ -156,17 +181,19 @@ public class MainMessageChatFragment extends ConversationListFragment {
} }
public void onChatList() { public void onChatList() {
if(mConversationListViewModel==null)return; if (mConversationListViewModel == null) return;
((MainConversationListAdapter) mAdapter).setChat(); ((MainConversationListAdapter) mAdapter).setChat();
((MainConversationListAdapter) mAdapter).clear(); ((MainConversationListAdapter) mAdapter).clear();
System.out.println(">!>!>!>!!>"+mConversationListViewModel); System.out.println(">!>!>!>!!>" + mConversationListViewModel);
subscribeUi(); subscribeUi();
mRefreshLayout.autoRefresh();
} }
@Override @Override
protected ConversationListAdapter onResolveAdapter() { protected ConversationListAdapter onResolveAdapter() {
this.mAdapter = new MainConversationListAdapter(getContext()); MainConversationListAdapter adapter = new MainConversationListAdapter(getContext());
// adapter.setFilter(chatViewModel.getChatFilter());
this.mAdapter = adapter;
return this.mAdapter; return this.mAdapter;
} }
} }

View File

@ -13,6 +13,7 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction; import androidx.fragment.app.FragmentTransaction;
import androidx.lifecycle.ViewModelProvider;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import com.yunbao.common.R; import com.yunbao.common.R;
@ -49,7 +50,7 @@ public class MainMessageChatListFragment extends AbsMainMessageChatListFragment
public MainMessageChatListFragment(Context mContext) { public MainMessageChatListFragment(Context mContext) {
this.mContext =mContext; this.mContext =mContext;
} }
ChatViewModel chatViewModel;
@Nullable @Nullable
@Override @Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
@ -62,8 +63,10 @@ public class MainMessageChatListFragment extends AbsMainMessageChatListFragment
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
chatViewModel = (new ViewModelProvider(requireActivity())).get(ChatViewModel.class);
conversationListFragment = new MainMessageChatFragment(); conversationListFragment = new MainMessageChatFragment();
setAdapter(conversationListFragment.getAdapter()); setAdapter(conversationListFragment.getAdapter());
mAdapter.setFilter(chatViewModel.getChatFilter());
FragmentManager manager = getChildFragmentManager(); FragmentManager manager = getChildFragmentManager();
FragmentTransaction transaction = manager.beginTransaction(); FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.container, conversationListFragment); 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 @Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {

View File

@ -20,7 +20,7 @@ public class CommonHttpConsts {
public static final String DOWNLOAD_GIF = "downloadGif"; public static final String DOWNLOAD_GIF = "downloadGif";
public static final String GET_BALANCE = "getBalance"; public static final String GET_BALANCE = "getBalance";
public static final String CHECK_TOKEN_INVALID = "checkTokenInvalid"; public static final String CHECK_TOKEN_INVALID = "checkTokenInvalid";
public static final String NOTIFY_GOOGLE = "Charge.google_pay"; public static final String NOTIFY_GOOGLE = "Charge.goole_validate_panduola";
public static final String COMMUNITY_SETREPORT = "Community.setReport"; public static final String COMMUNITY_SETREPORT = "Community.setReport";
public static final String GET_USER_HOME = "getUserHome"; public static final String GET_USER_HOME = "getUserHome";

View File

@ -417,18 +417,15 @@ public class CommonHttpUtil {
.params("purchaseToken", purchaseToken) .params("purchaseToken", purchaseToken)
.params("productId", productId) .params("productId", productId)
.params("orderno", orderno) .params("orderno", orderno)
.params("package_name", "com.pandora.sy") .params("package_name", CommonAppContext.sInstance.getPackageName())
.execute(callback); .execute(callback);
} }
public static void notifyGoogle(String purchaseToken, String orderNo, String tradeNo, String allData, String gps_adid, HttpCallback callback) { public static void notifyGoogle(String purchaseToken, String productId, HttpCallback callback) {
HttpClient.getInstance().get(CommonHttpConsts.NOTIFY_GOOGLE, CommonHttpConsts.NOTIFY_GOOGLE) HttpClient.getInstance().get(CommonHttpConsts.NOTIFY_GOOGLE, CommonHttpConsts.NOTIFY_GOOGLE)
.params("purchaseToken", purchaseToken) .params("purchaseToken", purchaseToken)
.params("orderno", orderNo) .params("productId", productId)
.params("trade_no", tradeNo) .params("package_name", CommonAppContext.sInstance.getPackageName())
.params("allData", allData)
.params("gps_adid", gps_adid)
.params("package_name", "com.pandora.sy")
.execute(callback); .execute(callback);
} }
@ -437,7 +434,7 @@ public class CommonHttpUtil {
.params("purchaseToken", purchaseToken) .params("purchaseToken", purchaseToken)
.params("orderno", orderNo) .params("orderno", orderNo)
.params("trade_no", tradeNo) .params("trade_no", tradeNo)
.params("package_name", "com.pandora.sy") .params("package_name", CommonAppContext.sInstance.getPackageName())
.execute(callback); .execute(callback);
} }

View File

@ -1198,7 +1198,7 @@ public interface PDLiveApi {
@Query("open_off") int status @Query("open_off") int status
); );
@GET("/api/public/?service=Pdlmsg.sendBefore") @GET("/api/public/?service=Pdlmsg.sendBefore&new_pop=1")
Observable<ResponseModel<MessageSayHiBean>> getMessageSayHiTimer( Observable<ResponseModel<MessageSayHiBean>> getMessageSayHiTimer(
); );

View File

@ -0,0 +1,297 @@
package com.yunbao.common.pay.google;
import android.app.Activity;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.android.billingclient.api.BillingClient;
import com.android.billingclient.api.BillingClientStateListener;
import com.android.billingclient.api.BillingFlowParams;
import com.android.billingclient.api.BillingResult;
import com.android.billingclient.api.ConsumeParams;
import com.android.billingclient.api.ProductDetails;
import com.android.billingclient.api.Purchase;
import com.android.billingclient.api.PurchasesUpdatedListener;
import com.android.billingclient.api.QueryProductDetailsParams;
import com.android.billingclient.api.QueryPurchasesParams;
import com.google.android.gms.ads.identifier.AdvertisingIdClient;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GoogleApiAvailability;
import com.google.common.collect.ImmutableList;
import com.yunbao.common.CommonAppContext;
import com.yunbao.common.R;
import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback;
import java.util.ArrayList;
import java.util.List;
//谷歌支付
public class GooglePlay implements PurchasesUpdatedListener {
private String TAG = "mLog";
private BillingClient billingClient;
private GoogleBillingListener billingListener;
private GooglePlay() {
init();
}
private boolean init() {
if (getGoogleService() && billingClient == null) {
billingClient = BillingClient.newBuilder(CommonAppContext.sInstance)
.setListener(this)
.enablePendingPurchases()
.build();
startConnection();
return true;
}
if (billingClient != null && !billingClient.isReady()) {//没有连接的话去连接
startConnection();
}
if (billingClient == null)
return false;
return true;
}
private void startConnection() {
if (!billingClient.isReady()) {
//请求连接到GooglePay
billingClient.startConnection(new BillingClientStateListener() {
@Override
public void onBillingSetupFinished(@NonNull BillingResult billingResult) {
int code = billingResult.getResponseCode();
if (code != BillingClient.BillingResponseCode.OK) {
String msg = billingResult.getDebugMessage();
Log.e(TAG, "连接到GooglePay失败 code = " + code + " msg = " + msg);
return;
}
Log.e(TAG, "连接到GooglePay成功");
}
//连接失败
@Override
public void onBillingServiceDisconnected() {
Log.e(TAG, "连接到GooglePay失败请重试");
}
});
}
}
//点击商品先查询商品 然后出来支付界面调用下单
public void purchase(Activity activity, String orderNumber, String id) {
if (!init()) {
return;
}
ImmutableList<QueryProductDetailsParams.Product> productList = ImmutableList.of(QueryProductDetailsParams.Product.newBuilder()
.setProductId(id)
.setProductType(BillingClient.ProductType.INAPP)
.build());
QueryProductDetailsParams queryProductDetailsParams =
QueryProductDetailsParams.newBuilder()
.setProductList(productList)
.build();
billingClient.queryProductDetailsAsync(
queryProductDetailsParams,
(billingResult, list) -> {
//查询商品成功
int code = billingResult.getResponseCode();
if (code != BillingClient.BillingResponseCode.OK || list == null || list.isEmpty()) {
String msg = billingResult.getDebugMessage();
Log.e(TAG, "查询商品失败 code = " + code + " msg = " + msg);
return;
}
Log.e(TAG, "查询商品成功");
buyIt(activity, orderNumber, list.get(0));
}
);
}
//开始下单准备生成订单了
private void buyIt(Activity activity, String orderNumber, ProductDetails productDetails) {
List<BillingFlowParams.ProductDetailsParams> productDetailsParamsList = new ArrayList<>();
productDetailsParamsList.add(BillingFlowParams.ProductDetailsParams.newBuilder()
// retrieve a value for "productDetails" by calling queryProductDetailsAsync()
.setProductDetails(productDetails)
// For one-time products, "setOfferToken" method shouldn't be called.
// For subscriptions, to get an offer token, call
// ProductDetails.subscriptionOfferDetails() for a list of offers
// that are available to the user.
//一次性商品不需要传token
// .setOfferToken(selectedOfferToken)
.build());
BillingFlowParams billingFlowParams = BillingFlowParams.newBuilder()
.setProductDetailsParamsList(productDetailsParamsList)
.setObfuscatedAccountId(orderNumber)//好像是账号id
.build();
BillingResult billingResult = billingClient.launchBillingFlow(activity, billingFlowParams);
int code = billingResult.getResponseCode();
if (code != BillingClient.BillingResponseCode.OK) {
String msg = billingResult.getDebugMessage();
Log.e(TAG, "购买商品失败 code = " + code + " msg = " + msg);
// ToastUtil.show(getString(R.string.pay_suc));
return;
}
Log.e(TAG, "购买商品 " + productDetails.toString());
}
//消耗商品 支付成功之后调用我们后台下发商品成功之后调用消耗
public void consume(List<Purchase> list) {
if (!init()) {
return;
}
for (Purchase purchase : list) {
getConsumeGoods(purchase);
}
}
/**
* 消耗所有商品
*/
public void consumeAll() {
if (!init()) {
return;
}
//以下示例展示了如何提取用户的订阅购买交易请注意queryPurchasesAsync() 仅返回有效订阅和非消耗型一次性购买交易
QueryPurchasesParams inAppPurchasesQuery = QueryPurchasesParams.newBuilder().setProductType(BillingClient.ProductType.INAPP).build();
billingClient.queryPurchasesAsync(inAppPurchasesQuery, (billingResult, list) -> {
if (BillingClient.BillingResponseCode.OK == billingResult.getResponseCode()) {
for (Purchase purchase : list) {
//0:PurchaseState.UNSPECIFIED_STATE未知状态
//1:PurchaseState.PURCHASED付款完成
//2:PurchaseState.PENDING购买正在等待付款完成
if (Purchase.PurchaseState.PURCHASED == purchase.getPurchaseState()) {
//调用google去消费
//如果之后还出现谷歌掉单的行为在来处理
CommonHttpUtil.notifyGoogle(purchase.getPurchaseToken(),
purchase.getProducts().get(0), new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (code == 0) {
getConsumeGoods(purchase);
}
}
});
}
}
}
});
}
/**
* 公共消费商品接口
*/
private void getConsumeGoods(Purchase purchase) {
if (purchase != null) {
Log.i(TAG, "-----开始消耗商品:" + purchase.toString());
ConsumeParams.Builder consumeParams = ConsumeParams.newBuilder();
consumeParams.setPurchaseToken(purchase.getPurchaseToken());
//调用消耗商品方法
consumeAsync(consumeParams.build(), purchase);
}
}
/**
* 消耗商品
* int SERVICE_TIMEOUT = -3; //服务超时
* int FEATURE_NOT_SUPPORTED = -2; //不支持功能
* int SERVICE_DISCONNECTED = -1; //服务单元已断开
* int OK = 0; //成功
* int USER_CANCELED = 1; //用户按上一步或取消对话框
* int SERVICE_UNAVAILABLE = 2; //网络连接断开
* int BILLING_UNAVAILABLE = 3; //所请求的类型不支持 Google Play 结算服务 AIDL 版本
* int ITEM_UNAVAILABLE = 4; //请求的商品已不再出售
* int DEVELOPER_ERROR = 5; //提供给 API 的参数无效此错误也可能说明应用未针对结算服务正确签名或设置或者在其清单中缺少必要的权限
* int ERROR = 6; //API 操作期间出现严重错误
* int ITEM_ALREADY_OWNED = 7; //未能购买因为已经拥有此商品
* int ITEM_NOT_OWNED = 8; //未能消费因为尚未拥有此商品
*/
private void consumeAsync(ConsumeParams consumeParams, Purchase purchase) {
if (!init()) {
return;
}
billingClient.consumeAsync(consumeParams, (billingResult, purchaseToken) -> {
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
Log.i(TAG, "-----消耗商品成功");
} else {
Log.i(TAG, "-----消耗商品失败" + billingResult.toString() + "---" + purchaseToken + "--code:" + billingResult.getResponseCode());
}
});
}
@Override
public void onPurchasesUpdated(@NonNull BillingResult billingResult, @Nullable List<Purchase> purchases) {
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK
&& purchases != null) {
//支付成功
if (billingListener != null)//消耗掉商品放到外面调用我们服务器成功的时候去消耗 todo 暂时注释掉 这样可以模拟掉单的问题
billingListener.onPaySuccess(purchases);
/*
* 一旦您验证了购买交易您的应用就可以向用户授予使用权了若要确认与购买交易相关联的用户账号
* 您可以使用 Purchases.products:get 返回的 ProductPurchase.obfuscatedExternalAccountId适用于应用内商品的购买交易
* Purchases.subscriptions:get 返回的 SubscriptionPurchase.obfuscatedExternalAccountId适用于服务器端的订阅
* 或者 Purchase.getAccountIdentifiers() 在客户端返回的 obfuscatedAccountId如果在交易时已使用 setObfuscatedAccountId 设置该 ID
* */
// purchases.get(0).getAccountIdentifiers()
for (Purchase purchase : purchases) {
Log.d("mLog", "谷歌支付的回调 " + purchase);
}
} else if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.USER_CANCELED) {
//取消支付了
if (billingListener != null)
billingListener.onPayFailed(CommonAppContext.sInstance.getString(R.string.pay_cancel));
} else {
//支付失败
if (billingListener != null)
billingListener.onPayFailed(CommonAppContext.sInstance.getString(R.string.pay_fail));
}
}
/**
* 检测GooglePlay服务是否可用(需要导入包api "com.google.android.gms:play-services-location:11.8.0"也可以不检查跳过这个代码)
*/
public boolean getGoogleService() {
GoogleApiAvailability googleApiAvailability = GoogleApiAvailability.getInstance();
if (googleApiAvailability != null) {
int resultCode = googleApiAvailability.isGooglePlayServicesAvailable(CommonAppContext.sInstance);
return resultCode == ConnectionResult.SUCCESS;
}
return false;
}
public String getAdId() {
try {
return AdvertisingIdClient.getAdvertisingIdInfo(CommonAppContext.sInstance).getId();
} catch (Exception e) {
e.printStackTrace();
Log.e("GooglePlay", "获取谷歌的id错误了");
}
return "google_default_id";
}
public void setBillingListener(GoogleBillingListener listener) {
billingListener = listener;
}
/**
* 定义接口返回支付结果
*/
public interface GoogleBillingListener {
void onPaySuccess(List<Purchase> purchases);
void onPayFailed(String msg);
}
public static class GooglePlayHelper {
static GooglePlay googlePlay = new GooglePlay();
}
public static GooglePlay getInstance() {
return GooglePlayHelper.googlePlay;
}
}

View File

@ -83,7 +83,7 @@ public class ProcessImageUtil extends ProcessResultUtil {
if (mNeedCrop) { if (mNeedCrop) {
Uri uri = null; Uri uri = null;
if (Build.VERSION.SDK_INT >= 24) { if (Build.VERSION.SDK_INT >= 24) {
uri = FileProvider.getUriForFile(mContext, "com.pandora.sy.fileprovider", mCameraResult); uri = FileProvider.getUriForFile(mContext, mContext.getPackageName() +".fileprovider", mCameraResult);
} else { } else {
uri = Uri.fromFile(mCameraResult); uri = Uri.fromFile(mCameraResult);
} }
@ -195,7 +195,7 @@ public class ProcessImageUtil extends ProcessResultUtil {
mCameraResult = getNewFile(); mCameraResult = getNewFile();
Uri uri = null; Uri uri = null;
if (Build.VERSION.SDK_INT >= 24) { if (Build.VERSION.SDK_INT >= 24) {
uri = FileProvider.getUriForFile(mContext, "com.pandora.sy.fileprovider", mCameraResult); uri = FileProvider.getUriForFile(mContext, mContext.getPackageName()+".fileprovider", mCameraResult);
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
} else { } else {
uri = Uri.fromFile(mCameraResult); uri = Uri.fromFile(mCameraResult);
@ -255,7 +255,7 @@ public class ProcessImageUtil extends ProcessResultUtil {
startActivityForResult(intent, mCropResultCallback); startActivityForResult(intent, mCropResultCallback);
} catch (Exception e) { } catch (Exception e) {
try { try {
Uri resultUri = FileProvider.getUriForFile(mContext, "com.pandora.sy.fileprovider", mCorpResult); Uri resultUri = FileProvider.getUriForFile(mContext, mContext.getPackageName()+".fileprovider", mCorpResult);
if (resultUri == null || mFragment == null || mContext == null) { if (resultUri == null || mFragment == null || mContext == null) {
return; return;
} }

View File

@ -0,0 +1,198 @@
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<BaseUiConversation> list1, List<BaseUiConversation> list2) {
if (list1.isEmpty()){
return false;
}
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<BaseUiConversation> list2) {
int hashCode2 = getListHasCode(list2);
return hashCode1 == hashCode2;
}
public static int getListHasCode(List<BaseUiConversation> 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<BaseUiConversation> 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<BaseUiConversation> FilterData(int filterType, List<BaseUiConversation> keyList,List<BaseUiConversation> srcList) {
List<BaseUiConversation> 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<BaseUiConversation> FilterData(int filterType, List<BaseUiConversation> data) {
List<BaseUiConversation> 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;
}
}

View File

@ -63,7 +63,7 @@ public class VersionUtil {
@Override @Override
public void onConfirmClick(Dialog dialog, String content) { public void onConfirmClick(Dialog dialog, String content) {
Intent i = new Intent(android.content.Intent.ACTION_VIEW); Intent i = new Intent(android.content.Intent.ACTION_VIEW);
i.setData(Uri.parse("https://play.google.com/store/apps/details?id=com.pandora.sy")); i.setData(Uri.parse("https://play.google.com/store/apps/details?id="+context.getPackageName()));
context.startActivity(i); context.startActivity(i);
context.finish(); context.finish();
} }
@ -85,7 +85,7 @@ public class VersionUtil {
@Override @Override
public void onConfirmClick(Dialog dialog, String content) { public void onConfirmClick(Dialog dialog, String content) {
Intent i = new Intent(android.content.Intent.ACTION_VIEW); Intent i = new Intent(android.content.Intent.ACTION_VIEW);
i.setData(Uri.parse("https://play.google.com/store/apps/details?id=com.pandora.sy")); i.setData(Uri.parse("https://play.google.com/store/apps/details?id="+context.getPackageName()));
context.startActivity(i); context.startActivity(i);
context.finish(); context.finish();
} }

View File

@ -128,7 +128,7 @@ public class APKUpdateCustomPopup extends CenterPopupView {
public void onViewClicks() { public void onViewClicks() {
if (CommonAppConfig.IS_GOOGLE_PLAY == 1) { if (CommonAppConfig.IS_GOOGLE_PLAY == 1) {
Intent i = new Intent(android.content.Intent.ACTION_VIEW); Intent i = new Intent(android.content.Intent.ACTION_VIEW);
i.setData(Uri.parse("https://play.google.com/store/apps/details?id=com.pandora.sy")); i.setData(Uri.parse("https://play.google.com/store/apps/details?id="+mContext.getPackageName()));
mContext.startActivity(i); mContext.startActivity(i);
mContext.finish(); mContext.finish();
} else if (CommonAppConfig.IS_GOOGLE_PLAY == 2) { } else if (CommonAppConfig.IS_GOOGLE_PLAY == 2) {

View File

@ -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);
}
}

View File

@ -0,0 +1,11 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval"> <!-- 设置形状为圆形 -->
<solid android:color="#6DFF7C" /> <!-- 设置填充颜色 -->
<!-- 可以添加额外的属性如边框等 -->
<!-- <stroke
android:width="2dp"
android:color="#000000" /> -->
</shape>

View File

@ -0,0 +1,10 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval"> <!-- 设置形状为圆形 -->
<solid android:color="#ffff4874" /> <!-- 设置填充颜色 -->
<stroke
android:width="2dp"
android:color="#30ff4874" /> <!-- 设置边框颜色为黑色并带有 70% 的不透明度 (BB 是 alpha 值) -->
</shape>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="20dp"/>
<solid android:color="@color/white"/>
</shape>

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rc_conversation_item"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/chatTypeTv"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_weight="1"
android:textColor="@color/colorMainTab"
tools:text="全部聊天" />
<ImageView
android:id="@+id/chatTypeImg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="20dp"
android:src="@mipmap/ic_chat_type_select" />
</LinearLayout>

View File

@ -14,7 +14,6 @@
android:id="@+id/rc_conversation_portrait_rl" android:id="@+id/rc_conversation_portrait_rl"
android:layout_width="48dp" android:layout_width="48dp"
android:layout_height="48dp" android:layout_height="48dp"
android:layout_marginTop="@dimen/rc_margin_size_12" android:layout_marginTop="@dimen/rc_margin_size_12"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@ -180,6 +179,7 @@
android:layout_marginBottom="@dimen/rc_margin_size_12" android:layout_marginBottom="@dimen/rc_margin_size_12"
android:src="@drawable/rc_read_receipt" android:src="@drawable/rc_read_receipt"
android:visibility="gone" android:visibility="gone"
tools:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/rc_conversation_no_disturb" app:layout_constraintEnd_toStartOf="@+id/rc_conversation_no_disturb"
app:layout_goneMarginRight="@dimen/rc_margin_size_12" /> app:layout_goneMarginRight="@dimen/rc_margin_size_12" />

View File

@ -0,0 +1,159 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/rc_conversation_item"
android:layout_width="match_parent"
android:layout_height="@dimen/rc_conversation_item_height">
<com.yunbao.common.views.weight.ClipPathCircleImage
android:id="@+id/rc_conversation_portrait"
android:layout_width="54dp"
android:layout_height="54dp"
android:layout_marginTop="12dp"
android:scaleType="centerCrop"
android:src="@mipmap/beauty_jingbai"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/rc_conversation_live_online"
android:layout_width="12dp"
android:layout_height="12dp"
android:layout_marginTop="1dp"
android:layout_marginEnd="1dp"
android:layout_centerInParent="true"
android:src="@drawable/green_dot"
app:layout_constraintEnd_toEndOf="@+id/rc_conversation_portrait"
app:layout_constraintTop_toTopOf="@+id/rc_conversation_portrait" />
<TextView
android:id="@+id/rc_conversation_title"
style="@style/TextStyle.Alignment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginTop="4dp"
android:ellipsize="end"
android:maxWidth="120dp"
android:maxLines="1"
android:textColor="@color/rc_text_main_color"
android:textSize="13dp"
app:layout_constraintStart_toEndOf="@+id/rc_conversation_portrait"
app:layout_constraintTop_toTopOf="@+id/rc_conversation_portrait"
tools:text="张三11111111111111111111111" />
<TextView
android:id="@+id/rc_conversation_live_status"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bg_main_message_chat_list_live_timer"
android:paddingStart="5dp"
android:paddingTop="2dp"
android:paddingEnd="3dp"
android:paddingBottom="3dp"
android:singleLine="true"
android:textColor="#EC70FD"
android:layout_marginStart="12dp"
android:textSize="10sp"
app:layout_constraintTop_toTopOf="@+id/rc_conversation_title"
app:layout_constraintBottom_toBottomOf="@+id/rc_conversation_title"
app:layout_constraintStart_toEndOf="@+id/rc_conversation_title"
android:visibility="gone"
tools:text="看直播10min"
tools:visibility="visible" />
<TextView
android:id="@+id/rc_conversation_date"
style="@style/TextStyle.Alignment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="3 月 22 日"
android:layout_marginEnd="12dp"
app:layout_constraintTop_toTopOf="@+id/rc_conversation_title"
app:layout_constraintBottom_toBottomOf="@+id/rc_conversation_title"
app:layout_constraintEnd_toEndOf="parent"
android:textColor="@color/rc_auxiliary_color"
android:textSize="@dimen/rc_font_nav_or_date_size"
/>
<TextView
android:id="@+id/rc_conversation_unread_tv"
android:layout_width="wrap_content"
android:layout_marginBottom="4dp"
app:layout_constraintBottom_toBottomOf="@+id/rc_conversation_portrait"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="@+id/rc_conversation_title"
android:ellipsize="end"
android:maxLines="1"
tools:text="[已读]"
app:layout_constraintEnd_toStartOf="@id/rc_conversation_content"
android:layout_marginEnd="6dp"
android:visibility="gone"
tools:visibility="visible"
android:textColor="@color/rc_secondary_color"
android:textSize="13dp" />
<TextView
android:id="@+id/rc_conversation_content"
style="@style/TextStyle.Alignment"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingEnd="6dp"
android:ellipsize="end"
android:maxLines="1"
android:textColor="@color/rc_secondary_color"
android:textSize="13dp"
app:layout_constraintEnd_toStartOf="@+id/rc_conversation_read_receipt"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toEndOf="@+id/rc_conversation_unread_tv"
android:layout_marginBottom="4dp"
app:layout_constraintBottom_toBottomOf="@+id/rc_conversation_portrait"
tools:text="你好朋友111111111111111111111" />
<TextView
android:id="@+id/rc_conversation_unread_count"
app:layout_constraintTop_toTopOf="@+id/rc_conversation_content"
app:layout_constraintBottom_toBottomOf="@+id/rc_conversation_content"
app:layout_constraintEnd_toEndOf="@+id/rc_conversation_date"
style="@style/TextStyle.Alignment"
app:layout_constraintDimensionRatio="1"
android:layout_width="18dp"
android:gravity="center"
android:layout_height="18dp"
android:background="@drawable/red_dot"
android:text="15"
android:textColor="@color/rc_white_color"
android:textSize="10sp" />
<ImageView
android:id="@+id/rc_conversation_no_disturb"
android:layout_width="wrap_content"
android:layout_marginEnd="@dimen/rc_margin_size_2"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="@+id/rc_conversation_unread_count"
app:layout_constraintBottom_toBottomOf="@+id/rc_conversation_unread_count"
app:layout_constraintEnd_toStartOf="@+id/rc_conversation_unread_count"
android:src="@drawable/rc_no_disturb"
android:visibility="gone"
tools:visibility="visible" />
<ImageView
android:id="@+id/rc_conversation_read_receipt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/rc_margin_size_2"
android:src="@drawable/rc_read_receipt"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/rc_conversation_no_disturb"
app:layout_constraintEnd_toStartOf="@+id/rc_conversation_no_disturb"
app:layout_constraintTop_toTopOf="@+id/rc_conversation_no_disturb"
app:layout_constraintVertical_bias="1.0"
tools:visibility="visible" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@ -0,0 +1,139 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/root"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:background="@drawable/shape_white">
<TextView
android:id="@+id/chatTypeTv1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="22dp"
android:layout_weight="1"
android:text="@string/all_chats"
android:textColor="#777777"
android:textSize="15sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:textColor="@color/colorMainTab" />
<ImageView
android:id="@+id/chatTypeImg1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="20dp"
android:padding="5dp"
android:src="@mipmap/ic_chat_type_unselect"
app:layout_constraintBottom_toBottomOf="@+id/chatTypeTv1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/chatTypeTv1"
tools:src="@mipmap/ic_chat_type_select" />
<TextView
android:id="@+id/chatTypeTv2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="22dp"
android:layout_weight="1"
android:text="@string/online_only"
android:textColor="#777777"
android:textSize="15sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/chatTypeTv1" />
<ImageView
android:id="@+id/chatTypeImg2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:padding="5dp"
android:src="@mipmap/ic_chat_type_unselect"
app:layout_constraintBottom_toBottomOf="@+id/chatTypeTv2"
app:layout_constraintEnd_toEndOf="@+id/chatTypeImg1"
app:layout_constraintTop_toTopOf="@+id/chatTypeTv2" />
<TextView
android:id="@+id/chatTypeTv3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="22dp"
android:layout_weight="1"
android:text="@string/offline_only"
android:textColor="#777777"
android:textSize="15sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/chatTypeTv2" />
<ImageView
android:id="@+id/chatTypeImg3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:padding="5dp"
android:src="@mipmap/ic_chat_type_unselect"
app:layout_constraintBottom_toBottomOf="@+id/chatTypeTv3"
app:layout_constraintEnd_toEndOf="@+id/chatTypeImg1"
app:layout_constraintTop_toTopOf="@+id/chatTypeTv3" />
<TextView
android:id="@+id/chatTypeTv4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="22dp"
android:layout_weight="1"
android:text="@string/read_only"
android:textColor="#777777"
android:textSize="15sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/chatTypeTv3" />
<ImageView
android:id="@+id/chatTypeImg4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:padding="5dp"
android:src="@mipmap/ic_chat_type_unselect"
app:layout_constraintBottom_toBottomOf="@+id/chatTypeTv4"
app:layout_constraintEnd_toEndOf="@+id/chatTypeImg1"
app:layout_constraintTop_toTopOf="@+id/chatTypeTv4" />
<TextView
android:id="@+id/chatTypeTv5"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="24dp"
android:layout_marginTop="22dp"
android:layout_marginBottom="20dp"
android:layout_weight="1"
android:text="@string/unread_only"
android:textColor="#777777"
android:textSize="15sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/chatTypeTv4" />
<ImageView
android:id="@+id/chatTypeImg5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:padding="5dp"
android:src="@mipmap/ic_chat_type_unselect"
app:layout_constraintBottom_toBottomOf="@+id/chatTypeTv5"
app:layout_constraintEnd_toEndOf="@+id/chatTypeImg1"
app:layout_constraintTop_toTopOf="@+id/chatTypeTv5" />
</androidx.constraintlayout.widget.ConstraintLayout>

Binary file not shown.

After

Width:  |  Height:  |  Size: 642 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 542 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -1489,4 +1489,11 @@ Limited ride And limited avatar frame</string>
<string name="live_data_tip">* Non-real-time calculation of data</string> <string name="live_data_tip">* Non-real-time calculation of data</string>
<string name="live_data_msg2">Historical data can be viewed in the anchor center</string> <string name="live_data_msg2">Historical data can be viewed in the anchor center</string>
<string name="live_data_msg1">This live information</string> <string name="live_data_msg1">This live information</string>
<string name="message_chat_msg_read_tip">[Read]</string>
<string name="message_chat_msg_unread_tip">[Unread]</string>
<string name="all_chats">All Chats</string>
<string name="online_only">Show Online </string>
<string name="offline_only">Show Offline </string>
<string name="read_only">Show Read </string>
<string name="unread_only">Show Unread </string>
</resources> </resources>

View File

@ -1619,4 +1619,11 @@
<string name="live_data_msg2">歷史數據可在主播中心查看</string> <string name="live_data_msg2">歷史數據可在主播中心查看</string>
<string name="live_data_msg1">本場直播信息</string> <string name="live_data_msg1">本場直播信息</string>
<string name="message_chat_msg_read_tip">[已讀]</string>
<string name="message_chat_msg_unread_tip">[未讀]</string>
<string name="all_chats">全部聊天</string>
<string name="online_only">僅展示在線</string>
<string name="offline_only">僅展示離線</string>
<string name="read_only">展示對方已讀</string>
<string name="unread_only">展示對方未讀</string>
</resources> </resources>

View File

@ -1427,4 +1427,11 @@ Limited ride And limited avatar frame</string>
<string name="live_data_tip">* Non-real-time calculation of data</string> <string name="live_data_tip">* Non-real-time calculation of data</string>
<string name="live_data_msg2">Historical data can be viewed in the anchor center</string> <string name="live_data_msg2">Historical data can be viewed in the anchor center</string>
<string name="live_data_msg1">This live information</string> <string name="live_data_msg1">This live information</string>
<string name="message_chat_msg_read_tip">[Read]</string>
<string name="message_chat_msg_unread_tip">[Unread]</string>
<string name="all_chats">All Chats</string>
<string name="online_only">Show Online </string>
<string name="offline_only">Show Offline </string>
<string name="read_only">Show Read </string>
<string name="unread_only">Show Unread </string>
</resources> </resources>

View File

@ -24,6 +24,6 @@ android.nonTransitiveRClass=false
systemProp.http.proxyHost=127.0.0.1 systemProp.http.proxyHost=127.0.0.1
systemProp.https.proxyHost=127.0.0.1 systemProp.https.proxyHost=127.0.0.1
systemProp.https.proxyPort=7890 systemProp.https.proxyPort=9098
systemProp.http.proxyPort=7890 systemProp.http.proxyPort=9098
#android.enableR8.fullMode=true android.enableR8.fullMode=true

View File

@ -1,63 +0,0 @@
{
"project_info": {
"project_number": "867032862719",
"project_id": "pdlnew",
"storage_bucket": "pdlnew.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:867032862719:android:841a73fdfb6c37453ae1ca",
"android_client_info": {
"package_name": "com.pandora.sy"
}
},
"oauth_client": [
{
"client_id": "867032862719-af2dnojobjd8s6ekdr1is1vev8nk36sv.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.pandora.sy",
"certificate_hash": "38cc19306c9facee36a9224e9a4070bc0be15c7d"
}
},
{
"client_id": "867032862719-ohaa1f18e186qpasvgt7qkk1i1pivniq.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.pandora.sy",
"certificate_hash": "b66dc8d21cfcf6c729577ddcf0c312b2a31ed872"
}
},
{
"client_id": "867032862719-snpbqruvqcc9fsifjnmm1h3dcgtr8am4.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "com.pandora.sy",
"certificate_hash": "15fc5e70cf238323bf7111c8c627803985478e87"
}
},
{
"client_id": "867032862719-ep4r92lpjmn7gs9tg0r7q0l75a4gm9mt.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyAnlY2aBEGyg7QpghHo7EaMRkM89dVNgq8"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "867032862719-ep4r92lpjmn7gs9tg0r7q0l75a4gm9mt.apps.googleusercontent.com",
"client_type": 3
}
]
}
}
}
],
"configuration_version": "1"
}

View File

@ -441,7 +441,7 @@ public class EntryActivity extends AppCompatActivity {
} else if (loginType == 4) { } else if (loginType == 4) {
try { try {
// App-to-app login // App-to-app login
Intent loginIntent = LineLoginApi.getLoginIntent(findViewById(R.id.btn_line).getContext(), "1656399535", new LineAuthenticationParams.Builder().scopes(Arrays.asList(Scope.PROFILE)) Intent loginIntent = LineLoginApi.getLoginIntent(findViewById(R.id.btn_line).getContext(), "2006124380", new LineAuthenticationParams.Builder().scopes(Arrays.asList(Scope.PROFILE))
// .nonce("<a randomly-generated string>") // nonce can be used to improve security // .nonce("<a randomly-generated string>") // nonce can be used to improve security
.build()); .build());
startActivityForResult(loginIntent, 1001); startActivityForResult(loginIntent, 1001);

View File

@ -1,8 +1,6 @@
package com.yunbao.main.activity; package com.yunbao.main.activity;
import static com.yunbao.main.activity.MyWalletActivity.dis;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler; import android.os.Handler;
@ -16,15 +14,17 @@ import android.webkit.WebView;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import com.facebook.appevents.AppEventsConstants; import com.android.billingclient.api.Purchase;
import com.yunbao.common.http.CommonHttpUtil; import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback; import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.utils.GoogleUtils; import com.yunbao.common.pay.google.GooglePlay;
import com.yunbao.common.utils.StringUtil; import com.yunbao.common.utils.StringUtil;
import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.ToastUtil;
import com.yunbao.main.R; import com.yunbao.main.R;
import com.yunbao.main.views.TestWebViewClient; import com.yunbao.main.views.TestWebViewClient;
import java.util.List;
@SuppressLint("ValidFragment") @SuppressLint("ValidFragment")
public class GoogleFragment extends Fragment { public class GoogleFragment extends Fragment {
@ -38,7 +38,7 @@ public class GoogleFragment extends Fragment {
private String url; private String url;
String adid = null; String adid = null;
GoogleUtils googleUtils; private GooglePlay googlePlay;
boolean isGoogleService = true; boolean isGoogleService = true;
@ -62,17 +62,16 @@ public class GoogleFragment extends Fragment {
Log.e("ttt", url); Log.e("ttt", url);
rlWebview.loadUrl(url); rlWebview.loadUrl(url);
googleUtils = new GoogleUtils(getActivity()); googlePlay = GooglePlay.getInstance();
// 验证是否已在此设备上安装并启用Google Play服务以及此设备上安装的旧版本是否为此客户端所需的版本 // 验证是否已在此设备上安装并启用Google Play服务以及此设备上安装的旧版本是否为此客户端所需的版本
if (googleUtils.getGoogleService()) { if (googlePlay.getGoogleService()) {
isGoogleService = true; isGoogleService = true;
// 支持Google服务 // 支持Google服务
initGooglePay();
new Thread() { new Thread() {
@Override @Override
public void run() { public void run() {
adid = googleUtils.getAdid(); adid = googlePlay.getAdId();
} }
}.start(); }.start();
} }
@ -100,11 +99,6 @@ public class GoogleFragment extends Fragment {
String TAG = "GooglePay"; String TAG = "GooglePay";
private void initGooglePay() {
googleUtils = new GoogleUtils(getActivity());
googleUtils.initGooglePay();
}
private Handler payHandler = new Handler(); private Handler payHandler = new Handler();
//js调用原生 //js调用原生
@ -117,51 +111,31 @@ public class GoogleFragment extends Fragment {
mProductId = ProductId; mProductId = ProductId;
mOrderid = OrderNumber; mOrderid = OrderNumber;
MoneyUsds = MoneyUsd; MoneyUsds = MoneyUsd;
googlePlay.setBillingListener(new GooglePlay.GoogleBillingListener() {
googleUtils.setBillingListener(new GoogleUtils.GoogleBillingListener() {
@Override @Override
public void onPaySuccess(String token, String orderId) { public void onPaySuccess(List<Purchase> purchases) {
payHandler.post(new Runnable() { Log.i("mLog", "调用谷歌支付成功了 " + purchases.toString());
@Override CommonHttpUtil.notifyGoogle(purchases.get(0).getPurchaseToken(),
public void run() { purchases.get(0).getProducts().get(0), new HttpCallback() {
CommonHttpUtil.notifyGoogle(token, orderId, mProductId, mOrderid, adid, new HttpCallback() {
@Override @Override
public void onSuccess(int code, String msg, String[] info) { public void onSuccess(int code, String msg, String[] info) {
if (code == 0) { if (code == 0) {
Bundle params = new Bundle(); googlePlay.consume(purchases);
params.putString("currency", "HKD"); getActivity().finish();
params.putString("money", MoneyUsds);
Bundle fb_params = new Bundle();
fb_params.putString(AppEventsConstants.EVENT_PARAM_CURRENCY, "HKD");
fb_params.putString(AppEventsConstants.EVENT_PARAM_CONTENT_ID, mProductId);
//Google官方充值通知
Bundle google_params = new Bundle();
google_params.putString("currency", "HKD");
google_params.putString("product_id", mProductId);
google_params.putString("transaction_id", mOrderid);
google_params.putString("value", MoneyUsds);
google_params.putString("price", MoneyUsds);
google_params.putString("quantity", "1");
dis();
ToastUtil.show(getString(R.string.pay_suc)); ToastUtil.show(getString(R.string.pay_suc));
} else {
ToastUtil.show(msg);
} }
} }
}); });
} }
});
}
@Override @Override
public void onPayFailed(String msg) { public void onPayFailed(String msg) {
payHandler.post(new Runnable() {
@Override
public void run() {
ToastUtil.show(msg); ToastUtil.show(msg);
} }
}); });
} googlePlay.purchase(getActivity(), mOrderid, mProductId);
});
googleUtils.purchase(mProductId);
} }
lastClickTime = currentTime; lastClickTime = currentTime;

View File

@ -18,17 +18,18 @@ import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.ViewPager; import androidx.viewpager.widget.ViewPager;
import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.facade.annotation.Route;
import com.yunbao.common.utils.MobclickAgent;
import com.yunbao.common.CommonAppConfig; import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.activity.AbsActivity; import com.yunbao.common.activity.AbsActivity;
import com.yunbao.common.fragment.LoadingDialog; import com.yunbao.common.fragment.LoadingDialog;
import com.yunbao.common.http.CommonHttpUtil; import com.yunbao.common.http.CommonHttpUtil;
import com.yunbao.common.http.HttpCallback; import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.manager.IMLoginManager; import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.pay.google.GooglePlay;
import com.yunbao.common.pay.hw.HwBuilder; import com.yunbao.common.pay.hw.HwBuilder;
import com.yunbao.common.pay.samsung.SamsungUtil; import com.yunbao.common.pay.samsung.SamsungUtil;
import com.yunbao.common.utils.GoogleUtils; import com.yunbao.common.utils.GoogleUtils;
import com.yunbao.common.utils.L; import com.yunbao.common.utils.L;
import com.yunbao.common.utils.MobclickAgent;
import com.yunbao.common.utils.RouteUtil; import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.ToastUtil; import com.yunbao.common.utils.ToastUtil;
import com.yunbao.main.R; import com.yunbao.main.R;
@ -62,7 +63,7 @@ public class MyWalletActivity extends AbsActivity {
public static String orderId; public static String orderId;
HwBuilder hwBuilder; HwBuilder hwBuilder;
GoogleUtils googleUtils; private GooglePlay googlePlay;
LoadingDialog loadingDialog; LoadingDialog loadingDialog;
SamsungUtil samsungUtil; SamsungUtil samsungUtil;
@ -78,17 +79,15 @@ public class MyWalletActivity extends AbsActivity {
mw = MyWalletActivity.this; mw = MyWalletActivity.this;
setTitle(mContext.getString(R.string.wallet)); setTitle(mContext.getString(R.string.wallet));
if (CommonAppConfig.IS_GOOGLE_PLAY == 1) { if (CommonAppConfig.IS_GOOGLE_PLAY == 2) {
googleUtils = new GoogleUtils(mContext);
googleUtils.initGooglePay();
} else if (CommonAppConfig.IS_GOOGLE_PLAY == 2) {
hwBuilder = new HwBuilder(MyWalletActivity.this); hwBuilder = new HwBuilder(MyWalletActivity.this);
} else if (CommonAppConfig.IS_GOOGLE_PLAY == 3) { } else if (CommonAppConfig.IS_GOOGLE_PLAY == 3) {
samsungUtil = SamsungUtil.newInstance(mContext); samsungUtil = SamsungUtil.newInstance(mContext);
samsungUtil.init(); samsungUtil.init();
}else{ } else {
googleUtils = new GoogleUtils(mContext); googlePlay = GooglePlay.getInstance();
googleUtils.initGooglePay(); //消耗所有商品
googlePlay.consumeAll();
} }
@ -104,50 +103,8 @@ public class MyWalletActivity extends AbsActivity {
loadingDialog.setShowText(getString(R.string.order_query)); loadingDialog.setShowText(getString(R.string.order_query));
if (CommonAppConfig.IS_GOOGLE_PLAY == 1) { if (CommonAppConfig.IS_GOOGLE_PLAY == 1) {
googleUtils.setQueryPurchaseListener(mContext, new GoogleUtils.QueryPurchasesListener() { //消耗所有商品
@Override googlePlay.consumeAll();
public void onResult(JSONObject obj) {
try {
int code = obj.getInt("querySize");
if (code == 0) {
payHandler.post(runnable1);
payHandler.postDelayed(runnable2, 1000);
} else {
JSONArray tokenList = obj.getJSONArray("tokenList");
JSONArray orderList = obj.getJSONArray("orderList");
String tradeNo = obj.getString("tradeNo");
for (int i = 0; i < tokenList.length(); i++) {
int finalI = i;
payHandler.post(new Runnable() {
@Override
public void run() {
//谷歌掉单处理
try {
CommonHttpUtil.Google_sec_pay(tokenList.getString(finalI), orderList.getString(finalI), tradeNo, new HttpCallback() {
@Override
public void onSuccess(int code, String msg, String[] info) {
if (finalI == tokenList.length() - 1) {
loadingDialog.setShowText(getString(R.string.order_query_success));
loadingDialog.dismiss();
}
ToastUtil.show("充值已到账");
finish();
}
});
} catch (JSONException e) {
e.printStackTrace();
}
}
});
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
});
googleUtils.queryPurchasesAsync();
} else if (CommonAppConfig.IS_GOOGLE_PLAY == 2) { } else if (CommonAppConfig.IS_GOOGLE_PLAY == 2) {
hwBuilder.consume(); hwBuilder.consume();
payHandler.post(runnable1); payHandler.post(runnable1);
@ -186,12 +143,12 @@ public class MyWalletActivity extends AbsActivity {
googleFragment1 = new GoogleFragment(); googleFragment1 = new GoogleFragment();
Bundle bundle1 = new Bundle(); Bundle bundle1 = new Bundle();
bundle1.putString("url", CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&a=googlepaycoin&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd" + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0")); bundle1.putString("url", CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&a=googlepaycoin&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=panduo" + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
googleFragment1.setArguments(bundle1); googleFragment1.setArguments(bundle1);
googleFragment2 = new GoogleFragment(); googleFragment2 = new GoogleFragment();
Bundle bundle2 = new Bundle(); Bundle bundle2 = new Bundle();
bundle2.putString("url", CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&a=googlepaygole&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd" + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0")); bundle2.putString("url", CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&a=googlepaygole&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=panduo" + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
googleFragment2.setArguments(bundle2); googleFragment2.setArguments(bundle2);
} else if (CommonAppConfig.IS_GOOGLE_PLAY == 2) { } else if (CommonAppConfig.IS_GOOGLE_PLAY == 2) {
//华为 //华为
@ -203,12 +160,12 @@ public class MyWalletActivity extends AbsActivity {
huaWeiFragment1 = new HuaWeiFragment(); huaWeiFragment1 = new HuaWeiFragment();
Bundle bundle1 = new Bundle(); Bundle bundle1 = new Bundle();
bundle1.putString("url", CommonAppConfig.HOST + "/themes/simplebootx/appapi/mall/huaweipaycoin.html?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd"); bundle1.putString("url", CommonAppConfig.HOST + "/themes/simplebootx/appapi/mall/huaweipaycoin.html?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=panduo");
huaWeiFragment1.setArguments(bundle1); huaWeiFragment1.setArguments(bundle1);
huaWeiFragment2 = new HuaWeiFragment(); huaWeiFragment2 = new HuaWeiFragment();
Bundle bundle2 = new Bundle(); Bundle bundle2 = new Bundle();
bundle2.putString("url", CommonAppConfig.HOST + "/themes/simplebootx/appapi/mall/huaweipaygole.html?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd"); bundle2.putString("url", CommonAppConfig.HOST + "/themes/simplebootx/appapi/mall/huaweipaygole.html?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=panduo");
huaWeiFragment2.setArguments(bundle2); huaWeiFragment2.setArguments(bundle2);
} else if (CommonAppConfig.IS_GOOGLE_PLAY == 3) { } else if (CommonAppConfig.IS_GOOGLE_PLAY == 3) {
@ -271,12 +228,12 @@ public class MyWalletActivity extends AbsActivity {
huaWeiFragment1 = new HuaWeiFragment(); huaWeiFragment1 = new HuaWeiFragment();
Bundle bundle1 = new Bundle(); Bundle bundle1 = new Bundle();
bundle1.putString("url", CommonAppConfig.HOST + "/themes/simplebootx/appapi/mall/huaweipaycoin.html?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd"); bundle1.putString("url", CommonAppConfig.HOST + "/themes/simplebootx/appapi/mall/huaweipaycoin.html?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=panduo");
huaWeiFragment1.setArguments(bundle1); huaWeiFragment1.setArguments(bundle1);
huaWeiFragment2 = new HuaWeiFragment(); huaWeiFragment2 = new HuaWeiFragment();
Bundle bundle2 = new Bundle(); Bundle bundle2 = new Bundle();
bundle2.putString("url", CommonAppConfig.HOST + "/themes/simplebootx/appapi/mall/huaweipaygole.html?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd"); bundle2.putString("url", CommonAppConfig.HOST + "/themes/simplebootx/appapi/mall/huaweipaygole.html?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=panduo");
huaWeiFragment2.setArguments(bundle2); huaWeiFragment2.setArguments(bundle2);
} else if (CommonAppConfig.IS_GOOGLE_PLAY == 3) { } else if (CommonAppConfig.IS_GOOGLE_PLAY == 3) {
rView.setVisibility(View.VISIBLE); rView.setVisibility(View.VISIBLE);
@ -287,12 +244,12 @@ public class MyWalletActivity extends AbsActivity {
samsungFragment1 = new SamsungFragment(); samsungFragment1 = new SamsungFragment();
Bundle bundle1 = new Bundle(); Bundle bundle1 = new Bundle();
bundle1.putString("url", CommonAppConfig.HOST + "/themes/simplebootx/appapi/mall/samsungpaycoin.html?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd" + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0")); bundle1.putString("url", CommonAppConfig.HOST + "/themes/simplebootx/appapi/mall/samsungpaycoin.html?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=panduo" + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
samsungFragment1.setArguments(bundle1); samsungFragment1.setArguments(bundle1);
samsungFragment2 = new SamsungFragment(); samsungFragment2 = new SamsungFragment();
Bundle bundle2 = new Bundle(); Bundle bundle2 = new Bundle();
bundle2.putString("url", CommonAppConfig.HOST + "/themes/simplebootx/appapi/mall/samsungpaygole.html?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd" + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0")); bundle2.putString("url", CommonAppConfig.HOST + "/themes/simplebootx/appapi/mall/samsungpaygole.html?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=panduo" + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
samsungFragment2.setArguments(bundle2); samsungFragment2.setArguments(bundle2);
} else { } else {
Log.i("tss", "不是首充"); Log.i("tss", "不是首充");
@ -300,17 +257,17 @@ public class MyWalletActivity extends AbsActivity {
walletFragment = new WalletFragment(); walletFragment = new WalletFragment();
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putString("url", CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&a=walletbean&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd" + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0")); bundle.putString("url", CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&a=walletbean&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=panduo" + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
walletFragment.setArguments(bundle); walletFragment.setArguments(bundle);
googleFragment1 = new GoogleFragment(); googleFragment1 = new GoogleFragment();
Bundle bundle1 = new Bundle(); Bundle bundle1 = new Bundle();
bundle1.putString("url", CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&a=walletcoin&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd" + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0")); bundle1.putString("url", CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&a=walletcoin&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=panduo" + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
googleFragment1.setArguments(bundle1); googleFragment1.setArguments(bundle1);
googleFragment2 = new GoogleFragment(); googleFragment2 = new GoogleFragment();
Bundle bundle2 = new Bundle(); Bundle bundle2 = new Bundle();
bundle2.putString("url", CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&a=walletgold&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd" + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0")); bundle2.putString("url", CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&a=walletgold&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=panduo" + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
googleFragment2.setArguments(bundle2); googleFragment2.setArguments(bundle2);
} }
} }
@ -491,7 +448,7 @@ public class MyWalletActivity extends AbsActivity {
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); throw new RuntimeException(e);
} }
} }

View File

@ -32,9 +32,11 @@ import android.widget.Toast;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.constraintlayout.widget.ConstraintLayout; import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.constraintlayout.widget.Group;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentActivity;
import androidx.lifecycle.ViewModelProvider;
import androidx.viewpager2.adapter.FragmentStateAdapter; import androidx.viewpager2.adapter.FragmentStateAdapter;
import androidx.viewpager2.widget.ViewPager2; import androidx.viewpager2.widget.ViewPager2;
@ -43,12 +45,15 @@ import com.binioter.guideview.Guide;
import com.binioter.guideview.GuideBuilder; import com.binioter.guideview.GuideBuilder;
import com.facebook.appevents.AppEventsLogger; import com.facebook.appevents.AppEventsLogger;
import com.lxj.xpopup.XPopup; import com.lxj.xpopup.XPopup;
import com.lxj.xpopup.core.BasePopupView;
import com.lxj.xpopup.enums.PopupPosition; import com.lxj.xpopup.enums.PopupPosition;
import com.lxj.xpopup.interfaces.XPopupCallback;
import com.opensource.svgaplayer.SVGADrawable; import com.opensource.svgaplayer.SVGADrawable;
import com.opensource.svgaplayer.SVGAImageView; import com.opensource.svgaplayer.SVGAImageView;
import com.opensource.svgaplayer.SVGAParser; import com.opensource.svgaplayer.SVGAParser;
import com.opensource.svgaplayer.SVGAVideoEntity; import com.opensource.svgaplayer.SVGAVideoEntity;
import com.yunbao.common.CommonAppConfig; import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.fragment.ChatViewModel;
import com.yunbao.common.fragment.MainMessageRecommendFragment; import com.yunbao.common.fragment.MainMessageRecommendFragment;
import com.yunbao.common.utils.DebugUtils; import com.yunbao.common.utils.DebugUtils;
import com.yunbao.common.utils.DialogUitl; 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.ViewPageIndicatorUtils;
import com.yunbao.common.utils.WordUtil; import com.yunbao.common.utils.WordUtil;
import com.yunbao.common.views.AbsMainViewHolder; import com.yunbao.common.views.AbsMainViewHolder;
import com.yunbao.common.views.MsgChatTypeSelectPoPupView;
import com.yunbao.common.views.MsgRecommendPopupView; import com.yunbao.common.views.MsgRecommendPopupView;
import com.yunbao.common.views.MsgSysDelPopupView; import com.yunbao.common.views.MsgSysDelPopupView;
import com.yunbao.common.views.weight.ViewClicksAntiShake; import com.yunbao.common.views.weight.ViewClicksAntiShake;
@ -132,17 +138,20 @@ public class MainMessageViewHolder extends AbsMainViewHolder {
private MagicIndicator mIndicator; private MagicIndicator mIndicator;
private List<AbsMainMessageChatListFragment> fragmentList; private List<AbsMainMessageChatListFragment> fragmentList;
private ConstraintLayout tabLayout1, tabLayout2, tabLayout3; private Group tabLayout1, tabLayout2, tabLayout3;
private TextView tab1, tab2, tab3; private TextView tab1, tab2, tab3;
private ImageView imageView1, imageView2, imageView3;
private View tab_line1, tab_line2, tab_line3; private View tab_line1, tab_line2, tab_line3;
private ImageView tab_icon; private ImageView tab_icon;
private List<ConstraintLayout> relativeLayouts = new ArrayList<>(); private List<Group> relativeLayouts = new ArrayList<>();
private List<TextView> tabTexts = new ArrayList<>(); private List<TextView> tabTexts = new ArrayList<>();
private List<View> tabLine = new ArrayList<>(); private List<View> tabLine = new ArrayList<>();
private LinearLayout tabLayouts; private List<ImageView> tabExpend = new ArrayList<>();
private ConstraintLayout tabLayouts;
private int userType = 0; // (0)普通用户 (1)主播A (2)主播B private int userType = 0; // (0)普通用户 (1)主播A (2)主播B
ChatViewModel chatViewModel;
public MainMessageViewHolder setHomeZdyPop(String homeZdyPop) { public MainMessageViewHolder setHomeZdyPop(String homeZdyPop) {
this.homeZdyPop = homeZdyPop; this.homeZdyPop = homeZdyPop;
@ -156,6 +165,7 @@ public class MainMessageViewHolder extends AbsMainViewHolder {
public MainMessageViewHolder(MainActivity context, ViewGroup parentView) { public MainMessageViewHolder(MainActivity context, ViewGroup parentView) {
super(context, parentView); super(context, parentView);
mContext = context; mContext = context;
chatViewModel= (new ViewModelProvider(mContext)).get(ChatViewModel.class);
} }
@Override @Override
@ -193,14 +203,28 @@ public class MainMessageViewHolder extends AbsMainViewHolder {
tabLayouts = findViewById(R.id.tabLayouts); tabLayouts = findViewById(R.id.tabLayouts);
tab_icon = findViewById(R.id.tab_icon); tab_icon = findViewById(R.id.tab_icon);
tabLayout1 = findViewById(R.id.tabLayout1); tabLayout1 = findViewById(R.id.group_tab1);
tabLayout2 = findViewById(R.id.tabLayout2); tabLayout2 = findViewById(R.id.group_tab2);
tabLayout3 = findViewById(R.id.tabLayout3); tabLayout3 = findViewById(R.id.group_tab3);
tab1 = findViewById(R.id.tab1); tab1 = findViewById(R.id.tab1);
tab2 = findViewById(R.id.tab2); tab2 = findViewById(R.id.tab2);
tab3 = findViewById(R.id.tab3); 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_line1 = findViewById(R.id.tab_line1);
tab_line2 = findViewById(R.id.tab_line2); tab_line2 = findViewById(R.id.tab_line2);
tab_line3 = findViewById(R.id.tab_line3); 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() { private void initFragment() {
final String[] titles; final String[] titles;
fragmentList = new ArrayList<>(); fragmentList = new ArrayList<>();
@ -264,9 +355,9 @@ public class MainMessageViewHolder extends AbsMainViewHolder {
return fragmentList.get(i); return fragmentList.get(i);
} }
}); });
if(userType==1){ if (userType == 1) {
viewPager.setCurrentItem(1); viewPager.setCurrentItem(1);
}else{ } else {
viewPager.setCurrentItem(0); viewPager.setCurrentItem(0);
} }
viewPager.setUserInputEnabled(false); viewPager.setUserInputEnabled(false);
@ -340,7 +431,7 @@ public class MainMessageViewHolder extends AbsMainViewHolder {
@Override @Override
public void onPageSelected(int position) { public void onPageSelected(int position) {
super.onPageSelected(position); super.onPageSelected(position);
if(!StringUtil.isEmpty(search.getText().toString())) { if (!StringUtil.isEmpty(search.getText().toString())) {
search.setText(""); search.setText("");
} }
selectTab(position); selectTab(position);
@ -369,6 +460,12 @@ public class MainMessageViewHolder extends AbsMainViewHolder {
}); });
} }
private void showChatTypeSelect() {
}
private void initTabView() { private void initTabView() {
relativeLayouts = new ArrayList<>(); relativeLayouts = new ArrayList<>();
tabTexts = new ArrayList<>(); tabTexts = new ArrayList<>();
@ -382,14 +479,19 @@ public class MainMessageViewHolder extends AbsMainViewHolder {
tabTexts.add(tab2); tabTexts.add(tab2);
tabTexts.add(tab3); tabTexts.add(tab3);
tabExpend.add(imageView1);
tabExpend.add(imageView2);
tabExpend.add(imageView3);
tabLine.add(tab_line1); tabLine.add(tab_line1);
tabLine.add(tab_line2); tabLine.add(tab_line2);
tabLine.add(tab_line3); tabLine.add(tab_line3);
if (userType == 0) { //普通用户 if (userType == 0) { //普通用户
relativeLayouts.get(0).setVisibility(View.VISIBLE); 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(); ViewGroup.LayoutParams params = tabLayouts.getLayoutParams();
params.width = LinearLayout.LayoutParams.WRAP_CONTENT; params.width = LinearLayout.LayoutParams.WRAP_CONTENT;
//tabExpend.get(0).setVisibility(View.VISIBLE);
tabLayouts.setLayoutParams(params); tabLayouts.setLayoutParams(params);
} else if (userType == 1) {//主播A } else if (userType == 1) {//主播A
tab_icon.setVisibility(View.VISIBLE); tab_icon.setVisibility(View.VISIBLE);
@ -409,10 +511,12 @@ public class MainMessageViewHolder extends AbsMainViewHolder {
relativeLayouts.get(0).setVisibility(View.VISIBLE); relativeLayouts.get(0).setVisibility(View.VISIBLE);
tabTexts.get(0).setText(WordUtil.getNewString(R.string.message_chat_msg_recommend)); tabTexts.get(0).setText(WordUtil.getNewString(R.string.message_chat_msg_recommend));
relativeLayouts.get(1).setVisibility(View.VISIBLE); 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 } else { //主播B
tabExpend.get(0).setVisibility(View.VISIBLE);
relativeLayouts.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); relativeLayouts.get(1).setVisibility(View.VISIBLE);
tabTexts.get(1).setText(WordUtil.getNewString(R.string.message_chat_msg_system)); tabTexts.get(1).setText(WordUtil.getNewString(R.string.message_chat_msg_system));
relativeLayouts.get(2).setVisibility(View.VISIBLE); relativeLayouts.get(2).setVisibility(View.VISIBLE);
@ -420,7 +524,7 @@ public class MainMessageViewHolder extends AbsMainViewHolder {
} }
for (int i = 0; i < relativeLayouts.size(); i++) { for (int i = 0; i < relativeLayouts.size(); i++) {
int finalI = i; int finalI = i;
relativeLayouts.get(i).setOnClickListener(new View.OnClickListener() { tabTexts.get(i).setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
selectTab(finalI); selectTab(finalI);
@ -428,9 +532,9 @@ public class MainMessageViewHolder extends AbsMainViewHolder {
} }
}); });
} }
if(userType==1){ if (userType == 1) {
selectTab(1); selectTab(1);
}else{ } else {
selectTab(0); selectTab(0);
} }
} }

View File

@ -191,8 +191,7 @@
android:layout_height="57dp" android:layout_height="57dp"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_weight="1" android:layout_weight="1"
android:src="@mipmap/login_line" android:src="@mipmap/login_line" />
android:visibility="visible" />
<RelativeLayout <RelativeLayout
android:layout_width="57dp" android:layout_width="57dp"

View File

@ -64,7 +64,7 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="24dp" android:layout_height="24dp"
android:layout_gravity="end|bottom" android:layout_gravity="end|bottom"
android:layout_marginStart="8dp" android:layout_marginStart="5dp"
android:layout_marginTop="18dp" android:layout_marginTop="18dp"
android:layout_marginEnd="15dp" android:layout_marginEnd="15dp"
android:layout_marginBottom="16dp" android:layout_marginBottom="16dp"
@ -303,185 +303,412 @@
android:layout_height="37dp" android:layout_height="37dp"
android:visibility="gone" /> android:visibility="gone" />
<LinearLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/tabLayouts" android:id="@+id/tabLayouts"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="40dp" android:layout_height="40dp"
android:gravity="center_vertical" android:paddingStart="12dp"
android:paddingStart="20dp" android:paddingEnd="12dp">
android:paddingEnd="20dp">
<androidx.constraintlayout.widget.ConstraintLayout <TextView
android:visibility="gone" android:id="@+id/tab1"
tools:visibility="visible" android:layout_width="wrap_content"
android:id="@+id/tabLayout1" android:layout_height="match_parent"
android:layout_width="0dp" android:gravity="center"
android:layout_height="wrap_content" android:maxWidth="100dp"
android:layout_weight="1"> android:textSize="15sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/view2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="仅显示已读" />
<ImageView <ImageView
android:id="@+id/tab_icon" android:id="@+id/tab_icon"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="5dp" android:layout_marginEnd="5dp"
android:layout_toStartOf="@+id/tab_top1"
android:src="@mipmap/icon_msg_recommend" android:src="@mipmap/icon_msg_recommend"
android:visibility="gone" android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/tab_top1" app:layout_constraintEnd_toStartOf="@+id/tab1"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
tools:visibility="visible" /> tools:visibility="visible" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/tab_top1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:gravity="center_horizontal"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="MissingConstraints">
<TextView
android:id="@+id/tab1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="tab1"
android:textSize="15dp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View <View
android:id="@+id/tab_line1" android:id="@+id/tab_line1"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="3dp" android:layout_height="3dp"
android:layout_marginStart="3dp"
android:layout_marginEnd="3dp"
android:layout_marginTop="3dp"
android:layout_below="@+id/tab_top1"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:layout_marginStart="3dp"
android:layout_marginTop="3dp"
android:layout_marginEnd="3dp"
android:background="@drawable/bg_main_com_type" android:background="@drawable/bg_main_com_type"
app:layout_constraintEnd_toEndOf="@+id/tab1" app:layout_constraintEnd_toEndOf="@+id/tab1"
app:layout_constraintStart_toStartOf="@+id/tab1" app:layout_constraintStart_toStartOf="@+id/tab1"
app:layout_constraintTop_toBottomOf="@+id/tab1" /> app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout> <ImageView
</androidx.constraintlayout.widget.ConstraintLayout> android:id="@+id/expendImg1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="5dp"
android:src="@mipmap/ic_expend_down"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@+id/tab1"
app:layout_constraintStart_toEndOf="@+id/tab1"
app:layout_constraintTop_toTopOf="@+id/tab1"
tools:visibility="gone" />
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.Group
android:id="@+id/group_tab1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone" android:visibility="gone"
tools:visibility="visible" tools:visibility="visible"
android:id="@+id/tabLayout2" app:constraint_referenced_ids="tab1,tab_line1"/>
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<androidx.constraintlayout.widget.ConstraintLayout <View
android:id="@+id/tab_top2" android:id="@+id/view2"
android:layout_width="wrap_content" android:layout_width="1dp"
android:layout_height="match_parent" android:layout_height="1dp"
android:layout_centerHorizontal="true"
android:gravity="center_horizontal"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toStartOf="@+id/tab2"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toEndOf="@+id/tab1"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent" />
tools:ignore="MissingConstraints">
<TextView <TextView
android:id="@+id/tab2" android:id="@+id/tab2"
android:maxWidth="100dp"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:gravity="center" android:gravity="center"
android:text="tab1" android:textSize="15sp"
android:textSize="15dp"
android:textStyle="bold" android:textStyle="bold"
tools:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toStartOf="@+id/view3"
app:layout_constraintHorizontal_bias="1.0" app:layout_constraintStart_toEndOf="@+id/view2"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintTop_toTopOf="parent" /> tools:text="系统匹配" />
<View <View
android:id="@+id/tab_line2" android:id="@+id/tab_line2"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_marginTop="3dp"
android:layout_marginStart="3dp"
android:layout_marginEnd="3dp"
android:layout_height="3dp" android:layout_height="3dp"
android:layout_below="@+id/tab_top2"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:layout_marginStart="3dp"
android:layout_marginTop="3dp"
android:layout_marginEnd="3dp"
android:background="@drawable/bg_main_com_type" android:background="@drawable/bg_main_com_type"
app:layout_constraintEnd_toEndOf="@+id/tab2" app:layout_constraintEnd_toEndOf="@+id/tab2"
app:layout_constraintStart_toStartOf="@+id/tab2" app:layout_constraintStart_toStartOf="@+id/tab2"
app:layout_constraintTop_toBottomOf="@+id/tab2" /> app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout> <ImageView
</androidx.constraintlayout.widget.ConstraintLayout> android:id="@+id/expendImg2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
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" />
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.Group
android:id="@+id/group_tab2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone" android:visibility="gone"
tools:visibility="visible" tools:visibility="visible"
android:id="@+id/tabLayout3" app:constraint_referenced_ids="view2,tab2,tab_line2"/>
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/tab_top3"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:gravity="center_horizontal"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="MissingConstraints">
<TextView
android:id="@+id/tab3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="tab1"
android:textSize="15dp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View <View
android:id="@+id/view3"
android:layout_width="1dp"
android:layout_height="1dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/tab3"
app:layout_constraintStart_toEndOf="@+id/tab2"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:maxWidth="100dp"
android:id="@+id/tab3"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center"
android:textSize="15sp"
android:textStyle="bold"
tools:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/view3"
app:layout_constraintTop_toTopOf="parent"
tools:text="对方主动" />
<View
tools:visibility="visible"
android:id="@+id/tab_line3" android:id="@+id/tab_line3"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_marginStart="3dp"
android:layout_marginEnd="3dp"
android:layout_height="3dp" android:layout_height="3dp"
android:layout_marginTop="3dp"
android:layout_below="@+id/tab_top3"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:layout_marginStart="3dp"
android:layout_marginTop="3dp"
android:layout_marginEnd="3dp"
android:background="@drawable/bg_main_com_type" android:background="@drawable/bg_main_com_type"
app:layout_constraintEnd_toEndOf="@+id/tab3" app:layout_constraintEnd_toEndOf="@+id/tab3"
app:layout_constraintStart_toStartOf="@+id/tab3" app:layout_constraintStart_toStartOf="@+id/tab3"
app:layout_constraintTop_toBottomOf="@+id/tab3" /> app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout> <ImageView
android:id="@+id/expendImg3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
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" />
<androidx.constraintlayout.widget.Group
android:id="@+id/group_tab3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="gone"
tools:visibility="visible"
app:constraint_referenced_ids="view3,tab3,tab_line3"/>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout> <!-- <LinearLayout-->
<!-- android:id="@+id/tabLayouts"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="40dp"-->
<!-- android:gravity="center_vertical"-->
<!-- android:paddingStart="20dp"-->
<!-- android:paddingEnd="20dp">-->
<!-- <androidx.constraintlayout.widget.ConstraintLayout-->
<!-- android:id="@+id/tabLayout1"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_weight="1"-->
<!-- android:visibility="gone"-->
<!-- tools:visibility="visible">-->
<!-- <ImageView-->
<!-- android:id="@+id/tab_icon"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_marginEnd="5dp"-->
<!-- android:layout_toStartOf="@+id/tab_top1"-->
<!-- android:src="@mipmap/icon_msg_recommend"-->
<!-- android:visibility="gone"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toStartOf="@+id/tab_top1"-->
<!-- app:layout_constraintTop_toTopOf="parent"-->
<!-- tools:visibility="visible" />-->
<!-- <androidx.constraintlayout.widget.ConstraintLayout-->
<!-- android:id="@+id/tab_top1"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="match_parent"-->
<!-- android:layout_centerHorizontal="true"-->
<!-- android:gravity="center_horizontal"-->
<!-- android:orientation="vertical"-->
<!-- app:layout_constraintWidth_percent="0.8"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent"-->
<!-- tools:ignore="MissingConstraints">-->
<!-- <TextView-->
<!-- android:id="@+id/tab1"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:gravity="center"-->
<!-- android:text="tab1"-->
<!-- android:textSize="15dp"-->
<!-- android:textStyle="bold"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintHorizontal_bias="1.0"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<!-- <View-->
<!-- android:id="@+id/tab_line1"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="3dp"-->
<!-- android:layout_below="@+id/tab_top1"-->
<!-- android:layout_centerHorizontal="true"-->
<!-- android:layout_marginStart="3dp"-->
<!-- android:layout_marginTop="3dp"-->
<!-- android:layout_marginEnd="3dp"-->
<!-- android:background="@drawable/bg_main_com_type"-->
<!-- app:layout_constraintEnd_toEndOf="@+id/tab1"-->
<!-- app:layout_constraintStart_toStartOf="@+id/tab1"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/tab1" />-->
<!-- </androidx.constraintlayout.widget.ConstraintLayout>-->
<!-- <ImageView-->
<!-- android:id="@+id/expendImg1"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:padding="5dp"-->
<!-- android:src="@mipmap/ic_expend_down"-->
<!-- android:visibility="gone"-->
<!-- android:layout_marginEnd="1dp"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintHorizontal_bias="0.1"-->
<!-- app:layout_constraintStart_toEndOf="@+id/tab_top1"-->
<!-- app:layout_constraintTop_toTopOf="parent"-->
<!-- tools:visibility="visible" />-->
<!-- </androidx.constraintlayout.widget.ConstraintLayout>-->
<!-- <androidx.constraintlayout.widget.ConstraintLayout-->
<!-- android:id="@+id/tabLayout2"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_weight="1"-->
<!-- android:visibility="gone"-->
<!-- tools:visibility="visible">-->
<!-- <androidx.constraintlayout.widget.ConstraintLayout-->
<!-- android:id="@+id/tab_top2"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="match_parent"-->
<!-- android:layout_centerHorizontal="true"-->
<!-- android:gravity="center_horizontal"-->
<!-- android:orientation="vertical"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent"-->
<!-- tools:ignore="MissingConstraints">-->
<!-- <TextView-->
<!-- android:id="@+id/tab2"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:gravity="center"-->
<!-- android:text="tab1"-->
<!-- android:textSize="15dp"-->
<!-- android:textStyle="bold"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintHorizontal_bias="1.0"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<!-- <View-->
<!-- android:id="@+id/tab_line2"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="3dp"-->
<!-- android:layout_below="@+id/tab_top2"-->
<!-- android:layout_centerHorizontal="true"-->
<!-- android:layout_marginStart="3dp"-->
<!-- android:layout_marginTop="3dp"-->
<!-- android:layout_marginEnd="3dp"-->
<!-- android:background="@drawable/bg_main_com_type"-->
<!-- app:layout_constraintEnd_toEndOf="@+id/tab2"-->
<!-- app:layout_constraintStart_toStartOf="@+id/tab2"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/tab2" />-->
<!-- </androidx.constraintlayout.widget.ConstraintLayout>-->
<!-- <ImageView-->
<!-- android:id="@+id/expendImg2"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:padding="5dp"-->
<!-- android:src="@mipmap/ic_expend_down"-->
<!-- android:visibility="gone"-->
<!-- app:layout_constraintHorizontal_bias="0.1"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toEndOf="@+id/tab_top2"-->
<!-- app:layout_constraintTop_toTopOf="parent"-->
<!-- tools:visibility="visible" />-->
<!-- </androidx.constraintlayout.widget.ConstraintLayout>-->
<!-- <androidx.constraintlayout.widget.ConstraintLayout-->
<!-- android:id="@+id/tabLayout3"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_weight="1"-->
<!-- android:visibility="gone"-->
<!-- tools:visibility="visible">-->
<!-- <androidx.constraintlayout.widget.ConstraintLayout-->
<!-- android:id="@+id/tab_top3"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="match_parent"-->
<!-- android:layout_centerHorizontal="true"-->
<!-- android:gravity="center_horizontal"-->
<!-- android:orientation="vertical"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent"-->
<!-- tools:ignore="MissingConstraints">-->
<!-- <TextView-->
<!-- android:id="@+id/tab3"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:gravity="center"-->
<!-- android:text="tab1"-->
<!-- android:textSize="15dp"-->
<!-- android:textStyle="bold"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintHorizontal_bias="1.0"-->
<!-- app:layout_constraintStart_toStartOf="parent"-->
<!-- app:layout_constraintTop_toTopOf="parent" />-->
<!-- <View-->
<!-- android:id="@+id/tab_line3"-->
<!-- android:layout_width="0dp"-->
<!-- android:layout_height="3dp"-->
<!-- android:layout_below="@+id/tab_top3"-->
<!-- android:layout_centerHorizontal="true"-->
<!-- android:layout_marginStart="3dp"-->
<!-- android:layout_marginTop="3dp"-->
<!-- android:layout_marginEnd="3dp"-->
<!-- android:background="@drawable/bg_main_com_type"-->
<!-- app:layout_constraintEnd_toEndOf="@+id/tab3"-->
<!-- app:layout_constraintStart_toStartOf="@+id/tab3"-->
<!-- app:layout_constraintTop_toBottomOf="@+id/tab3" />-->
<!-- </androidx.constraintlayout.widget.ConstraintLayout>-->
<!-- <ImageView-->
<!-- android:id="@+id/expendImg3"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_centerHorizontal="true"-->
<!-- android:padding="5dp"-->
<!-- app:layout_constraintHorizontal_bias="0.1"-->
<!-- android:src="@mipmap/ic_expend_down"-->
<!-- android:visibility="gone"-->
<!-- app:layout_constraintBottom_toBottomOf="parent"-->
<!-- app:layout_constraintEnd_toEndOf="parent"-->
<!-- app:layout_constraintStart_toEndOf="@+id/tab_top3"-->
<!-- app:layout_constraintTop_toTopOf="parent"-->
<!-- tools:visibility="visible" />-->
<!-- </androidx.constraintlayout.widget.ConstraintLayout>-->
<!-- </LinearLayout>-->
<androidx.viewpager2.widget.ViewPager2 <androidx.viewpager2.widget.ViewPager2
android:id="@+id/viewPager" android:id="@+id/viewPager"

Binary file not shown.

After

Width:  |  Height:  |  Size: 377 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1009 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 950 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 455 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 433 B

View File

@ -6,6 +6,6 @@ include ':Share'
include ':pluginsForAnchor' include ':pluginsForAnchor'
include ':lib_huawei' include ':lib_huawei'
include ':lib_google' include ':lib_google'
//include ':IAP6Helper' include ':IAP6Helper'
include ':lib_faceunity' include ':lib_faceunity'
include ':TabLayout' include ':TabLayout'