Compare commits
10 Commits
master
...
新潘多拉v6.6.9
Author | SHA1 | Date | |
---|---|---|---|
403b4c2aa3 | |||
4513d8495f | |||
cc355b0177 | |||
b2da6e4ea1 | |||
dc652050ac | |||
4298ff2dae | |||
4695e040a1 | |||
0a87f300b4 | |||
|
c3aa0d5c12 | ||
d9d5cf7046 |
@ -2,7 +2,7 @@ package com.yunbao.faceunity;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
import androidx.test.platform.app.InstrumentationRegistry;
|
import androidx.test.platform.app.Instrimport com.yunbao.common.utils.MobclickAgent;ntationRegistry;
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
>
|
>
|
||||||
|
|
||||||
<queries>
|
<queries>
|
||||||
<package android:name="com.pandoralive.shayu"/>
|
<package android:name="com.pandora.sy"/>
|
||||||
<package android:name="com.facebook.orca"/>
|
<package android:name="com.facebook.orca"/>
|
||||||
|
|
||||||
<package
|
<package
|
||||||
@ -26,10 +26,10 @@
|
|||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:screenOrientation="portrait" />
|
android:screenOrientation="portrait" />
|
||||||
|
|
||||||
<provider
|
<!-- <provider-->
|
||||||
android:name="com.facebook.FacebookContentProvider"
|
<!-- android:name="com.facebook.FacebookContentProvider"-->
|
||||||
android:authorities="com.facebook.app.FacebookContentProvider5476953575716796"
|
<!-- android:authorities="com.facebook.app.FacebookContentProvider5476953575716796"-->
|
||||||
android:exported="true" />
|
<!-- android:exported="true" />-->
|
||||||
<receiver
|
<receiver
|
||||||
android:name="com.yunbao.share.receiver.TwitterResultReceiver"
|
android:name="com.yunbao.share.receiver.TwitterResultReceiver"
|
||||||
android:exported="false">
|
android:exported="false">
|
||||||
|
@ -1,13 +0,0 @@
|
|||||||
package com.yunbao.share;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Example local unit test, which will execute on the development machine (host).
|
|
||||||
*
|
|
||||||
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
|
|
||||||
*/
|
|
||||||
public class ExampleUnitTest {
|
|
||||||
public void addition_isCorrect() {
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,96 +0,0 @@
|
|||||||
{
|
|
||||||
"agcgw":{
|
|
||||||
"backurl":"connect-drcn.hispace.hicloud.com",
|
|
||||||
"url":"connect-drcn.dbankcloud.cn",
|
|
||||||
"websocketbackurl":"connect-ws-drcn.hispace.dbankcloud.com",
|
|
||||||
"websocketurl":"connect-ws-drcn.hispace.dbankcloud.cn"
|
|
||||||
},
|
|
||||||
"agcgw_all":{
|
|
||||||
"CN":"connect-drcn.dbankcloud.cn",
|
|
||||||
"CN_back":"connect-drcn.hispace.hicloud.com",
|
|
||||||
"DE":"connect-dre.dbankcloud.cn",
|
|
||||||
"DE_back":"connect-dre.hispace.hicloud.com",
|
|
||||||
"RU":"connect-drru.hispace.dbankcloud.ru",
|
|
||||||
"RU_back":"connect-drru.hispace.dbankcloud.cn",
|
|
||||||
"SG":"connect-dra.dbankcloud.cn",
|
|
||||||
"SG_back":"connect-dra.hispace.hicloud.com"
|
|
||||||
},
|
|
||||||
"websocketgw_all":{
|
|
||||||
"CN":"connect-ws-drcn.hispace.dbankcloud.cn",
|
|
||||||
"CN_back":"connect-ws-drcn.hispace.dbankcloud.com",
|
|
||||||
"DE":"connect-ws-dre.hispace.dbankcloud.cn",
|
|
||||||
"DE_back":"connect-ws-dre.hispace.dbankcloud.com",
|
|
||||||
"RU":"connect-ws-drru.hispace.dbankcloud.ru",
|
|
||||||
"RU_back":"connect-ws-drru.hispace.dbankcloud.cn",
|
|
||||||
"SG":"connect-ws-dra.hispace.dbankcloud.cn",
|
|
||||||
"SG_back":"connect-ws-dra.hispace.dbankcloud.com"
|
|
||||||
},
|
|
||||||
"client":{
|
|
||||||
"cp_id":"30852000032486141",
|
|
||||||
"product_id":"388421841221767494",
|
|
||||||
"client_id":"1283893262452580800",
|
|
||||||
"client_secret":"17BC070420691D35650C694230D6348075CB549F7BBA94EDD49FA9E61A9E5434",
|
|
||||||
"project_id":"388421841221767494",
|
|
||||||
"app_id":"109612651",
|
|
||||||
"api_key":"DAEDAAlBbTFuTuyQWQsyYBZLuyjALH9Y9BNFkVZl1GhI0tRaa6HF1LgzXWy2MZiSFrmpbn1aAvcvzP6aKZtR6MVikS8V4SbBlYUPfQ==",
|
|
||||||
"package_name":"com.pandoralive.shayu"
|
|
||||||
},
|
|
||||||
"oauth_client":{
|
|
||||||
"client_id":"109612651",
|
|
||||||
"client_type":1
|
|
||||||
},
|
|
||||||
"app_info":{
|
|
||||||
"app_id":"109612651",
|
|
||||||
"package_name":"com.pandoralive.shayu"
|
|
||||||
},
|
|
||||||
"service":{
|
|
||||||
"analytics":{
|
|
||||||
"collector_url":"datacollector-drcn.dt.hicloud.com,datacollector-drcn.dt.dbankcloud.cn",
|
|
||||||
"collector_url_ru":"datacollector-drru.dt.dbankcloud.ru,datacollector-drru.dt.hicloud.com",
|
|
||||||
"collector_url_sg":"datacollector-dra.dt.hicloud.com,datacollector-dra.dt.dbankcloud.cn",
|
|
||||||
"collector_url_de":"datacollector-dre.dt.hicloud.com,datacollector-dre.dt.dbankcloud.cn",
|
|
||||||
"collector_url_cn":"datacollector-drcn.dt.hicloud.com,datacollector-drcn.dt.dbankcloud.cn",
|
|
||||||
"resource_id":"p1",
|
|
||||||
"channel_id":""
|
|
||||||
},
|
|
||||||
"edukit":{
|
|
||||||
"edu_url":"edukit.cloud.huawei.com.cn",
|
|
||||||
"dh_url":"edukit.cloud.huawei.com.cn"
|
|
||||||
},
|
|
||||||
"search":{
|
|
||||||
"url":"https://search-drcn.cloud.huawei.com"
|
|
||||||
},
|
|
||||||
"cloudstorage":{
|
|
||||||
"storage_url_sg_back":"https://agc-storage-dra.cloud.huawei.asia",
|
|
||||||
"storage_url_ru_back":"https://agc-storage-drru.cloud.huawei.ru",
|
|
||||||
"storage_url_ru":"https://agc-storage-drru.cloud.huawei.ru",
|
|
||||||
"storage_url_de_back":"https://agc-storage-dre.cloud.huawei.eu",
|
|
||||||
"storage_url_de":"https://ops-dre.agcstorage.link",
|
|
||||||
"storage_url":"https://agc-storage-drcn.platform.dbankcloud.cn",
|
|
||||||
"storage_url_sg":"https://ops-dra.agcstorage.link",
|
|
||||||
"storage_url_cn_back":"https://agc-storage-drcn.cloud.huawei.com.cn",
|
|
||||||
"storage_url_cn":"https://agc-storage-drcn.platform.dbankcloud.cn"
|
|
||||||
},
|
|
||||||
"ml":{
|
|
||||||
"mlservice_url":"ml-api-drcn.ai.dbankcloud.com,ml-api-drcn.ai.dbankcloud.cn"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"region":"CN",
|
|
||||||
"configuration_version":"3.0",
|
|
||||||
"appInfos":[
|
|
||||||
{
|
|
||||||
"package_name":"com.pandoralive.shayu",
|
|
||||||
"client":{
|
|
||||||
"app_id":"109612651"
|
|
||||||
},
|
|
||||||
"app_info":{
|
|
||||||
"package_name":"com.pandoralive.shayu",
|
|
||||||
"app_id":"109612651"
|
|
||||||
},
|
|
||||||
"oauth_client":{
|
|
||||||
"client_type":1,
|
|
||||||
"client_id":"109612651"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
@ -116,11 +116,15 @@ android {
|
|||||||
String variantName = variant.name.capitalize()
|
String variantName = variant.name.capitalize()
|
||||||
def processManifestTask = project.tasks.getByName("process${variantName}Manifest")
|
def processManifestTask = project.tasks.getByName("process${variantName}Manifest")
|
||||||
processManifestTask.doLast { pm ->
|
processManifestTask.doLast { pm ->
|
||||||
String manifestPath = "build/intermediates/bundle_manifest/release/bundle-manifest/AndroidManifest.xml"
|
String manifestPath = "build/intermediates/merged_manifests/release/processReleaseManifest/AndroidManifest.xml"
|
||||||
def isGooglePlay = rootProject.ext.manifestPlaceholders.isGooglePlay
|
def isGooglePlay = rootProject.ext.manifestPlaceholders.isGooglePlay
|
||||||
if (file(manifestPath).exists() && isGooglePlay) {
|
println "谷歌版本:" + isGooglePlay
|
||||||
|
println "文件存在" + file(manifestPath).exists()
|
||||||
|
println "" + (isGooglePlay ==1)
|
||||||
|
println "" + (file(manifestPath).exists() && isGooglePlay == 1)
|
||||||
|
if (file(manifestPath).exists() && isGooglePlay == 1) {
|
||||||
def manifestContent = file(manifestPath).getText()
|
def manifestContent = file(manifestPath).getText()
|
||||||
|
println "移除权限"
|
||||||
manifestContent = manifestContent.replace('<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />', '')
|
manifestContent = manifestContent.replace('<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />', '')
|
||||||
file(manifestPath).write(manifestContent)
|
file(manifestPath).write(manifestContent)
|
||||||
} else {
|
} else {
|
||||||
@ -170,7 +174,7 @@ android {
|
|||||||
isGoogle = "谷歌"
|
isGoogle = "谷歌"
|
||||||
} else if (rootProject.ext.manifestPlaceholders.isGooglePlay == 2) {
|
} else if (rootProject.ext.manifestPlaceholders.isGooglePlay == 2) {
|
||||||
isGoogle = "Huawei"
|
isGoogle = "Huawei"
|
||||||
}else if (rootProject.ext.manifestPlaceholders.isGooglePlay == 3) {
|
} else if (rootProject.ext.manifestPlaceholders.isGooglePlay == 3) {
|
||||||
isGoogle = "Samsung"
|
isGoogle = "Samsung"
|
||||||
}
|
}
|
||||||
def isPlugin = "完整"
|
def isPlugin = "完整"
|
||||||
@ -214,7 +218,7 @@ android {
|
|||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
// applicationId "myname.pdlive.shayu"
|
// applicationId "myname.pdlive.shayu"
|
||||||
applicationId "com.pandoralive.shayu"
|
applicationId "com.pandora.sy"
|
||||||
minSdkVersion rootProject.ext.android.minSdkVersion
|
minSdkVersion rootProject.ext.android.minSdkVersion
|
||||||
//版本在这里修改
|
//版本在这里修改
|
||||||
targetSdkVersion rootProject.ext.android.targetSdkVersion
|
targetSdkVersion rootProject.ext.android.targetSdkVersion
|
||||||
@ -264,7 +268,6 @@ repositories {
|
|||||||
dependencies {
|
dependencies {
|
||||||
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
|
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
|
||||||
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
|
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
|
||||||
|
|
||||||
//implementation platform('com.google.firebase:firebase-bom:30.5.0')
|
//implementation platform('com.google.firebase:firebase-bom:30.5.0')
|
||||||
//implementation 'com.google.firebase:firebase-crashlytics'
|
//implementation 'com.google.firebase:firebase-crashlytics'
|
||||||
|
|
||||||
|
@ -1,65 +1,58 @@
|
|||||||
{
|
{
|
||||||
"project_info": {
|
"project_info": {
|
||||||
"project_number": "292494634914",
|
"project_number": "867032862719",
|
||||||
"project_id": "pdlive-1631521064967",
|
"project_id": "pdlnew",
|
||||||
"storage_bucket": "pdlive-1631521064967.appspot.com"
|
"storage_bucket": "pdlnew.appspot.com"
|
||||||
},
|
},
|
||||||
"client": [
|
"client": [
|
||||||
{
|
{
|
||||||
"client_info": {
|
"client_info": {
|
||||||
"mobilesdk_app_id": "1:292494634914:android:d8db197d7e7a6c3a3a4cfb",
|
"mobilesdk_app_id": "1:867032862719:android:841a73fdfb6c37453ae1ca",
|
||||||
"android_client_info": {
|
"android_client_info": {
|
||||||
"package_name": "com.pandoralive.shayu"
|
"package_name": "com.pandora.sy"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"oauth_client": [
|
"oauth_client": [
|
||||||
{
|
{
|
||||||
"client_id": "292494634914-8nuhhoeo061ki1jevbcsrl7dfdl6dlm0.apps.googleusercontent.com",
|
"client_id": "867032862719-af2dnojobjd8s6ekdr1is1vev8nk36sv.apps.googleusercontent.com",
|
||||||
"client_type": 1,
|
"client_type": 1,
|
||||||
"android_info": {
|
"android_info": {
|
||||||
"package_name": "com.pandoralive.shayu",
|
"package_name": "com.pandora.sy",
|
||||||
"certificate_hash": "38cc19306c9facee36a9224e9a4070bc0be15c7d"
|
"certificate_hash": "38cc19306c9facee36a9224e9a4070bc0be15c7d"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"client_id": "292494634914-ctr3fptp5mkv2qqr4gkgjo9uluq2joqb.apps.googleusercontent.com",
|
"client_id": "867032862719-ohaa1f18e186qpasvgt7qkk1i1pivniq.apps.googleusercontent.com",
|
||||||
"client_type": 1,
|
"client_type": 1,
|
||||||
"android_info": {
|
"android_info": {
|
||||||
"package_name": "com.pandoralive.shayu",
|
"package_name": "com.pandora.sy",
|
||||||
"certificate_hash": "15fc5e70cf238323bf7111c8c627803985478e87"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"client_id": "292494634914-ejtqvaj86a2lldv0di2pr3d5gngprahd.apps.googleusercontent.com",
|
|
||||||
"client_type": 1,
|
|
||||||
"android_info": {
|
|
||||||
"package_name": "com.pandoralive.shayu",
|
|
||||||
"certificate_hash": "b66dc8d21cfcf6c729577ddcf0c312b2a31ed872"
|
"certificate_hash": "b66dc8d21cfcf6c729577ddcf0c312b2a31ed872"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"client_id": "292494634914-ha2kbgtclkv20hl3a1l8r7861a1a0m5i.apps.googleusercontent.com",
|
"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
|
"client_type": 3
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"api_key": [
|
"api_key": [
|
||||||
{
|
{
|
||||||
"current_key": "AIzaSyDVnuGnQzjI_vDrxh20Hv_S1OMUD7Vp3zU"
|
"current_key": "AIzaSyAnlY2aBEGyg7QpghHo7EaMRkM89dVNgq8"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"services": {
|
"services": {
|
||||||
"appinvite_service": {
|
"appinvite_service": {
|
||||||
"other_platform_oauth_client": [
|
"other_platform_oauth_client": [
|
||||||
{
|
{
|
||||||
"client_id": "292494634914-ha2kbgtclkv20hl3a1l8r7861a1a0m5i.apps.googleusercontent.com",
|
"client_id": "867032862719-ep4r92lpjmn7gs9tg0r7q0l75a4gm9mt.apps.googleusercontent.com",
|
||||||
"client_type": 3
|
"client_type": 3
|
||||||
},
|
|
||||||
{
|
|
||||||
"client_id": "292494634914-v9j4rei86q2pfh9as4seotb23vr2744a.apps.googleusercontent.com",
|
|
||||||
"client_type": 2,
|
|
||||||
"ios_info": {
|
|
||||||
"bundle_id": "com.live.pd"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
12
app/proguard-rules.pro
vendored
12
app/proguard-rules.pro
vendored
@ -278,6 +278,18 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
-keep class tech.sud.mgp.hello.ui.main.settings.model.** {*;}
|
-keep class tech.sud.mgp.hello.ui.main.settings.model.** {*;}
|
||||||
-keep class tech.sud.mgp.hello.ui.main.nft.model.** {*;}
|
-keep class tech.sud.mgp.hello.ui.main.nft.model.** {*;}
|
||||||
-keep class tech.sud.mgp.hello.common.event.model.** {*;}
|
-keep class tech.sud.mgp.hello.common.event.model.** {*;}
|
||||||
|
-keep class tech.sud.mgp.**{*;}
|
||||||
|
|
||||||
|
-keep class bitter.jnibridge.** { *; }
|
||||||
|
-keep class com.google.androidgamesdk.** { *; }
|
||||||
|
-keep class com.unity3d.** { *; }
|
||||||
|
-keep class do.do.do.** { *; }
|
||||||
|
-keep class do.if.do.** { *; }
|
||||||
|
-keep class for.do.** { *; }
|
||||||
|
-keep class if.do.do.do.** { *; }
|
||||||
|
-keep class org.fmod.** { *; }
|
||||||
|
-keep class tech.sud.** { *; }
|
||||||
|
-keep class tech.unity3d.** { *; }
|
||||||
|
|
||||||
-keep class com.yunbao.common.sud.** {*;}
|
-keep class com.yunbao.common.sud.** {*;}
|
||||||
|
|
||||||
|
@ -154,6 +154,9 @@
|
|||||||
<meta-data
|
<meta-data
|
||||||
android:name="IS_PLUGIN_MODEL"
|
android:name="IS_PLUGIN_MODEL"
|
||||||
android:value="${isPluginModel}" />
|
android:value="${isPluginModel}" />
|
||||||
|
<meta-data
|
||||||
|
android:name="BUILD_TIME"
|
||||||
|
android:value="${buildTime}" />
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="firebase_crashlytics_collection_enabled"
|
android:name="firebase_crashlytics_collection_enabled"
|
||||||
android:value="${isUploadLog}" />
|
android:value="${isUploadLog}" />
|
||||||
|
@ -32,8 +32,7 @@ import com.tencent.imsdk.v2.V2TIMGroupMemberInfo;
|
|||||||
import com.tencent.imsdk.v2.V2TIMManager;
|
import com.tencent.imsdk.v2.V2TIMManager;
|
||||||
import com.tencent.imsdk.v2.V2TIMSimpleMsgListener;
|
import com.tencent.imsdk.v2.V2TIMSimpleMsgListener;
|
||||||
import com.tencent.imsdk.v2.V2TIMUserInfo;
|
import com.tencent.imsdk.v2.V2TIMUserInfo;
|
||||||
import com.umeng.analytics.MobclickAgent;
|
import com.yunbao.common.utils.MobclickAgent;
|
||||||
import com.umeng.commonsdk.UMConfigure;
|
|
||||||
import com.yalantis.ucrop.UCropActivity;
|
import com.yalantis.ucrop.UCropActivity;
|
||||||
import com.yunbao.common.BuildConfig;
|
import com.yunbao.common.BuildConfig;
|
||||||
import com.yunbao.common.CommonAppConfig;
|
import com.yunbao.common.CommonAppConfig;
|
||||||
@ -185,6 +184,9 @@ public class AppContext extends CommonAppContext {
|
|||||||
@Override
|
@Override
|
||||||
public void onActivityCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState) {
|
public void onActivityCreated(@NonNull Activity activity, @Nullable Bundle savedInstanceState) {
|
||||||
activities.add(new WeakReference<>(activity));
|
activities.add(new WeakReference<>(activity));
|
||||||
|
if(activity instanceof LoginActivity){
|
||||||
|
AppManager.getInstance().clear();
|
||||||
|
}
|
||||||
CrashSaveBean.getInstance().setActivitySize(activities);
|
CrashSaveBean.getInstance().setActivitySize(activities);
|
||||||
AppManager.getInstance().addActivity(activity);
|
AppManager.getInstance().addActivity(activity);
|
||||||
}
|
}
|
||||||
@ -229,20 +231,20 @@ public class AppContext extends CommonAppContext {
|
|||||||
OpenInstall.init(this);
|
OpenInstall.init(this);
|
||||||
}
|
}
|
||||||
//设置LOG开关,默认为false
|
//设置LOG开关,默认为false
|
||||||
UMConfigure.setLogEnabled(true);
|
//UMConfigure.setLogEnabled(true);
|
||||||
|
|
||||||
|
|
||||||
//友盟正式初始化
|
//友盟正式初始化
|
||||||
UMConfigure.init(getApplicationContext(), "64e40ee55488fe7b3afa2c96", "PDLive", UMConfigure.DEVICE_TYPE_PHONE, "64e40ee55488fe7b3afa2c96");
|
//UMConfigure.init(getApplicationContext(), "64e40ee55488fe7b3afa2c96", "PDLive", UMConfigure.DEVICE_TYPE_PHONE, "64e40ee55488fe7b3afa2c96");
|
||||||
|
|
||||||
//集成umeng-crash-vx.x.x.aar,则需要关闭原有统计SDK异常捕获功能
|
//集成umeng-crash-vx.x.x.aar,则需要关闭原有统计SDK异常捕获功能
|
||||||
MobclickAgent.setCatchUncaughtExceptions(false);
|
MobclickAgent.setCatchUncaughtExceptions(false);
|
||||||
//PushSDK初始化(如使用推送SDK,必须调用此方法)
|
//PushSDK初始化(如使用推送SDK,必须调用此方法)
|
||||||
|
|
||||||
//统计SDK是否支持采集在子进程中打点的自定义事件,默认不支持
|
//统计SDK是否支持采集在子进程中打点的自定义事件,默认不支持
|
||||||
UMConfigure.setProcessEvent(true);//支持多进程打点
|
//UMConfigure.setProcessEvent(true);//支持多进程打点
|
||||||
MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.AUTO);
|
//MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.AUTO);
|
||||||
UMConfigure.submitPolicyGrantResult(getApplicationContext(), true);
|
//UMConfigure.submitPolicyGrantResult(getApplicationContext(), true);
|
||||||
|
|
||||||
registerActivityLifecycleCallbacks(new AdjustLifecycleCallbacks());
|
registerActivityLifecycleCallbacks(new AdjustLifecycleCallbacks());
|
||||||
//初始化 AndroidUtilCode
|
//初始化 AndroidUtilCode
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
# The proguard configuration file for the following section is E:\job\pandorapan\app\build\intermediates\default_proguard_files\global\proguard-android.txt-8.3.1
|
# The proguard configuration file for the following section is C:\Users\58381\Documents\AndroidProject\pandorapan\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 E:\job\pandorapan\app\build\intermediates\default_proguard_files\global\proguard-android.txt-8.3.1
|
# End of content from C:\Users\58381\Documents\AndroidProject\pandorapan\app\build\intermediates\default_proguard_files\global\proguard-android.txt-8.3.1
|
||||||
# The proguard configuration file for the following section is E:\job\pandorapan\app\proguard-rules.pro
|
# The proguard configuration file for the following section is C:\Users\58381\Documents\AndroidProject\pandorapan\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
|
||||||
@ -377,6 +377,18 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
-keep class tech.sud.mgp.hello.ui.main.settings.model.** {*;}
|
-keep class tech.sud.mgp.hello.ui.main.settings.model.** {*;}
|
||||||
-keep class tech.sud.mgp.hello.ui.main.nft.model.** {*;}
|
-keep class tech.sud.mgp.hello.ui.main.nft.model.** {*;}
|
||||||
-keep class tech.sud.mgp.hello.common.event.model.** {*;}
|
-keep class tech.sud.mgp.hello.common.event.model.** {*;}
|
||||||
|
-keep class tech.sud.mgp.**{*;}
|
||||||
|
|
||||||
|
-keep class bitter.jnibridge.** { *; }
|
||||||
|
-keep class com.google.androidgamesdk.** { *; }
|
||||||
|
-keep class com.unity3d.** { *; }
|
||||||
|
-keep class do.do.do.** { *; }
|
||||||
|
-keep class do.if.do.** { *; }
|
||||||
|
-keep class for.do.** { *; }
|
||||||
|
-keep class if.do.do.do.** { *; }
|
||||||
|
-keep class org.fmod.** { *; }
|
||||||
|
-keep class tech.sud.** { *; }
|
||||||
|
-keep class tech.unity3d.** { *; }
|
||||||
|
|
||||||
-keep class com.yunbao.common.sud.** {*;}
|
-keep class com.yunbao.common.sud.** {*;}
|
||||||
|
|
||||||
@ -399,8 +411,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 E:\job\pandorapan\app\proguard-rules.pro
|
# End of content from C:\Users\58381\Documents\AndroidProject\pandorapan\app\proguard-rules.pro
|
||||||
# The proguard configuration file for the following section is E:\job\pandorapan\app\build\intermediates\aapt_proguard_file\release\processReleaseResources\aapt_rules.txt
|
# The proguard configuration file for the following section is C:\Users\58381\Documents\AndroidProject\pandorapan\app\build\intermediates\aapt_proguard_file\release\processReleaseResources\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>(); }
|
||||||
@ -417,7 +429,6 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
-keep class com.facebook.CustomTabActivity { <init>(); }
|
-keep class com.facebook.CustomTabActivity { <init>(); }
|
||||||
-keep class com.facebook.CustomTabMainActivity { <init>(); }
|
-keep class com.facebook.CustomTabMainActivity { <init>(); }
|
||||||
-keep class com.facebook.FacebookActivity { <init>(); }
|
-keep class com.facebook.FacebookActivity { <init>(); }
|
||||||
-keep class com.facebook.FacebookContentProvider { <init>(); }
|
|
||||||
-keep class com.facebook.internal.FacebookInitProvider { <init>(); }
|
-keep class com.facebook.internal.FacebookInitProvider { <init>(); }
|
||||||
-keep class com.google.android.datatransport.runtime.backends.TransportBackendDiscovery { <init>(); }
|
-keep class com.google.android.datatransport.runtime.backends.TransportBackendDiscovery { <init>(); }
|
||||||
-keep class com.google.android.datatransport.runtime.scheduling.jobscheduling.AlarmManagerSchedulerBroadcastReceiver { <init>(); }
|
-keep class com.google.android.datatransport.runtime.scheduling.jobscheduling.AlarmManagerSchedulerBroadcastReceiver { <init>(); }
|
||||||
@ -503,6 +514,9 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
-keep class com.yunbao.main.activity.EditUserHobbyActivity { <init>(); }
|
-keep class com.yunbao.main.activity.EditUserHobbyActivity { <init>(); }
|
||||||
-keep class com.yunbao.main.activity.EntryActivity { <init>(); }
|
-keep class com.yunbao.main.activity.EntryActivity { <init>(); }
|
||||||
-keep class com.yunbao.main.activity.FansActivity { <init>(); }
|
-keep class com.yunbao.main.activity.FansActivity { <init>(); }
|
||||||
|
-keep class com.yunbao.main.activity.FeedbackActivity { <init>(); }
|
||||||
|
-keep class com.yunbao.main.activity.FeedbackEditActivity { <init>(); }
|
||||||
|
-keep class com.yunbao.main.activity.FeedbackSuccessActivity { <init>(); }
|
||||||
-keep class com.yunbao.main.activity.FindPwdActivity { <init>(); }
|
-keep class com.yunbao.main.activity.FindPwdActivity { <init>(); }
|
||||||
-keep class com.yunbao.main.activity.FollowActivity { <init>(); }
|
-keep class com.yunbao.main.activity.FollowActivity { <init>(); }
|
||||||
-keep class com.yunbao.main.activity.LanguageSettingActivity { <init>(); }
|
-keep class com.yunbao.main.activity.LanguageSettingActivity { <init>(); }
|
||||||
@ -902,6 +916,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
|
|
||||||
-keep class com.yunbao.common.views.AutoSplitTextView { <init>(android.content.Context, android.util.AttributeSet); }
|
-keep class com.yunbao.common.views.AutoSplitTextView { <init>(android.content.Context, android.util.AttributeSet); }
|
||||||
|
|
||||||
|
-keep class com.yunbao.common.views.CustomLayout { <init>(android.content.Context, android.util.AttributeSet); }
|
||||||
|
|
||||||
-keep class com.yunbao.common.views.FlowLayout { <init>(android.content.Context, android.util.AttributeSet); }
|
-keep class com.yunbao.common.views.FlowLayout { <init>(android.content.Context, android.util.AttributeSet); }
|
||||||
|
|
||||||
-keep class com.yunbao.common.views.MyFrameLayout2 { <init>(android.content.Context, android.util.AttributeSet); }
|
-keep class com.yunbao.common.views.MyFrameLayout2 { <init>(android.content.Context, android.util.AttributeSet); }
|
||||||
@ -1065,8 +1081,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
-keepclassmembers class * { *** videoEditClick(android.view.View); }
|
-keepclassmembers class * { *** videoEditClick(android.view.View); }
|
||||||
|
|
||||||
|
|
||||||
# End of content from E:\job\pandorapan\app\build\intermediates\aapt_proguard_file\release\processReleaseResources\aapt_rules.txt
|
# End of content from C:\Users\58381\Documents\AndroidProject\pandorapan\app\build\intermediates\aapt_proguard_file\release\processReleaseResources\aapt_rules.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\8d3e3177c15403546de73d87508067d6\transformed\jetified-XPopup-2.10.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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>(...);
|
||||||
@ -1075,8 +1091,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
<init>(...);
|
<init>(...);
|
||||||
}
|
}
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\8d3e3177c15403546de73d87508067d6\transformed\jetified-XPopup-2.10.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\8d3e3177c15403546de73d87508067d6\transformed\jetified-XPopup-2.10.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\a1df9a6aa192455030f7c9970b70e0e9\transformed\material-1.4.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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");
|
||||||
@ -1124,16 +1140,16 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\a1df9a6aa192455030f7c9970b70e0e9\transformed\material-1.4.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\a1df9a6aa192455030f7c9970b70e0e9\transformed\material-1.4.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\job\pandorapan\lib_google\build\intermediates\consumer_proguard_dir\release\exportReleaseConsumerProguardFiles\lib0\proguard.txt
|
# The proguard configuration file for the following section is C:\Users\58381\Documents\AndroidProject\pandorapan\lib_google\build\intermediates\consumer_proguard_dir\release\exportReleaseConsumerProguardFiles\lib0\proguard.txt
|
||||||
|
|
||||||
# End of content from E:\job\pandorapan\lib_google\build\intermediates\consumer_proguard_dir\release\exportReleaseConsumerProguardFiles\lib0\proguard.txt
|
# End of content from C:\Users\58381\Documents\AndroidProject\pandorapan\lib_google\build\intermediates\consumer_proguard_dir\release\exportReleaseConsumerProguardFiles\lib0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\2929985d9627ba3bb45a0ebd18eaf9d3\transformed\jetified-linesdk-5.0.1\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\caches\transforms-3\2929985d9627ba3bb45a0ebd18eaf9d3\transformed\jetified-linesdk-5.0.1\proguard.txt
|
||||||
-keepattributes *Annotation*
|
-keepattributes *Annotation*
|
||||||
|
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\2929985d9627ba3bb45a0ebd18eaf9d3\transformed\jetified-linesdk-5.0.1\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\2929985d9627ba3bb45a0ebd18eaf9d3\transformed\jetified-linesdk-5.0.1\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\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:\gradle-6.1.1\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.
|
||||||
#
|
#
|
||||||
@ -1173,8 +1189,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 E:\gradle\caches\transforms-3\6baa4e4ee96e21acbcf3a49ef89d9f1f\transformed\jetified-facebook-android-sdk-15.2.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\6baa4e4ee96e21acbcf3a49ef89d9f1f\transformed\jetified-facebook-android-sdk-15.2.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\44135493e77410a01759fde38f8d0bd2\transformed\jetified-facebook-gamingservices-15.2.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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.
|
||||||
#
|
#
|
||||||
@ -1215,8 +1231,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
|
|
||||||
-keep class com.facebook.gamingservices.GamingServices
|
-keep class com.facebook.gamingservices.GamingServices
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\44135493e77410a01759fde38f8d0bd2\transformed\jetified-facebook-gamingservices-15.2.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\44135493e77410a01759fde38f8d0bd2\transformed\jetified-facebook-gamingservices-15.2.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\c831739b6efc746f59d2a47471573f41\transformed\jetified-facebook-share-15.2.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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.
|
||||||
#
|
#
|
||||||
@ -1257,8 +1273,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
|
|
||||||
-keep class com.facebook.share.Share
|
-keep class com.facebook.share.Share
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\c831739b6efc746f59d2a47471573f41\transformed\jetified-facebook-share-15.2.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\c831739b6efc746f59d2a47471573f41\transformed\jetified-facebook-share-15.2.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\3815d0ddf4b17772bdba730e93b11daf\transformed\jetified-facebook-login-15.2.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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.
|
||||||
#
|
#
|
||||||
@ -1299,8 +1315,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
|
|
||||||
-keep class com.facebook.login.Login
|
-keep class com.facebook.login.Login
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\3815d0ddf4b17772bdba730e93b11daf\transformed\jetified-facebook-login-15.2.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\3815d0ddf4b17772bdba730e93b11daf\transformed\jetified-facebook-login-15.2.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\43855db83adace9940918a3f6edcdc05\transformed\jetified-facebook-common-15.2.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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.
|
||||||
#
|
#
|
||||||
@ -1341,12 +1357,12 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
|
|
||||||
-keep class com.facebook.common.Common
|
-keep class com.facebook.common.Common
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\43855db83adace9940918a3f6edcdc05\transformed\jetified-facebook-common-15.2.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\43855db83adace9940918a3f6edcdc05\transformed\jetified-facebook-common-15.2.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\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:\gradle-6.1.1\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 E:\gradle\caches\transforms-3\7bbb003dbf2685697cd42cfb46e77b3f\transformed\jetified-subsampling-scale-image-view-androidx-3.10.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\7bbb003dbf2685697cd42cfb46e77b3f\transformed\jetified-subsampling-scale-image-view-androidx-3.10.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\0fdcb88552259c6c22dbd3bb46b31518\transformed\appcompat-1.3.1\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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");
|
||||||
@ -1370,13 +1386,13 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
<methods>;
|
<methods>;
|
||||||
}
|
}
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\0fdcb88552259c6c22dbd3bb46b31518\transformed\appcompat-1.3.1\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\0fdcb88552259c6c22dbd3bb46b31518\transformed\appcompat-1.3.1\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\b8e86bdadf487d72a43cd430b3f9db16\transformed\jetified-tweet-ui-3.1.1\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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 E:\gradle\caches\transforms-3\b8e86bdadf487d72a43cd430b3f9db16\transformed\jetified-tweet-ui-3.1.1\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\b8e86bdadf487d72a43cd430b3f9db16\transformed\jetified-tweet-ui-3.1.1\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\2dd2f4200d3a68f4165485a3d207312d\transformed\coordinatorlayout-1.2.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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");
|
||||||
@ -1403,13 +1419,13 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
RuntimeVisibleParameterAnnotations,
|
RuntimeVisibleParameterAnnotations,
|
||||||
RuntimeVisibleTypeAnnotations
|
RuntimeVisibleTypeAnnotations
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\2dd2f4200d3a68f4165485a3d207312d\transformed\coordinatorlayout-1.2.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\2dd2f4200d3a68f4165485a3d207312d\transformed\coordinatorlayout-1.2.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\940a969ab3fccb91703d8a9245e2974b\transformed\jetified-x-1.3.2\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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 E:\gradle\caches\transforms-3\940a969ab3fccb91703d8a9245e2974b\transformed\jetified-x-1.3.2\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\940a969ab3fccb91703d8a9245e2974b\transformed\jetified-x-1.3.2\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\e452872bf1c6c06c71776c88e0bd7b6a\transformed\jetified-exoplayer-ui-2.18.2\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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
|
||||||
@ -1450,8 +1466,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 E:\gradle\caches\transforms-3\e452872bf1c6c06c71776c88e0bd7b6a\transformed\jetified-exoplayer-ui-2.18.2\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\e452872bf1c6c06c71776c88e0bd7b6a\transformed\jetified-exoplayer-ui-2.18.2\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\e9de7db2640f13ae2ab2a585dfd19337\transformed\recyclerview-1.2.1\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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");
|
||||||
@ -1477,8 +1493,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
public void suppressLayout(boolean);
|
public void suppressLayout(boolean);
|
||||||
public boolean isLayoutSuppressed();
|
public boolean isLayoutSuppressed();
|
||||||
}
|
}
|
||||||
# End of content from E:\gradle\caches\transforms-3\e9de7db2640f13ae2ab2a585dfd19337\transformed\recyclerview-1.2.1\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\e9de7db2640f13ae2ab2a585dfd19337\transformed\recyclerview-1.2.1\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\6905c56d188193f144e40adf093778f1\transformed\jetified-utilcode-1.30.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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
|
||||||
@ -1507,8 +1523,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 E:\gradle\caches\transforms-3\6905c56d188193f144e40adf093778f1\transformed\jetified-utilcode-1.30.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\6905c56d188193f144e40adf093778f1\transformed\jetified-utilcode-1.30.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\bb5ec4ef561b90312eb1ca52da1f144d\transformed\jetified-facebook-applinks-15.2.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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.
|
||||||
#
|
#
|
||||||
@ -1549,8 +1565,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
|
|
||||||
-keep class com.facebook.applinks.AppLinks
|
-keep class com.facebook.applinks.AppLinks
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\bb5ec4ef561b90312eb1ca52da1f144d\transformed\jetified-facebook-applinks-15.2.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\bb5ec4ef561b90312eb1ca52da1f144d\transformed\jetified-facebook-applinks-15.2.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\88221c7028fd958b12579787bcf1d5e0\transformed\jetified-facebook-messenger-15.2.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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.
|
||||||
#
|
#
|
||||||
@ -1595,8 +1611,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
|
|
||||||
-keep class com.facebook.messenger.Messenger
|
-keep class com.facebook.messenger.Messenger
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\88221c7028fd958b12579787bcf1d5e0\transformed\jetified-facebook-messenger-15.2.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\88221c7028fd958b12579787bcf1d5e0\transformed\jetified-facebook-messenger-15.2.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\d709769056a5279a71bbb18b41ee69d2\transformed\jetified-ui-1.0.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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");
|
||||||
@ -1625,16 +1641,16 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
android.view.View findViewByAccessibilityIdTraversal(int);
|
android.view.View findViewByAccessibilityIdTraversal(int);
|
||||||
}
|
}
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\d709769056a5279a71bbb18b41ee69d2\transformed\jetified-ui-1.0.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\d709769056a5279a71bbb18b41ee69d2\transformed\jetified-ui-1.0.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\3591196def6c89c6af74e7d30dfb6618\transformed\jetified-runtime-1.0.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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 E:\gradle\caches\transforms-3\3591196def6c89c6af74e7d30dfb6618\transformed\jetified-runtime-1.0.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\3591196def6c89c6af74e7d30dfb6618\transformed\jetified-runtime-1.0.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\7931210372c8927a076053831aae79b7\transformed\jetified-glide-transformations-3.1.1\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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
|
||||||
@ -1644,8 +1660,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
public *;
|
public *;
|
||||||
}
|
}
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\7931210372c8927a076053831aae79b7\transformed\jetified-glide-transformations-3.1.1\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\7931210372c8927a076053831aae79b7\transformed\jetified-glide-transformations-3.1.1\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\a9e5e066cbda5595303140a83b7c357f\transformed\jetified-glide-4.12.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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>(...);
|
||||||
@ -1661,8 +1677,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 E:\gradle\caches\transforms-3\a9e5e066cbda5595303140a83b7c357f\transformed\jetified-glide-4.12.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\a9e5e066cbda5595303140a83b7c357f\transformed\jetified-glide-4.12.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\af9bdee4e01691bfa29595eaf6011f49\transformed\jetified-play-services-base-18.0.1\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\caches\transforms-3\af9bdee4e01691bfa29595eaf6011f49\transformed\jetified-play-services-base-18.0.1\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;
|
||||||
@ -1670,18 +1686,18 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\af9bdee4e01691bfa29595eaf6011f49\transformed\jetified-play-services-base-18.0.1\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\af9bdee4e01691bfa29595eaf6011f49\transformed\jetified-play-services-base-18.0.1\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\1b549d0d5a78f93d1b3cd259941d27d6\transformed\jetified-firebase-common-20.1.2\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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 E:\gradle\caches\transforms-3\1b549d0d5a78f93d1b3cd259941d27d6\transformed\jetified-firebase-common-20.1.2\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\1b549d0d5a78f93d1b3cd259941d27d6\transformed\jetified-firebase-common-20.1.2\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\4566a60c961a57d307c42a2fd5514004\transformed\jetified-play-services-tasks-18.0.1\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\caches\transforms-3\4566a60c961a57d307c42a2fd5514004\transformed\jetified-play-services-tasks-18.0.1\proguard.txt
|
||||||
|
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\4566a60c961a57d307c42a2fd5514004\transformed\jetified-play-services-tasks-18.0.1\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\4566a60c961a57d307c42a2fd5514004\transformed\jetified-play-services-tasks-18.0.1\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\98374b479c7a7c4245d90ea630585909\transformed\jetified-play-services-basement-18.1.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\caches\transforms-3\98374b479c7a7c4245d90ea630585909\transformed\jetified-play-services-basement-18.1.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
|
||||||
|
|
||||||
@ -1754,8 +1770,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\98374b479c7a7c4245d90ea630585909\transformed\jetified-play-services-basement-18.1.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\98374b479c7a7c4245d90ea630585909\transformed\jetified-play-services-basement-18.1.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\8daf89c63ab14ea80f11dcfb9154f87e\transformed\fragment-1.5.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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");
|
||||||
@ -1776,12 +1792,12 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
public <init>();
|
public <init>();
|
||||||
}
|
}
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\8daf89c63ab14ea80f11dcfb9154f87e\transformed\fragment-1.5.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\8daf89c63ab14ea80f11dcfb9154f87e\transformed\fragment-1.5.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\b826addf48d922103bc9588ad90ee0e6\transformed\jetified-Common-4.1.11\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\caches\transforms-3\b826addf48d922103bc9588ad90ee0e6\transformed\jetified-Common-4.1.11\proguard.txt
|
||||||
# 本库模块专用的混淆规则
|
# 本库模块专用的混淆规则
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\b826addf48d922103bc9588ad90ee0e6\transformed\jetified-Common-4.1.11\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\b826addf48d922103bc9588ad90ee0e6\transformed\jetified-Common-4.1.11\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\cee8df21fdda9dd7e6106d8566e7a8de\transformed\jetified-facebook-core-15.2.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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.
|
||||||
#
|
#
|
||||||
@ -1839,8 +1855,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
public <methods>;
|
public <methods>;
|
||||||
}
|
}
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\cee8df21fdda9dd7e6106d8566e7a8de\transformed\jetified-facebook-core-15.2.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\cee8df21fdda9dd7e6106d8566e7a8de\transformed\jetified-facebook-core-15.2.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\570c85082e748d036cbe1ff0c9d5e429\transformed\lifecycle-viewmodel-2.5.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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>();
|
||||||
}
|
}
|
||||||
@ -1849,8 +1865,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
<init>(android.app.Application);
|
<init>(android.app.Application);
|
||||||
}
|
}
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\570c85082e748d036cbe1ff0c9d5e429\transformed\lifecycle-viewmodel-2.5.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\570c85082e748d036cbe1ff0c9d5e429\transformed\lifecycle-viewmodel-2.5.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\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:\gradle-6.1.1\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);
|
||||||
}
|
}
|
||||||
@ -1859,8 +1875,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 E:\gradle\caches\transforms-3\badee3548ba9b653d6517fdeb8829767\transformed\jetified-lifecycle-viewmodel-savedstate-2.5.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\badee3548ba9b653d6517fdeb8829767\transformed\jetified-lifecycle-viewmodel-savedstate-2.5.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\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:\gradle-6.1.1\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
|
||||||
@ -1888,8 +1904,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 E:\gradle\caches\transforms-3\0e43e19966d3ba7fcce157667e087c7e\transformed\rules\lib\META-INF\com.android.tools\r8\coroutines.pro
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\0e43e19966d3ba7fcce157667e087c7e\transformed\rules\lib\META-INF\com.android.tools\r8\coroutines.pro
|
||||||
# The proguard configuration file for the following section is E:\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:\gradle-6.1.1\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
|
||||||
@ -1914,8 +1930,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 E:\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:\gradle-6.1.1\caches\transforms-3\039aa78b17fc1889d62d4e8e7d7c1859\transformed\rules\lib\META-INF\com.android.tools\r8-from-1.6.0\coroutines.pro
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\33f970d366250728877e2f4671336331\transformed\jetified-twitter-core-3.1.1\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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*
|
||||||
@ -1939,8 +1955,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
-keepclasseswithmembers class * {
|
-keepclasseswithmembers class * {
|
||||||
@retrofit2.http.* <methods>;
|
@retrofit2.http.* <methods>;
|
||||||
}
|
}
|
||||||
# End of content from E:\gradle\caches\transforms-3\33f970d366250728877e2f4671336331\transformed\jetified-twitter-core-3.1.1\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\33f970d366250728877e2f4671336331\transformed\jetified-twitter-core-3.1.1\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\c77ecf57bcccb48a1c436095271858a9\transformed\rules\lib\META-INF\proguard\okhttp3.pro
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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.**
|
||||||
|
|
||||||
@ -1953,16 +1969,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 E:\gradle\caches\transforms-3\c77ecf57bcccb48a1c436095271858a9\transformed\rules\lib\META-INF\proguard\okhttp3.pro
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\c77ecf57bcccb48a1c436095271858a9\transformed\rules\lib\META-INF\proguard\okhttp3.pro
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\ba2f6b8d754037d8f03e9dcac5bb54b5\transformed\rules\lib\META-INF\proguard\okio.pro
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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 E:\gradle\caches\transforms-3\ba2f6b8d754037d8f03e9dcac5bb54b5\transformed\rules\lib\META-INF\proguard\okio.pro
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\ba2f6b8d754037d8f03e9dcac5bb54b5\transformed\rules\lib\META-INF\proguard\okio.pro
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\acd3bab55cb4f819050ef57ea2e25987\transformed\jetified-beautysdk-202202241203\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\caches\transforms-3\acd3bab55cb4f819050ef57ea2e25987\transformed\jetified-beautysdk-202202241203\proguard.txt
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\acd3bab55cb4f819050ef57ea2e25987\transformed\jetified-beautysdk-202202241203\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\acd3bab55cb4f819050ef57ea2e25987\transformed\jetified-beautysdk-202202241203\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\b75b75d929caf1295aec25af1cc611a0\transformed\jetified-crash-1.0.8\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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(...);
|
||||||
@ -1970,22 +1986,22 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
void traceCallbackBeforeDump(...);
|
void traceCallbackBeforeDump(...);
|
||||||
}
|
}
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\b75b75d929caf1295aec25af1cc611a0\transformed\jetified-crash-1.0.8\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\b75b75d929caf1295aec25af1cc611a0\transformed\jetified-crash-1.0.8\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\a7d2b366ebb4fa695d83564a8f8d9b9e\transformed\jetified-roundedimageview-2.3.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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 E:\gradle\caches\transforms-3\a7d2b366ebb4fa695d83564a8f8d9b9e\transformed\jetified-roundedimageview-2.3.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\a7d2b366ebb4fa695d83564a8f8d9b9e\transformed\jetified-roundedimageview-2.3.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\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:\gradle-6.1.1\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 E:\gradle\caches\transforms-3\54e4d6b7585273307d9c6823366d92b9\transformed\jetified-android-gif-drawable-1.2.23\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\54e4d6b7585273307d9c6823366d92b9\transformed\jetified-android-gif-drawable-1.2.23\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\11ff2b99188b7e7bf4e2771916717f0f\transformed\jetified-ShortcutBadger-1.1.22\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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>(...); }
|
||||||
@ -1996,8 +2012,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 E:\gradle\caches\transforms-3\11ff2b99188b7e7bf4e2771916717f0f\transformed\jetified-ShortcutBadger-1.1.22\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\11ff2b99188b7e7bf4e2771916717f0f\transformed\jetified-ShortcutBadger-1.1.22\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\bf0366dad8fd25b42dec7a0b29d3ed94\transformed\jetified-EasyFloat-2.0.4\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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.
|
||||||
@ -2035,8 +2051,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
|
|
||||||
# 保持反射不被混淆
|
# 保持反射不被混淆
|
||||||
-keepattributes EnclosingMethod
|
-keepattributes EnclosingMethod
|
||||||
# End of content from E:\gradle\caches\transforms-3\bf0366dad8fd25b42dec7a0b29d3ed94\transformed\jetified-EasyFloat-2.0.4\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\bf0366dad8fd25b42dec7a0b29d3ed94\transformed\jetified-EasyFloat-2.0.4\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\6dd79c19a3de7f7b4d3014c08d02f4ca\transformed\jetified-PagerGridLayoutManager-1.1.7\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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.
|
||||||
@ -2058,15 +2074,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 E:\gradle\caches\transforms-3\6dd79c19a3de7f7b4d3014c08d02f4ca\transformed\jetified-PagerGridLayoutManager-1.1.7\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\6dd79c19a3de7f7b4d3014c08d02f4ca\transformed\jetified-PagerGridLayoutManager-1.1.7\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\adfc563cfaac18f99ab49176e8311139\transformed\jetified-WheelView-4.1.11\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\caches\transforms-3\adfc563cfaac18f99ab49176e8311139\transformed\jetified-WheelView-4.1.11\proguard.txt
|
||||||
# 本库模块专用的混淆规则
|
# 本库模块专用的混淆规则
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\adfc563cfaac18f99ab49176e8311139\transformed\jetified-WheelView-4.1.11\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\adfc563cfaac18f99ab49176e8311139\transformed\jetified-WheelView-4.1.11\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\3dd60f4554da3e797ddfca5958de5029\transformed\jetified-uyumao-1.1.2\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\caches\transforms-3\21d010a917a570a947ff266441748328\transformed\jetified-SudMGP-1.3.3.1158\proguard.txt
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\3dd60f4554da3e797ddfca5958de5029\transformed\jetified-uyumao-1.1.2\proguard.txt
|
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\21d010a917a570a947ff266441748328\transformed\jetified-SudMGP-1.3.3.1158\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.**{ *; }
|
||||||
@ -2218,8 +2231,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\21d010a917a570a947ff266441748328\transformed\jetified-SudMGP-1.3.3.1158\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\21d010a917a570a947ff266441748328\transformed\jetified-SudMGP-1.3.3.1158\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\9bc6fb118e278279304d710763b86c85\transformed\jetified-SudASR-1.3.3.1158\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\caches\transforms-3\9bc6fb118e278279304d710763b86c85\transformed\jetified-SudASR-1.3.3.1158\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.** { *; }
|
||||||
|
|
||||||
@ -2234,8 +2247,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
*** *Callback(long);
|
*** *Callback(long);
|
||||||
}
|
}
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\9bc6fb118e278279304d710763b86c85\transformed\jetified-SudASR-1.3.3.1158\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\9bc6fb118e278279304d710763b86c85\transformed\jetified-SudASR-1.3.3.1158\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\3d3f072f1af512d0e751a2c7c5e8b8ec\transformed\jetified-core-8.3.1\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\caches\transforms-3\3d3f072f1af512d0e751a2c7c5e8b8ec\transformed\jetified-core-8.3.1\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.
|
||||||
@ -2262,8 +2275,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
-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 E:\gradle\caches\transforms-3\3d3f072f1af512d0e751a2c7c5e8b8ec\transformed\jetified-core-8.3.1\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\3d3f072f1af512d0e751a2c7c5e8b8ec\transformed\jetified-core-8.3.1\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\526e7910eaa433763f36b642f34c1fee\transformed\jetified-exoplayer-core-2.18.2\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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
|
||||||
@ -2320,8 +2333,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
<init>();
|
<init>();
|
||||||
}
|
}
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\526e7910eaa433763f36b642f34c1fee\transformed\jetified-exoplayer-core-2.18.2\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\526e7910eaa433763f36b642f34c1fee\transformed\jetified-exoplayer-core-2.18.2\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\2d16d937f787a1471d1fcefef8917ded\transformed\jetified-savedstate-1.2.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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");
|
||||||
@ -2340,8 +2353,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
<init>();
|
<init>();
|
||||||
}
|
}
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\2d16d937f787a1471d1fcefef8917ded\transformed\jetified-savedstate-1.2.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\2d16d937f787a1471d1fcefef8917ded\transformed\jetified-savedstate-1.2.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\f55e0290d55f2ec9dfa66384635c714c\transformed\transition-1.2.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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");
|
||||||
@ -2361,8 +2374,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
androidx.transition.ChangeBounds$ViewBounds mViewBounds;
|
androidx.transition.ChangeBounds$ViewBounds mViewBounds;
|
||||||
}
|
}
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\f55e0290d55f2ec9dfa66384635c714c\transformed\transition-1.2.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\f55e0290d55f2ec9dfa66384635c714c\transformed\transition-1.2.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\093cf4894c646f12adcf0608a8578513\transformed\vectordrawable-animated-1.1.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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");
|
||||||
@ -2383,8 +2396,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
*** get*();
|
*** get*();
|
||||||
}
|
}
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\093cf4894c646f12adcf0608a8578513\transformed\vectordrawable-animated-1.1.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\093cf4894c646f12adcf0608a8578513\transformed\vectordrawable-animated-1.1.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\3db9f5e64eaa2a61a80545d78dbfe4ed\transformed\jetified-facebook-bolts-15.2.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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.
|
||||||
#
|
#
|
||||||
@ -2420,8 +2433,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
java.lang.Object readResolve();
|
java.lang.Object readResolve();
|
||||||
}
|
}
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\3db9f5e64eaa2a61a80545d78dbfe4ed\transformed\jetified-facebook-bolts-15.2.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\3db9f5e64eaa2a61a80545d78dbfe4ed\transformed\jetified-facebook-bolts-15.2.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\13795feba8dd8fc2e0266a202e40730e\transformed\media-1.6.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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");
|
||||||
@ -2445,8 +2458,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
-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 E:\gradle\caches\transforms-3\13795feba8dd8fc2e0266a202e40730e\transformed\media-1.6.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\13795feba8dd8fc2e0266a202e40730e\transformed\media-1.6.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\4bf1220f49ce7953fbb445d1fb03d04a\transformed\core-1.8.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\caches\transforms-3\4bf1220f49ce7953fbb445d1fb03d04a\transformed\core-1.8.0\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>;
|
||||||
@ -2464,8 +2477,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
<methods>;
|
<methods>;
|
||||||
}
|
}
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\4bf1220f49ce7953fbb445d1fb03d04a\transformed\core-1.8.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\4bf1220f49ce7953fbb445d1fb03d04a\transformed\core-1.8.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\2c964f4aa7e08caf6a082be78fa332c4\transformed\lifecycle-runtime-2.5.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\caches\transforms-3\2c964f4aa7e08caf6a082be78fa332c4\transformed\lifecycle-runtime-2.5.0\proguard.txt
|
||||||
-keepattributes AnnotationDefault,
|
-keepattributes AnnotationDefault,
|
||||||
RuntimeVisibleAnnotations,
|
RuntimeVisibleAnnotations,
|
||||||
RuntimeVisibleParameterAnnotations,
|
RuntimeVisibleParameterAnnotations,
|
||||||
@ -2489,8 +2502,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
# 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 E:\gradle\caches\transforms-3\2c964f4aa7e08caf6a082be78fa332c4\transformed\lifecycle-runtime-2.5.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\2c964f4aa7e08caf6a082be78fa332c4\transformed\lifecycle-runtime-2.5.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\4a3cce138aa30f2fd0df44bf999a62d2\transformed\jetified-exoplayer-datasource-2.18.2\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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.
|
||||||
@ -2504,8 +2517,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
<init>();
|
<init>();
|
||||||
}
|
}
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\4a3cce138aa30f2fd0df44bf999a62d2\transformed\jetified-exoplayer-datasource-2.18.2\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\4a3cce138aa30f2fd0df44bf999a62d2\transformed\jetified-exoplayer-datasource-2.18.2\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\cccc4dd1e5210aae5c702cc866696db2\transformed\jetified-exoplayer-extractor-2.18.2\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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
|
||||||
@ -2523,8 +2536,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 E:\gradle\caches\transforms-3\cccc4dd1e5210aae5c702cc866696db2\transformed\jetified-exoplayer-extractor-2.18.2\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\cccc4dd1e5210aae5c702cc866696db2\transformed\jetified-exoplayer-extractor-2.18.2\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\5bd9c5cbdf66400a7932d1da1691bac0\transformed\jetified-exoplayer-common-2.18.2\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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
|
||||||
@ -2548,20 +2561,20 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
# 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 E:\gradle\caches\transforms-3\5bd9c5cbdf66400a7932d1da1691bac0\transformed\jetified-exoplayer-common-2.18.2\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\5bd9c5cbdf66400a7932d1da1691bac0\transformed\jetified-exoplayer-common-2.18.2\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\25898cd92bff76be652caaeef3397500\transformed\versionedparcelable-1.1.1\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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 E:\gradle\caches\transforms-3\25898cd92bff76be652caaeef3397500\transformed\versionedparcelable-1.1.1\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\25898cd92bff76be652caaeef3397500\transformed\versionedparcelable-1.1.1\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\8c49f53105b230fe43669879f576cab6\transformed\room-runtime-2.4.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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 E:\gradle\caches\transforms-3\8c49f53105b230fe43669879f576cab6\transformed\room-runtime-2.4.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\8c49f53105b230fe43669879f576cab6\transformed\room-runtime-2.4.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\48f6f745536202396d49c6664e656f00\transformed\jetified-startup-runtime-1.0.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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 {
|
||||||
@ -2571,29 +2584,29 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
|
|
||||||
-assumenosideeffects class androidx.startup.StartupLogger
|
-assumenosideeffects class androidx.startup.StartupLogger
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\48f6f745536202396d49c6664e656f00\transformed\jetified-startup-runtime-1.0.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\48f6f745536202396d49c6664e656f00\transformed\jetified-startup-runtime-1.0.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\f137f81e3ba6bf4187612f01b8d596d6\transformed\jetified-transport-backend-cct-3.1.7\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\caches\transforms-3\f137f81e3ba6bf4187612f01b8d596d6\transformed\jetified-transport-backend-cct-3.1.7\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 E:\gradle\caches\transforms-3\f137f81e3ba6bf4187612f01b8d596d6\transformed\jetified-transport-backend-cct-3.1.7\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\f137f81e3ba6bf4187612f01b8d596d6\transformed\jetified-transport-backend-cct-3.1.7\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\ad1f4a6564b34286db155b9a62614b62\transformed\jetified-transport-api-3.0.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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 E:\gradle\caches\transforms-3\ad1f4a6564b34286db155b9a62614b62\transformed\jetified-transport-api-3.0.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\ad1f4a6564b34286db155b9a62614b62\transformed\jetified-transport-api-3.0.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\e1bbd140b52a8e61bea52bf380947059\transformed\jetified-firebase-components-17.0.1\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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 E:\gradle\caches\transforms-3\e1bbd140b52a8e61bea52bf380947059\transformed\jetified-firebase-components-17.0.1\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\e1bbd140b52a8e61bea52bf380947059\transformed\jetified-firebase-components-17.0.1\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\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:\gradle-6.1.1\caches\transforms-3\ff39e13547528b628eacff5bee8aa481\transformed\jetified-firebase-encoders-json-18.0.0\proguard.txt
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\ff39e13547528b628eacff5bee8aa481\transformed\jetified-firebase-encoders-json-18.0.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\ff39e13547528b628eacff5bee8aa481\transformed\jetified-firebase-encoders-json-18.0.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\3b7d5c4af95619f43e4d0ea1cb1bf304\transformed\rules\lib\META-INF\proguard\androidx-annotations.pro
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\caches\transforms-3\3b7d5c4af95619f43e4d0ea1cb1bf304\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 * {*;}
|
||||||
|
|
||||||
@ -2613,8 +2626,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
@androidx.annotation.DoNotInline <methods>;
|
@androidx.annotation.DoNotInline <methods>;
|
||||||
}
|
}
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\3b7d5c4af95619f43e4d0ea1cb1bf304\transformed\rules\lib\META-INF\proguard\androidx-annotations.pro
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\3b7d5c4af95619f43e4d0ea1cb1bf304\transformed\rules\lib\META-INF\proguard\androidx-annotations.pro
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\e7e2a2183722056abf9bd4188272512b\transformed\jetified-annotation-experimental-1.1.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\caches\transforms-3\e7e2a2183722056abf9bd4188272512b\transformed\jetified-annotation-experimental-1.1.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");
|
||||||
@ -2639,8 +2652,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
-dontwarn kotlin.annotation.Retention
|
-dontwarn kotlin.annotation.Retention
|
||||||
-dontwarn kotlin.annotation.Target
|
-dontwarn kotlin.annotation.Target
|
||||||
|
|
||||||
# End of content from E:\gradle\caches\transforms-3\e7e2a2183722056abf9bd4188272512b\transformed\jetified-annotation-experimental-1.1.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\e7e2a2183722056abf9bd4188272512b\transformed\jetified-annotation-experimental-1.1.0\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\e4ea56c12de34fd26c2a84541f3aeb08\transformed\jetified-calligraphy3-3.1.1\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\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
|
||||||
@ -2662,8 +2675,8 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
-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 E:\gradle\caches\transforms-3\e4ea56c12de34fd26c2a84541f3aeb08\transformed\jetified-calligraphy3-3.1.1\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\e4ea56c12de34fd26c2a84541f3aeb08\transformed\jetified-calligraphy3-3.1.1\proguard.txt
|
||||||
# The proguard configuration file for the following section is E:\gradle\caches\transforms-3\a358ff6705c32d8c6337aefd4316f1b9\transformed\jetified-billing-5.0.0\proguard.txt
|
# The proguard configuration file for the following section is C:\gradle-6.1.1\caches\transforms-3\a358ff6705c32d8c6337aefd4316f1b9\transformed\jetified-billing-5.0.0\proguard.txt
|
||||||
# Keep the AIDL interface
|
# Keep the AIDL interface
|
||||||
-keep class com.android.vending.billing.** { *; }
|
-keep class com.android.vending.billing.** { *; }
|
||||||
|
|
||||||
@ -2672,7 +2685,7 @@ rx.internal.util.atomic.LinkedQueueNode* consumerNode;
|
|||||||
-dontwarn com.google.android.apps.common.proguard.UsedByReflection
|
-dontwarn com.google.android.apps.common.proguard.UsedByReflection
|
||||||
|
|
||||||
-keepnames class com.android.billingclient.api.ProxyBillingActivity
|
-keepnames class com.android.billingclient.api.ProxyBillingActivity
|
||||||
# End of content from E:\gradle\caches\transforms-3\a358ff6705c32d8c6337aefd4316f1b9\transformed\jetified-billing-5.0.0\proguard.txt
|
# End of content from C:\gradle-6.1.1\caches\transforms-3\a358ff6705c32d8c6337aefd4316f1b9\transformed\jetified-billing-5.0.0\proguard.txt
|
||||||
# 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>
|
@ -1,92 +0,0 @@
|
|||||||
{
|
|
||||||
"agcgw":{
|
|
||||||
"backurl":"connect-drcn.hispace.hicloud.com",
|
|
||||||
"url":"connect-drcn.dbankcloud.cn",
|
|
||||||
"websocketbackurl":"connect-ws-drcn.hispace.dbankcloud.com",
|
|
||||||
"websocketurl":"connect-ws-drcn.hispace.dbankcloud.cn"
|
|
||||||
},
|
|
||||||
"agcgw_all":{
|
|
||||||
"CN":"connect-drcn.dbankcloud.cn",
|
|
||||||
"CN_back":"connect-drcn.hispace.hicloud.com",
|
|
||||||
"DE":"connect-dre.dbankcloud.cn",
|
|
||||||
"DE_back":"connect-dre.hispace.hicloud.com",
|
|
||||||
"RU":"connect-drru.hispace.dbankcloud.ru",
|
|
||||||
"RU_back":"connect-drru.hispace.dbankcloud.cn",
|
|
||||||
"SG":"connect-dra.dbankcloud.cn",
|
|
||||||
"SG_back":"connect-dra.hispace.hicloud.com"
|
|
||||||
},
|
|
||||||
"websocketgw_all":{
|
|
||||||
"CN":"connect-ws-drcn.hispace.dbankcloud.cn",
|
|
||||||
"CN_back":"connect-ws-drcn.hispace.dbankcloud.com",
|
|
||||||
"DE":"connect-ws-dre.hispace.dbankcloud.cn",
|
|
||||||
"DE_back":"connect-ws-dre.hispace.dbankcloud.com",
|
|
||||||
"RU":"connect-ws-drru.hispace.dbankcloud.ru",
|
|
||||||
"RU_back":"connect-ws-drru.hispace.dbankcloud.cn",
|
|
||||||
"SG":"connect-ws-dra.hispace.dbankcloud.cn",
|
|
||||||
"SG_back":"connect-ws-dra.hispace.dbankcloud.com"
|
|
||||||
},
|
|
||||||
"client":{
|
|
||||||
"cp_id":"30086000612391734",
|
|
||||||
"product_id":"99536292102564216",
|
|
||||||
"client_id":"964994320723627840",
|
|
||||||
"client_secret":"6D5FE29D85B967D3A66BDCD473641E4C7B5524F7F4935CA0EF4A842730C3402D",
|
|
||||||
"project_id":"99536292102564216",
|
|
||||||
"app_id":"106936673",
|
|
||||||
"api_key":"DAEDADYGta/0O4ZSdrnug52NgC67/w/RIyTq9A8LyAY0+mp6g6XeJDbxugpluFPLAhaqjaMs5c0PLnRx14UzWbPPADgi1EqihbWLoA==",
|
|
||||||
"package_name":"com.pandoralive.shayu"
|
|
||||||
},
|
|
||||||
"oauth_client":{
|
|
||||||
"client_id":"106936673",
|
|
||||||
"client_type":1
|
|
||||||
},
|
|
||||||
"app_info":{
|
|
||||||
"app_id":"106936673",
|
|
||||||
"package_name":"com.pandoralive.shayu"
|
|
||||||
},
|
|
||||||
"service":{
|
|
||||||
"analytics":{
|
|
||||||
"collector_url":"datacollector-drcn.dt.hicloud.com,datacollector-drcn.dt.dbankcloud.cn",
|
|
||||||
"collector_url_ru":"datacollector-drru.dt.dbankcloud.ru,datacollector-drru.dt.hicloud.com",
|
|
||||||
"collector_url_sg":"datacollector-dra.dt.hicloud.com,datacollector-dra.dt.dbankcloud.cn",
|
|
||||||
"collector_url_de":"datacollector-dre.dt.hicloud.com,datacollector-dre.dt.dbankcloud.cn",
|
|
||||||
"collector_url_cn":"datacollector-drcn.dt.hicloud.com,datacollector-drcn.dt.dbankcloud.cn",
|
|
||||||
"resource_id":"p1",
|
|
||||||
"channel_id":""
|
|
||||||
},
|
|
||||||
"search":{
|
|
||||||
"url":"https://search-drcn.cloud.huawei.com"
|
|
||||||
},
|
|
||||||
"cloudstorage":{
|
|
||||||
"storage_url_sg_back":"https://agc-storage-dra.cloud.huawei.asia",
|
|
||||||
"storage_url_ru_back":"https://agc-storage-drru.cloud.huawei.ru",
|
|
||||||
"storage_url_ru":"https://agc-storage-drru.cloud.huawei.ru",
|
|
||||||
"storage_url_de_back":"https://agc-storage-dre.cloud.huawei.eu",
|
|
||||||
"storage_url_de":"https://ops-dre.agcstorage.link",
|
|
||||||
"storage_url":"https://agc-storage-drcn.platform.dbankcloud.cn",
|
|
||||||
"storage_url_sg":"https://ops-dra.agcstorage.link",
|
|
||||||
"storage_url_cn_back":"https://agc-storage-drcn.cloud.huawei.com.cn",
|
|
||||||
"storage_url_cn":"https://agc-storage-drcn.platform.dbankcloud.cn"
|
|
||||||
},
|
|
||||||
"ml":{
|
|
||||||
"mlservice_url":"ml-api-drcn.ai.dbankcloud.com,ml-api-drcn.ai.dbankcloud.cn"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"region":"CN",
|
|
||||||
"configuration_version":"3.0",
|
|
||||||
"appInfos":[
|
|
||||||
{
|
|
||||||
"package_name":"com.pandoralive.shayu",
|
|
||||||
"client":{
|
|
||||||
"app_id":"106936673"
|
|
||||||
},
|
|
||||||
"app_info":{
|
|
||||||
"package_name":"com.pandoralive.shayu",
|
|
||||||
"app_id":"106936673"
|
|
||||||
},
|
|
||||||
"oauth_client":{
|
|
||||||
"client_type":1,
|
|
||||||
"client_id":"106936673"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
@ -211,9 +211,7 @@ dependencies {
|
|||||||
//自定义圆角图片
|
//自定义圆角图片
|
||||||
api 'com.makeramen:roundedimageview:2.3.0'
|
api 'com.makeramen:roundedimageview:2.3.0'
|
||||||
// 友盟统计SDK
|
// 友盟统计SDK
|
||||||
api 'com.umeng.umsdk:common:9.6.3'// 必选
|
// api(name: 'umeng-common-9.6.8+000', ext: 'aar')
|
||||||
api 'com.umeng.umsdk:asms:1.8.0'// 必选
|
|
||||||
api 'com.umeng.umsdk:uyumao:1.1.2'
|
|
||||||
//高级运营分析功能依赖库,使用卸载分析、开启反作弊能力请务必集成,以免影响高级功能使用。common需搭配v9.6.3及以上版本,asms需搭配v1.7.0及以上版本。需更新隐私声明。
|
//高级运营分析功能依赖库,使用卸载分析、开启反作弊能力请务必集成,以免影响高级功能使用。common需搭配v9.6.3及以上版本,asms需搭配v1.7.0及以上版本。需更新隐私声明。
|
||||||
// 标准版本SudMGP SDK
|
// 标准版本SudMGP SDK
|
||||||
api 'tech.sud.mgp:SudMGP:1.3.3.1158'
|
api 'tech.sud.mgp:SudMGP:1.3.3.1158'
|
||||||
|
@ -1,70 +0,0 @@
|
|||||||
{
|
|
||||||
"project_info": {
|
|
||||||
"project_number": "292494634914",
|
|
||||||
"project_id": "pdlive-1631521064967",
|
|
||||||
"storage_bucket": "pdlive-1631521064967.appspot.com"
|
|
||||||
},
|
|
||||||
"client": [
|
|
||||||
{
|
|
||||||
"client_info": {
|
|
||||||
"mobilesdk_app_id": "1:292494634914:android:d8db197d7e7a6c3a3a4cfb",
|
|
||||||
"android_client_info": {
|
|
||||||
"package_name": "com.pandoralive.shayu"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"oauth_client": [
|
|
||||||
{
|
|
||||||
"client_id": "292494634914-8nuhhoeo061ki1jevbcsrl7dfdl6dlm0.apps.googleusercontent.com",
|
|
||||||
"client_type": 1,
|
|
||||||
"android_info": {
|
|
||||||
"package_name": "com.pandoralive.shayu",
|
|
||||||
"certificate_hash": "38cc19306c9facee36a9224e9a4070bc0be15c7d"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"client_id": "292494634914-ctr3fptp5mkv2qqr4gkgjo9uluq2joqb.apps.googleusercontent.com",
|
|
||||||
"client_type": 1,
|
|
||||||
"android_info": {
|
|
||||||
"package_name": "com.pandoralive.shayu",
|
|
||||||
"certificate_hash": "15fc5e70cf238323bf7111c8c627803985478e87"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"client_id": "292494634914-ejtqvaj86a2lldv0di2pr3d5gngprahd.apps.googleusercontent.com",
|
|
||||||
"client_type": 1,
|
|
||||||
"android_info": {
|
|
||||||
"package_name": "com.pandoralive.shayu",
|
|
||||||
"certificate_hash": "b66dc8d21cfcf6c729577ddcf0c312b2a31ed872"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"client_id": "292494634914-ha2kbgtclkv20hl3a1l8r7861a1a0m5i.apps.googleusercontent.com",
|
|
||||||
"client_type": 3
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"api_key": [
|
|
||||||
{
|
|
||||||
"current_key": "AIzaSyDVnuGnQzjI_vDrxh20Hv_S1OMUD7Vp3zU"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"services": {
|
|
||||||
"appinvite_service": {
|
|
||||||
"other_platform_oauth_client": [
|
|
||||||
{
|
|
||||||
"client_id": "292494634914-ha2kbgtclkv20hl3a1l8r7861a1a0m5i.apps.googleusercontent.com",
|
|
||||||
"client_type": 3
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"client_id": "292494634914-v9j4rei86q2pfh9as4seotb23vr2744a.apps.googleusercontent.com",
|
|
||||||
"client_type": 2,
|
|
||||||
"ios_info": {
|
|
||||||
"bundle_id": "com.live.pd"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"configuration_version": "1"
|
|
||||||
}
|
|
@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
<provider
|
<provider
|
||||||
android:name="androidx.core.content.FileProvider"
|
android:name="androidx.core.content.FileProvider"
|
||||||
android:authorities="com.pandoralive.shayu.fileprovider"
|
android:authorities="com.pandora.sy.fileprovider"
|
||||||
android:exported="false"
|
android:exported="false"
|
||||||
android:grantUriPermissions="true">
|
android:grantUriPermissions="true">
|
||||||
<meta-data
|
<meta-data
|
||||||
|
@ -39,6 +39,7 @@ public class CommonAppConfig {
|
|||||||
public static final boolean IS_UPLOAD_ERROR_LOG = getMetaDataBoolean("IS_UPLOAD_ERROR_LOG");
|
public static final boolean IS_UPLOAD_ERROR_LOG = getMetaDataBoolean("IS_UPLOAD_ERROR_LOG");
|
||||||
//是否为插件包模式
|
//是否为插件包模式
|
||||||
public static final boolean IS_PLUGIN_MODEL = getMetaDataBoolean("IS_PLUGIN_MODEL");
|
public static final boolean IS_PLUGIN_MODEL = getMetaDataBoolean("IS_PLUGIN_MODEL");
|
||||||
|
public static final String BUILD_TIME = getMetaDataString("BUILD_TIME");
|
||||||
|
|
||||||
//外部sd卡
|
//外部sd卡
|
||||||
public static final String DCMI_PATH = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath();
|
public static final String DCMI_PATH = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM).getAbsolutePath();
|
||||||
|
@ -274,6 +274,8 @@ public class Constants {
|
|||||||
public static final int LINK_MIC_TYPE_NORMAL = 0;//观众与主播连麦
|
public static final int LINK_MIC_TYPE_NORMAL = 0;//观众与主播连麦
|
||||||
public static final int LINK_MIC_TYPE_ANCHOR = 1;//主播与主播连麦
|
public static final int LINK_MIC_TYPE_ANCHOR = 1;//主播与主播连麦
|
||||||
|
|
||||||
|
public static final String SOCKET_LIVE_ANCHOR_PK_DIALOG="GuildCompetitionNotice";//公会赛弹窗
|
||||||
|
|
||||||
//视频举报获取位置
|
//视频举报获取位置
|
||||||
public static int xIndex = 0;
|
public static int xIndex = 0;
|
||||||
public static int yindex = 0;
|
public static int yindex = 0;
|
||||||
|
@ -39,7 +39,7 @@ public class HtmlConfig {
|
|||||||
public static final String TURNTABLE_URL = CommonAppConfig.HOST + "/Appapi/Turntable/index";
|
public static final String TURNTABLE_URL = CommonAppConfig.HOST + "/Appapi/Turntable/index";
|
||||||
|
|
||||||
//在线商城
|
//在线商城
|
||||||
public static final String SHOP = CommonAppConfig.HOST + "/h5/shoppingMall.html";
|
public static final String SHOP = CommonAppConfig.HOST + "/h5/shop/index.html";
|
||||||
|
|
||||||
//社区
|
//社区
|
||||||
public static final String ENCOURAGE = CommonAppConfig.HOST + "/h5/shequ/index.html#/h5/shequ";
|
public static final String ENCOURAGE = CommonAppConfig.HOST + "/h5/shequ/index.html#/h5/shequ";
|
||||||
|
@ -6,6 +6,7 @@ import android.content.Intent;
|
|||||||
import android.content.res.Configuration;
|
import android.content.res.Configuration;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
|
import android.graphics.Typeface;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.provider.Settings;
|
import android.provider.Settings;
|
||||||
@ -24,13 +25,12 @@ import android.widget.TextView;
|
|||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
import androidx.appcompat.app.AppCompatActivity;
|
||||||
|
|
||||||
import com.umeng.analytics.MobclickAgent;
|
import com.yunbao.common.utils.MobclickAgent;
|
||||||
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.LifeCycleListener;
|
import com.yunbao.common.interfaces.LifeCycleListener;
|
||||||
import com.yunbao.common.manager.IMLoginManager;
|
import com.yunbao.common.manager.IMLoginManager;
|
||||||
import com.yunbao.common.utils.ClickUtil;
|
import com.yunbao.common.utils.ClickUtil;
|
||||||
import com.yunbao.common.utils.ToastUtil;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -92,7 +92,8 @@ public abstract class AbsActivity extends AppCompatActivity {
|
|||||||
protected void main() {
|
protected void main() {
|
||||||
|
|
||||||
}
|
}
|
||||||
protected void create(){
|
|
||||||
|
protected void create() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -107,6 +108,17 @@ public abstract class AbsActivity extends AppCompatActivity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void setTitleBold(boolean bold) {
|
||||||
|
TextView titleView = (TextView) findViewById(R.id.titleView);
|
||||||
|
if (titleView != null) {
|
||||||
|
if (bold) {
|
||||||
|
titleView.setTypeface(Typeface.DEFAULT_BOLD);
|
||||||
|
} else {
|
||||||
|
titleView.setTypeface(Typeface.DEFAULT);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void backClick(View v) {
|
public void backClick(View v) {
|
||||||
if (v.getId() == R.id.btn_back) {
|
if (v.getId() == R.id.btn_back) {
|
||||||
onBackPressed();
|
onBackPressed();
|
||||||
@ -181,14 +193,14 @@ public abstract class AbsActivity extends AppCompatActivity {
|
|||||||
//友盟统计
|
//友盟统计
|
||||||
// MobclickAgent.onResume(this);
|
// MobclickAgent.onResume(this);
|
||||||
MobclickAgent.onPageStart(this.mTag);
|
MobclickAgent.onPageStart(this.mTag);
|
||||||
Log.e("MobclickAgent","MobclickAgent:_onResume_"+this.mTag);
|
Log.e("MobclickAgent", "MobclickAgent:_onResume_" + this.mTag);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPause() {
|
protected void onPause() {
|
||||||
super.onPause();
|
super.onPause();
|
||||||
MobclickAgent.onPageEnd(this.mTag);
|
MobclickAgent.onPageEnd(this.mTag);
|
||||||
Log.e("MobclickAgent","MobclickAgent:_onPause_"+this.mTag);
|
Log.e("MobclickAgent", "MobclickAgent:_onPause_" + this.mTag);
|
||||||
if (mLifeCycleListeners != null) {
|
if (mLifeCycleListeners != null) {
|
||||||
for (LifeCycleListener listener : mLifeCycleListeners) {
|
for (LifeCycleListener listener : mLifeCycleListeners) {
|
||||||
listener.onPause();
|
listener.onPause();
|
||||||
@ -382,11 +394,12 @@ public abstract class AbsActivity extends AppCompatActivity {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
public boolean isKefu(String url){
|
|
||||||
if(url.contains("kefu")){
|
public boolean isKefu(String url) {
|
||||||
|
if (url.contains("kefu")) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if(url.contains("https://newkf.yaoulive.com/")){
|
if (url.contains("https://newkf.yaoulive.com/")) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return url.startsWith("https://kefu.yaoulive.com");
|
return url.startsWith("https://kefu.yaoulive.com");
|
||||||
|
@ -29,6 +29,7 @@ import com.lxj.xpopup.XPopup;
|
|||||||
import com.yunbao.common.CommonAppConfig;
|
import com.yunbao.common.CommonAppConfig;
|
||||||
import com.yunbao.common.CommonAppContext;
|
import com.yunbao.common.CommonAppContext;
|
||||||
import com.yunbao.common.Constants;
|
import com.yunbao.common.Constants;
|
||||||
|
import com.yunbao.common.HtmlConfig;
|
||||||
import com.yunbao.common.R;
|
import com.yunbao.common.R;
|
||||||
import com.yunbao.common.bean.LiveBean;
|
import com.yunbao.common.bean.LiveBean;
|
||||||
import com.yunbao.common.event.JavascriptInterfaceEvent;
|
import com.yunbao.common.event.JavascriptInterfaceEvent;
|
||||||
@ -100,7 +101,6 @@ public class WebViewActivity extends AbsActivity {
|
|||||||
ft_title = (FrameLayout) findViewById(R.id.ft_title);
|
ft_title = (FrameLayout) findViewById(R.id.ft_title);
|
||||||
v_spacing = (View) findViewById(R.id.v_spacing);
|
v_spacing = (View) findViewById(R.id.v_spacing);
|
||||||
mWebView = findViewById(R.id.webView);
|
mWebView = findViewById(R.id.webView);
|
||||||
|
|
||||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
|
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
|
||||||
params.topMargin = DpUtil.dp2px(1);
|
params.topMargin = DpUtil.dp2px(1);
|
||||||
// mWebView.setLayoutParams(params);
|
// mWebView.setLayoutParams(params);
|
||||||
@ -136,11 +136,17 @@ public class WebViewActivity extends AbsActivity {
|
|||||||
if (url.contains("for")) {
|
if (url.contains("for")) {
|
||||||
mWebView.loadUrl("javascript:goAnchorTab()");
|
mWebView.loadUrl("javascript:goAnchorTab()");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if(url.startsWith(HtmlConfig.SHOP)){
|
||||||
|
//商店页不做动态变换
|
||||||
|
return;
|
||||||
|
}
|
||||||
//真实屏幕高度-(ft_title的高度+导航栏高度)
|
//真实屏幕高度-(ft_title的高度+导航栏高度)
|
||||||
//屏蔽掉是因为在线客服页面 AndroidBug5497Workaround会失效
|
//屏蔽掉是因为在线客服页面 AndroidBug5497Workaround会失效
|
||||||
int height = DeviceUtils.getScreenRealHeight(mContext) - DpUtil.dp2px(72) - getCurrentNavigationBarHeight(mContext);
|
int height = DeviceUtils.getScreenRealHeight(mContext) - DpUtil.dp2px(72) - getCurrentNavigationBarHeight(mContext);
|
||||||
if (!navigationGestureEnabled(mContext)) {
|
if (!navigationGestureEnabled(mContext)) {
|
||||||
view.loadUrl("javascript:window.androidObject.setHeight(" + height + ",0,false)");
|
// view.loadUrl("javascript:window.androidObject.setHeight(" + height + ",0,false)");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -194,6 +200,8 @@ public class WebViewActivity extends AbsActivity {
|
|||||||
mWebView.getSettings().setAllowFileAccess(true);
|
mWebView.getSettings().setAllowFileAccess(true);
|
||||||
mWebView.getSettings().setUseWideViewPort(true); // 关键点
|
mWebView.getSettings().setUseWideViewPort(true); // 关键点
|
||||||
mWebView.getSettings().setAllowFileAccess(true); // 允许访问文件
|
mWebView.getSettings().setAllowFileAccess(true); // 允许访问文件
|
||||||
|
mWebView.setHorizontalScrollBarEnabled(false);
|
||||||
|
mWebView.setVerticalScrollBarEnabled(false);
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||||
mWebView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
|
mWebView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
|
||||||
@ -213,6 +221,9 @@ public class WebViewActivity extends AbsActivity {
|
|||||||
ft_title.setVisibility(View.VISIBLE);
|
ft_title.setVisibility(View.VISIBLE);
|
||||||
v_spacing.setVisibility(View.GONE);
|
v_spacing.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
|
if(!StringUtil.isEmpty(url)&&url.startsWith(HtmlConfig.SHOP)){
|
||||||
|
ft_title.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2,28 +2,32 @@ package com.yunbao.common.adapter;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.view.TextureView;
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.LinearLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
|
import com.yunbao.common.utils.StringUtil;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
|
|
||||||
public class DebugDialogAdapter extends RecyclerView.Adapter<DebugDialogAdapter.DebugViewHolder> {
|
public class DebugDialogAdapter extends RecyclerView.Adapter<DebugDialogAdapter.DebugViewHolder> {
|
||||||
TreeMap<String, String> paramMap = new TreeMap<>();
|
HashMap<String, View> paramMap = new HashMap<>();
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
|
|
||||||
public DebugDialogAdapter(Context mContext) {
|
public DebugDialogAdapter(Context mContext) {
|
||||||
this.mContext = mContext;
|
this.mContext = mContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setParamMap(TreeMap<String, String> paramMap) {
|
public void setParamMap(HashMap<String, View> paramMap) {
|
||||||
|
Log.i("debug弹窗", "setParamMap: 添加值到view " + paramMap.size());
|
||||||
this.paramMap = paramMap;
|
this.paramMap = paramMap;
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
@ -31,17 +35,20 @@ public class DebugDialogAdapter extends RecyclerView.Adapter<DebugDialogAdapter.
|
|||||||
@NonNull
|
@NonNull
|
||||||
@Override
|
@Override
|
||||||
public DebugViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
public DebugViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
||||||
return new DebugViewHolder(new TextView(mContext));
|
Log.i("debug弹窗", "onCreateViewHolder: 创建适配器");
|
||||||
|
return new DebugViewHolder(new LinearLayout(mContext));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBindViewHolder(@NonNull DebugViewHolder holder, int position) {
|
public void onBindViewHolder(@NonNull DebugViewHolder holder, int position) {
|
||||||
List<String> list = new ArrayList<>(paramMap.keySet());
|
List<String> list = new ArrayList<>(paramMap.keySet());
|
||||||
|
Log.i("debug弹窗", "onBindViewHolder: 添加值到view " + list.size() + "|" + paramMap.size());
|
||||||
holder.setData(list.get(position), paramMap.get(list.get(position)));
|
holder.setData(list.get(position), paramMap.get(list.get(position)));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getItemCount() {
|
public int getItemCount() {
|
||||||
|
Log.i("debug弹窗", "getItemCount: " + paramMap.size());
|
||||||
return paramMap.size();
|
return paramMap.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -51,9 +58,24 @@ public class DebugDialogAdapter extends RecyclerView.Adapter<DebugDialogAdapter.
|
|||||||
super(itemView);
|
super(itemView);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setData(String tag, String msg) {
|
public void setData(String msg, View view) {
|
||||||
((TextView) itemView).setText(tag + ":" + msg);
|
Log.i("debug弹窗", "setData: 添加值到view " + view + "|" + msg + "|" + ((LinearLayout) itemView).indexOfChild(view));
|
||||||
((TextView) itemView).setTextColor(Color.BLACK);
|
if (view instanceof TextView && StringUtil.isEmpty(((TextView) view).getText().toString())) {
|
||||||
|
((TextView) view).setText(msg);
|
||||||
|
}
|
||||||
|
int indexOfChild = ((LinearLayout) itemView).indexOfChild(view);
|
||||||
|
if (indexOfChild != -1) {
|
||||||
|
if (((LinearLayout) itemView).getChildAt(indexOfChild) instanceof TextView) {
|
||||||
|
((TextView) ((LinearLayout) itemView).getChildAt(indexOfChild)).setText(msg);
|
||||||
|
} else {
|
||||||
|
((LinearLayout) itemView).removeViewAt(indexOfChild);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (view.getParent() != null) {
|
||||||
|
((ViewGroup) view.getParent()).removeView(view);
|
||||||
|
}
|
||||||
|
((LinearLayout) itemView).addView(view);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,10 +18,14 @@ import com.yunbao.common.views.InteractionGamesChildViewHolder;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 侧边栏游戏列表适配器,改游戏列表数量在这里改
|
||||||
|
*/
|
||||||
public class InteractionGamesAdapter extends RecyclerView.Adapter {
|
public class InteractionGamesAdapter extends RecyclerView.Adapter {
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private boolean rigts;
|
private boolean rigts;
|
||||||
private List<CustomSidebarChildModel> child = new ArrayList<>();
|
private List<CustomSidebarChildModel> child = new ArrayList<>();
|
||||||
|
private List<CustomSidebarChildModel> srcChild = new ArrayList<>();
|
||||||
|
|
||||||
public InteractionGamesAdapter(Context mContext, boolean rigts) {
|
public InteractionGamesAdapter(Context mContext, boolean rigts) {
|
||||||
this.mContext = mContext;
|
this.mContext = mContext;
|
||||||
@ -46,7 +50,7 @@ public class InteractionGamesAdapter extends RecyclerView.Adapter {
|
|||||||
long activityID = TextUtils.isEmpty(model.getSrc()) ? 0 : Long.parseLong(model.getSrc());
|
long activityID = TextUtils.isEmpty(model.getSrc()) ? 0 : Long.parseLong(model.getSrc());
|
||||||
if (activityID != 0) {
|
if (activityID != 0) {
|
||||||
Bus.get().post(new CustomDrawerPopupEvent()
|
Bus.get().post(new CustomDrawerPopupEvent()
|
||||||
.setDisMiss(true).setInteractionID(activityID).setInteraction(true).setChild(child));
|
.setDisMiss(true).setInteractionID(activityID).setInteraction(true).setChild(srcChild));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -61,6 +65,7 @@ public class InteractionGamesAdapter extends RecyclerView.Adapter {
|
|||||||
|
|
||||||
public void updateData(List<CustomSidebarChildModel> mChild) {
|
public void updateData(List<CustomSidebarChildModel> mChild) {
|
||||||
child.clear();
|
child.clear();
|
||||||
|
srcChild.clear();
|
||||||
if (mChild.size() > 8) {
|
if (mChild.size() > 8) {
|
||||||
for (int i = 0; i < 8; i++) {
|
for (int i = 0; i < 8; i++) {
|
||||||
child.add(mChild.get(i));
|
child.add(mChild.get(i));
|
||||||
@ -68,6 +73,7 @@ public class InteractionGamesAdapter extends RecyclerView.Adapter {
|
|||||||
} else {
|
} else {
|
||||||
child.addAll(mChild);
|
child.addAll(mChild);
|
||||||
}
|
}
|
||||||
|
srcChild.addAll(mChild);
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,13 +67,14 @@ public class LiveNewRoleInteractionGamesAdapter extends RecyclerView.Adapter {
|
|||||||
|
|
||||||
public void updateData(List<CustomSidebarChildModel> mChild) {
|
public void updateData(List<CustomSidebarChildModel> mChild) {
|
||||||
child.clear();
|
child.clear();
|
||||||
if (mChild.size() > 8) {
|
/* if (mChild.size() > 8) {
|
||||||
for (int i = 0; i < 8; i++) {
|
for (int i = 0; i < 8; i++) {
|
||||||
child.add(mChild.get(i));
|
child.add(mChild.get(i));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
child.addAll(mChild);
|
child.addAll(mChild);
|
||||||
}
|
}*/
|
||||||
|
child.addAll(mChild);
|
||||||
notifyDataSetChanged();
|
notifyDataSetChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
package com.yunbao.common.bean;
|
package com.yunbao.common.bean;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.annotation.JSONField;
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
import com.yunbao.common.utils.StringUtil;
|
||||||
|
import com.yunbao.common.utils.WordUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 机器人助手IM消息
|
* 机器人助手IM消息
|
||||||
@ -21,6 +24,9 @@ public class AiAutomaticSpeechModel extends BaseModel {
|
|||||||
//标签图片
|
//标签图片
|
||||||
@SerializedName("icon")
|
@SerializedName("icon")
|
||||||
private String icon;
|
private String icon;
|
||||||
|
@SerializedName("icon_en")
|
||||||
|
@JSONField(name = "icon_en")
|
||||||
|
private String iconEn;
|
||||||
//气泡背景
|
//气泡背景
|
||||||
@SerializedName("system_bubble")
|
@SerializedName("system_bubble")
|
||||||
private String systemBubble;
|
private String systemBubble;
|
||||||
@ -35,7 +41,7 @@ public class AiAutomaticSpeechModel extends BaseModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getAiName() {
|
public String getAiName() {
|
||||||
return aiName+":";
|
return aiName + ":";
|
||||||
}
|
}
|
||||||
|
|
||||||
public AiAutomaticSpeechModel setAiName(String aiName) {
|
public AiAutomaticSpeechModel setAiName(String aiName) {
|
||||||
@ -43,6 +49,15 @@ public class AiAutomaticSpeechModel extends BaseModel {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getIconEn() {
|
||||||
|
return iconEn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public AiAutomaticSpeechModel setIconEn(String iconEn) {
|
||||||
|
this.iconEn = iconEn;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public String getContent() {
|
public String getContent() {
|
||||||
return content;
|
return content;
|
||||||
}
|
}
|
||||||
@ -62,6 +77,9 @@ public class AiAutomaticSpeechModel extends BaseModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getIcon() {
|
public String getIcon() {
|
||||||
|
if (!WordUtil.isNewZh() && !StringUtil.isEmpty(iconEn)) {
|
||||||
|
return iconEn;
|
||||||
|
}
|
||||||
return icon;
|
return icon;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3,6 +3,8 @@ package com.yunbao.common.bean;
|
|||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
import com.yunbao.common.CommonAppConfig;
|
||||||
|
import com.yunbao.common.utils.StringUtil;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -421,7 +423,13 @@ public class IMLoginModel extends BaseModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getAvatar() {
|
public String getAvatar() {
|
||||||
return avatar;
|
if ("/default.jpg".equals(avatar)) {
|
||||||
|
avatar = CommonAppConfig.HOST + avatar;
|
||||||
|
}
|
||||||
|
if (StringUtil.isEmpty(avatar)) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
return avatar.trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
public IMLoginModel setAvatar(String avatar) {
|
public IMLoginModel setAvatar(String avatar) {
|
||||||
|
@ -7,12 +7,21 @@ import java.util.Map;
|
|||||||
|
|
||||||
public class LiveBattlePassRewardsBean extends BaseModel{
|
public class LiveBattlePassRewardsBean extends BaseModel{
|
||||||
private int level;
|
private int level;
|
||||||
|
private int is_received;
|
||||||
private List<BattlePassType> live_battle_pass_type;
|
private List<BattlePassType> live_battle_pass_type;
|
||||||
private Map<Integer,Map<Integer,LiveBattlePassReward>> live_battle_pass_rewards;
|
private Map<Integer,Map<Integer,LiveBattlePassReward>> live_battle_pass_rewards;
|
||||||
|
|
||||||
public LiveBattlePassRewardsBean() {
|
public LiveBattlePassRewardsBean() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getIs_received() {
|
||||||
|
return is_received;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setIs_received(int is_received) {
|
||||||
|
this.is_received = is_received;
|
||||||
|
}
|
||||||
|
|
||||||
public int getLevel() {
|
public int getLevel() {
|
||||||
return level;
|
return level;
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,30 @@
|
|||||||
|
package com.yunbao.common.bean;
|
||||||
|
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
import com.yunbao.common.utils.StringUtil;
|
||||||
|
|
||||||
|
public class MainMessageChatListTimer extends BaseModel {
|
||||||
|
@SerializedName("uid")
|
||||||
|
private String uid;
|
||||||
|
@SerializedName("time")
|
||||||
|
private int time;
|
||||||
|
|
||||||
|
public MainMessageChatListTimer() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUid() {
|
||||||
|
return uid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUid(String uid) {
|
||||||
|
this.uid = uid;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getTime() {
|
||||||
|
return time;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTime(int time) {
|
||||||
|
this.time = time;
|
||||||
|
}
|
||||||
|
}
|
@ -49,6 +49,16 @@ public class RedPacketInfoModel extends BaseModel {
|
|||||||
//超级红包ID
|
//超级红包ID
|
||||||
@SerializedName("super_jackpot_id")
|
@SerializedName("super_jackpot_id")
|
||||||
private String superJackpotId;
|
private String superJackpotId;
|
||||||
|
@SerializedName("red_packet_type")
|
||||||
|
private int redPacketType;// 1.普通红包 2.特殊红包
|
||||||
|
|
||||||
|
public int getRedPacketType() {
|
||||||
|
return redPacketType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRedPacketType(int redPacketType) {
|
||||||
|
this.redPacketType = redPacketType;
|
||||||
|
}
|
||||||
|
|
||||||
public String getSuperJackpotId() {
|
public String getSuperJackpotId() {
|
||||||
return superJackpotId;
|
return superJackpotId;
|
||||||
|
@ -6,6 +6,7 @@ import android.text.TextUtils;
|
|||||||
|
|
||||||
import com.alibaba.fastjson.annotation.JSONField;
|
import com.alibaba.fastjson.annotation.JSONField;
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
import com.yunbao.common.CommonAppConfig;
|
||||||
import com.yunbao.common.utils.StringUtil;
|
import com.yunbao.common.utils.StringUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -417,7 +418,13 @@ public class UserBean implements Parcelable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getAvatar() {
|
public String getAvatar() {
|
||||||
return avatar;
|
if ("/default.jpg".equals(avatar)) {
|
||||||
|
avatar = CommonAppConfig.HOST + avatar;
|
||||||
|
}
|
||||||
|
if (StringUtil.isEmpty(avatar)) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
return avatar.trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setAvatar(String avatar) {
|
public void setAvatar(String avatar) {
|
||||||
@ -934,11 +941,20 @@ public class UserBean implements Parcelable {
|
|||||||
private String medal;
|
private String medal;
|
||||||
private String bubble;
|
private String bubble;
|
||||||
private String medal_new;
|
private String medal_new;
|
||||||
|
private String medal_new_en;
|
||||||
|
|
||||||
public String getMedal_new() {
|
public String getMedal_new() {
|
||||||
return medal_new;
|
return medal_new;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getMedal_new_en() {
|
||||||
|
return medal_new_en;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMedal_new_en(String medal_new_en) {
|
||||||
|
this.medal_new_en = medal_new_en;
|
||||||
|
}
|
||||||
|
|
||||||
public void setMedal_new(String medal_new) {
|
public void setMedal_new(String medal_new) {
|
||||||
this.medal_new = medal_new;
|
this.medal_new = medal_new;
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@ import android.widget.TextView;
|
|||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import com.lxj.xpopup.core.CenterPopupView;
|
import com.lxj.xpopup.core.CenterPopupView;
|
||||||
import com.umeng.analytics.MobclickAgent;
|
import com.yunbao.common.utils.MobclickAgent;
|
||||||
import com.yunbao.common.R;
|
import com.yunbao.common.R;
|
||||||
import com.yunbao.common.bean.CoolConfig;
|
import com.yunbao.common.bean.CoolConfig;
|
||||||
import com.yunbao.common.http.base.HttpCallback;
|
import com.yunbao.common.http.base.HttpCallback;
|
||||||
|
@ -45,6 +45,9 @@ import java.util.List;
|
|||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 半屏创建游戏房间
|
||||||
|
*/
|
||||||
public class CreateSudGamePopup extends BottomPopupView {
|
public class CreateSudGamePopup extends BottomPopupView {
|
||||||
private List<CustomSidebarChildModel> customSidebarChildModels = new ArrayList<>();
|
private List<CustomSidebarChildModel> customSidebarChildModels = new ArrayList<>();
|
||||||
private TextView createGameType, selectCurrencyType;
|
private TextView createGameType, selectCurrencyType;
|
||||||
@ -312,6 +315,15 @@ public class CreateSudGamePopup extends BottomPopupView {
|
|||||||
animator.setDuration(animDuration);
|
animator.setDuration(animDuration);
|
||||||
animator.setInterpolator(new LinearInterpolator());
|
animator.setInterpolator(new LinearInterpolator());
|
||||||
animator.start();
|
animator.start();
|
||||||
|
if (hasMoveUp) {
|
||||||
|
InputMethodManager imm = getSystemService(getContext(), InputMethodManager.class);
|
||||||
|
if (imm != null) {
|
||||||
|
imm.hideSoftInputFromWindow(roomName.getWindowToken(), 0);
|
||||||
|
imm.hideSoftInputFromWindow(gameSill.getWindowToken(), 0);
|
||||||
|
}
|
||||||
|
new Handler().postDelayed(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
XPopup.Builder builder = new XPopup.Builder(getContext()).atView(findViewById(R.id.currency_type));
|
XPopup.Builder builder = new XPopup.Builder(getContext()).atView(findViewById(R.id.currency_type));
|
||||||
builder.hasShadowBg(false)
|
builder.hasShadowBg(false)
|
||||||
.isDestroyOnDismiss(true)
|
.isDestroyOnDismiss(true)
|
||||||
@ -326,6 +338,27 @@ public class CreateSudGamePopup extends BottomPopupView {
|
|||||||
})
|
})
|
||||||
)
|
)
|
||||||
.show();
|
.show();
|
||||||
|
}
|
||||||
|
}, 500);
|
||||||
|
}else {
|
||||||
|
XPopup.Builder builder = new XPopup.Builder(getContext()).atView(findViewById(R.id.currency_type));
|
||||||
|
builder.hasShadowBg(false)
|
||||||
|
.isDestroyOnDismiss(true)
|
||||||
|
.isLightStatusBar(false)
|
||||||
|
.popupPosition(PopupPosition.Bottom)
|
||||||
|
.asCustom(new SudGameListSelectPopup(getContext(), 5, currencyTypeName,isYuanbao)
|
||||||
|
.setOnDismissListener(new DialogInterface.OnDismissListener() {
|
||||||
|
@Override
|
||||||
|
public void onDismiss(DialogInterface dialog) {
|
||||||
|
closeAnimSudGameListEvent();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
)
|
||||||
|
.show();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -3,6 +3,10 @@ package com.yunbao.common.dialog;
|
|||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
|
import android.util.Log;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
@ -11,25 +15,37 @@ import com.lzf.easyfloat.EasyFloat;
|
|||||||
import com.lzf.easyfloat.enums.ShowPattern;
|
import com.lzf.easyfloat.enums.ShowPattern;
|
||||||
import com.lzf.easyfloat.interfaces.OnPermissionResult;
|
import com.lzf.easyfloat.interfaces.OnPermissionResult;
|
||||||
import com.lzf.easyfloat.permission.PermissionUtils;
|
import com.lzf.easyfloat.permission.PermissionUtils;
|
||||||
import com.yunbao.common.CommonAppContext;
|
import com.yunbao.common.CommonAppConfig;
|
||||||
import com.yunbao.common.adapter.DebugDialogAdapter;
|
import com.yunbao.common.adapter.DebugDialogAdapter;
|
||||||
|
import com.yunbao.common.utils.AppManager;
|
||||||
import com.yunbao.common.utils.ToastUtil;
|
import com.yunbao.common.utils.ToastUtil;
|
||||||
|
|
||||||
import java.util.TreeMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.Timer;
|
||||||
|
import java.util.TimerTask;
|
||||||
|
|
||||||
|
|
||||||
public class DebugDialog {
|
public class DebugDialog {
|
||||||
RecyclerView recyclerView;
|
RecyclerView recyclerView;
|
||||||
TreeMap<String, String> params;
|
HashMap<String, View> params;
|
||||||
DebugDialogAdapter adapter;
|
DebugDialogAdapter adapter;
|
||||||
private static DebugDialog debugDialog;
|
private static DebugDialog debugDialog;
|
||||||
Context mContext;
|
Context mContext;
|
||||||
|
private ShowPattern showPattern = ShowPattern.CURRENT_ACTIVITY;
|
||||||
|
|
||||||
public static DebugDialog getInstance(Activity mainActivity) {
|
private DebugDialogRunnable runnable;
|
||||||
|
|
||||||
|
public static void getInstance(DebugDialogRunnable runnable) {
|
||||||
if (debugDialog == null) {
|
if (debugDialog == null) {
|
||||||
debugDialog = new DebugDialog(mainActivity);
|
debugDialog = new DebugDialog(runnable);
|
||||||
|
} else {
|
||||||
|
runnable.run(debugDialog);
|
||||||
}
|
}
|
||||||
return debugDialog;
|
debugDialog.showPattern = ShowPattern.CURRENT_ACTIVITY;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean checkShow() {
|
||||||
|
return EasyFloat.isShow("debug");
|
||||||
}
|
}
|
||||||
|
|
||||||
public DebugDialog clear() {
|
public DebugDialog clear() {
|
||||||
@ -38,14 +54,59 @@ public class DebugDialog {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setParams(String tag, String msg) {
|
public void setParams(String tag, String msg) {
|
||||||
params.put(tag, msg);
|
Log.i("debug弹窗", "setParams: " + tag + "|" + msg);
|
||||||
if (adapter != null)
|
if (params.containsKey(tag)) {
|
||||||
|
((TextView) params.get(tag)).setText(tag + ":" + msg);
|
||||||
|
} else {
|
||||||
|
TextView textView = new TextView(mContext);
|
||||||
|
textView.setText(tag + ":" + msg);
|
||||||
|
params.put(tag, textView);
|
||||||
adapter.setParamMap(params);
|
adapter.setParamMap(params);
|
||||||
}
|
}
|
||||||
|
EasyFloat.updateFloat("debug");
|
||||||
|
}
|
||||||
|
|
||||||
private DebugDialog(Context mContext) {
|
private DebugDialog(DebugDialogRunnable runnable) {
|
||||||
this.mContext = mContext;
|
this.runnable = runnable;
|
||||||
params = new TreeMap<>();
|
if (params == null) {
|
||||||
|
Log.i("debug弹窗", "DebugDialog: 初始化参数");
|
||||||
|
params = new HashMap<>();
|
||||||
|
}
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void init() {
|
||||||
|
this.mContext = AppManager.getInstance().getMainActivity();
|
||||||
|
if (mContext == null) {
|
||||||
|
startWaitMainActivity();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
runnable.run(this);
|
||||||
|
// createView();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void startWaitMainActivity() {
|
||||||
|
new Timer().schedule(new TimerTask() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
Log.i("debug弹窗", "run: " + AppManager.getInstance().getMainActivity());
|
||||||
|
if (AppManager.getInstance().getMainActivity() != null) {
|
||||||
|
init();
|
||||||
|
cancel();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, 0, 1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void close() {
|
||||||
|
EasyFloat.dismiss("debug");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void show() {
|
||||||
|
if (showPattern == ShowPattern.CURRENT_ACTIVITY) {
|
||||||
|
createView();
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (PermissionUtils.checkPermission(mContext)) {
|
if (PermissionUtils.checkPermission(mContext)) {
|
||||||
createView();
|
createView();
|
||||||
} else {
|
} else {
|
||||||
@ -65,12 +126,46 @@ public class DebugDialog {
|
|||||||
recyclerView = new RecyclerView(mContext);
|
recyclerView = new RecyclerView(mContext);
|
||||||
adapter = new DebugDialogAdapter(mContext);
|
adapter = new DebugDialogAdapter(mContext);
|
||||||
recyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, false));
|
recyclerView.setLayoutManager(new LinearLayoutManager(mContext, LinearLayoutManager.VERTICAL, false));
|
||||||
|
recyclerView.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
|
||||||
recyclerView.setAdapter(adapter);
|
recyclerView.setAdapter(adapter);
|
||||||
recyclerView.setBackgroundColor(Color.WHITE);
|
recyclerView.setBackgroundColor(Color.WHITE);
|
||||||
|
TextView textView = new TextView(mContext);
|
||||||
|
TextView buildTime = new TextView(mContext);
|
||||||
|
textView.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View view) {
|
||||||
|
ToastUtil.show("debug弹窗:" + params.size());
|
||||||
|
EasyFloat.updateFloat("debug");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
params.put("debug弹窗", textView);
|
||||||
|
params.put("发包时间:" + CommonAppConfig.BUILD_TIME, buildTime);
|
||||||
|
adapter.setParamMap(params);
|
||||||
|
|
||||||
EasyFloat.with(mContext)
|
EasyFloat.with(mContext)
|
||||||
.setTag("debug")
|
.setTag("debug")
|
||||||
.setShowPattern(ShowPattern.ALL_TIME)
|
.setShowPattern(this.showPattern)
|
||||||
.setLayout(recyclerView)
|
.setLayout(recyclerView)
|
||||||
.show();
|
.show();
|
||||||
|
Log.i("debug弹窗", "createView: 创建");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setView(String value, View view, View.OnClickListener onClickListener) {
|
||||||
|
if (params.containsKey(value)) {
|
||||||
|
params.get(value).setOnClickListener(onClickListener);
|
||||||
|
} else {
|
||||||
|
view.setOnClickListener(onClickListener);
|
||||||
|
params.put(value, view);
|
||||||
|
}
|
||||||
|
adapter.setParamMap(params);
|
||||||
|
EasyFloat.updateFloat("debug");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setShowPattern(ShowPattern showPattern) {
|
||||||
|
this.showPattern = showPattern;
|
||||||
|
}
|
||||||
|
|
||||||
|
public interface DebugDialogRunnable {
|
||||||
|
void run(DebugDialog dialog);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,6 +21,7 @@ import org.greenrobot.eventbus.ThreadMode;
|
|||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
//游戏弹窗
|
||||||
public class LiveNewRolePopup extends BottomPopupView {
|
public class LiveNewRolePopup extends BottomPopupView {
|
||||||
private boolean showRed = false;
|
private boolean showRed = false;
|
||||||
|
|
||||||
|
@ -19,6 +19,7 @@ import com.yunbao.common.event.LiveSudGameHistoryEvent;
|
|||||||
import com.yunbao.common.event.RoomHolderTypeEvent;
|
import com.yunbao.common.event.RoomHolderTypeEvent;
|
||||||
import com.yunbao.common.event.SudGameListEvent;
|
import com.yunbao.common.event.SudGameListEvent;
|
||||||
import com.yunbao.common.event.SudGameListSillEvent;
|
import com.yunbao.common.event.SudGameListSillEvent;
|
||||||
|
import com.yunbao.common.manager.IMLoginManager;
|
||||||
import com.yunbao.common.utils.Bus;
|
import com.yunbao.common.utils.Bus;
|
||||||
import com.yunbao.common.views.weight.ViewClicksAntiShake;
|
import com.yunbao.common.views.weight.ViewClicksAntiShake;
|
||||||
|
|
||||||
@ -87,6 +88,11 @@ public class SudGameListSelectPopup extends AttachPopupView {
|
|||||||
if (mType == 0 || mType == 4) {
|
if (mType == 0 || mType == 4) {
|
||||||
topSelect.setText(getContext().getString(R.string.interactive_game_room_all));
|
topSelect.setText(getContext().getString(R.string.interactive_game_room_all));
|
||||||
for (int i = 0; i < customSidebarChildModels.size(); i++) {
|
for (int i = 0; i < customSidebarChildModels.size(); i++) {
|
||||||
|
/* if (!IMLoginManager.get(getContext()).getUserInfo().anchorUserType()) {
|
||||||
|
if ("1490944230389182466".equals(customSidebarChildModels.get(i).getSrc())) {//友尽闯关
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}*/
|
||||||
selectString.add(customSidebarChildModels.get(i).getTitle());
|
selectString.add(customSidebarChildModels.get(i).getTitle());
|
||||||
if (TextUtils.equals(String.valueOf(interactionID), customSidebarChildModels.get(i).getSrc())) {
|
if (TextUtils.equals(String.valueOf(interactionID), customSidebarChildModels.get(i).getSrc())) {
|
||||||
index = i;
|
index = i;
|
||||||
|
@ -115,6 +115,36 @@ public class SendBlindGiftEvent extends BaseModel {
|
|||||||
private String liveGiftNotify;
|
private String liveGiftNotify;
|
||||||
@SerializedName("userNiceName")
|
@SerializedName("userNiceName")
|
||||||
private String userNiceName;
|
private String userNiceName;
|
||||||
|
@SerializedName("special_gift")
|
||||||
|
private int specialGift;
|
||||||
|
@SerializedName("special_gift_name")
|
||||||
|
private String specialGiftName;
|
||||||
|
@SerializedName("special_gift_name_en")
|
||||||
|
private String specialGiftNameEn;
|
||||||
|
|
||||||
|
public int getSpecialGift() {
|
||||||
|
return specialGift;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSpecialGift(int specialGift) {
|
||||||
|
this.specialGift = specialGift;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSpecialGiftName() {
|
||||||
|
return specialGiftName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSpecialGiftName(String specialGiftName) {
|
||||||
|
this.specialGiftName = specialGiftName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getSpecialGiftNameEn() {
|
||||||
|
return specialGiftNameEn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSpecialGiftNameEn(String specialGiftNameEn) {
|
||||||
|
this.specialGiftNameEn = specialGiftNameEn;
|
||||||
|
}
|
||||||
|
|
||||||
public String getUserNiceName() {
|
public String getUserNiceName() {
|
||||||
return userNiceName;
|
return userNiceName;
|
||||||
|
@ -0,0 +1,44 @@
|
|||||||
|
package com.yunbao.common.event;
|
||||||
|
|
||||||
|
import com.yunbao.common.bean.HttpCallbackModel;
|
||||||
|
|
||||||
|
public class SubGameEvent {
|
||||||
|
int type;
|
||||||
|
HttpCallbackModel model;
|
||||||
|
String dataJson;
|
||||||
|
|
||||||
|
public SubGameEvent(int type, HttpCallbackModel model, String dataJson) {
|
||||||
|
this.type = type;
|
||||||
|
this.model = model;
|
||||||
|
this.dataJson = dataJson;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setType(int type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HttpCallbackModel getModel() {
|
||||||
|
return model;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setModel(HttpCallbackModel model) {
|
||||||
|
this.model = model;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDataJson() {
|
||||||
|
return dataJson;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "SubGameEvent{" +
|
||||||
|
"type=" + type +
|
||||||
|
", model=" + model +
|
||||||
|
", dataJson='" + dataJson + '\'' +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
@ -14,6 +14,7 @@ import com.bumptech.glide.Glide;
|
|||||||
import com.bumptech.glide.RequestBuilder;
|
import com.bumptech.glide.RequestBuilder;
|
||||||
import com.bumptech.glide.load.DataSource;
|
import com.bumptech.glide.load.DataSource;
|
||||||
import com.bumptech.glide.load.engine.GlideException;
|
import com.bumptech.glide.load.engine.GlideException;
|
||||||
|
import com.bumptech.glide.load.resource.bitmap.CircleCrop;
|
||||||
import com.bumptech.glide.request.RequestListener;
|
import com.bumptech.glide.request.RequestListener;
|
||||||
import com.bumptech.glide.request.RequestOptions;
|
import com.bumptech.glide.request.RequestOptions;
|
||||||
import com.bumptech.glide.request.target.CustomTarget;
|
import com.bumptech.glide.request.target.CustomTarget;
|
||||||
@ -48,10 +49,10 @@ public class ImgLoader {
|
|||||||
if (!contextIsExist(context)) {
|
if (!contextIsExist(context)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(StringUtil.isEmpty(url)){
|
if (StringUtil.isEmpty(url)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(!url.startsWith("http")){
|
if (!url.startsWith("http")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
RequestBuilder<Drawable> builder = Glide.with(context)
|
RequestBuilder<Drawable> builder = Glide.with(context)
|
||||||
@ -159,11 +160,33 @@ public class ImgLoader {
|
|||||||
displayAvatar(context, url, imageView, -1, -1);
|
displayAvatar(context, url, imageView, -1, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void displayAvatarCircleCrop(Context context, String url, ImageView imageView) {
|
||||||
|
if (!contextIsExist(context)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!contextIsExist(context) || imageView == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (StringUtil.isEmpty(url)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!url.startsWith("http")) {
|
||||||
|
imageView.setImageResource(R.mipmap.chat_head_mo);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
RequestBuilder<Drawable> builder = Glide.with(context)
|
||||||
|
.load(url)
|
||||||
|
.thumbnail(thumbnail)
|
||||||
|
.apply(RequestOptions.bitmapTransform(new CircleCrop()))
|
||||||
|
.error(R.mipmap.icon_avatar_placeholder);
|
||||||
|
builder.into(imageView);
|
||||||
|
}
|
||||||
|
|
||||||
public static void displayAvatar(Context context, String url, ImageView imageView, int width, int height) {
|
public static void displayAvatar(Context context, String url, ImageView imageView, int width, int height) {
|
||||||
if (!contextIsExist(context) || imageView == null) {
|
if (!contextIsExist(context) || imageView == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if(StringUtil.isEmpty(url)){
|
if (StringUtil.isEmpty(url)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!url.startsWith("http")) {
|
if (!url.startsWith("http")) {
|
||||||
|
@ -43,7 +43,6 @@ import java.util.Locale;
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
public class CommonHttpUtil {
|
public class CommonHttpUtil {
|
||||||
|
|
||||||
public static final String GET_UPLOAD_QI_NIU_TOKEN = "getUploadQiNiuToken";
|
public static final String GET_UPLOAD_QI_NIU_TOKEN = "getUploadQiNiuToken";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -416,7 +415,7 @@ 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.pandoralive.shayu")
|
.params("package_name", "com.pandora.sy")
|
||||||
.execute(callback);
|
.execute(callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -427,7 +426,7 @@ public class CommonHttpUtil {
|
|||||||
.params("trade_no", tradeNo)
|
.params("trade_no", tradeNo)
|
||||||
.params("allData", allData)
|
.params("allData", allData)
|
||||||
.params("gps_adid", gps_adid)
|
.params("gps_adid", gps_adid)
|
||||||
.params("package_name", "com.pandoralive.shayu")
|
.params("package_name", "com.pandora.sy")
|
||||||
.execute(callback);
|
.execute(callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -436,7 +435,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.pandoralive.shayu")
|
.params("package_name", "com.pandora.sy")
|
||||||
.execute(callback);
|
.execute(callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -643,7 +642,16 @@ public class CommonHttpUtil {
|
|||||||
.params("ext", isImg ? ".jpeg" : ".mp4")
|
.params("ext", isImg ? ".jpeg" : ".mp4")
|
||||||
.execute(callback);
|
.execute(callback);
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 上传文件 获取七牛云token的接口
|
||||||
|
*/
|
||||||
|
public static void getUploadQiNiuTokenNew(HttpCallback callback, boolean isImg) {
|
||||||
|
HttpClient.getInstance().get("Pdluserhome.getQiNiuToken2", "Pdluserhome.getQiNiuToken2")
|
||||||
|
.params("uid", CommonAppConfig.getInstance().getUid())
|
||||||
|
.params("token", CommonAppConfig.getInstance().getToken())
|
||||||
|
.params("ext", isImg ? ".jpeg" : ".mp4")
|
||||||
|
.execute(callback);
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* 修改用户背景墙
|
* 修改用户背景墙
|
||||||
*/
|
*/
|
||||||
|
@ -51,6 +51,7 @@ import com.yunbao.common.bean.LiveRoomVoteModel;
|
|||||||
import com.yunbao.common.bean.LiveStetUpStatusModel;
|
import com.yunbao.common.bean.LiveStetUpStatusModel;
|
||||||
import com.yunbao.common.bean.LiveTaskModel;
|
import com.yunbao.common.bean.LiveTaskModel;
|
||||||
import com.yunbao.common.bean.LiveUserMailBoxModel;
|
import com.yunbao.common.bean.LiveUserMailBoxModel;
|
||||||
|
import com.yunbao.common.bean.MainMessageChatListTimer;
|
||||||
import com.yunbao.common.bean.MedalAchievementModel;
|
import com.yunbao.common.bean.MedalAchievementModel;
|
||||||
import com.yunbao.common.bean.MessageChatIsAnchor;
|
import com.yunbao.common.bean.MessageChatIsAnchor;
|
||||||
import com.yunbao.common.bean.MessageChatUserBean;
|
import com.yunbao.common.bean.MessageChatUserBean;
|
||||||
@ -129,7 +130,7 @@ public interface PDLiveApi {
|
|||||||
@Field("uuid_Device") String uuidDevice,
|
@Field("uuid_Device") String uuidDevice,
|
||||||
@Field("pushid") String pushid,
|
@Field("pushid") String pushid,
|
||||||
@Field("lastlogindevice") String lastlogindevice,
|
@Field("lastlogindevice") String lastlogindevice,
|
||||||
@Field("langue")String langue
|
@Field("langue") String langue
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1329,11 +1330,51 @@ public interface PDLiveApi {
|
|||||||
|
|
||||||
@GET("/api/public/?service=Guard.participateMoneyLong")
|
@GET("/api/public/?service=Guard.participateMoneyLong")
|
||||||
Observable<ResponseModel<String>> participateMoneyLong(@Query("liveuid") String liveUid, @Query("send_money_long_key") String sendMoneyLongKey);
|
Observable<ResponseModel<String>> participateMoneyLong(@Query("liveuid") String liveUid, @Query("send_money_long_key") String sendMoneyLongKey);
|
||||||
|
|
||||||
@GET("/api/public/?service=Guard.endSendMoneyLong")
|
@GET("/api/public/?service=Guard.endSendMoneyLong")
|
||||||
Observable<ResponseModel<SendMoneyLongModel>> endSendMoneyLong(@Query("liveuid") String liveUid, @Query("send_money_long_key") String sendMoneyLongKey);
|
Observable<ResponseModel<SendMoneyLongModel>> endSendMoneyLong(@Query("liveuid") String liveUid, @Query("send_money_long_key") String sendMoneyLongKey);
|
||||||
|
|
||||||
@GET("/api/public/?service=Guard.checkUpgrades")
|
@GET("/api/public/?service=Guard.checkUpgrades")
|
||||||
Observable<ResponseModel<CheckUpgradesModel>> checkUpgrades(@Query("liveuid") String liveUid);
|
Observable<ResponseModel<CheckUpgradesModel>> checkUpgrades(@Query("liveuid") String liveUid);
|
||||||
|
|
||||||
@GET("/api/public/?service=Guard.getRewards")
|
@GET("/api/public/?service=Guard.getRewards")
|
||||||
Observable<ResponseModel<Object>> guardGetRewards(@Query("guard_level") String guardLevel,@Query("liveuid") String liveUid);
|
Observable<ResponseModel<Object>> guardGetRewards(@Query("guard_level") String guardLevel, @Query("liveuid") String liveUid);
|
||||||
|
|
||||||
|
@GET("/api/public/?service=User.userFeedback")
|
||||||
|
Observable<ResponseModel<List<BaseModel>>> feedback(@Query("problem_description") String content, @Query("problem_image") String images, @Query("contact_information") String ci);
|
||||||
|
|
||||||
|
|
||||||
|
@GET("/api/public/?service=User.userFeedbackRestrict")
|
||||||
|
Observable<ResponseModel<List<BaseModel>>> checkFeedback();
|
||||||
|
|
||||||
|
@GET("/api/public/?service=Pdlinfos.getOtherList")
|
||||||
|
Observable<ResponseModel<List<MessageChatUserBean>>> getOtherList(@Query("ids") String uids);
|
||||||
|
|
||||||
|
@GET("/api/public/?service=Pdlinfos.getRelation")
|
||||||
|
Observable<ResponseModel<List<String>>> getRelation(@Query("type") String type);
|
||||||
|
@GET("/api/public/?service=Pdlinfos.getIsLook")
|
||||||
|
Observable<ResponseModel<List<MainMessageChatListTimer>>> getIsLook(@Query("ids") String uids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param roomId 房间ID
|
||||||
|
* @param cmd 事件名称 生命值:addHeart 自动跳:hit
|
||||||
|
* @param value 价格
|
||||||
|
* @param gameId 游戏ID
|
||||||
|
* @param fromUid 付费用户uid
|
||||||
|
* @param toUid 目标用户uid
|
||||||
|
* @param payload 附加值
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@GET("/api/public/?service=Sudgameserver.createOrder")
|
||||||
|
Observable<ResponseModel<List<BaseModel>>> createGameOrder(
|
||||||
|
@Query("room_id")String roomId,
|
||||||
|
@Query("cmd")String cmd,
|
||||||
|
@Query("value")String value,
|
||||||
|
@Query("mg_id")String gameId,
|
||||||
|
@Query("from_uid")String fromUid,
|
||||||
|
@Query("to_uid")String toUid,
|
||||||
|
@Query("payload")String payload
|
||||||
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import android.content.Context;
|
|||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.yunbao.common.CommonAppConfig;
|
import com.yunbao.common.CommonAppConfig;
|
||||||
import com.yunbao.common.Constants;
|
import com.yunbao.common.Constants;
|
||||||
@ -54,6 +55,7 @@ import com.yunbao.common.bean.LiveRoomVoteModel;
|
|||||||
import com.yunbao.common.bean.LiveStetUpStatusModel;
|
import com.yunbao.common.bean.LiveStetUpStatusModel;
|
||||||
import com.yunbao.common.bean.LiveTaskModel;
|
import com.yunbao.common.bean.LiveTaskModel;
|
||||||
import com.yunbao.common.bean.LiveUserMailBoxModel;
|
import com.yunbao.common.bean.LiveUserMailBoxModel;
|
||||||
|
import com.yunbao.common.bean.MainMessageChatListTimer;
|
||||||
import com.yunbao.common.bean.MedalAchievementModel;
|
import com.yunbao.common.bean.MedalAchievementModel;
|
||||||
import com.yunbao.common.bean.MessageChatIsAnchor;
|
import com.yunbao.common.bean.MessageChatIsAnchor;
|
||||||
import com.yunbao.common.bean.MessageChatUserBean;
|
import com.yunbao.common.bean.MessageChatUserBean;
|
||||||
@ -3159,6 +3161,97 @@ public class LiveNetManager {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void feedback(
|
||||||
|
String content,
|
||||||
|
JSONArray images,
|
||||||
|
String ci
|
||||||
|
, HttpCallback<HttpCallbackModel> callback) {
|
||||||
|
API.get().pdLiveApi(mContext)
|
||||||
|
.feedback(content, images.toString(), ci)
|
||||||
|
.subscribeOn(Schedulers.io())
|
||||||
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
.subscribe(new Consumer<ResponseModel<List<BaseModel>>>() {
|
||||||
|
@Override
|
||||||
|
public void accept(ResponseModel<List<BaseModel>> responseModel) {
|
||||||
|
if (callback != null) {
|
||||||
|
HttpCallbackModel model = new HttpCallbackModel();
|
||||||
|
model.setCode(responseModel.getData().getCode());
|
||||||
|
model.setMsg(responseModel.getData().getMsg());
|
||||||
|
callback.onSuccess(model);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, new Consumer<Throwable>() {
|
||||||
|
@Override
|
||||||
|
public void accept(Throwable throwable) throws Exception {
|
||||||
|
if (callback != null) {
|
||||||
|
callback.onError(mContext.getString(com.yunbao.common.R.string.net_error));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).isDisposed();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void checkFeedback(
|
||||||
|
HttpCallback<HttpCallbackModel> callback) {
|
||||||
|
API.get().pdLiveApi(mContext)
|
||||||
|
.checkFeedback()
|
||||||
|
.subscribeOn(Schedulers.io())
|
||||||
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
.subscribe(new Consumer<ResponseModel<List<BaseModel>>>() {
|
||||||
|
@Override
|
||||||
|
public void accept(ResponseModel<List<BaseModel>> responseModel) {
|
||||||
|
if (callback != null) {
|
||||||
|
HttpCallbackModel model = new HttpCallbackModel();
|
||||||
|
model.setCode(responseModel.getData().getCode());
|
||||||
|
model.setMsg(responseModel.getData().getMsg());
|
||||||
|
callback.onSuccess(model);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, new Consumer<Throwable>() {
|
||||||
|
@Override
|
||||||
|
public void accept(Throwable throwable) throws Exception {
|
||||||
|
if (callback != null) {
|
||||||
|
callback.onError(mContext.getString(com.yunbao.common.R.string.net_error));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).isDisposed();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void createGameOrder(
|
||||||
|
String roomId,
|
||||||
|
String cmd,
|
||||||
|
String value,
|
||||||
|
String gameId,
|
||||||
|
String fromUid,
|
||||||
|
String toUid,
|
||||||
|
String roundId,
|
||||||
|
String payload
|
||||||
|
, HttpCallback<HttpCallbackModel> callback) {
|
||||||
|
API.get().pdLiveApi(mContext)
|
||||||
|
.createGameOrder(roomId, cmd, value, gameId, fromUid, toUid,payload)
|
||||||
|
.subscribeOn(Schedulers.io())
|
||||||
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
.subscribe(new Consumer<ResponseModel<List<BaseModel>>>() {
|
||||||
|
@Override
|
||||||
|
public void accept(ResponseModel<List<BaseModel>> responseModel) {
|
||||||
|
if (callback != null) {
|
||||||
|
HttpCallbackModel model = new HttpCallbackModel();
|
||||||
|
model.setCode(responseModel.getData().getCode());
|
||||||
|
model.setMsg(responseModel.getData().getMsg());
|
||||||
|
callback.onSuccess(model);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, new Consumer<Throwable>() {
|
||||||
|
@Override
|
||||||
|
public void accept(Throwable throwable) throws Exception {
|
||||||
|
if (callback != null) {
|
||||||
|
callback.onError(mContext.getString(com.yunbao.common.R.string.net_error));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).isDisposed();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public void guardGetRewards(String guardLevel, String liveUid, HttpCallback<Object> callback) {
|
public void guardGetRewards(String guardLevel, String liveUid, HttpCallback<Object> callback) {
|
||||||
API.get().pdLiveApi(mContext)
|
API.get().pdLiveApi(mContext)
|
||||||
.guardGetRewards("0", liveUid)
|
.guardGetRewards("0", liveUid)
|
||||||
@ -3795,8 +3888,61 @@ public class LiveNetManager {
|
|||||||
}).isDisposed();
|
}).isDisposed();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void getOtherList(String uids, HttpCallback<List<MessageChatUserBean>> callback) {
|
||||||
|
API.get().pdLiveApi(mContext)
|
||||||
|
.getOtherList(uids)
|
||||||
|
.subscribeOn(Schedulers.io())
|
||||||
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
.subscribe(new Consumer<ResponseModel<List<MessageChatUserBean>>>() {
|
||||||
|
@Override
|
||||||
|
public void accept(ResponseModel<List<MessageChatUserBean>> messageUserInfoBeanResponseModel) throws Exception {
|
||||||
|
if (callback != null) {
|
||||||
|
callback.onSuccess(messageUserInfoBeanResponseModel.getData().getInfo());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, new Consumer<Throwable>() {
|
||||||
|
@Override
|
||||||
|
public void accept(Throwable throwable) throws Exception {
|
||||||
|
throwable.printStackTrace();
|
||||||
|
if (callback != null) {
|
||||||
|
callback.onError(mContext.getString(R.string.net_error));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).isDisposed();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void getRelation(String type, HttpCallback<List<String>> callback) {
|
||||||
|
API.get().pdLiveApi(mContext)
|
||||||
|
.getRelation(type)
|
||||||
|
.subscribeOn(Schedulers.io())
|
||||||
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
.subscribe(messageUserInfoBeanResponseModel -> {
|
||||||
|
if (callback != null) {
|
||||||
|
callback.onSuccess(messageUserInfoBeanResponseModel.getData().getInfo());
|
||||||
|
}
|
||||||
|
}, throwable -> {
|
||||||
|
throwable.printStackTrace();
|
||||||
|
if (callback != null) {
|
||||||
|
callback.onError(mContext.getString(R.string.net_error));
|
||||||
|
}
|
||||||
|
}).isDisposed();
|
||||||
|
}
|
||||||
|
public void getIsLook(String uids, HttpCallback<List<MainMessageChatListTimer>> callback) {
|
||||||
|
API.get().pdLiveApi(mContext)
|
||||||
|
.getIsLook(uids)
|
||||||
|
.subscribeOn(Schedulers.io())
|
||||||
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
|
.subscribe(messageUserInfoBeanResponseModel -> {
|
||||||
|
if (callback != null) {
|
||||||
|
callback.onSuccess(messageUserInfoBeanResponseModel.getData().getInfo());
|
||||||
|
}
|
||||||
|
}, throwable -> {
|
||||||
|
throwable.printStackTrace();
|
||||||
|
if (callback != null) {
|
||||||
|
callback.onError(mContext.getString(R.string.net_error));
|
||||||
|
}
|
||||||
|
}).isDisposed();
|
||||||
|
}
|
||||||
private MultipartBody.Part createUploadFile(File file) {
|
private MultipartBody.Part createUploadFile(File file) {
|
||||||
RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
|
RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
|
||||||
return MultipartBody.Part.createFormData("file", file.getName(), requestBody);
|
return MultipartBody.Part.createFormData("file", file.getName(), requestBody);
|
||||||
|
@ -1,10 +1,17 @@
|
|||||||
package com.yunbao.common.interfaces;
|
package com.yunbao.common.interfaces;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
|
||||||
import com.yunbao.common.CommonAppContext;
|
import com.yunbao.common.CommonAppContext;
|
||||||
import com.yunbao.common.bean.AvatarBean;
|
import com.yunbao.common.bean.AvatarBean;
|
||||||
import com.yunbao.common.http.live.LiveNetManager;
|
import com.yunbao.common.http.live.LiveNetManager;
|
||||||
|
import com.yunbao.common.upload.UploadBean;
|
||||||
|
import com.yunbao.common.upload.UploadCallback;
|
||||||
|
import com.yunbao.common.upload.UploadQnImpl;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by cxf on 2018/9/29.
|
* Created by cxf on 2018/9/29.
|
||||||
@ -35,4 +42,20 @@ public abstract class ImageResultCallback {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
public void onSuccessToQiNiuUrl(Context mContext, File file, OnItemClickListener<String> listener) {
|
||||||
|
UploadQnImpl mUploadStrategy = new UploadQnImpl(mContext);
|
||||||
|
List<UploadBean> beans = new ArrayList<>();
|
||||||
|
beans.add(new UploadBean(file, UploadBean.IMG));
|
||||||
|
mUploadStrategy.upload(beans, true, new UploadCallback() {
|
||||||
|
@Override
|
||||||
|
public void onFinish(List<UploadBean> list, boolean success) {
|
||||||
|
if (success) {
|
||||||
|
listener.onItemClick("https://downs.yaoulive.com/" + list.get(0).getRemoteAccessUrl(), 0);
|
||||||
|
} else {
|
||||||
|
listener.onItemClick(null, -1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, true);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,5 @@
|
|||||||
|
package com.yunbao.common.interfaces;
|
||||||
|
|
||||||
|
public interface OnRecyclerListRefreshListener<T> {
|
||||||
|
void onFinish(T t);
|
||||||
|
}
|
@ -13,7 +13,7 @@ import com.alibaba.fastjson.JSONObject;
|
|||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.lzf.easyfloat.EasyFloat;
|
import com.lzf.easyfloat.EasyFloat;
|
||||||
import com.lzy.okgo.model.Response;
|
import com.lzy.okgo.model.Response;
|
||||||
import com.umeng.analytics.MobclickAgent;
|
import com.yunbao.common.utils.MobclickAgent;
|
||||||
import com.yunbao.common.CommonAppContext;
|
import com.yunbao.common.CommonAppContext;
|
||||||
import com.yunbao.common.bean.IMLoginModel;
|
import com.yunbao.common.bean.IMLoginModel;
|
||||||
import com.yunbao.common.event.DataUserInfoEvent;
|
import com.yunbao.common.event.DataUserInfoEvent;
|
||||||
@ -427,7 +427,12 @@ public class IMLoginManager extends BaseCacheManager {
|
|||||||
public boolean isGiftEffect() {
|
public boolean isGiftEffect() {
|
||||||
return getBoolean(GiftEffect, !(Build.VERSION.SDK_INT < Build.VERSION_CODES.O));
|
return getBoolean(GiftEffect, !(Build.VERSION.SDK_INT < Build.VERSION_CODES.O));
|
||||||
}
|
}
|
||||||
|
public void setAnchorB(int isAnchor) {
|
||||||
|
put("isAnchorB", isAnchor);
|
||||||
|
}
|
||||||
|
public int getAnchorB(){
|
||||||
|
return getInt("isAnchorB", -1);
|
||||||
|
}
|
||||||
public void setLiveNotifySettings(boolean isTrue) {
|
public void setLiveNotifySettings(boolean isTrue) {
|
||||||
put(LIVE_NOTIFY_SETTINGS, isTrue);
|
put(LIVE_NOTIFY_SETTINGS, isTrue);
|
||||||
}
|
}
|
||||||
@ -584,4 +589,5 @@ public class IMLoginManager extends BaseCacheManager {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -2,6 +2,7 @@ package com.yunbao.common.manager;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
@ -39,6 +40,7 @@ public class InstructorRemarkManager extends BaseCacheManager {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public Map<String, String> getInstructorRemark() {
|
public Map<String, String> getInstructorRemark() {
|
||||||
|
try {
|
||||||
if (null == instructorRemarkMap) {
|
if (null == instructorRemarkMap) {
|
||||||
String string = getString(KEY_INSTRUCTOR_REMARK);
|
String string = getString(KEY_INSTRUCTOR_REMARK);
|
||||||
if (!StringUtil.isEmpty(string)) {
|
if (!StringUtil.isEmpty(string)) {
|
||||||
@ -47,6 +49,10 @@ public class InstructorRemarkManager extends BaseCacheManager {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}catch (Exception e){
|
||||||
|
Log.i("remark", "getInstructorRemark: "+getString(KEY_INSTRUCTOR_REMARK));
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
if (instructorRemarkMap == null) {
|
if (instructorRemarkMap == null) {
|
||||||
instructorRemarkMap = new HashMap<>();
|
instructorRemarkMap = new HashMap<>();
|
||||||
}
|
}
|
||||||
|
@ -484,7 +484,7 @@ public class GameMicManager {
|
|||||||
Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM;
|
Conversation.ConversationType conversationType = Conversation.ConversationType.CHATROOM;
|
||||||
TextMessage messageContent = TextMessage.obtain(new Gson().toJson(sudGameSocketImEvent));
|
TextMessage messageContent = TextMessage.obtain(new Gson().toJson(sudGameSocketImEvent));
|
||||||
Message message = Message.obtain("v" + mRoomID, conversationType, messageContent);
|
Message message = Message.obtain("v" + mRoomID, conversationType, messageContent);
|
||||||
RongIMClient.getInstance().sendMessage(message, null, null, new IRongCallback.ISendMessageCallback() {
|
RongcloudIMManager.sendMessage(message, null, null, new IRongCallback.ISendMessageCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onAttached(Message message) {
|
public void onAttached(Message message) {
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@ import android.util.Log;
|
|||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.yunbao.common.bean.IMLoginModel;
|
import com.yunbao.common.bean.IMLoginModel;
|
||||||
|
import com.yunbao.common.utils.ToastUtil;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -28,11 +29,41 @@ public class PDMessageInterceptor implements MessageInterceptor {
|
|||||||
TextMessage textMessage = (TextMessage) message.getContent();
|
TextMessage textMessage = (TextMessage) message.getContent();
|
||||||
String context = textMessage.getContent();
|
String context = textMessage.getContent();
|
||||||
//符合条件的接受消息不做展示
|
//符合条件的接受消息不做展示
|
||||||
if (context.contains("LivePK")||context.contains("LiveDRPK")||context.contains("LiveRandomPK")) {
|
if (context.contains("LivePK") ||
|
||||||
|
context.contains("LivePKDRLM") ||
|
||||||
|
context.contains("LiveDRPK") ||
|
||||||
|
context.contains("LiveRandomPK")) {
|
||||||
Message[] messages = new Message[]{message};
|
Message[] messages = new Message[]{message};
|
||||||
Log.e("PDMessageInterceptor", textMessage.getContent());
|
Log.e("PDMessageInterceptor", message.getMessageId() + "|" + textMessage.getContent());
|
||||||
//删除消息
|
//删除消息
|
||||||
IMCenter.getInstance().deleteRemoteMessages(Conversation.ConversationType.PRIVATE, message.getTargetId(), messages, null);
|
IMCenter.getInstance().deleteMessages(Conversation.ConversationType.PRIVATE, message.getTargetId(), new int[]{
|
||||||
|
message.getMessageId()
|
||||||
|
}, new RongIMClient.ResultCallback<Boolean>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(Boolean aBoolean) {
|
||||||
|
Log.i("PDMessageInterceptor", "onSuccess: 删除成功:" + aBoolean+" "+ message.getMessageId());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(RongIMClient.ErrorCode errorCode) {
|
||||||
|
Log.i("PDMessageInterceptor", "onSuccess: 删除失败:" + errorCode);
|
||||||
|
ToastUtil.showDebug("删除消息失败:"+errorCode.code+"|"+errorCode.msg);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
IMCenter.getInstance().deleteRemoteMessages(Conversation.ConversationType.PRIVATE, message.getTargetId(), messages, new RongIMClient.OperationCallback() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess() {
|
||||||
|
Log.i("PDMessageInterceptor", "onSuccess: 删除成功:" + message.getMessageId());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(RongIMClient.ErrorCode errorCode) {
|
||||||
|
Log.i("PDMessageInterceptor", "onSuccess: 删除失败:" + errorCode);
|
||||||
|
ToastUtil.showDebug("删除消息失败:"+errorCode.code+"|"+errorCode.msg);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
IMCenter.getInstance().clearMessagesUnreadStatus(Conversation.ConversationType.PRIVATE, message.getTargetId(), null);
|
IMCenter.getInstance().clearMessagesUnreadStatus(Conversation.ConversationType.PRIVATE, message.getTargetId(), null);
|
||||||
|
|
||||||
// return true;
|
// return true;
|
||||||
|
@ -15,10 +15,14 @@ import com.bumptech.glide.request.RequestOptions;
|
|||||||
import com.iflytek.cloud.SpeechConstant;
|
import com.iflytek.cloud.SpeechConstant;
|
||||||
import com.iflytek.cloud.SpeechUtility;
|
import com.iflytek.cloud.SpeechUtility;
|
||||||
import com.yunbao.common.CommonAppConfig;
|
import com.yunbao.common.CommonAppConfig;
|
||||||
|
import com.yunbao.common.R;
|
||||||
import com.yunbao.common.bean.IMLoginModel;
|
import com.yunbao.common.bean.IMLoginModel;
|
||||||
|
import com.yunbao.common.dialog.DebugDialog;
|
||||||
import com.yunbao.common.event.RongIMConnectionStatusEvent;
|
import com.yunbao.common.event.RongIMConnectionStatusEvent;
|
||||||
import com.yunbao.common.manager.IMLoginManager;
|
import com.yunbao.common.manager.IMLoginManager;
|
||||||
|
import com.yunbao.common.utils.AppManager;
|
||||||
import com.yunbao.common.utils.ToastUtil;
|
import com.yunbao.common.utils.ToastUtil;
|
||||||
|
import com.yunbao.common.utils.WordUtil;
|
||||||
|
|
||||||
import org.greenrobot.eventbus.EventBus;
|
import org.greenrobot.eventbus.EventBus;
|
||||||
|
|
||||||
@ -26,6 +30,7 @@ import io.rong.imkit.GlideKitImageEngine;
|
|||||||
import io.rong.imkit.IMCenter;
|
import io.rong.imkit.IMCenter;
|
||||||
import io.rong.imkit.RongIM;
|
import io.rong.imkit.RongIM;
|
||||||
import io.rong.imkit.config.RongConfigCenter;
|
import io.rong.imkit.config.RongConfigCenter;
|
||||||
|
import io.rong.imlib.IRongCallback;
|
||||||
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.Message;
|
||||||
@ -113,14 +118,33 @@ public class RongcloudIMManager {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void connectIM(Context context) {
|
||||||
|
connectIM(context, new RongIMClient.ConnectCallback() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(String t) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(RongIMClient.ConnectionErrorCode e) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDatabaseOpened(RongIMClient.DatabaseOpenStatus code) {
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 连接融云服务器
|
* 连接融云服务器
|
||||||
*
|
*
|
||||||
* @param context
|
* @param context
|
||||||
*/
|
*/
|
||||||
public static void connectIM(Context context) {
|
public static void connectIM(Context context, RongIMClient.ConnectCallback callback) {
|
||||||
// MessageIMManager.get(context).addImRongCloudObserver();
|
MessageIMManager.get(context).addImRongCloudObserver();
|
||||||
// MessageIMManager.get(context).getSystemMessages();
|
MessageIMManager.get(context).getSystemMessages();
|
||||||
IMLoginModel userInfo = IMLoginManager.get(context).getUserInfo();
|
IMLoginModel userInfo = IMLoginManager.get(context).getUserInfo();
|
||||||
String IMToken = userInfo.getTokenRong();
|
String IMToken = userInfo.getTokenRong();
|
||||||
Log.e(CLASSNAME, "connectIM:" + IMToken);
|
Log.e(CLASSNAME, "connectIM:" + IMToken);
|
||||||
@ -130,6 +154,7 @@ public class RongcloudIMManager {
|
|||||||
RongIM.connect(IMToken, 0, new RongIMClient.ConnectCallback() {
|
RongIM.connect(IMToken, 0, new RongIMClient.ConnectCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(String s) {
|
public void onSuccess(String s) {
|
||||||
|
callback.onSuccess(s);
|
||||||
//连接成功,如果 onDatabaseOpened() 时没有页面跳转,也可在此时进行跳转。
|
//连接成功,如果 onDatabaseOpened() 时没有页面跳转,也可在此时进行跳转。
|
||||||
Log.e(CLASSNAME, "onSuccess:" + s);
|
Log.e(CLASSNAME, "onSuccess:" + s);
|
||||||
isReady = true;
|
isReady = true;
|
||||||
@ -139,7 +164,7 @@ public class RongcloudIMManager {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onError(RongIMClient.ConnectionErrorCode connectionErrorCode) {
|
public void onError(RongIMClient.ConnectionErrorCode connectionErrorCode) {
|
||||||
|
callback.onError(connectionErrorCode);
|
||||||
if (connectionErrorCode.equals(RongIMClient.ConnectionErrorCode.RC_CONN_TOKEN_EXPIRE)) {
|
if (connectionErrorCode.equals(RongIMClient.ConnectionErrorCode.RC_CONN_TOKEN_EXPIRE)) {
|
||||||
//从 APP 服务请求新 token,获取到新 token 后重新 connect()
|
//从 APP 服务请求新 token,获取到新 token 后重新 connect()
|
||||||
Log.e(CLASSNAME, "onError:(从 APP 服务请求新 token)" + RongIMClient.ConnectionErrorCode.RC_CONN_TOKEN_EXPIRE);
|
Log.e(CLASSNAME, "onError:(从 APP 服务请求新 token)" + RongIMClient.ConnectionErrorCode.RC_CONN_TOKEN_EXPIRE);
|
||||||
@ -154,13 +179,11 @@ public class RongcloudIMManager {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onDatabaseOpened(RongIMClient.DatabaseOpenStatus databaseOpenStatus) {
|
public void onDatabaseOpened(RongIMClient.DatabaseOpenStatus databaseOpenStatus) {
|
||||||
|
callback.onDatabaseOpened(databaseOpenStatus);
|
||||||
if (RongIMClient.DatabaseOpenStatus.DATABASE_OPEN_SUCCESS.equals(databaseOpenStatus)) {
|
if (RongIMClient.DatabaseOpenStatus.DATABASE_OPEN_SUCCESS.equals(databaseOpenStatus)) {
|
||||||
//本地数据库打开,跳转到会话列表页面
|
//本地数据库打开,跳转到会话列表页面
|
||||||
|
|
||||||
Log.e(CLASSNAME, "onDatabaseOpened:(本地数据库打开)" + databaseOpenStatus);
|
Log.e(CLASSNAME, "onDatabaseOpened:(本地数据库打开)" + databaseOpenStatus);
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
//数据库打开失败,可以弹出 toast 提示。
|
//数据库打开失败,可以弹出 toast 提示。
|
||||||
Log.e(CLASSNAME, "onDatabaseOpened:(数据库打开失败)" + databaseOpenStatus);
|
Log.e(CLASSNAME, "onDatabaseOpened:(数据库打开失败)" + databaseOpenStatus);
|
||||||
}
|
}
|
||||||
@ -198,7 +221,6 @@ public class RongcloudIMManager {
|
|||||||
break;
|
break;
|
||||||
//连接成功
|
//连接成功
|
||||||
case CONNECTED:
|
case CONNECTED:
|
||||||
EventBus.getDefault().post(new RongIMConnectionStatusEvent().setStatus(1));
|
|
||||||
break;
|
break;
|
||||||
//连接超时,SDK 将停止连接,用户需要做超时处理,再自行调用连接接口进行连接
|
//连接超时,SDK 将停止连接,用户需要做超时处理,再自行调用连接接口进行连接
|
||||||
case TIMEOUT:
|
case TIMEOUT:
|
||||||
@ -231,4 +253,66 @@ public class RongcloudIMManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发送消息失败重连次数,超过3就重新登录
|
||||||
|
*/
|
||||||
|
private static int reconnectIndex = 0;
|
||||||
|
|
||||||
|
public static void sendMessage(final Message message, final String pushContent, final String pushData, final IRongCallback.ISendMessageCallback callback) {
|
||||||
|
|
||||||
|
RongIMClient.getInstance().sendMessage(message, pushContent, pushData, new IRongCallback.ISendMessageCallback() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onAttached(Message message) {
|
||||||
|
if (callback != null) {
|
||||||
|
callback.onAttached(message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSuccess(Message message) {
|
||||||
|
reconnectIndex = 0;
|
||||||
|
if (callback != null) {
|
||||||
|
callback.onSuccess(message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(Message message, RongIMClient.ErrorCode errorCode) {
|
||||||
|
if (reconnectIndex > 2) {
|
||||||
|
reconnectIndex = 0;
|
||||||
|
ToastUtil.show(WordUtil.getNewString(R.string.login_invalid));
|
||||||
|
EventBus.getDefault().post(new RongIMConnectionStatusEvent());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (errorCode.code == 33000) {
|
||||||
|
reconnectIndex++;
|
||||||
|
connectIM(AppManager.getInstance().getMainActivity(), new RongIMClient.ConnectCallback() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(String t) {
|
||||||
|
sendMessage(message, pushContent, pushData, callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(RongIMClient.ConnectionErrorCode e) {
|
||||||
|
sendMessage(message, pushContent, pushData, callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onDatabaseOpened(RongIMClient.DatabaseOpenStatus code) {
|
||||||
|
if (RongIMClient.DatabaseOpenStatus.DATABASE_OPEN_ERROR.equals(code)) {
|
||||||
|
sendMessage(message, pushContent, pushData, callback);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
if (callback != null) {
|
||||||
|
callback.onError(message, errorCode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,7 @@ import android.view.View;
|
|||||||
import android.view.ViewTreeObserver;
|
import android.view.ViewTreeObserver;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.yunbao.common.sud.decorator.SudFSMMGCache;
|
import com.yunbao.common.sud.decorator.SudFSMMGCache;
|
||||||
import com.yunbao.common.sud.decorator.SudFSMMGDecorator;
|
import com.yunbao.common.sud.decorator.SudFSMMGDecorator;
|
||||||
import com.yunbao.common.sud.decorator.SudFSMMGListener;
|
import com.yunbao.common.sud.decorator.SudFSMMGListener;
|
||||||
@ -16,7 +17,10 @@ import com.yunbao.common.sud.decorator.SudFSTAPPDecorator;
|
|||||||
import com.yunbao.common.sud.model.GameConfigModel;
|
import com.yunbao.common.sud.model.GameConfigModel;
|
||||||
import com.yunbao.common.sud.model.GameViewInfoModel;
|
import com.yunbao.common.sud.model.GameViewInfoModel;
|
||||||
import com.yunbao.common.sud.state.MGStateResponse;
|
import com.yunbao.common.sud.state.MGStateResponse;
|
||||||
|
import com.yunbao.common.utils.StringUtil;
|
||||||
import com.yunbao.common.utils.SudJsonUtils;
|
import com.yunbao.common.utils.SudJsonUtils;
|
||||||
|
import com.yunbao.common.utils.ToastUtil;
|
||||||
|
import com.yunbao.common.utils.WordUtil;
|
||||||
|
|
||||||
import tech.sud.mgp.core.ISudFSMStateHandle;
|
import tech.sud.mgp.core.ISudFSMStateHandle;
|
||||||
import tech.sud.mgp.core.ISudFSTAPP;
|
import tech.sud.mgp.core.ISudFSTAPP;
|
||||||
@ -142,7 +146,10 @@ public abstract class BaseGameViewModel implements SudFSMMGListener {
|
|||||||
|
|
||||||
// 给装饰类设置回调
|
// 给装饰类设置回调
|
||||||
sudFSMMGDecorator.setSudFSMMGListener(this);
|
sudFSMMGDecorator.setSudFSMMGListener(this);
|
||||||
|
sudFSMMGDecorator.setGameId(gameId);
|
||||||
|
sudFSMMGDecorator.setRoomId(gameRoomId);
|
||||||
|
sudFSMMGDecorator.setUserId(getUserId());
|
||||||
|
Log.i("游戏回调", code + " " + gameId + " " + gameRoomId + " ");
|
||||||
// 调用游戏sdk加载游戏
|
// 调用游戏sdk加载游戏
|
||||||
ISudFSTAPP iSudFSTAPP = SudMGP.loadMG(activity, getUserId(), gameRoomId, code, gameId, getLanguageCode(), sudFSMMGDecorator);
|
ISudFSTAPP iSudFSTAPP = SudMGP.loadMG(activity, getUserId(), gameRoomId, code, gameId, getLanguageCode(), sudFSMMGDecorator);
|
||||||
|
|
||||||
@ -282,6 +289,29 @@ public abstract class BaseGameViewModel implements SudFSMMGListener {
|
|||||||
public void onGameLog(String str) {
|
public void onGameLog(String str) {
|
||||||
SudFSMMGListener.super.onGameLog(str);
|
SudFSMMGListener.super.onGameLog(str);
|
||||||
Log.e("onGameStarted", "游戏日志:" + str);
|
Log.e("onGameStarted", "游戏日志:" + str);
|
||||||
|
/*if (!StringUtil.isEmpty()) {
|
||||||
|
try {
|
||||||
|
JSONObject json = JSONObject.parseObject(str);
|
||||||
|
if ("error".equals(json.getString("level"))) {
|
||||||
|
String msg = json.getString("msg");
|
||||||
|
JSONObject error = JSONObject.parseObject(msg);
|
||||||
|
if (error.containsKey("msg")) {
|
||||||
|
|
||||||
|
int resultCode = error.getInteger("resultCode");
|
||||||
|
switch (resultCode) {
|
||||||
|
case 100503:
|
||||||
|
ToastUtil.show(WordUtil.isNewZh()?"有玩家未點擊準備":"There are players who haven't clicked \"Ready\" yet.");
|
||||||
|
break;
|
||||||
|
case 100504:
|
||||||
|
ToastUtil.show(WordUtil.isNewZh()?"小於遊戲最小開始人數":"The number of players is less than the minimum required to start the game.");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (Exception ignore) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -59,7 +59,7 @@ public class QuickStartGameViewModel extends BaseGameViewModel {
|
|||||||
/**
|
/**
|
||||||
* 游戏的语言代码
|
* 游戏的语言代码
|
||||||
*/
|
*/
|
||||||
public String languageCode = "zh-CN";
|
public String languageCode = "zh-TW";
|
||||||
|
|
||||||
public final MutableLiveData<View> gameViewLiveData = new MutableLiveData<>(); // 游戏View回调
|
public final MutableLiveData<View> gameViewLiveData = new MutableLiveData<>(); // 游戏View回调
|
||||||
|
|
||||||
@ -69,7 +69,7 @@ public class QuickStartGameViewModel extends BaseGameViewModel {
|
|||||||
@Override
|
@Override
|
||||||
protected void getCode(Activity activity, String userId, String appId, GameGetCodeListener listener) {
|
protected void getCode(Activity activity, String userId, String appId, GameGetCodeListener listener) {
|
||||||
if (IMLoginManager.get(activity).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) {
|
if (IMLoginManager.get(activity).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) {
|
||||||
languageCode = "zh-CN";
|
languageCode = "zh-TW";
|
||||||
}else {
|
}else {
|
||||||
languageCode = "en-US";
|
languageCode = "en-US";
|
||||||
}
|
}
|
||||||
|
@ -23,6 +23,10 @@ import tech.sud.mgp.core.ISudFSMStateHandle;
|
|||||||
*/
|
*/
|
||||||
public class SudFSMMGDecorator implements ISudFSMMG {
|
public class SudFSMMGDecorator implements ISudFSMMG {
|
||||||
|
|
||||||
|
private static final String TAG = "游戏回调";
|
||||||
|
private long gameId;
|
||||||
|
private String gameRoomId;
|
||||||
|
private String userId;
|
||||||
// 回调
|
// 回调
|
||||||
private SudFSMMGListener sudFSMMGListener;
|
private SudFSMMGListener sudFSMMGListener;
|
||||||
|
|
||||||
@ -227,10 +231,10 @@ public class SudFSMMGDecorator implements ISudFSMMG {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SudMGPMGState.MG_COMMON_GAME_STATE: // 10. 游戏状态
|
case SudMGPMGState.MG_COMMON_GAME_STATE: // 10. 游戏状态
|
||||||
Log.e("onGameStateChange", "mg_common_game_state:::::" + "dataJson:::::"+dataJson);
|
Log.e("onGameStateChange", "mg_common_game_state:::::" + "dataJson:::::" + dataJson);
|
||||||
SudMGPMGState.MGCommonGameState mgCommonGameState = SudJsonUtils.fromJson(dataJson, SudMGPMGState.MGCommonGameState.class);
|
SudMGPMGState.MGCommonGameState mgCommonGameState = SudJsonUtils.fromJson(dataJson, SudMGPMGState.MGCommonGameState.class);
|
||||||
sudFSMMGCache.onGameMGCommonGameState(mgCommonGameState);
|
sudFSMMGCache.onGameMGCommonGameState(mgCommonGameState);
|
||||||
if (mgCommonGameState.gameState==2){
|
if (mgCommonGameState.gameState == 2) {
|
||||||
Bus.get().post(new CheckRemainingBalanceEvent().setSudMGPMGState(SudMGPMGState.MG_COMMON_GAME_STATE));
|
Bus.get().post(new CheckRemainingBalanceEvent().setSudMGPMGState(SudMGPMGState.MG_COMMON_GAME_STATE));
|
||||||
}
|
}
|
||||||
if (listener == null) {
|
if (listener == null) {
|
||||||
@ -354,6 +358,14 @@ public class SudFSMMGDecorator implements ISudFSMMG {
|
|||||||
break;
|
break;
|
||||||
case SudMGPMGState.MG_COMMON_GAME_CREATE_ORDER: // 25. 创建订单
|
case SudMGPMGState.MG_COMMON_GAME_CREATE_ORDER: // 25. 创建订单
|
||||||
SudMGPMGState.MGCommonGameCreateOrder mgCommonGameCreateOrder = SudJsonUtils.fromJson(dataJson, SudMGPMGState.MGCommonGameCreateOrder.class);
|
SudMGPMGState.MGCommonGameCreateOrder mgCommonGameCreateOrder = SudJsonUtils.fromJson(dataJson, SudMGPMGState.MGCommonGameCreateOrder.class);
|
||||||
|
if (mgCommonGameCreateOrder != null) {
|
||||||
|
mgCommonGameCreateOrder.gameId = gameId;
|
||||||
|
mgCommonGameCreateOrder.gameRoomId = gameRoomId;
|
||||||
|
mgCommonGameCreateOrder.userId = userId;
|
||||||
|
mgCommonGameCreateOrder.dataJson = dataJson;
|
||||||
|
}
|
||||||
|
|
||||||
|
Log.i(TAG, "onGameStateChange: " + dataJson);
|
||||||
if (listener == null) {
|
if (listener == null) {
|
||||||
ISudFSMStateHandleUtils.handleSuccess(handle);
|
ISudFSMStateHandleUtils.handleSuccess(handle);
|
||||||
} else {
|
} else {
|
||||||
@ -1021,4 +1033,15 @@ public class SudFSMMGDecorator implements ISudFSMMG {
|
|||||||
return sudFSMMGCache;
|
return sudFSMMGCache;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setGameId(long gameId) {
|
||||||
|
this.gameId = gameId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRoomId(String gameRoomId) {
|
||||||
|
this.gameRoomId = gameRoomId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUserId(String userId) {
|
||||||
|
this.userId = userId;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
package com.yunbao.common.sud.decorator;
|
package com.yunbao.common.sud.decorator;
|
||||||
|
|
||||||
|
import com.yunbao.common.sud.decorator.game.JumpEvent;
|
||||||
import com.yunbao.common.sud.state.SudMGPMGState;
|
import com.yunbao.common.sud.state.SudMGPMGState;
|
||||||
import com.yunbao.common.utils.ISudFSMStateHandleUtils;
|
import com.yunbao.common.utils.ISudFSMStateHandleUtils;
|
||||||
|
|
||||||
@ -271,8 +272,14 @@ public interface SudFSMMGListener {
|
|||||||
* mg_common_game_create_order
|
* mg_common_game_create_order
|
||||||
*/
|
*/
|
||||||
default void onGameMGCommonGameCreateOrder(ISudFSMStateHandle handle, SudMGPMGState.MGCommonGameCreateOrder model) {
|
default void onGameMGCommonGameCreateOrder(ISudFSMStateHandle handle, SudMGPMGState.MGCommonGameCreateOrder model) {
|
||||||
|
if ("addHeart".equals(model.cmd)) {
|
||||||
|
JumpEvent.addHeart(model);
|
||||||
|
} else if ("hit".equals(model.cmd)) {
|
||||||
|
JumpEvent.hit(model);
|
||||||
|
} else {
|
||||||
ISudFSMStateHandleUtils.handleSuccess(handle);
|
ISudFSMStateHandleUtils.handleSuccess(handle);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 26. 游戏通知app玩家角色(仅对狼人杀有效)
|
* 26. 游戏通知app玩家角色(仅对狼人杀有效)
|
||||||
|
@ -0,0 +1,55 @@
|
|||||||
|
package com.yunbao.common.sud.decorator.game;
|
||||||
|
|
||||||
|
import com.yunbao.common.bean.HttpCallbackModel;
|
||||||
|
import com.yunbao.common.event.SubGameEvent;
|
||||||
|
import com.yunbao.common.http.base.HttpCallback;
|
||||||
|
import com.yunbao.common.http.live.LiveNetManager;
|
||||||
|
import com.yunbao.common.sud.state.SudMGPMGState;
|
||||||
|
import com.yunbao.common.utils.AppManager;
|
||||||
|
import com.yunbao.common.utils.Bus;
|
||||||
|
import com.yunbao.common.utils.ToastUtil;
|
||||||
|
|
||||||
|
public class JumpEvent {
|
||||||
|
private static long clickTimer = 0;
|
||||||
|
|
||||||
|
public static void addHeart(SudMGPMGState.MGCommonGameCreateOrder order) {
|
||||||
|
createOrder(order);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void hit(SudMGPMGState.MGCommonGameCreateOrder order) {
|
||||||
|
createOrder(order);
|
||||||
|
}
|
||||||
|
|
||||||
|
private synchronized static void createOrder(SudMGPMGState.MGCommonGameCreateOrder order) {
|
||||||
|
if (System.currentTimeMillis() - clickTimer < 500) {
|
||||||
|
//TODO 防止重复点击
|
||||||
|
HttpCallbackModel _data=new HttpCallbackModel(1001,"");
|
||||||
|
Bus.get().post(new SubGameEvent(0, _data,order.dataJson));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
clickTimer = System.currentTimeMillis();
|
||||||
|
LiveNetManager.get(AppManager.getInstance().getLastActivity())
|
||||||
|
.createGameOrder(order.gameRoomId,
|
||||||
|
order.cmd,
|
||||||
|
order.value + "",
|
||||||
|
order.gameId + "",
|
||||||
|
order.fromUid,
|
||||||
|
order.toUid,
|
||||||
|
order.gameRoomId,
|
||||||
|
order.payload,
|
||||||
|
new HttpCallback<HttpCallbackModel>() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(HttpCallbackModel data) {
|
||||||
|
if (data.getCode() != 0) {
|
||||||
|
ToastUtil.show(data.getMsg());
|
||||||
|
Bus.get().post(new SubGameEvent(0, data,order.dataJson));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(String error) {
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
@ -496,6 +496,11 @@ public class SudMGPMGState implements Serializable {
|
|||||||
public String toUid; // 目标用户uid
|
public String toUid; // 目标用户uid
|
||||||
public long value; // 所属的游戏价值
|
public long value; // 所属的游戏价值
|
||||||
public String payload; // 扩展数据 json 字符串, 特殊可选
|
public String payload; // 扩展数据 json 字符串, 特殊可选
|
||||||
|
|
||||||
|
public long gameId;
|
||||||
|
public String gameRoomId;
|
||||||
|
public String userId;
|
||||||
|
public String dataJson;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -3,14 +3,12 @@ package com.yunbao.common.upload;
|
|||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
|
||||||
import com.qiniu.android.common.ServiceAddress;
|
import com.qiniu.android.common.ServiceAddress;
|
||||||
import com.qiniu.android.common.Zone;
|
import com.qiniu.android.common.Zone;
|
||||||
import com.qiniu.android.http.ResponseInfo;
|
import com.qiniu.android.http.ResponseInfo;
|
||||||
import com.qiniu.android.storage.Configuration;
|
import com.qiniu.android.storage.Configuration;
|
||||||
import com.qiniu.android.storage.UpCompletionHandler;
|
import com.qiniu.android.storage.UpCompletionHandler;
|
||||||
import com.qiniu.android.storage.UploadManager;
|
import com.qiniu.android.storage.UploadManager;
|
||||||
import com.yunbao.common.CommonAppConfig;
|
|
||||||
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.L;
|
import com.yunbao.common.utils.L;
|
||||||
@ -23,8 +21,6 @@ import java.io.File;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import top.zibin.luban.Luban;
|
import top.zibin.luban.Luban;
|
||||||
import top.zibin.luban.OnCompressListener;
|
|
||||||
import top.zibin.luban.OnRenameListener;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by cxf on 2019/4/16.
|
* Created by cxf on 2019/4/16.
|
||||||
@ -131,7 +127,7 @@ public class UploadQnImpl implements UploadStrategy {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
CommonHttpUtil.getUploadQiNiuToken(mGetUploadTokenCallback, isImg);
|
CommonHttpUtil.getUploadQiNiuTokenNew(mGetUploadTokenCallback, isImg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package com.yunbao.common.utils;
|
package com.yunbao.common.utils;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
import com.yunbao.common.BuildConfig;
|
import com.yunbao.common.BuildConfig;
|
||||||
|
|
||||||
@ -11,6 +12,7 @@ public class AppManager {
|
|||||||
private static Stack<Activity> activityStack;
|
private static Stack<Activity> activityStack;
|
||||||
|
|
||||||
public AppManager() {
|
public AppManager() {
|
||||||
|
activityStack = new Stack<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -47,6 +49,10 @@ public class AppManager {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void clear() {
|
||||||
|
activityStack.clear();
|
||||||
|
}
|
||||||
|
|
||||||
public static class SingleApp {
|
public static class SingleApp {
|
||||||
public static AppManager INSTANCE = new AppManager();
|
public static AppManager INSTANCE = new AppManager();
|
||||||
}
|
}
|
||||||
@ -58,6 +64,10 @@ public class AppManager {
|
|||||||
if (activityStack == null) {
|
if (activityStack == null) {
|
||||||
activityStack = new Stack<Activity>();
|
activityStack = new Stack<Activity>();
|
||||||
}
|
}
|
||||||
|
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>class com.yunbao.main.activity.MsgAddressBookActivity
|
||||||
|
if (getActivity(activity.getClass()) != null) {
|
||||||
|
activityStack.remove(getActivity(activity.getClass()));
|
||||||
|
}
|
||||||
activityStack.add(activity);
|
activityStack.add(activity);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -358,6 +358,8 @@ public class DialogUitl {
|
|||||||
private boolean mCancelable;
|
private boolean mCancelable;
|
||||||
private boolean mBackgroundDimEnabled;//显示区域以外是否使用黑色半透明背景
|
private boolean mBackgroundDimEnabled;//显示区域以外是否使用黑色半透明背景
|
||||||
private boolean mInput;//是否是输入框的
|
private boolean mInput;//是否是输入框的
|
||||||
|
private boolean isShowCancelButton=true;
|
||||||
|
private boolean isSHowConfirmButton=true;
|
||||||
private String mHint;
|
private String mHint;
|
||||||
private int mInputType;
|
private int mInputType;
|
||||||
private int mLength;
|
private int mLength;
|
||||||
@ -454,6 +456,16 @@ public class DialogUitl {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Builder setShowCancelButton(boolean showCancelButton) {
|
||||||
|
isShowCancelButton = showCancelButton;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder setShowConfirmButton(boolean showConfirmButton) {
|
||||||
|
isSHowConfirmButton = showConfirmButton;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public Dialog build() {
|
public Dialog build() {
|
||||||
final Dialog dialog = new Dialog(mContext, mBackgroundDimEnabled ? R.style.dialog : R.style.dialog2);
|
final Dialog dialog = new Dialog(mContext, mBackgroundDimEnabled ? R.style.dialog : R.style.dialog2);
|
||||||
if (mView != 0) {
|
if (mView != 0) {
|
||||||
@ -493,10 +505,22 @@ public class DialogUitl {
|
|||||||
TextView btnConfirm = (TextView) dialog.findViewById(R.id.btn_confirm);
|
TextView btnConfirm = (TextView) dialog.findViewById(R.id.btn_confirm);
|
||||||
if (!TextUtils.isEmpty(mConfirmString)) {
|
if (!TextUtils.isEmpty(mConfirmString)) {
|
||||||
btnConfirm.setText(mConfirmString);
|
btnConfirm.setText(mConfirmString);
|
||||||
|
btnConfirm.setVisibility(View.VISIBLE);
|
||||||
|
}else if(mConfirmString==null){
|
||||||
|
// btnConfirm.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
TextView btnCancel = (TextView) dialog.findViewById(R.id.btn_cancel);
|
TextView btnCancel = (TextView) dialog.findViewById(R.id.btn_cancel);
|
||||||
if (!TextUtils.isEmpty(mCancelString)) {
|
if (!TextUtils.isEmpty(mCancelString)) {
|
||||||
btnCancel.setText(mCancelString);
|
btnCancel.setText(mCancelString);
|
||||||
|
btnCancel.setVisibility(View.VISIBLE);
|
||||||
|
}else if(mCancelString==null){
|
||||||
|
//btnCancel.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
if(!isSHowConfirmButton){
|
||||||
|
btnConfirm.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
if(!isShowCancelButton){
|
||||||
|
btnCancel.setVisibility(View.GONE);
|
||||||
}
|
}
|
||||||
View.OnClickListener listener = new View.OnClickListener() {
|
View.OnClickListener listener = new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -251,7 +251,9 @@ public class LogUtil {
|
|||||||
body.put("appVersion", CommonAppConfig.getInstance().getVersion());
|
body.put("appVersion", CommonAppConfig.getInstance().getVersion());
|
||||||
|
|
||||||
OkHttpClient client = new OkHttpClient.Builder().connectTimeout(3, TimeUnit.SECONDS).build();
|
OkHttpClient client = new OkHttpClient.Builder().connectTimeout(3, TimeUnit.SECONDS).build();
|
||||||
Request request = new Request.Builder().url("https://newht.yaoulive.com/index.php/api/error_log/report") //无法接受文件
|
Request request = new Request.Builder()
|
||||||
|
.url("https://tools.yutou233.cn/public/file/request.do")//临时上报地址,可接受文件
|
||||||
|
//.url("https://newht.yaoulive.com/index.php/api/error_log/report") //无法接受文件
|
||||||
.post(requestBody).build();
|
.post(requestBody).build();
|
||||||
client.newCall(request).enqueue(new Callback() {
|
client.newCall(request).enqueue(new Callback() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -0,0 +1,31 @@
|
|||||||
|
package com.yunbao.common.utils;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
|
||||||
|
|
||||||
|
public class MobclickAgent {
|
||||||
|
public static void onEvent(Context content, String key, Object value){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void setCatchUncaughtExceptions(boolean b) {
|
||||||
|
}
|
||||||
|
public static void setPageCollectionMode(int type){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void onPageStart(String mTag) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void onPageEnd(String mTag) {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void onProfileSignOff() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void onProfileSignIn(String s) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -6,10 +6,12 @@ import android.content.Intent;
|
|||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.provider.MediaStore;
|
import android.provider.MediaStore;
|
||||||
|
|
||||||
import androidx.fragment.app.FragmentActivity;
|
import androidx.fragment.app.FragmentActivity;
|
||||||
import androidx.core.content.FileProvider;
|
import androidx.core.content.FileProvider;
|
||||||
|
|
||||||
import com.yalantis.ucrop.UCrop;
|
import com.yalantis.ucrop.UCrop;
|
||||||
|
import com.yalantis.ucrop.util.FileUtils;
|
||||||
import com.yunbao.common.CommonAppConfig;
|
import com.yunbao.common.CommonAppConfig;
|
||||||
import com.yunbao.common.R;
|
import com.yunbao.common.R;
|
||||||
import com.yunbao.common.interfaces.ActivityResultCallback;
|
import com.yunbao.common.interfaces.ActivityResultCallback;
|
||||||
@ -36,6 +38,11 @@ public class ProcessImageUtil extends ProcessResultUtil {
|
|||||||
private File mCorpResult;//裁剪后得到的图片
|
private File mCorpResult;//裁剪后得到的图片
|
||||||
private ImageResultCallback mResultCallback;
|
private ImageResultCallback mResultCallback;
|
||||||
private boolean mNeedCrop;//是否需要裁剪
|
private boolean mNeedCrop;//是否需要裁剪
|
||||||
|
private boolean mNeedGif;//允许gif图
|
||||||
|
|
||||||
|
public void setNeedGif(boolean mNeedGif) {
|
||||||
|
this.mNeedGif = mNeedGif;
|
||||||
|
}
|
||||||
|
|
||||||
public ProcessImageUtil(FragmentActivity activity) {
|
public ProcessImageUtil(FragmentActivity activity) {
|
||||||
super(activity);
|
super(activity);
|
||||||
@ -76,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.pandoralive.shayu.fileprovider", mCameraResult);
|
uri = FileProvider.getUriForFile(mContext, "com.pandora.sy.fileprovider", mCameraResult);
|
||||||
} else {
|
} else {
|
||||||
uri = Uri.fromFile(mCameraResult);
|
uri = Uri.fromFile(mCameraResult);
|
||||||
}
|
}
|
||||||
@ -101,6 +108,24 @@ public class ProcessImageUtil extends ProcessResultUtil {
|
|||||||
mAlumbResultCallback = new ActivityResultCallback() {
|
mAlumbResultCallback = new ActivityResultCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(Intent intent) {
|
public void onSuccess(Intent intent) {
|
||||||
|
if (!mNeedCrop) {
|
||||||
|
if (mResultCallback != null) {
|
||||||
|
if (intent.getData() == null) {
|
||||||
|
if (mResultCallback != null) {
|
||||||
|
mResultCallback.onFailure();
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String path = FileUtils.getPath(mContext, intent.getData());
|
||||||
|
File file = new File(path);
|
||||||
|
if (file.exists()) {
|
||||||
|
mResultCallback.onSuccess(file);
|
||||||
|
} else {
|
||||||
|
mResultCallback.onFailure();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
crop(intent.getData());
|
crop(intent.getData());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -152,6 +177,11 @@ public class ProcessImageUtil extends ProcessResultUtil {
|
|||||||
requestPermissions(mAlumbPermissions, mAlumbPermissionCallback);
|
requestPermissions(mAlumbPermissions, mAlumbPermissionCallback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void getImageByAlumb(boolean needCrop) {
|
||||||
|
this.mNeedCrop = needCrop;
|
||||||
|
requestPermissions(mAlumbPermissions, mAlumbPermissionCallback);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 开启摄像头,执行照相
|
* 开启摄像头,执行照相
|
||||||
@ -165,14 +195,16 @@ 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.pandoralive.shayu.fileprovider", mCameraResult);
|
uri = FileProvider.getUriForFile(mContext, "com.pandora.sy.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);
|
||||||
}
|
}
|
||||||
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
|
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
|
||||||
startActivityForResult(intent, mCameraResultCallback);
|
startActivityForResult(intent, mCameraResultCallback);
|
||||||
}catch (Exception e){e.printStackTrace();}
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private File getNewFile() {
|
private File getNewFile() {
|
||||||
@ -189,9 +221,14 @@ public class ProcessImageUtil extends ProcessResultUtil {
|
|||||||
* 打开相册,选择文件
|
* 打开相册,选择文件
|
||||||
*/
|
*/
|
||||||
private void chooseFile() {
|
private void chooseFile() {
|
||||||
|
String[] mimeTypes = {"image/png", "image/jpg", "image/jpeg"};
|
||||||
Intent intent = new Intent();
|
Intent intent = new Intent();
|
||||||
intent.addCategory(Intent.CATEGORY_OPENABLE);
|
intent.addCategory(Intent.CATEGORY_OPENABLE);
|
||||||
intent.setType("image/*");
|
intent.setType("*/*");
|
||||||
|
if (mNeedGif) {
|
||||||
|
mimeTypes = new String[]{"image/png", "image/jpg", "image/jpeg", "image/gif"};
|
||||||
|
}
|
||||||
|
intent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes);
|
||||||
if (Build.VERSION.SDK_INT < 19) {
|
if (Build.VERSION.SDK_INT < 19) {
|
||||||
intent.setAction(Intent.ACTION_GET_CONTENT);
|
intent.setAction(Intent.ACTION_GET_CONTENT);
|
||||||
} else {
|
} else {
|
||||||
@ -218,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.pandoralive.shayu.fileprovider", mCorpResult);
|
Uri resultUri = FileProvider.getUriForFile(mContext, "com.pandora.sy.fileprovider", mCorpResult);
|
||||||
if (resultUri == null || mFragment == null || mContext == null) {
|
if (resultUri == null || mFragment == null || mContext == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -59,6 +59,10 @@ public class RouteUtil {
|
|||||||
|
|
||||||
public static final String PATH_VIDEO_NEW_PLAY = "/video/VideoPlayNewActivity";
|
public static final String PATH_VIDEO_NEW_PLAY = "/video/VideoPlayNewActivity";
|
||||||
|
|
||||||
|
public static final String PATH_FEEDBACK_SUCCESS_ACTIVITY = "/main/FeedbackSuccessActivity";
|
||||||
|
public static final String PATH_FEEDBACK_ACTIVITY = "/main/FeedbackActivity";
|
||||||
|
public static final String PATH_FEEDBACK_EDIT_ACTIVITY = "/main/FeedbackEditActivity";
|
||||||
|
|
||||||
public static void forwardVideoPlayNewActivity(ActiveBean bean) {
|
public static void forwardVideoPlayNewActivity(ActiveBean bean) {
|
||||||
ARouter.getInstance().build(PATH_VIDEO_NEW_PLAY)
|
ARouter.getInstance().build(PATH_VIDEO_NEW_PLAY)
|
||||||
.withParcelable("ActiveBean", bean)
|
.withParcelable("ActiveBean", bean)
|
||||||
|
@ -6,6 +6,7 @@ import java.io.File;
|
|||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
import java.util.UUID;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -172,4 +173,5 @@ public class StringUtil {
|
|||||||
DateFormatUtil.getVideoCurTimeString(),
|
DateFormatUtil.getVideoCurTimeString(),
|
||||||
String.valueOf(sRandom.nextInt(9999)));
|
String.valueOf(sRandom.nextInt(9999)));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -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.pandoralive.shayu"));
|
i.setData(Uri.parse("https://play.google.com/store/apps/details?id=com.pandora.sy"));
|
||||||
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.pandoralive.shayu"));
|
i.setData(Uri.parse("https://play.google.com/store/apps/details?id=com.pandora.sy"));
|
||||||
context.startActivity(i);
|
context.startActivity(i);
|
||||||
context.finish();
|
context.finish();
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,38 @@
|
|||||||
|
package com.yunbao.common.utils;
|
||||||
|
|
||||||
|
import androidx.viewpager2.widget.ViewPager2;
|
||||||
|
|
||||||
|
import net.lucode.hackware.magicindicator.MagicIndicator;
|
||||||
|
|
||||||
|
public class ViewPageIndicatorUtils {
|
||||||
|
public static void bind(final MagicIndicator magicIndicator, ViewPager2 viewPager,ViewPager2.OnPageChangeCallback callback) {
|
||||||
|
viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
|
||||||
|
@Override
|
||||||
|
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
|
||||||
|
super.onPageScrolled(position, positionOffset, positionOffsetPixels);
|
||||||
|
magicIndicator.onPageScrolled(position, positionOffset, positionOffsetPixels);
|
||||||
|
if(callback!=null){
|
||||||
|
callback.onPageScrolled(position, positionOffset, positionOffsetPixels);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPageSelected(int position) {
|
||||||
|
super.onPageSelected(position);
|
||||||
|
magicIndicator.onPageSelected(position);
|
||||||
|
if (callback != null) {
|
||||||
|
callback.onPageSelected(position);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPageScrollStateChanged(int state) {
|
||||||
|
super.onPageScrollStateChanged(state);
|
||||||
|
magicIndicator.onPageScrollStateChanged(state);
|
||||||
|
if (callback != null) {
|
||||||
|
callback.onPageScrollStateChanged(state);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
@ -113,7 +113,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.pandoralive.shayu"));
|
i.setData(Uri.parse("https://play.google.com/store/apps/details?id=com.pandora.sy"));
|
||||||
mContext.startActivity(i);
|
mContext.startActivity(i);
|
||||||
mContext.finish();
|
mContext.finish();
|
||||||
} else if (CommonAppConfig.IS_GOOGLE_PLAY == 2) {
|
} else if (CommonAppConfig.IS_GOOGLE_PLAY == 2) {
|
||||||
|
@ -2,8 +2,10 @@ package com.yunbao.common.views;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Paint;
|
import android.graphics.Paint;
|
||||||
|
import android.text.TextPaint;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
|
import android.util.Log;
|
||||||
import android.view.ViewTreeObserver;
|
import android.view.ViewTreeObserver;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
@ -42,6 +44,49 @@ public class AutoSplitTextView extends androidx.appcompat.widget.AppCompatTextVi
|
|||||||
}
|
}
|
||||||
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
|
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
|
||||||
}*/
|
}*/
|
||||||
|
StringBuffer sb = new StringBuffer();
|
||||||
|
StringBuffer tmp = new StringBuffer();
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
|
||||||
|
super.onLayout(changed, left, top, right, bottom);
|
||||||
|
TextPaint paint = getPaint();
|
||||||
|
String text = getText().toString();
|
||||||
|
Log.i("用户备注卡片", "默认值:" + text);
|
||||||
|
float textWidth = paint.measureText(text);
|
||||||
|
if (textWidth > getWidth()) {
|
||||||
|
sb.setLength(0);
|
||||||
|
tmp.setLength(0);
|
||||||
|
for (int i = 0; i < text.length(); i++) {
|
||||||
|
String str;
|
||||||
|
str = text.substring(i, i + 1);
|
||||||
|
Log.i("用户备注卡片", "添加:" + str + "|" + i);
|
||||||
|
if (str.contains("\n") || str.contains("\r") || str.contains("\t")) {
|
||||||
|
if(tmp.length()>0) {
|
||||||
|
sb.append(tmp);
|
||||||
|
}
|
||||||
|
sb.append(str);
|
||||||
|
tmp.setLength(0);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
float measured = paint.measureText(tmp.toString() + str);
|
||||||
|
if (measured > getWidth()) {
|
||||||
|
sb.append(tmp).append("\n");
|
||||||
|
tmp.setLength(0);
|
||||||
|
tmp.append(str);
|
||||||
|
} else {
|
||||||
|
tmp.append(str);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (tmp.length() > 0) {
|
||||||
|
sb.append(tmp);
|
||||||
|
}
|
||||||
|
Log.i("用户备注卡片", "最终值:" + sb.toString());
|
||||||
|
setText(sb);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void setAutoText(CharSequence text) {
|
public void setAutoText(CharSequence text) {
|
||||||
this.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
|
this.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
|
||||||
|
|
||||||
|
136
common/src/main/java/com/yunbao/common/views/CustomLayout.java
Normal file
136
common/src/main/java/com/yunbao/common/views/CustomLayout.java
Normal file
@ -0,0 +1,136 @@
|
|||||||
|
package com.yunbao.common.views;
|
||||||
|
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.graphics.Color;
|
||||||
|
import android.text.Layout;
|
||||||
|
import android.text.StaticLayout;
|
||||||
|
import android.text.TextPaint;
|
||||||
|
import android.util.AttributeSet;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import com.lzf.easyfloat.enums.ShowPattern;
|
||||||
|
import com.yunbao.common.dialog.DebugDialog;
|
||||||
|
import com.yunbao.common.utils.DpUtil;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TextView + View 动态布局
|
||||||
|
*/
|
||||||
|
public class CustomLayout extends ViewGroup {
|
||||||
|
//单行显示
|
||||||
|
private static final int SINGLE_LINE = 0x01;
|
||||||
|
//多行显示
|
||||||
|
private static final int MULTI_LINE = 0x02;
|
||||||
|
//显示到下一行
|
||||||
|
private static final int NEXT_LINE = 0x03;
|
||||||
|
//显示样式
|
||||||
|
private int type;
|
||||||
|
//绘制文字最后一行的顶部坐标
|
||||||
|
private int lastLineTop;
|
||||||
|
//绘制文字最后一行的右边坐标
|
||||||
|
private float lastLineRight;
|
||||||
|
|
||||||
|
public CustomLayout(Context context) {
|
||||||
|
super(context);
|
||||||
|
}
|
||||||
|
|
||||||
|
public CustomLayout(Context context, AttributeSet attrs) {
|
||||||
|
super(context, attrs);
|
||||||
|
}
|
||||||
|
|
||||||
|
public CustomLayout(Context context, AttributeSet attrs, int defStyleAttr) {
|
||||||
|
super(context, attrs, defStyleAttr);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
|
||||||
|
int childCount = getChildCount();
|
||||||
|
final int w = MeasureSpec.getSize(widthMeasureSpec);
|
||||||
|
if (childCount == 2) {
|
||||||
|
TextView tv = null;
|
||||||
|
if(getChildAt(0) instanceof TextView){
|
||||||
|
tv = (TextView) getChildAt(0);
|
||||||
|
initTextParams(tv.getText(), tv.getMeasuredWidth(), tv.getPaint());
|
||||||
|
}else{
|
||||||
|
throw new RuntimeException("CustomLayout first child view not a TextView");
|
||||||
|
}
|
||||||
|
|
||||||
|
View sencodView = getChildAt(1);
|
||||||
|
|
||||||
|
//测量子view的宽高
|
||||||
|
measureChildren(widthMeasureSpec, heightMeasureSpec);
|
||||||
|
|
||||||
|
final String textWidth=String.valueOf(tv.getMeasuredWidth());
|
||||||
|
final String viewWidth=String.valueOf(sencodView.getMeasuredWidth());
|
||||||
|
final String maxWidth=String.valueOf(tv.getMeasuredWidth()+sencodView.getMeasuredWidth());
|
||||||
|
|
||||||
|
//两个子view宽度相加小于该控件宽度的时候
|
||||||
|
if (tv.getMeasuredWidth() + sencodView.getMeasuredWidth() <= w) {
|
||||||
|
int width = tv.getMeasuredWidth()+sencodView.getMeasuredWidth();
|
||||||
|
//计算高度
|
||||||
|
int height = Math.max(tv.getMeasuredHeight(), sencodView.getMeasuredHeight());
|
||||||
|
//设置该viewgroup的宽高
|
||||||
|
setMeasuredDimension(width, height);
|
||||||
|
type = SINGLE_LINE;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (getChildAt(0) instanceof TextView) {
|
||||||
|
//最后一行文字的宽度加上第二个view的宽度大于viewgroup宽度时第二个控件换行显示
|
||||||
|
if (lastLineRight + sencodView.getMeasuredWidth() > w) {
|
||||||
|
setMeasuredDimension(tv.getMeasuredWidth(), tv.getMeasuredHeight() + sencodView.getMeasuredHeight());
|
||||||
|
type = NEXT_LINE;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int height = Math.max(tv.getMeasuredHeight(), lastLineTop + sencodView.getMeasuredHeight());
|
||||||
|
setMeasuredDimension(tv.getMeasuredWidth(), height);
|
||||||
|
type = MULTI_LINE;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
throw new RuntimeException("CustomLayout child count must is 2");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
protected void onLayout(boolean changed, int l, int t, int r, int b) {
|
||||||
|
if (type == SINGLE_LINE || type == MULTI_LINE) {
|
||||||
|
TextView tv = (TextView) getChildAt(0);
|
||||||
|
View v1 = getChildAt(1);
|
||||||
|
//设置第二个view在Textview文字末尾位置
|
||||||
|
tv.layout(0, 0, tv.getMeasuredWidth(), tv.getMeasuredHeight());
|
||||||
|
int left = (int) lastLineRight;
|
||||||
|
int top = lastLineTop;
|
||||||
|
//最后一行的高度 注:通过staticLayout得到的行高不准确故采用这种方式
|
||||||
|
int lastLineHeight = tv.getBottom()-tv.getPaddingBottom() -lastLineTop;
|
||||||
|
//当第二view高度小于单行文字高度时竖直居中显示
|
||||||
|
if(v1.getMeasuredHeight() < lastLineHeight){
|
||||||
|
top = lastLineTop + (lastLineHeight - v1.getMeasuredHeight())/2;
|
||||||
|
}
|
||||||
|
v1.layout(left, top, left + v1.getMeasuredWidth(), top+v1.getMeasuredHeight());
|
||||||
|
} else if (type == NEXT_LINE) {
|
||||||
|
View v0 = getChildAt(0);
|
||||||
|
View v1 = getChildAt(1);
|
||||||
|
//设置第二个view换行显示
|
||||||
|
v0.layout(0, 0, v0.getMeasuredWidth(), v0.getMeasuredHeight());
|
||||||
|
v1.layout(0, v0.getMeasuredHeight(), v1.getMeasuredWidth(), v0.getMeasuredHeight() + v1.getMeasuredHeight());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 得到Textview绘制文字的基本信息
|
||||||
|
* @param text Textview的文字内容
|
||||||
|
* @param maxWidth Textview的宽度
|
||||||
|
* @param paint 绘制文字的paint
|
||||||
|
*/
|
||||||
|
private void initTextParams(CharSequence text, int maxWidth, TextPaint paint) {
|
||||||
|
System.out.println("text = " + text + ", maxWidth = " + maxWidth + ", paint = " + paint);
|
||||||
|
StaticLayout staticLayout = new StaticLayout(text, paint, maxWidth, Layout.Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false);
|
||||||
|
int lineCount = staticLayout.getLineCount();
|
||||||
|
lastLineTop = staticLayout.getLineTop(lineCount - 1);
|
||||||
|
lastLineRight = staticLayout.getLineRight(lineCount - 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -9,7 +9,7 @@ import androidx.annotation.NonNull;
|
|||||||
import androidx.recyclerview.widget.GridLayoutManager;
|
import androidx.recyclerview.widget.GridLayoutManager;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.umeng.analytics.MobclickAgent;
|
import com.yunbao.common.utils.MobclickAgent;
|
||||||
import com.yunbao.common.CommonAppConfig;
|
import com.yunbao.common.CommonAppConfig;
|
||||||
import com.yunbao.common.R;
|
import com.yunbao.common.R;
|
||||||
import com.yunbao.common.adapter.FunGamesAdapter;
|
import com.yunbao.common.adapter.FunGamesAdapter;
|
||||||
|
@ -9,7 +9,6 @@ import androidx.recyclerview.widget.GridLayoutManager;
|
|||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.yunbao.common.R;
|
import com.yunbao.common.R;
|
||||||
import com.yunbao.common.adapter.InteractionGamesAdapter;
|
|
||||||
import com.yunbao.common.adapter.LiveNewRoleInteractionGamesAdapter;
|
import com.yunbao.common.adapter.LiveNewRoleInteractionGamesAdapter;
|
||||||
import com.yunbao.common.bean.CustomSidebarChildModel;
|
import com.yunbao.common.bean.CustomSidebarChildModel;
|
||||||
import com.yunbao.common.bean.CustomSidebarInfoModel;
|
import com.yunbao.common.bean.CustomSidebarInfoModel;
|
||||||
|
@ -2,6 +2,7 @@ package com.yunbao.common.views;
|
|||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.FrameLayout;
|
import android.widget.FrameLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
@ -9,6 +10,7 @@ import android.widget.TextView;
|
|||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.lifecycle.Observer;
|
import androidx.lifecycle.Observer;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.lxj.xpopup.XPopup;
|
import com.lxj.xpopup.XPopup;
|
||||||
import com.lxj.xpopup.core.BottomPopupView;
|
import com.lxj.xpopup.core.BottomPopupView;
|
||||||
import com.makeramen.roundedimageview.RoundedImageView;
|
import com.makeramen.roundedimageview.RoundedImageView;
|
||||||
@ -17,16 +19,19 @@ import com.yunbao.common.bean.CheckRemainingBalance;
|
|||||||
import com.yunbao.common.bean.CreateSudRoomModel;
|
import com.yunbao.common.bean.CreateSudRoomModel;
|
||||||
import com.yunbao.common.bean.CustomSidebarChildModel;
|
import com.yunbao.common.bean.CustomSidebarChildModel;
|
||||||
import com.yunbao.common.bean.CustomSidebarInfoModel;
|
import com.yunbao.common.bean.CustomSidebarInfoModel;
|
||||||
|
import com.yunbao.common.dialog.DebugDialog;
|
||||||
import com.yunbao.common.event.CheckRemainingBalanceEvent;
|
import com.yunbao.common.event.CheckRemainingBalanceEvent;
|
||||||
import com.yunbao.common.event.HideShowEvent;
|
import com.yunbao.common.event.HideShowEvent;
|
||||||
import com.yunbao.common.event.LiveSudGamePopupShowOrHideEvent;
|
import com.yunbao.common.event.LiveSudGamePopupShowOrHideEvent;
|
||||||
import com.yunbao.common.event.ShowHideEvent;
|
import com.yunbao.common.event.ShowHideEvent;
|
||||||
|
import com.yunbao.common.event.SubGameEvent;
|
||||||
import com.yunbao.common.glide.ImgLoader;
|
import com.yunbao.common.glide.ImgLoader;
|
||||||
import com.yunbao.common.http.base.HttpCallback;
|
import com.yunbao.common.http.base.HttpCallback;
|
||||||
import com.yunbao.common.http.live.LiveNetManager;
|
import com.yunbao.common.http.live.LiveNetManager;
|
||||||
import com.yunbao.common.manager.IMLoginManager;
|
import com.yunbao.common.manager.IMLoginManager;
|
||||||
import com.yunbao.common.sud.QuickStartGameViewModel;
|
import com.yunbao.common.sud.QuickStartGameViewModel;
|
||||||
import com.yunbao.common.sud.model.GameConfigModel;
|
import com.yunbao.common.sud.model.GameConfigModel;
|
||||||
|
import com.yunbao.common.sud.state.SudMGPAPPState;
|
||||||
import com.yunbao.common.sud.state.SudMGPMGState;
|
import com.yunbao.common.sud.state.SudMGPMGState;
|
||||||
import com.yunbao.common.utils.Bus;
|
import com.yunbao.common.utils.Bus;
|
||||||
import com.yunbao.common.utils.ToastUtil;
|
import com.yunbao.common.utils.ToastUtil;
|
||||||
@ -229,7 +234,7 @@ public class LiveSudGamePopup extends BottomPopupView {
|
|||||||
if (IMLoginManager.get(getContext()).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) {
|
if (IMLoginManager.get(getContext()).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) {
|
||||||
ToastUtil.show("貨幣数量不足 ");
|
ToastUtil.show("貨幣数量不足 ");
|
||||||
} else {
|
} else {
|
||||||
ToastUtil.show("Shortage of money");
|
ToastUtil.show("Insufficient number of currency");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -240,7 +245,7 @@ public class LiveSudGamePopup extends BottomPopupView {
|
|||||||
if (IMLoginManager.get(getContext()).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) {
|
if (IMLoginManager.get(getContext()).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) {
|
||||||
ToastUtil.show("貨幣数量不足 ");
|
ToastUtil.show("貨幣数量不足 ");
|
||||||
} else {
|
} else {
|
||||||
ToastUtil.show("Shortage of money");
|
ToastUtil.show("Insufficient number of currency");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -276,4 +281,16 @@ public class LiveSudGamePopup extends BottomPopupView {
|
|||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||||
|
public void onSudGameStatus(SubGameEvent event) {
|
||||||
|
if (event.getType() == 0) {
|
||||||
|
Log.i("游戏回调", "onGameStateChange: event :" + event.toString());
|
||||||
|
if (event.getModel().getCode() == 1001 || event.getModel().getCode() == 1002) {
|
||||||
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
jsonObject.put("result", 0);
|
||||||
|
gameViewModel.sudFSTAPPDecorator.notifyStateChange(SudMGPAPPState.APP_COMMON_GAME_CREATE_ORDER_RESULT, jsonObject.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,118 @@
|
|||||||
|
package com.yunbao.common.views;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.content.res.TypedArray;
|
||||||
|
import android.text.TextPaint;
|
||||||
|
import android.util.AttributeSet;
|
||||||
|
import android.util.Log;
|
||||||
|
import android.view.View;
|
||||||
|
import android.view.ViewParent;
|
||||||
|
import android.view.ViewTreeObserver;
|
||||||
|
import android.widget.LinearLayout;
|
||||||
|
import android.widget.TextView;
|
||||||
|
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
|
import com.yunbao.common.R;
|
||||||
|
|
||||||
|
public class MainMessageChatListItemLayout extends LinearLayout {
|
||||||
|
private static final String TAG = "消息列表佈局";
|
||||||
|
|
||||||
|
public int autoText = 0;
|
||||||
|
|
||||||
|
public MainMessageChatListItemLayout(Context context) {
|
||||||
|
super(context);
|
||||||
|
onLayoutChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
public MainMessageChatListItemLayout(Context context, @Nullable AttributeSet attrs) {
|
||||||
|
super(context, attrs);
|
||||||
|
TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.MainMessageChatListItem_Layout);
|
||||||
|
autoText = array.getResourceId(R.styleable.MainMessageChatListItem_Layout_autoTextEllipsize, 0);
|
||||||
|
onLayoutChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
public MainMessageChatListItemLayout(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
|
||||||
|
super(context, attrs, defStyleAttr);
|
||||||
|
TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.MainMessageChatListItem_Layout);
|
||||||
|
autoText = array.getResourceId(R.styleable.MainMessageChatListItem_Layout_autoTextEllipsize, 0);
|
||||||
|
onLayoutChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
public MainMessageChatListItemLayout(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
|
||||||
|
super(context, attrs, defStyleAttr, defStyleRes);
|
||||||
|
}
|
||||||
|
|
||||||
|
int itemIndex = 0;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onLayout(boolean changed, int l, int t, int r, int b) {
|
||||||
|
super.onLayout(changed, l, t, r, b);
|
||||||
|
/*int width = getWidth();
|
||||||
|
int count = getChildCount();
|
||||||
|
double max = 0;
|
||||||
|
double autoTextViewMeasuredWidth = 0;
|
||||||
|
double otherViewWidth = 0;
|
||||||
|
int autoId = -1;
|
||||||
|
for (int i = 0; i < count; i++) {
|
||||||
|
View item = getChildAt(i);
|
||||||
|
// item.layout(l, t, r, b);
|
||||||
|
double itemWidth = item.getMeasuredWidth();
|
||||||
|
int padding = item.getPaddingLeft() + item.getPaddingRight();
|
||||||
|
if (item instanceof TextView) {
|
||||||
|
TextPaint paint = ((TextView) item).getPaint();
|
||||||
|
itemWidth = paint.measureText(((TextView) item).getText().toString());
|
||||||
|
if (item.getId() == autoText) {
|
||||||
|
autoId = i;
|
||||||
|
autoTextViewMeasuredWidth = itemWidth;
|
||||||
|
} else {
|
||||||
|
otherViewWidth += itemWidth;
|
||||||
|
}
|
||||||
|
Log.i(TAG, "TextView: " + ((TextView) item).getText() + "|" + paint.measureText(((TextView) item).getText().toString()));
|
||||||
|
} else {
|
||||||
|
Log.i(TAG, "onLayout: 不是TextView");
|
||||||
|
}
|
||||||
|
max += itemWidth + padding;
|
||||||
|
Log.i(TAG, "autoId = " + autoId + "vid = " + autoText + " item = " + item + " width = " + itemWidth + "changed = " + changed + ", l = " + l + ", t = " + t + ", r = " + r + ", b = " + b);
|
||||||
|
}
|
||||||
|
Log.i(TAG, "布局总宽度 = " + width + "|" + "item总宽度 = " + max);
|
||||||
|
if (autoId != -1 && max > width) {
|
||||||
|
int diffValue = (int) (width - otherViewWidth);
|
||||||
|
diffValue=20;
|
||||||
|
int layoutChildViewCurX = 0;
|
||||||
|
for (int i = 0; i < count; i++) {
|
||||||
|
View view = getChildAt(i);
|
||||||
|
if (view.getId() == autoId) {
|
||||||
|
view.layout(layoutChildViewCurX, t, layoutChildViewCurX+diffValue, b);
|
||||||
|
layoutChildViewCurX += diffValue;
|
||||||
|
} else {
|
||||||
|
view.layout(layoutChildViewCurX, t, layoutChildViewCurX + view.getMeasuredWidth(), b);
|
||||||
|
layoutChildViewCurX += view.getMeasuredWidth();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*//*int layoutChildViewCurX = l, tr = r, tt = t, tb = b;
|
||||||
|
for (int i = 0; i < count; i++) {
|
||||||
|
View item = getChildAt(i);
|
||||||
|
tr=item.getMeasuredWidth();
|
||||||
|
if (item.getId() == autoId) {
|
||||||
|
int diffValue = (int) (width - otherViewWidth);
|
||||||
|
item.layout(layoutChildViewCurX, tt, layoutChildViewCurX+item.getMeasuredWidth(), tb);
|
||||||
|
layoutChildViewCurX=item.getMeasuredWidth();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
item.layout(layoutChildViewCurX, tt, layoutChildViewCurX+item.getMeasuredWidth(), tb);
|
||||||
|
layoutChildViewCurX=item.getMeasuredWidth();
|
||||||
|
}*//*
|
||||||
|
}*/
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onFinishInflate() {
|
||||||
|
super.onFinishInflate();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void onLayoutChanged() {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item android:width="68dp" android:height="37dp">
|
||||||
|
<shape android:shape="rectangle">
|
||||||
|
<stroke android:width="1dp" android:color="#EB6FFF" />
|
||||||
|
<corners android:topLeftRadius="15dp" android:topRightRadius="15dp" android:bottomLeftRadius="15dp" android:bottomRightRadius="15dp" />
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
</selector>
|
@ -3,6 +3,7 @@
|
|||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:background="@color/white"
|
android:background="@color/white"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
@ -361,8 +362,10 @@
|
|||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/authenticationLayout"
|
android:id="@+id/authenticationLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="0dp"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="0dp"
|
||||||
|
tools:layout_width="match_parent"
|
||||||
|
tools:layout_height="match_parent"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:visibility="visible">
|
android:visibility="visible">
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:id="@+id/rootView"
|
android:id="@+id/rootView"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
@ -15,6 +16,7 @@
|
|||||||
android:id="@+id/ft_title"
|
android:id="@+id/ft_title"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="72dp"
|
android:layout_height="72dp"
|
||||||
|
|
||||||
android:paddingTop="24dp"
|
android:paddingTop="24dp"
|
||||||
android:background="@color/white">
|
android:background="@color/white">
|
||||||
|
|
||||||
@ -67,6 +69,5 @@
|
|||||||
<WebView
|
<WebView
|
||||||
android:id="@+id/webView"
|
android:id="@+id/webView"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_marginBottom="15dp"
|
|
||||||
android:layout_height="match_parent" />
|
android:layout_height="match_parent" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
@ -6,7 +6,7 @@
|
|||||||
android:layout_marginTop="12dp"
|
android:layout_marginTop="12dp"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
<!--身份特权-->
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
android:layout_width="40dp"
|
android:layout_width="40dp"
|
||||||
|
@ -46,12 +46,21 @@
|
|||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/fun_game_name"
|
android:id="@+id/fun_game_name"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
|
android:gravity="center"
|
||||||
|
android:layout_marginStart="1dp"
|
||||||
|
android:layout_marginEnd="1dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="2dp"
|
android:layout_marginTop="2dp"
|
||||||
android:maxLines="1"
|
android:maxLines="1"
|
||||||
android:text="@string/guard_guard"
|
android:text="@string/guard_guard"
|
||||||
android:textColor="#9A9A9A"
|
android:textColor="#9A9A9A"
|
||||||
|
|
||||||
|
app:autoSizeMaxTextSize="14sp"
|
||||||
|
app:autoSizeMinTextSize="5sp"
|
||||||
|
app:autoSizeStepGranularity="1sp"
|
||||||
|
app:autoSizeTextType="uniform"
|
||||||
|
|
||||||
android:textSize="14sp" />
|
android:textSize="14sp" />
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
@ -659,7 +659,7 @@
|
|||||||
<string name="report">Report</string>
|
<string name="report">Report</string>
|
||||||
<string name="reload">retry</string>
|
<string name="reload">retry</string>
|
||||||
<string name="refuse">refuse</string>
|
<string name="refuse">refuse</string>
|
||||||
<string name="save">Preservation</string>
|
<string name="save">Save</string>
|
||||||
<string name="reg">Register</string>
|
<string name="reg">Register</string>
|
||||||
<string name="no_more_mic">No one is currently in the voice link</string>
|
<string name="no_more_mic">No one is currently in the voice link</string>
|
||||||
<string name="welcome_pdlive">Welcome to PDLive</string>
|
<string name="welcome_pdlive">Welcome to PDLive</string>
|
||||||
@ -792,8 +792,9 @@
|
|||||||
|
|
||||||
<string name="only_open_anchor">For the time being, it is only open to the anchor</string>
|
<string name="only_open_anchor">For the time being, it is only open to the anchor</string>
|
||||||
|
|
||||||
<string name="facebook_app_id">2011402032399020</string>
|
<string name="facebook_app_id">977019710454991</string>
|
||||||
<string name="facebook_client_token">959584e054a33614996361f0044e5253</string>
|
<string name="facebook_client_token">6e90a23e0679c8d21b0888d5fa755535</string>
|
||||||
|
|
||||||
|
|
||||||
<string name="twitter_key">ui10vIggex2F043HnztYNuA3g</string>
|
<string name="twitter_key">ui10vIggex2F043HnztYNuA3g</string>
|
||||||
<string name="twitter_secret">J8jvBBeJoZbVojbkWUrvsj0K0UUkuV69CqQ7CEobhJn6tvAKpQ</string>
|
<string name="twitter_secret">J8jvBBeJoZbVojbkWUrvsj0K0UUkuV69CqQ7CEobhJn6tvAKpQ</string>
|
||||||
@ -1378,11 +1379,11 @@ Limited ride And limited avatar frame</string>
|
|||||||
<string name="sud_in_game_game_game_peer_user">"Paired Users "</string>
|
<string name="sud_in_game_game_game_peer_user">"Paired Users "</string>
|
||||||
<string name="sud_in_game_game_game_peer_user_nodata">" Currently No Records~"</string>
|
<string name="sud_in_game_game_game_peer_user_nodata">" Currently No Records~"</string>
|
||||||
<string name="sud_in_game_game_game_peer_today">"Today "</string>
|
<string name="sud_in_game_game_game_peer_today">"Today "</string>
|
||||||
<string name="sud_in_game_rule_hint1">1. Interactive games are a new section provided by PDLIVE for users, who can participate in the game section on the homepage or in the live room;</string>
|
<string name="sud_in_game_rule_hint1">1.Interactive games are a new section provided by PDLIVE for users, who can participate in the game section on the homepage or in the live room;</string>
|
||||||
<string name="sud_in_game_rule_hint2">2. Currently, we have launched \'GoBang\',\' Bumper car \',\' Flying Chess\', \'Minesweeping\', \'Dart Master\', and \'Monster Eliminating\'. We will provide more game types in the future. Stay tuned;</string>
|
<string name="sud_in_game_rule_hint2">2.Currently, [Backgammon], [Flying Chess], [Bumper I’m the Strongest], [Monster Match], [Jump], [Friendly Challenge], [Magic Battle], [American 8 Ball] More game types will be provided in the future, so stay tuned;</string>
|
||||||
<string name="sud_in_game_rule_hint3">3.Users can customize the game threshold, which must be between 100 to 50000 gold beans , and the amount must be a multiple of 10;</string>
|
<string name="sud_in_game_rule_hint3">3.Users can customize the game threshold, which must be between 100 to 50000 gold beans , and the amount must be a multiple of 10;</string>
|
||||||
<string name="sud_in_game_rule_hint4">4.At the beginning of the game, chips from participating users will be collected. After the game ends, 10% of the chips will be collected as tickets, and all remaining chips will be given to the winning users.In a draw, the corresponding chips will be deducted from the tickets and returned to the users;</string>
|
<string name="sud_in_game_rule_hint4">4.At the beginning of the game, chips from participating users will be collected. After the game ends, 10% of the chips will be collected as tickets, and all remaining chips will be given to the winning users.In a draw, the corresponding chips will be deducted from the tickets and returned to the users;</string>
|
||||||
<string name="sud_in_game_rule_hint5">5. The final interpretation right of the event belongs to PDLIVE.</string>
|
<string name="sud_in_game_rule_hint5">5.The final interpretation right of the event belongs to PDLIVE.</string>
|
||||||
<string name="sud_in_game_game_currency_item">Currency</string>
|
<string name="sud_in_game_game_currency_item">Currency</string>
|
||||||
<string name="sud_in_game_game_currency">Currency:</string>
|
<string name="sud_in_game_game_currency">Currency:</string>
|
||||||
<string name="sud_in_game_game_time">Time:</string>
|
<string name="sud_in_game_game_time">Time:</string>
|
||||||
|
@ -651,7 +651,7 @@
|
|||||||
<string name="welcome_pdlive">歡迎來到PDLIVE</string>
|
<string name="welcome_pdlive">歡迎來到PDLIVE</string>
|
||||||
<string name="newcomer">恭喜你獲得了新人獎勵</string>
|
<string name="newcomer">恭喜你獲得了新人獎勵</string>
|
||||||
|
|
||||||
<string name="FILE_PROVIDER">com.pandoralive.shayu.fileprovider</string>
|
<string name="FILE_PROVIDER">com.pandora.sy.fileprovider</string>
|
||||||
<string name="ren">人</string>
|
<string name="ren">人</string>
|
||||||
<string name="ge">個</string>
|
<string name="ge">個</string>
|
||||||
<string name="count">數量</string>
|
<string name="count">數量</string>
|
||||||
@ -832,8 +832,8 @@
|
|||||||
|
|
||||||
<string name="only_open_anchor">暫時只對主播開放</string>
|
<string name="only_open_anchor">暫時只對主播開放</string>
|
||||||
|
|
||||||
<string name="facebook_app_id">5476953575716796</string>
|
<string name="facebook_app_id">977019710454991</string>
|
||||||
<string name="facebook_client_token">a9f5e8c512898010041e71fdd53d792f</string>
|
<string name="facebook_client_token">6e90a23e0679c8d21b0888d5fa755535</string>
|
||||||
|
|
||||||
<string name="twitter_key">ui10vIggex2F043HnztYNuA3g</string>
|
<string name="twitter_key">ui10vIggex2F043HnztYNuA3g</string>
|
||||||
<string name="twitter_secret">J8jvBBeJoZbVojbkWUrvsj0K0UUkuV69CqQ7CEobhJn6tvAKpQ</string>
|
<string name="twitter_secret">J8jvBBeJoZbVojbkWUrvsj0K0UUkuV69CqQ7CEobhJn6tvAKpQ</string>
|
||||||
@ -1374,7 +1374,7 @@
|
|||||||
<string name="sud_in_game_game_game_peer_user_nodata">暫無記錄~</string>
|
<string name="sud_in_game_game_game_peer_user_nodata">暫無記錄~</string>
|
||||||
<string name="sud_in_game_game_game_peer_today">今日</string>
|
<string name="sud_in_game_game_game_peer_today">今日</string>
|
||||||
<string name="sud_in_game_rule_hint1">1、互動遊戲是PDLIVE為用戶提供的全新板塊,用戶可以在首頁【遊戲專區】或直播間內參與;</string>
|
<string name="sud_in_game_rule_hint1">1、互動遊戲是PDLIVE為用戶提供的全新板塊,用戶可以在首頁【遊戲專區】或直播間內參與;</string>
|
||||||
<string name="sud_in_game_rule_hint2">2、目前已上線【五子棋】、【碰碰我最強】、【飛行棋】、【扫雷】、【飞镖达人】、【怪兽消消乐】,後續將會提供更多遊戲種類,敬請期待;</string>
|
<string name="sud_in_game_rule_hint2">2、目前已上線【五子棋】、【飛行棋】、【碰碰我最強】、【怪物消消樂】、【跳一跳】、【友情闖關】、【魔法大樂鬥】、【美式8球】後續將會提供更多遊戲種類,敬請期期待;</string>
|
||||||
<string name="sud_in_game_rule_hint3">3、用戶可自定義設定遊戲門檻,要求在100~50000金豆之間,數額必須為10的倍數;</string>
|
<string name="sud_in_game_rule_hint3">3、用戶可自定義設定遊戲門檻,要求在100~50000金豆之間,數額必須為10的倍數;</string>
|
||||||
<string name="sud_in_game_rule_hint4">4、 遊戲開始時將會收取參與遊戲用戶的籌碼,在遊戲結束後,將收取10%的籌碼作為門票,剩餘籌碼將全部給予勝利用戶,平局時將會扣除相應籌碼门票後返還給用戶;</string>
|
<string name="sud_in_game_rule_hint4">4、 遊戲開始時將會收取參與遊戲用戶的籌碼,在遊戲結束後,將收取10%的籌碼作為門票,剩餘籌碼將全部給予勝利用戶,平局時將會扣除相應籌碼门票後返還給用戶;</string>
|
||||||
<string name="sud_in_game_rule_hint5">5、活動最終解釋權歸PDLIVE所有。</string>
|
<string name="sud_in_game_rule_hint5">5、活動最終解釋權歸PDLIVE所有。</string>
|
||||||
|
@ -651,7 +651,7 @@
|
|||||||
<string name="welcome_pdlive">歡迎來到PDLIVE</string>
|
<string name="welcome_pdlive">歡迎來到PDLIVE</string>
|
||||||
<string name="newcomer">恭喜你獲得了新人獎勵</string>
|
<string name="newcomer">恭喜你獲得了新人獎勵</string>
|
||||||
|
|
||||||
<string name="FILE_PROVIDER">com.pandoralive.shayu.fileprovider</string>
|
<string name="FILE_PROVIDER">com.pandora.sy.fileprovider</string>
|
||||||
<string name="ren">人</string>
|
<string name="ren">人</string>
|
||||||
<string name="ge">個</string>
|
<string name="ge">個</string>
|
||||||
<string name="count">數量</string>
|
<string name="count">數量</string>
|
||||||
@ -832,8 +832,8 @@
|
|||||||
|
|
||||||
<string name="only_open_anchor">暫時只對主播開放</string>
|
<string name="only_open_anchor">暫時只對主播開放</string>
|
||||||
|
|
||||||
<string name="facebook_app_id">5476953575716796</string>
|
<string name="facebook_app_id">977019710454991</string>
|
||||||
<string name="facebook_client_token">a9f5e8c512898010041e71fdd53d792f</string>
|
<string name="facebook_client_token">6e90a23e0679c8d21b0888d5fa755535</string>
|
||||||
|
|
||||||
<string name="twitter_key">ui10vIggex2F043HnztYNuA3g</string>
|
<string name="twitter_key">ui10vIggex2F043HnztYNuA3g</string>
|
||||||
<string name="twitter_secret">J8jvBBeJoZbVojbkWUrvsj0K0UUkuV69CqQ7CEobhJn6tvAKpQ</string>
|
<string name="twitter_secret">J8jvBBeJoZbVojbkWUrvsj0K0UUkuV69CqQ7CEobhJn6tvAKpQ</string>
|
||||||
@ -1373,7 +1373,7 @@
|
|||||||
<string name="sud_in_game_game_game_peer_user_nodata">暫無記錄~</string>
|
<string name="sud_in_game_game_game_peer_user_nodata">暫無記錄~</string>
|
||||||
<string name="sud_in_game_game_game_peer_today">今日</string>
|
<string name="sud_in_game_game_game_peer_today">今日</string>
|
||||||
<string name="sud_in_game_rule_hint1">1、互動遊戲是PDLIVE為用戶提供的全新板塊,用戶可以在首頁【遊戲專區】或直播間內參與;</string>
|
<string name="sud_in_game_rule_hint1">1、互動遊戲是PDLIVE為用戶提供的全新板塊,用戶可以在首頁【遊戲專區】或直播間內參與;</string>
|
||||||
<string name="sud_in_game_rule_hint2">2、目前已上線【五子棋】、【碰碰我最強】、【飛行棋】、【扫雷】、【飞镖达人】、【怪兽消消乐】,後續將會提供更多遊戲種類,敬請期待;</string>
|
<string name="sud_in_game_rule_hint2">2、目前已上線【五子棋】、【飛行棋】、【碰碰我最強】、【怪物消消樂】、【跳一跳】、【友情闖關】、【魔法大樂鬥】、【美式8球】後續將會提供更多遊戲種類,敬請期期待;</string>
|
||||||
<string name="sud_in_game_rule_hint3">3、用戶可自定義設定遊戲門檻,要求在100~50000金豆之間,數額必須為10的倍數;</string>
|
<string name="sud_in_game_rule_hint3">3、用戶可自定義設定遊戲門檻,要求在100~50000金豆之間,數額必須為10的倍數;</string>
|
||||||
<string name="sud_in_game_rule_hint4">4、 遊戲開始時將會收取參與遊戲用戶的籌碼,在遊戲結束後,將收取10%的籌碼作為門票,剩餘籌碼將全部給予勝利用戶,平局時將會扣除相應籌碼门票後返還給用戶;</string>
|
<string name="sud_in_game_rule_hint4">4、 遊戲開始時將會收取參與遊戲用戶的籌碼,在遊戲結束後,將收取10%的籌碼作為門票,剩餘籌碼將全部給予勝利用戶,平局時將會扣除相應籌碼门票後返還給用戶;</string>
|
||||||
<string name="sud_in_game_rule_hint5">5、活動最終解釋權歸PDLIVE所有。</string>
|
<string name="sud_in_game_rule_hint5">5、活動最終解釋權歸PDLIVE所有。</string>
|
||||||
|
@ -651,7 +651,7 @@
|
|||||||
<string name="welcome_pdlive">歡迎來到PDLIVE</string>
|
<string name="welcome_pdlive">歡迎來到PDLIVE</string>
|
||||||
<string name="newcomer">恭喜你獲得了新人獎勵</string>
|
<string name="newcomer">恭喜你獲得了新人獎勵</string>
|
||||||
|
|
||||||
<string name="FILE_PROVIDER">com.pandoralive.shayu.fileprovider</string>
|
<string name="FILE_PROVIDER">com.pandora.sy.fileprovider</string>
|
||||||
<string name="ren">人</string>
|
<string name="ren">人</string>
|
||||||
<string name="ge">個</string>
|
<string name="ge">個</string>
|
||||||
<string name="count">數量</string>
|
<string name="count">數量</string>
|
||||||
@ -832,8 +832,8 @@
|
|||||||
|
|
||||||
<string name="only_open_anchor">暫時只對主播開放</string>
|
<string name="only_open_anchor">暫時只對主播開放</string>
|
||||||
|
|
||||||
<string name="facebook_app_id">5476953575716796</string>
|
<string name="facebook_app_id">977019710454991</string>
|
||||||
<string name="facebook_client_token">a9f5e8c512898010041e71fdd53d792f</string>
|
<string name="facebook_client_token">6e90a23e0679c8d21b0888d5fa755535</string>
|
||||||
|
|
||||||
<string name="twitter_key">ui10vIggex2F043HnztYNuA3g</string>
|
<string name="twitter_key">ui10vIggex2F043HnztYNuA3g</string>
|
||||||
<string name="twitter_secret">J8jvBBeJoZbVojbkWUrvsj0K0UUkuV69CqQ7CEobhJn6tvAKpQ</string>
|
<string name="twitter_secret">J8jvBBeJoZbVojbkWUrvsj0K0UUkuV69CqQ7CEobhJn6tvAKpQ</string>
|
||||||
@ -1373,7 +1373,7 @@
|
|||||||
<string name="sud_in_game_game_game_peer_user_nodata">暫無記錄~</string>
|
<string name="sud_in_game_game_game_peer_user_nodata">暫無記錄~</string>
|
||||||
<string name="sud_in_game_game_game_peer_today">今日</string>
|
<string name="sud_in_game_game_game_peer_today">今日</string>
|
||||||
<string name="sud_in_game_rule_hint1">1、互動遊戲是PDLIVE為用戶提供的全新板塊,用戶可以在首頁【遊戲專區】或直播間內參與;</string>
|
<string name="sud_in_game_rule_hint1">1、互動遊戲是PDLIVE為用戶提供的全新板塊,用戶可以在首頁【遊戲專區】或直播間內參與;</string>
|
||||||
<string name="sud_in_game_rule_hint2">2、目前已上線【五子棋】、【碰碰我最強】、【飛行棋】、【扫雷】、【飞镖达人】、【怪兽消消乐】,後續將會提供更多遊戲種類,敬請期待;</string>
|
<string name="sud_in_game_rule_hint2">2、目前已上線【五子棋】、【飛行棋】、【碰碰我最強】、【怪物消消樂】、【跳一跳】、【友情闖關】、【魔法大樂鬥】、【美式8球】後續將會提供更多遊戲種類,敬請期期待;</string>
|
||||||
<string name="sud_in_game_rule_hint3">3、 用戶可自定義設定遊戲門檻,要求在100~50000金豆之間,數額必須為10的倍數;</string>
|
<string name="sud_in_game_rule_hint3">3、 用戶可自定義設定遊戲門檻,要求在100~50000金豆之間,數額必須為10的倍數;</string>
|
||||||
<string name="sud_in_game_rule_hint4">4、 遊戲開始時將會收取參與遊戲用戶的籌碼,在遊戲結束後,將收取10%的籌碼作為門票,剩餘籌碼將全部給予勝利用戶,平局時將會扣除相應籌碼门票後返還給用戶;</string>
|
<string name="sud_in_game_rule_hint4">4、 遊戲開始時將會收取參與遊戲用戶的籌碼,在遊戲結束後,將收取10%的籌碼作為門票,剩餘籌碼將全部給予勝利用戶,平局時將會扣除相應籌碼门票後返還給用戶;</string>
|
||||||
<string name="sud_in_game_rule_hint5">5、活動最終解釋權歸PDLIVE所有。</string>
|
<string name="sud_in_game_rule_hint5">5、活動最終解釋權歸PDLIVE所有。</string>
|
||||||
|
@ -659,7 +659,7 @@
|
|||||||
<string name="report">Report</string>
|
<string name="report">Report</string>
|
||||||
<string name="reload">retry</string>
|
<string name="reload">retry</string>
|
||||||
<string name="refuse">refuse</string>
|
<string name="refuse">refuse</string>
|
||||||
<string name="save">Preservation</string>
|
<string name="save">Save</string>
|
||||||
<string name="reg">Register</string>
|
<string name="reg">Register</string>
|
||||||
<string name="no_more_mic">No one is currently in the voice link</string>
|
<string name="no_more_mic">No one is currently in the voice link</string>
|
||||||
<string name="welcome_pdlive">Welcome to PDLive</string>
|
<string name="welcome_pdlive">Welcome to PDLive</string>
|
||||||
@ -791,8 +791,8 @@
|
|||||||
|
|
||||||
<string name="only_open_anchor">For the time being, it is only open to the anchor</string>
|
<string name="only_open_anchor">For the time being, it is only open to the anchor</string>
|
||||||
|
|
||||||
<string name="facebook_app_id">2011402032399020</string>
|
<string name="facebook_app_id">977019710454991</string>
|
||||||
<string name="facebook_client_token">959584e054a33614996361f0044e5253</string>
|
<string name="facebook_client_token">6e90a23e0679c8d21b0888d5fa755535</string>
|
||||||
|
|
||||||
<string name="twitter_key">ui10vIggex2F043HnztYNuA3g</string>
|
<string name="twitter_key">ui10vIggex2F043HnztYNuA3g</string>
|
||||||
<string name="twitter_secret">J8jvBBeJoZbVojbkWUrvsj0K0UUkuV69CqQ7CEobhJn6tvAKpQ</string>
|
<string name="twitter_secret">J8jvBBeJoZbVojbkWUrvsj0K0UUkuV69CqQ7CEobhJn6tvAKpQ</string>
|
||||||
@ -1385,9 +1385,9 @@ Limited ride And limited avatar frame</string>
|
|||||||
<string name="sud_in_game_game_game_peer_today">"Today "</string>
|
<string name="sud_in_game_game_game_peer_today">"Today "</string>
|
||||||
<string name="sud_in_game_game_game_peer_today_7">"≤7 days "</string>
|
<string name="sud_in_game_game_game_peer_today_7">"≤7 days "</string>
|
||||||
<string name="sud_in_game_game_game_peer_today_30">≤ 30 days</string>
|
<string name="sud_in_game_game_game_peer_today_30">≤ 30 days</string>
|
||||||
<string name="sud_in_game_rule_hint1">1. Interactive games are a new section provided by PDLIVE for users, who can participate in the game section on the homepage or in the live room;</string>
|
<string name="sud_in_game_rule_hint1">1.Interactive games are a new section provided by PDLIVE for users, who can participate in the game section on the homepage or in the live room;</string>
|
||||||
<string name="sud_in_game_rule_hint2">2.Currently, we have launched \'GoBang\',\' Bumper car \',\' Flying Chess\', \'Minesweeping\', \'Dart Master\', and \'Monster Eliminating\'. We will provide more game types in the future. Stay tuned;</string>
|
<string name="sud_in_game_rule_hint2">2.Currently, [Backgammon], [Flying Chess], [Bumper I’m the Strongest], [Monster Match], [Jump], [Friendly Challenge], [Magic Battle], [American 8 Ball] More game types will be provided in the future, so stay tuned;</string>
|
||||||
<string name="sud_in_game_rule_hint3">3.. Users can customize the game threshold, which must be between 100 to 50000 gold beans , and the amount must be a multiple of 10;</string>
|
<string name="sud_in_game_rule_hint3">3. Users can customize the game threshold, which must be between 100 to 50000 gold beans , and the amount must be a multiple of 10;</string>
|
||||||
<string name="sud_in_game_rule_hint4">4.At the beginning of the game, chips from participating users will be collected. After the game ends, 10% of the chips will be collected as tickets, and all remaining chips will be given to the winning users.In a draw, the corresponding chips will be deducted from the tickets and returned to the users;</string>
|
<string name="sud_in_game_rule_hint4">4.At the beginning of the game, chips from participating users will be collected. After the game ends, 10% of the chips will be collected as tickets, and all remaining chips will be given to the winning users.In a draw, the corresponding chips will be deducted from the tickets and returned to the users;</string>
|
||||||
<string name="sud_in_game_rule_hint5">5. The final interpretation right of the event belongs to PDLIVE.</string>
|
<string name="sud_in_game_rule_hint5">5. The final interpretation right of the event belongs to PDLIVE.</string>
|
||||||
<string name="room_sill0_100">0-100 coins</string>
|
<string name="room_sill0_100">0-100 coins</string>
|
||||||
|
@ -138,4 +138,7 @@
|
|||||||
<item name="android:activityCloseEnterAnimation">@anim/out_to_right_abit</item>
|
<item name="android:activityCloseEnterAnimation">@anim/out_to_right_abit</item>
|
||||||
<item name="android:activityCloseExitAnimation">@anim/out_to_right</item>
|
<item name="android:activityCloseExitAnimation">@anim/out_to_right</item>
|
||||||
</style>
|
</style>
|
||||||
|
<declare-styleable name="MainMessageChatListItem_Layout">
|
||||||
|
<attr format="reference|enum" name="autoTextEllipsize"/>
|
||||||
|
</declare-styleable>
|
||||||
</resources>
|
</resources>
|
@ -4,8 +4,8 @@ ext {
|
|||||||
buildToolsVersion: "29.0.2",
|
buildToolsVersion: "29.0.2",
|
||||||
minSdkVersion : 23,
|
minSdkVersion : 23,
|
||||||
targetSdkVersion : 33,
|
targetSdkVersion : 33,
|
||||||
versionCode : 516,
|
versionCode : 526,
|
||||||
versionName : "6.6.6",
|
versionName : "6.6.9",
|
||||||
namespace : "com.pandoralive.shayu"
|
namespace : "com.pandoralive.shayu"
|
||||||
]
|
]
|
||||||
manifestPlaceholders = [
|
manifestPlaceholders = [
|
||||||
@ -13,6 +13,7 @@ ext {
|
|||||||
serverHost : "https://napi.yaoulive.com",
|
serverHost : "https://napi.yaoulive.com",
|
||||||
// 测试
|
// 测试
|
||||||
// serverHost : " https://ceshi.yaoulive.com",
|
// serverHost : " https://ceshi.yaoulive.com",
|
||||||
|
buildTime : new Date().format("MM-dd HH:mm", TimeZone.getTimeZone("GMT+8")),
|
||||||
|
|
||||||
//百度语音识别
|
//百度语音识别
|
||||||
baiduAppId : "23774720",
|
baiduAppId : "23774720",
|
||||||
|
@ -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=10809
|
||||||
systemProp.http.proxyPort=7890
|
systemProp.http.proxyPort=10809
|
||||||
#android.enableR8.fullMode=true
|
#android.enableR8.fullMode=true
|
@ -1,14 +0,0 @@
|
|||||||
package com.shayu.lib_huawei;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Example local unit test, which will execute on the development machine (host).
|
|
||||||
*
|
|
||||||
* @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
|
|
||||||
*/
|
|
||||||
public class ExampleUnitTest {
|
|
||||||
//@Test
|
|
||||||
public void addition_isCorrect() {
|
|
||||||
// assertEquals(4, 2 + 2);
|
|
||||||
}
|
|
||||||
}
|
|
BIN
libs/umeng-common-9.6.8+000.aar
Normal file
BIN
libs/umeng-common-9.6.8+000.aar
Normal file
Binary file not shown.
@ -18,7 +18,7 @@ import com.blankj.utilcode.util.StringUtils;
|
|||||||
import com.ms.banner.Banner;
|
import com.ms.banner.Banner;
|
||||||
import com.ms.banner.BannerConfig;
|
import com.ms.banner.BannerConfig;
|
||||||
import com.ms.banner.listener.OnBannerClickListener;
|
import com.ms.banner.listener.OnBannerClickListener;
|
||||||
import com.umeng.analytics.MobclickAgent;
|
import com.yunbao.common.utils.MobclickAgent;
|
||||||
import com.yunbao.common.CommonAppConfig;
|
import com.yunbao.common.CommonAppConfig;
|
||||||
import com.yunbao.common.Constants;
|
import com.yunbao.common.Constants;
|
||||||
import com.yunbao.common.activity.AbsActivity;
|
import com.yunbao.common.activity.AbsActivity;
|
||||||
|
@ -47,7 +47,7 @@ public class EditNameRemarksActivity extends AbsActivity implements View.OnClick
|
|||||||
userId = getIntent().getStringExtra(NAMEREMARK);
|
userId = getIntent().getStringExtra(NAMEREMARK);
|
||||||
mEditText = (EditText) findViewById(R.id.edit);
|
mEditText = (EditText) findViewById(R.id.edit);
|
||||||
mEditText.setFilters(new InputFilter[]{
|
mEditText.setFilters(new InputFilter[]{
|
||||||
new InputFilter.LengthFilter(10)
|
new InputFilter.LengthFilter(25)
|
||||||
});
|
});
|
||||||
findViewById(R.id.btn_save).setOnClickListener(this);
|
findViewById(R.id.btn_save).setOnClickListener(this);
|
||||||
String content = InstructorRemarkManager.get(mContext).getInstructorRemark().get(userId);
|
String content = InstructorRemarkManager.get(mContext).getInstructorRemark().get(userId);
|
||||||
|
@ -21,7 +21,7 @@ import com.alibaba.android.arouter.launcher.ARouter;
|
|||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.blankj.utilcode.util.GsonUtils;
|
import com.blankj.utilcode.util.GsonUtils;
|
||||||
import com.umeng.analytics.MobclickAgent;
|
import com.yunbao.common.utils.MobclickAgent;
|
||||||
import com.yunbao.common.CommonAppConfig;
|
import com.yunbao.common.CommonAppConfig;
|
||||||
import com.yunbao.common.Constants;
|
import com.yunbao.common.Constants;
|
||||||
import com.yunbao.common.activity.AbsActivity;
|
import com.yunbao.common.activity.AbsActivity;
|
||||||
|
@ -36,7 +36,7 @@ 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.lxj.xpopup.interfaces.XPopupCallback;
|
||||||
import com.lzf.easyfloat.EasyFloat;
|
import com.lzf.easyfloat.EasyFloat;
|
||||||
import com.umeng.analytics.MobclickAgent;
|
import com.yunbao.common.utils.MobclickAgent;
|
||||||
import com.yunbao.common.CommonAppConfig;
|
import com.yunbao.common.CommonAppConfig;
|
||||||
import com.yunbao.common.Constants;
|
import com.yunbao.common.Constants;
|
||||||
import com.yunbao.common.HtmlConfig;
|
import com.yunbao.common.HtmlConfig;
|
||||||
|
@ -70,6 +70,7 @@ import com.yunbao.common.manager.IMRTCManager;
|
|||||||
import com.yunbao.common.manager.MicUserManager;
|
import com.yunbao.common.manager.MicUserManager;
|
||||||
import com.yunbao.common.manager.MicedUserManager;
|
import com.yunbao.common.manager.MicedUserManager;
|
||||||
import com.yunbao.common.manager.RandomPkManager;
|
import com.yunbao.common.manager.RandomPkManager;
|
||||||
|
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
|
||||||
import com.yunbao.common.utils.BitmapUtil;
|
import com.yunbao.common.utils.BitmapUtil;
|
||||||
import com.yunbao.common.utils.Bus;
|
import com.yunbao.common.utils.Bus;
|
||||||
import com.yunbao.common.utils.DateFormatUtil;
|
import com.yunbao.common.utils.DateFormatUtil;
|
||||||
@ -429,7 +430,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
|
|||||||
TextMessage messageContent = TextMessage.obtain(msg1.mResult.toString());
|
TextMessage messageContent = TextMessage.obtain(msg1.mResult.toString());
|
||||||
Message message = Message.obtain("g" + mLiveUid, conversationType, messageContent);
|
Message message = Message.obtain("g" + mLiveUid, conversationType, messageContent);
|
||||||
|
|
||||||
RongIMClient.getInstance().sendMessage(message, null, null, new IRongCallback.ISendMessageCallback() {
|
RongcloudIMManager.sendMessage(message, null, null, new IRongCallback.ISendMessageCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onAttached(Message message) {
|
public void onAttached(Message message) {
|
||||||
|
|
||||||
@ -1712,6 +1713,15 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
|
|||||||
liveInputDialogFragment.setArguments(liveInputBundle);
|
liveInputDialogFragment.setArguments(liveInputBundle);
|
||||||
liveInputDialogFragment.show(getSupportFragmentManager(), "LiveInputDialogFragment");
|
liveInputDialogFragment.show(getSupportFragmentManager(), "LiveInputDialogFragment");
|
||||||
break;
|
break;
|
||||||
|
case LIVE_DIALOG_ANCHOR_TIPS:
|
||||||
|
new DialogUitl.Builder(mContext)
|
||||||
|
.setContent(event.getObject().toString())
|
||||||
|
.setConfirmString(WordUtil.isNewZh() ? "確定" : "confirm")
|
||||||
|
.setCancelable(true)
|
||||||
|
.setShowCancelButton(false)
|
||||||
|
.build()
|
||||||
|
.show();
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1850,6 +1860,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
|
|||||||
.setIcon("https://downs.yaoulive.com/xzs_tab.png")
|
.setIcon("https://downs.yaoulive.com/xzs_tab.png")
|
||||||
.setNameColor("#f19ec2")
|
.setNameColor("#f19ec2")
|
||||||
.setSystemBubble("https://downs.yaoulive.com/xzs_qipao.9.png")
|
.setSystemBubble("https://downs.yaoulive.com/xzs_qipao.9.png")
|
||||||
|
.setIconEn("https://downs.yaoulive.com/Robot_en.png")
|
||||||
.setUserName("")
|
.setUserName("")
|
||||||
.setContent(content);
|
.setContent(content);
|
||||||
SocketSendBean msg =
|
SocketSendBean msg =
|
||||||
@ -1863,7 +1874,7 @@ public class LiveRyAnchorActivity extends LiveActivity implements LiveFunctionCl
|
|||||||
TextMessage messageContent = TextMessage.obtain(msg.mResult.toString());
|
TextMessage messageContent = TextMessage.obtain(msg.mResult.toString());
|
||||||
Message message = Message.obtain(targetId, conversationType, messageContent);
|
Message message = Message.obtain(targetId, conversationType, messageContent);
|
||||||
|
|
||||||
RongIMClient.getInstance().sendMessage(message, null, null, new IRongCallback.ISendMessageCallback() {
|
RongcloudIMManager.sendMessage(message, null, null, new IRongCallback.ISendMessageCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onAttached(Message message) {
|
public void onAttached(Message message) {
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@ import android.app.Activity;
|
|||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.FrameLayout;
|
import android.widget.FrameLayout;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
@ -15,6 +16,7 @@ import androidx.recyclerview.widget.LinearLayoutManager;
|
|||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.lxj.xpopup.XPopup;
|
import com.lxj.xpopup.XPopup;
|
||||||
import com.yunbao.common.Constants;
|
import com.yunbao.common.Constants;
|
||||||
@ -32,6 +34,7 @@ import com.yunbao.common.bean.SudGameChatImModel;
|
|||||||
import com.yunbao.common.bean.SudGameUserModel;
|
import com.yunbao.common.bean.SudGameUserModel;
|
||||||
import com.yunbao.common.dialog.SudGameInputPopupWindow;
|
import com.yunbao.common.dialog.SudGameInputPopupWindow;
|
||||||
import com.yunbao.common.event.CheckRemainingBalanceEvent;
|
import com.yunbao.common.event.CheckRemainingBalanceEvent;
|
||||||
|
import com.yunbao.common.event.SubGameEvent;
|
||||||
import com.yunbao.common.event.SudGameSocketImEvent;
|
import com.yunbao.common.event.SudGameSocketImEvent;
|
||||||
import com.yunbao.common.glide.ImgLoader;
|
import com.yunbao.common.glide.ImgLoader;
|
||||||
import com.yunbao.common.http.base.HttpCallback;
|
import com.yunbao.common.http.base.HttpCallback;
|
||||||
@ -39,8 +42,10 @@ import com.yunbao.common.http.live.LiveNetManager;
|
|||||||
import com.yunbao.common.manager.IMLoginManager;
|
import com.yunbao.common.manager.IMLoginManager;
|
||||||
import com.yunbao.common.manager.imrongcloud.GameMicManager;
|
import com.yunbao.common.manager.imrongcloud.GameMicManager;
|
||||||
import com.yunbao.common.sud.QuickStartGameViewModel;
|
import com.yunbao.common.sud.QuickStartGameViewModel;
|
||||||
|
import com.yunbao.common.sud.decorator.SudFSMMGDecorator;
|
||||||
import com.yunbao.common.sud.model.GameConfigModel;
|
import com.yunbao.common.sud.model.GameConfigModel;
|
||||||
import com.yunbao.common.sud.model.GameViewInfoModel;
|
import com.yunbao.common.sud.model.GameViewInfoModel;
|
||||||
|
import com.yunbao.common.sud.state.SudMGPAPPState;
|
||||||
import com.yunbao.common.sud.state.SudMGPMGState;
|
import com.yunbao.common.sud.state.SudMGPMGState;
|
||||||
import com.yunbao.common.utils.Bus;
|
import com.yunbao.common.utils.Bus;
|
||||||
import com.yunbao.common.utils.DpUtil;
|
import com.yunbao.common.utils.DpUtil;
|
||||||
@ -460,7 +465,7 @@ public class SudGameActivity extends AbsActivity implements GameMicManager.Meeti
|
|||||||
if (IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) {
|
if (IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) {
|
||||||
ToastUtil.show("貨幣数量不足 ");
|
ToastUtil.show("貨幣数量不足 ");
|
||||||
} else {
|
} else {
|
||||||
ToastUtil.show("Shortage of money");
|
ToastUtil.show("Insufficient number of currency");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -473,7 +478,7 @@ public class SudGameActivity extends AbsActivity implements GameMicManager.Meeti
|
|||||||
if (IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) {
|
if (IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) {
|
||||||
ToastUtil.show("貨幣数量不足 ");
|
ToastUtil.show("貨幣数量不足 ");
|
||||||
} else {
|
} else {
|
||||||
ToastUtil.show("Shortage of money");
|
ToastUtil.show("Insufficient number of currency");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -679,4 +684,16 @@ public class SudGameActivity extends AbsActivity implements GameMicManager.Meeti
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||||
|
public void onSudGameStatus(SubGameEvent event) {
|
||||||
|
if (event.getType() == 0) {
|
||||||
|
Log.i("游戏回调", "onGameStateChange: event :" + event.toString());
|
||||||
|
if (event.getModel().getCode() == 1001 || event.getModel().getCode() == 1002) {
|
||||||
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
jsonObject.put("result", 0);
|
||||||
|
gameViewModel.sudFSTAPPDecorator.notifyStateChange(SudMGPAPPState.APP_COMMON_GAME_CREATE_ORDER_RESULT, jsonObject.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,6 +30,7 @@ import com.yunbao.common.http.API;
|
|||||||
import com.yunbao.common.http.ResponseModel;
|
import com.yunbao.common.http.ResponseModel;
|
||||||
import com.yunbao.common.manager.MicUserManager;
|
import com.yunbao.common.manager.MicUserManager;
|
||||||
import com.yunbao.common.manager.MicedUserManager;
|
import com.yunbao.common.manager.MicedUserManager;
|
||||||
|
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
|
||||||
import com.yunbao.common.utils.CommonIconUtil;
|
import com.yunbao.common.utils.CommonIconUtil;
|
||||||
import com.yunbao.common.utils.SVGAViewUtils;
|
import com.yunbao.common.utils.SVGAViewUtils;
|
||||||
import com.yunbao.common.utils.ToastUtil;
|
import com.yunbao.common.utils.ToastUtil;
|
||||||
@ -181,7 +182,7 @@ public class AnchorUserMicInfoAdapter extends RefreshAdapter<UserBean> {
|
|||||||
Conversation.ConversationType conversationType = Conversation.ConversationType.PRIVATE;
|
Conversation.ConversationType conversationType = Conversation.ConversationType.PRIVATE;
|
||||||
TextMessage messageContent = TextMessage.obtain(msg.mResult.toString());
|
TextMessage messageContent = TextMessage.obtain(msg.mResult.toString());
|
||||||
io.rong.imlib.model.Message message = io.rong.imlib.model.Message.obtain(bean.getId(), conversationType, messageContent);
|
io.rong.imlib.model.Message message = io.rong.imlib.model.Message.obtain(bean.getId(), conversationType, messageContent);
|
||||||
RongIMClient.getInstance().sendMessage(message, null, null, new IRongCallback.ISendMessageCallback() {
|
RongcloudIMManager.sendMessage(message, null, null, new IRongCallback.ISendMessageCallback() {
|
||||||
@Override
|
@Override
|
||||||
public void onAttached(io.rong.imlib.model.Message message) {
|
public void onAttached(io.rong.imlib.model.Message message) {
|
||||||
|
|
||||||
|
@ -1,10 +1,13 @@
|
|||||||
package com.yunbao.live.adapter;
|
package com.yunbao.live.adapter;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.recyclerview.widget.RecyclerView;
|
import androidx.recyclerview.widget.RecyclerView;
|
||||||
|
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.Button;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.RelativeLayout;
|
import android.widget.RelativeLayout;
|
||||||
@ -15,7 +18,9 @@ import com.yunbao.common.CommonAppConfig;
|
|||||||
import com.yunbao.common.Constants;
|
import com.yunbao.common.Constants;
|
||||||
import com.yunbao.common.adapter.RefreshAdapter;
|
import com.yunbao.common.adapter.RefreshAdapter;
|
||||||
import com.yunbao.common.glide.ImgLoader;
|
import com.yunbao.common.glide.ImgLoader;
|
||||||
|
import com.yunbao.common.manager.IMLoginManager;
|
||||||
import com.yunbao.common.utils.RouteUtil;
|
import com.yunbao.common.utils.RouteUtil;
|
||||||
|
import com.yunbao.common.views.weight.ViewClicksAntiShake;
|
||||||
import com.yunbao.live.R;
|
import com.yunbao.live.R;
|
||||||
import com.yunbao.live.bean.SystemMessageBean;
|
import com.yunbao.live.bean.SystemMessageBean;
|
||||||
import com.yunbao.live.views.SystemMessageViewHolder;
|
import com.yunbao.live.views.SystemMessageViewHolder;
|
||||||
@ -23,6 +28,9 @@ import com.yunbao.live.views.SystemMessageViewHolder;
|
|||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
import io.rong.imkit.utils.RouteUtils;
|
||||||
|
import io.rong.imlib.model.Conversation;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 互動信息
|
* 互動信息
|
||||||
*/
|
*/
|
||||||
@ -53,6 +61,7 @@ public class InteractionMessageAdapter extends RefreshAdapter<SystemMessageBean>
|
|||||||
LinearLayout toView, lt_content2, lt_reply, lt_img;
|
LinearLayout toView, lt_content2, lt_reply, lt_img;
|
||||||
ImageView img_content_pic1, img_content_pic2, img_content_pic3, img_content2_pic1, img_content2_pic2, img_item_interaction;
|
ImageView img_content_pic1, img_content_pic2, img_content_pic3, img_content2_pic1, img_content2_pic2, img_item_interaction;
|
||||||
RelativeLayout rt_root;
|
RelativeLayout rt_root;
|
||||||
|
Button mBtnChat;
|
||||||
|
|
||||||
public Vh(View itemView) {
|
public Vh(View itemView) {
|
||||||
super(itemView);
|
super(itemView);
|
||||||
@ -67,6 +76,7 @@ public class InteractionMessageAdapter extends RefreshAdapter<SystemMessageBean>
|
|||||||
img_content_pic3 = itemView.findViewById(R.id.img_content_pic3);
|
img_content_pic3 = itemView.findViewById(R.id.img_content_pic3);
|
||||||
img_content2_pic1 = itemView.findViewById(R.id.img_content2_pic1);
|
img_content2_pic1 = itemView.findViewById(R.id.img_content2_pic1);
|
||||||
img_content2_pic2 = itemView.findViewById(R.id.img_content2_pic2);
|
img_content2_pic2 = itemView.findViewById(R.id.img_content2_pic2);
|
||||||
|
mBtnChat = itemView.findViewById(R.id.btn_chat);
|
||||||
rt_root = itemView.findViewById(R.id.rt_root);
|
rt_root = itemView.findViewById(R.id.rt_root);
|
||||||
lt_reply = itemView.findViewById(R.id.lt_reply);
|
lt_reply = itemView.findViewById(R.id.lt_reply);
|
||||||
lt_img = itemView.findViewById(R.id.lt_img);
|
lt_img = itemView.findViewById(R.id.lt_img);
|
||||||
@ -87,13 +97,29 @@ public class InteractionMessageAdapter extends RefreshAdapter<SystemMessageBean>
|
|||||||
RouteUtil.forwardUserHome(mContext, bean.getUid(), 2);
|
RouteUtil.forwardUserHome(mContext, bean.getUid(), 2);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
if (IMLoginManager.get(mContext).getAnchorB() == 1) {
|
||||||
|
mBtnChat.setVisibility(View.VISIBLE);
|
||||||
|
} else {
|
||||||
|
mBtnChat.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
|
||||||
|
ViewClicksAntiShake.clicksAntiShake(mBtnChat, new ViewClicksAntiShake.ViewClicksCallBack() {
|
||||||
|
@Override
|
||||||
|
public void onViewClicks() {
|
||||||
|
RouteUtils.routeToConversationActivity(
|
||||||
|
mContext,
|
||||||
|
Conversation.ConversationType.PRIVATE,
|
||||||
|
bean.getUid()
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
if (bean.getDynamic_id() != null && !"0".equals(bean.getDynamic_id())) {
|
if (bean.getDynamic_id() != null && !"0".equals(bean.getDynamic_id())) {
|
||||||
lt_img.setVisibility(View.VISIBLE);
|
lt_img.setVisibility(View.VISIBLE);
|
||||||
rt_root.setOnClickListener(new View.OnClickListener() {
|
rt_root.setOnClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
Constants.myIntoIndex = 2;
|
Constants.myIntoIndex = 2;
|
||||||
Constants.chatActionUrl=CommonAppConfig.HOST
|
Constants.chatActionUrl = CommonAppConfig.HOST
|
||||||
+ "/h5/shequ/index.html#/h5/shequ/details?isDetailsChat=1&dynamic_uid="
|
+ "/h5/shequ/index.html#/h5/shequ/details?isDetailsChat=1&dynamic_uid="
|
||||||
+ bean.getUid()
|
+ bean.getUid()
|
||||||
+ "&id=" + bean.getDynamic_id();
|
+ "&id=" + bean.getDynamic_id();
|
||||||
|
@ -2,8 +2,11 @@ package com.yunbao.live.bean;
|
|||||||
|
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.annotation.JSONField;
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
import com.yunbao.common.bean.BaseModel;
|
import com.yunbao.common.bean.BaseModel;
|
||||||
|
import com.yunbao.common.utils.StringUtil;
|
||||||
|
import com.yunbao.common.utils.WordUtil;
|
||||||
|
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
@ -30,8 +33,21 @@ public class ImUserBean extends BaseModel {
|
|||||||
String _method_ = "";//融雲消息類型
|
String _method_ = "";//融雲消息類型
|
||||||
@SerializedName("new_image")
|
@SerializedName("new_image")
|
||||||
private String newImage;
|
private String newImage;
|
||||||
|
@JSONField(name = "en_image")
|
||||||
|
private String newImageEn;
|
||||||
|
|
||||||
|
public String getNewImageEn() {
|
||||||
|
return newImageEn;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNewImageEn(String newImageEn) {
|
||||||
|
this.newImageEn = newImageEn;
|
||||||
|
}
|
||||||
|
|
||||||
public String getNewImage() {
|
public String getNewImage() {
|
||||||
|
if (!WordUtil.isNewZh() && !StringUtil.isEmpty(newImageEn)) {
|
||||||
|
return newImageEn;
|
||||||
|
}
|
||||||
return newImage;
|
return newImage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ import com.alibaba.fastjson.annotation.JSONField;
|
|||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
import com.yunbao.common.bean.AiAutomaticSpeechModel;
|
import com.yunbao.common.bean.AiAutomaticSpeechModel;
|
||||||
import com.yunbao.common.bean.MsgModel;
|
import com.yunbao.common.bean.MsgModel;
|
||||||
|
import com.yunbao.common.utils.StringUtil;
|
||||||
import com.yunbao.common.utils.WordUtil;
|
import com.yunbao.common.utils.WordUtil;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -28,7 +29,7 @@ public class LiveChatBean {
|
|||||||
public static final int XYD_COMPLETE = 207;//心愿单完成通知
|
public static final int XYD_COMPLETE = 207;//心愿单完成通知
|
||||||
public static final int WISH_LIST_PROGRESS = 307;//心愿单进度通知
|
public static final int WISH_LIST_PROGRESS = 307;//心愿单进度通知
|
||||||
public static final int BLIND_BOX = 409;//盲盒礼物消息
|
public static final int BLIND_BOX = 409;//盲盒礼物消息
|
||||||
public static final int TYPE_TO_USER_MSG=500;//指定信息
|
public static final int TYPE_TO_USER_MSG = 500;//指定信息
|
||||||
|
|
||||||
|
|
||||||
private String id;
|
private String id;
|
||||||
@ -47,6 +48,7 @@ public class LiveChatBean {
|
|||||||
private String bubble;//气泡
|
private String bubble;//气泡
|
||||||
private String medal;//勋章
|
private String medal;//勋章
|
||||||
private String medal_new;
|
private String medal_new;
|
||||||
|
private String medal_new_en;
|
||||||
private String medal_honor;//荣誉勋章
|
private String medal_honor;//荣誉勋章
|
||||||
private String hot_num;
|
private String hot_num;
|
||||||
private String good_nub;
|
private String good_nub;
|
||||||
@ -63,7 +65,7 @@ public class LiveChatBean {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getGiftName() {
|
public String getGiftName() {
|
||||||
return WordUtil.isNewZh()?giftName:giftname_en;
|
return WordUtil.isNewZh() ? giftName : giftname_en;
|
||||||
}
|
}
|
||||||
|
|
||||||
public LiveChatBean setGiftName(String giftName) {
|
public LiveChatBean setGiftName(String giftName) {
|
||||||
@ -215,6 +217,9 @@ public class LiveChatBean {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String getMedal_new() {
|
public String getMedal_new() {
|
||||||
|
if (!WordUtil.isNewZh() && !StringUtil.isEmpty(medal_new_en)) {
|
||||||
|
return medal_new_en;
|
||||||
|
}
|
||||||
return medal_new;
|
return medal_new;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -222,6 +227,10 @@ public class LiveChatBean {
|
|||||||
this.medal_new = medal_new;
|
this.medal_new = medal_new;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setMedal_new_en(String medal_new_en) {
|
||||||
|
this.medal_new_en = medal_new_en;
|
||||||
|
}
|
||||||
|
|
||||||
public String getPrankIcon() {
|
public String getPrankIcon() {
|
||||||
return prankIcon;
|
return prankIcon;
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@ import android.widget.ImageView;
|
|||||||
import android.widget.RelativeLayout;
|
import android.widget.RelativeLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import com.umeng.analytics.MobclickAgent;
|
import com.yunbao.common.utils.MobclickAgent;
|
||||||
import com.yunbao.common.dialog.AbsDialogFragment;
|
import com.yunbao.common.dialog.AbsDialogFragment;
|
||||||
import com.yunbao.common.http.HttpCallback;
|
import com.yunbao.common.http.HttpCallback;
|
||||||
import com.yunbao.common.utils.ToastUtil;
|
import com.yunbao.common.utils.ToastUtil;
|
||||||
|
@ -30,7 +30,7 @@ import com.lxj.xpopup.XPopup;
|
|||||||
import com.lxj.xpopup.enums.PopupPosition;
|
import com.lxj.xpopup.enums.PopupPosition;
|
||||||
import com.makeramen.roundedimageview.RoundedImageView;
|
import com.makeramen.roundedimageview.RoundedImageView;
|
||||||
import com.stx.xhb.androidx.XBanner;
|
import com.stx.xhb.androidx.XBanner;
|
||||||
import com.umeng.analytics.MobclickAgent;
|
import com.yunbao.common.utils.MobclickAgent;
|
||||||
import com.yunbao.common.CommonAppConfig;
|
import com.yunbao.common.CommonAppConfig;
|
||||||
import com.yunbao.common.adapter.LiveBuyGuardPrivilegeAdapter;
|
import com.yunbao.common.adapter.LiveBuyGuardPrivilegeAdapter;
|
||||||
import com.yunbao.common.bean.CheckUpgradesModel;
|
import com.yunbao.common.bean.CheckUpgradesModel;
|
||||||
|
@ -18,7 +18,7 @@ import com.alibaba.fastjson.JSON;
|
|||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.lxj.xpopup.XPopup;
|
import com.lxj.xpopup.XPopup;
|
||||||
import com.umeng.analytics.MobclickAgent;
|
import com.yunbao.common.utils.MobclickAgent;
|
||||||
import com.yunbao.common.bean.LiveGiftBean;
|
import com.yunbao.common.bean.LiveGiftBean;
|
||||||
import com.yunbao.common.dialog.AbsDialogPopupWindow;
|
import com.yunbao.common.dialog.AbsDialogPopupWindow;
|
||||||
import com.yunbao.common.glide.ImgLoader;
|
import com.yunbao.common.glide.ImgLoader;
|
||||||
|
@ -23,7 +23,7 @@ import androidx.annotation.Nullable;
|
|||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.google.android.material.tabs.TabLayout;
|
import com.google.android.material.tabs.TabLayout;
|
||||||
import com.umeng.analytics.MobclickAgent;
|
import com.yunbao.common.utils.MobclickAgent;
|
||||||
import com.yunbao.common.CommonAppConfig;
|
import com.yunbao.common.CommonAppConfig;
|
||||||
import com.yunbao.common.Constants;
|
import com.yunbao.common.Constants;
|
||||||
import com.yunbao.common.bean.ActiveModel;
|
import com.yunbao.common.bean.ActiveModel;
|
||||||
|
@ -44,7 +44,7 @@ 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.umeng.analytics.MobclickAgent;
|
import com.yunbao.common.utils.MobclickAgent;
|
||||||
import com.yunbao.common.CommonAppConfig;
|
import com.yunbao.common.CommonAppConfig;
|
||||||
import com.yunbao.common.Constants;
|
import com.yunbao.common.Constants;
|
||||||
import com.yunbao.common.R;
|
import com.yunbao.common.R;
|
||||||
|
@ -17,7 +17,7 @@ import com.alibaba.fastjson.JSON;
|
|||||||
import com.lxj.xpopup.XPopup;
|
import com.lxj.xpopup.XPopup;
|
||||||
import com.makeramen.roundedimageview.RoundedImageView;
|
import com.makeramen.roundedimageview.RoundedImageView;
|
||||||
import com.opensource.svgaplayer.SVGAImageView;
|
import com.opensource.svgaplayer.SVGAImageView;
|
||||||
import com.umeng.analytics.MobclickAgent;
|
import com.yunbao.common.utils.MobclickAgent;
|
||||||
import com.yunbao.common.CommonAppConfig;
|
import com.yunbao.common.CommonAppConfig;
|
||||||
import com.yunbao.common.adapter.RefreshAdapter;
|
import com.yunbao.common.adapter.RefreshAdapter;
|
||||||
import com.yunbao.common.bean.CheckUpgradesModel;
|
import com.yunbao.common.bean.CheckUpgradesModel;
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user