From 37d2f0b975933e7d00ba100dd85bf2dca47b4225 Mon Sep 17 00:00:00 2001
From: zlzw <583819556@qq.com>
Date: Fri, 10 Nov 2023 15:17:33 +0800
Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=B9=B6=E7=9B=B4=E6=92=AD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
OneToOne/build.gradle | 14 +-
OneToOne/google-services-oto.json | 63 ++++
OneToOne/google-services.json | 57 ++--
OneToOne/src/main/AndroidManifest.xml | 16 +
.../java/com/shayu/onetoone/AppContext.java | 158 ++++++++++
.../onetoone/activity/AbsOTOActivity.java | 25 +-
.../onetoone/activity/HomeSearchActivity.java | 2 +-
.../activity/HomepageRankingActivity.java | 2 +-
.../shayu/onetoone/activity/MainActivity.java | 110 ++++++-
.../activity/fragments/LiveFragment.java | 57 ++++
.../activity/setting/SettingActivity.java | 2 +-
.../shayu/onetoone/manager/RouteManager.java | 3 +-
.../src/main/res/layout/activity_main.xml | 19 ++
...ain_list.xml => activity_main_otolist.xml} | 0
...ity_search.xml => activity_oto_search.xml} | 0
.../src/main/res/values-zh-rTW/strings.xml | 279 ------------------
.../{values-zh-rHK => values-zh}/strings.xml | 0
.../common/bean/AnchorStartLiveBean.java | 4 +
.../yunbao/common/manager/IMLoginManager.java | 2 +-
.../imrongcloud/RongcloudIMManager.java | 2 +-
config.gradle | 10 +-
gradle.properties | 4 +-
main/build.gradle | 2 +-
.../views/AbsMainHomeChildViewHolder.java | 17 +-
.../main/views/MainHomeGameViewHolder.java | 5 +-
.../yunbao/main/views/MainHomeViewHolder.java | 139 ++++++++-
main/src/main/res/layout/view_main_home.xml | 15 +-
27 files changed, 653 insertions(+), 354 deletions(-)
create mode 100644 OneToOne/google-services-oto.json
create mode 100644 OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/LiveFragment.java
rename OneToOne/src/main/res/layout/{activity_main_list.xml => activity_main_otolist.xml} (100%)
rename OneToOne/src/main/res/layout/{activity_search.xml => activity_oto_search.xml} (100%)
delete mode 100644 OneToOne/src/main/res/values-zh-rTW/strings.xml
rename OneToOne/src/main/res/{values-zh-rHK => values-zh}/strings.xml (100%)
diff --git a/OneToOne/build.gradle b/OneToOne/build.gradle
index 79f43b9f0..f1a10d08d 100644
--- a/OneToOne/build.gradle
+++ b/OneToOne/build.gradle
@@ -5,6 +5,9 @@ apply plugin: 'com.alibaba.arouter'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
+apply plugin: 'com.google.gms.google-services'
+apply plugin: 'com.google.firebase.crashlytics'
+
android {
lintOptions {
checkReleaseBuilds false
@@ -36,7 +39,7 @@ android {
exclude 'lib/arm64-v8a/libmmcv_base.so'
exclude 'lib/arm64-v8a/libmmcrypto.so'
exclude 'lib/arm64-v8a/libMNN.so'
- // exclude 'lib/arm64-v8a/libc++_shared.so'
+ pickFirst 'lib/arm64-v8a/libc++_shared.so'
exclude 'lib/arm64-v8a/libmmcv_api_base.so'
exclude 'lib/arm64-v8a/libmmcv_api_beauty.so'
exclude 'lib/arm64-v8a/libmmcv_api_bodylandmark.so'
@@ -57,7 +60,7 @@ android {
exclude 'lib/armeabi-v7a/libmmcv_base.so'
exclude 'lib/armeabi-v7a/libmmcrypto.so'
exclude 'lib/armeabi-v7a/libMNN.so'
- // exclude 'lib/armeabi-v7a/libc++_shared.so'
+ pickFirst 'lib/armeabi-v7a/libc++_shared.so'
exclude 'lib/armeabi-v7a/libmmcv_api_base.so'
exclude 'lib/armeabi-v7a/libmmcv_api_beauty.so'
exclude 'lib/armeabi-v7a/libmmcv_api_bodylandmark.so'
@@ -106,7 +109,8 @@ android {
}
}
defaultConfig {
- applicationId "com.shayu.onetoonenew"
+ //applicationId "com.shayu.onetoonenew"
+ applicationId "com.pdlive.shayu"
minSdkVersion rootProject.ext.android.minSdkVersion
targetSdkVersion rootProject.ext.android.targetSdkVersion
versionCode rootProject.ext.android.otoversionCode
@@ -182,10 +186,14 @@ dependencies {
implementation project(path: ':lib_country_code')
annotationProcessor rootProject.ext.dependencies["arouter-compiler"]
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
+
+ implementation platform('com.google.firebase:firebase-bom:30.5.0')
+ implementation 'com.google.firebase:firebase-crashlytics'
//common
api project(path: ':common')
//api project(path:':FaceUnity')//新娱美颜
api project(path:':Share')
+ api project(path:':main')
api project(path:':TabLayout')
api project(path:':ViewPager2Delegate')
diff --git a/OneToOne/google-services-oto.json b/OneToOne/google-services-oto.json
new file mode 100644
index 000000000..4daabca5a
--- /dev/null
+++ b/OneToOne/google-services-oto.json
@@ -0,0 +1,63 @@
+{
+ "project_info": {
+ "project_number": "903482201540",
+ "project_id": "onetoone-71170",
+ "storage_bucket": "onetoone-71170.appspot.com"
+ },
+ "client": [
+ {
+ "client_info": {
+ "mobilesdk_app_id": "1:903482201540:android:132978cdf497f4d8634091",
+ "android_client_info": {
+ "package_name": "com.shayu.onetoonenew"
+ }
+ },
+ "oauth_client": [
+ {
+ "client_id": "903482201540-ddno3ro8fp0lqqoeodbhbnpqf7f8d439.apps.googleusercontent.com",
+ "client_type": 1,
+ "android_info": {
+ "package_name": "com.shayu.onetoonenew",
+ "certificate_hash": "b66dc8d21cfcf6c729577ddcf0c312b2a31ed872"
+ }
+ },
+ {
+ "client_id": "903482201540-e9ua9huoejtubp7pgsbu3iq76tqkoorp.apps.googleusercontent.com",
+ "client_type": 1,
+ "android_info": {
+ "package_name": "com.shayu.onetoonenew",
+ "certificate_hash": "15fc5e70cf238323bf7111c8c627803985478e87"
+ }
+ },
+ {
+ "client_id": "903482201540-k3cffuuhsed23kkiuopufhf54ano7do4.apps.googleusercontent.com",
+ "client_type": 1,
+ "android_info": {
+ "package_name": "com.shayu.onetoonenew",
+ "certificate_hash": "38cc19306c9facee36a9224e9a4070bc0be15c7d"
+ }
+ },
+ {
+ "client_id": "903482201540-s2j96h6k7go0ah51ksi7es8mt7qhankh.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ],
+ "api_key": [
+ {
+ "current_key": "AIzaSyCrhj-7WjwdYUHBMzz9Ntie_S474slGjVY"
+ }
+ ],
+ "services": {
+ "appinvite_service": {
+ "other_platform_oauth_client": [
+ {
+ "client_id": "903482201540-s2j96h6k7go0ah51ksi7es8mt7qhankh.apps.googleusercontent.com",
+ "client_type": 3
+ }
+ ]
+ }
+ }
+ }
+ ],
+ "configuration_version": "1"
+}
\ No newline at end of file
diff --git a/OneToOne/google-services.json b/OneToOne/google-services.json
index 4daabca5a..52d6ceae8 100644
--- a/OneToOne/google-services.json
+++ b/OneToOne/google-services.json
@@ -1,15 +1,15 @@
{
"project_info": {
- "project_number": "903482201540",
- "project_id": "onetoone-71170",
- "storage_bucket": "onetoone-71170.appspot.com"
+ "project_number": "292494634914",
+ "project_id": "pdlive-1631521064967",
+ "storage_bucket": "pdlive-1631521064967.appspot.com"
},
"client": [
{
"client_info": {
- "mobilesdk_app_id": "1:903482201540:android:132978cdf497f4d8634091",
+ "mobilesdk_app_id": "1:292494634914:android:d8db197d7e7a6c3a3a4cfb",
"android_client_info": {
- "package_name": "com.shayu.onetoonenew"
+ "package_name": "com.pdlive.shayu"
}
},
"oauth_client": [
@@ -17,42 +17,49 @@
"client_id": "903482201540-ddno3ro8fp0lqqoeodbhbnpqf7f8d439.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
- "package_name": "com.shayu.onetoonenew",
- "certificate_hash": "b66dc8d21cfcf6c729577ddcf0c312b2a31ed872"
- }
- },
- {
- "client_id": "903482201540-e9ua9huoejtubp7pgsbu3iq76tqkoorp.apps.googleusercontent.com",
- "client_type": 1,
- "android_info": {
- "package_name": "com.shayu.onetoonenew",
- "certificate_hash": "15fc5e70cf238323bf7111c8c627803985478e87"
- }
- },
- {
- "client_id": "903482201540-k3cffuuhsed23kkiuopufhf54ano7do4.apps.googleusercontent.com",
- "client_type": 1,
- "android_info": {
- "package_name": "com.shayu.onetoonenew",
+ "package_name": "com.pdlive.shayu",
"certificate_hash": "38cc19306c9facee36a9224e9a4070bc0be15c7d"
}
},
{
- "client_id": "903482201540-s2j96h6k7go0ah51ksi7es8mt7qhankh.apps.googleusercontent.com",
+ "client_id": "292494634914-ctr3fptp5mkv2qqr4gkgjo9uluq2joqb.apps.googleusercontent.com",
+ "client_type": 1,
+ "android_info": {
+ "package_name": "com.pdlive.shayu",
+ "certificate_hash": "15fc5e70cf238323bf7111c8c627803985478e87"
+ }
+ },
+ {
+ "client_id": "292494634914-ejtqvaj86a2lldv0di2pr3d5gngprahd.apps.googleusercontent.com",
+ "client_type": 1,
+ "android_info": {
+ "package_name": "com.pdlive.shayu",
+ "certificate_hash": "b66dc8d21cfcf6c729577ddcf0c312b2a31ed872"
+ }
+ },
+ {
+ "client_id": "292494634914-ha2kbgtclkv20hl3a1l8r7861a1a0m5i.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
- "current_key": "AIzaSyCrhj-7WjwdYUHBMzz9Ntie_S474slGjVY"
+ "current_key": "AIzaSyDVnuGnQzjI_vDrxh20Hv_S1OMUD7Vp3zU"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
- "client_id": "903482201540-s2j96h6k7go0ah51ksi7es8mt7qhankh.apps.googleusercontent.com",
+ "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"
+ }
}
]
}
diff --git a/OneToOne/src/main/AndroidManifest.xml b/OneToOne/src/main/AndroidManifest.xml
index 2ef751d49..774fdefee 100644
--- a/OneToOne/src/main/AndroidManifest.xml
+++ b/OneToOne/src/main/AndroidManifest.xml
@@ -290,6 +290,22 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/AppContext.java b/OneToOne/src/main/java/com/shayu/onetoone/AppContext.java
index 52cb6d183..c5a0fb6ec 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/AppContext.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/AppContext.java
@@ -1,18 +1,29 @@
package com.shayu.onetoone;
+import static com.yunbao.live.socket.SocketClient.mSocketHandler;
+
import android.app.Activity;
+import android.app.ActivityManager;
+import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Process;
+import android.text.TextUtils;
import android.util.Log;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.alibaba.android.arouter.launcher.ARouter;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.blankj.utilcode.util.Utils;
import com.facebook.FacebookSdk;
+import com.fm.openinstall.OpenInstall;
+import com.google.firebase.FirebaseApp;
+import com.google.firebase.analytics.FirebaseAnalytics;
import com.shayu.onetoone.activity.fragments.message.ChatMessageFragment;
import com.shayu.onetoone.activity.message.ChatActivity;
import com.shayu.onetoone.bean.MessageChatAuthContent;
@@ -27,18 +38,35 @@ import com.shayu.onetoone.provider.MessageChatTipsItemProvider;
import com.shayu.onetoone.provider.OTOCallEndMessageItemProvider;
import com.shayu.onetoone.utils.ChatPluginExtensionConfig;
import com.shayu.onetoone.utils.NeverCrashUtils;
+import com.tencent.imsdk.v2.V2TIMGroupMemberInfo;
+import com.tencent.imsdk.v2.V2TIMManager;
+import com.tencent.imsdk.v2.V2TIMSimpleMsgListener;
+import com.tencent.imsdk.v2.V2TIMUserInfo;
+import com.umeng.analytics.MobclickAgent;
+import com.umeng.commonsdk.UMConfigure;
import com.yunbao.common.BuildConfig;
+import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.CommonAppContext;
+import com.yunbao.common.Constants;
+import com.yunbao.common.bean.AnchorStartLiveBean;
import com.yunbao.common.bean.CrashSaveBean;
import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.manager.imrongcloud.InstructorSendReward;
import com.yunbao.common.manager.imrongcloud.InstructorSendRewardProvider;
+import com.yunbao.common.manager.imrongcloud.MessageIMManager;
import com.yunbao.common.manager.imrongcloud.RecommendLiveRoom;
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
import com.yunbao.common.utils.AppManager;
+import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.L;
import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.utils.ToastUtil;
+import com.yunbao.live.socket.SocketReceiveBean;
+import com.yunbao.live.socket.SocketRyClient;
+import com.yunbao.live.views.PortraitLiveManager;
+import com.yunbao.live.views.RecommendLiveRoomProvider;
+
+import org.greenrobot.eventbus.EventBus;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
@@ -56,6 +84,7 @@ import io.rong.imkit.utils.RouteUtils;
import io.rong.imkit.widget.adapter.ProviderManager;
import io.rong.imlib.IMLibRTCClient;
import io.rong.imlib.RongIMClient;
+import io.rong.imlib.model.Conversation;
import io.rong.imlib.model.InitOption;
import io.rong.imlib.model.Message;
import io.rong.imlib.model.MessageContent;
@@ -156,8 +185,137 @@ public class AppContext extends CommonAppContext {
RongConfigCenter.conversationConfig().replaceMessageProvider(CallEndMessageItemProvider.class, new OTOCallEndMessageItemProvider());
RongExtensionManager.getInstance().setExtensionConfig(new ChatPluginExtensionConfig());
+ initPDLive();
+
}
+ private void initPDLive(){
+
+ registerFirebaseCrash();
+ //初始化 邀请码库
+ if (isMainProcess()) {
+ OpenInstall.init(this);
+ }
+ //设置LOG开关,默认为false
+ UMConfigure.setLogEnabled(true);
+
+
+ //友盟正式初始化
+ UMConfigure.init(getApplicationContext(), "64e40ee55488fe7b3afa2c96", "PDLive", UMConfigure.DEVICE_TYPE_PHONE,
+ "64e40ee55488fe7b3afa2c96");
+
+ //集成umeng-crash-vx.x.x.aar,则需要关闭原有统计SDK异常捕获功能
+ MobclickAgent.setCatchUncaughtExceptions(false);
+ //PushSDK初始化(如使用推送SDK,必须调用此方法)
+
+ //统计SDK是否支持采集在子进程中打点的自定义事件,默认不支持
+ UMConfigure.setProcessEvent(true);//支持多进程打点
+ MobclickAgent.setPageCollectionMode(MobclickAgent.PageMode.AUTO);
+ UMConfigure.submitPolicyGrantResult(getApplicationContext(), true);
+
+ registerActivityLifecycleCallbacks(new AdjustLifecycleCallbacks());
+ //初始化 AndroidUtilCode
+ Utils.init(this);
+
+ RongConfigCenter.conversationConfig().addMessageProvider(new RecommendLiveRoomProvider(getApplicationContext()));
+
+ RongcloudIMManager.addRongcloudIMOnReceiveMessageListener(new RongIMClient.OnReceiveMessageWrapperListener() {
+ @Override
+ public boolean onReceived(io.rong.imlib.model.Message message, int i, boolean b, boolean b1) {
+ Log.e("wewe", message.getConversationType() + "112121");
+ MessageIMManager.get(sInstance).getSystemForRongcloud(message);
+ //融云直播间聊天
+ android.os.Message msg = android.os.Message.obtain();
+ msg.what = Constants.SOCKET_WHAT_BROADCAST;
+ try {
+ if (!"".equals(message.getContent()) && message.getContent() != null) {
+ TextMessage content = (TextMessage) message.getContent();
+ if (content.getContent().contains("_method_")) {
+ msg.obj = content.getContent();
+ //观众页面
+ if (SocketRyClient.mSocketHandler != null
+ && (TextUtils.equals("__system__", message.getTargetId())
+ || ("g" + PortraitLiveManager.liveID).contains(message.getTargetId()))) {
+ SocketRyClient.mSocketHandler.sendMessage(msg);
+ } else if (content.getContent().contains("LivePK_anchorStartLiveNotify")) {//开播通知
+ SocketReceiveBean received = JSON.parseObject(content.getContent(), SocketReceiveBean.class);
+ JSONObject map = received.getMsg().getJSONObject(0);
+ sendStartAnchorLive(map);
+ }
+ //主播页面
+ if (TextUtils.isEmpty(PortraitLiveManager.liveID) && SocketRyClient.mSocketHandler != null) {
+ SocketRyClient.mSocketHandler.sendMessage(msg);
+ }
+
+ } else if (message.getConversationType() == Conversation.ConversationType.PRIVATE) {//私聊信息
+ EventBus.getDefault().post(message);
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return false;
+ }
+
+ private void sendStartAnchorLive(JSONObject map) {
+ AnchorStartLiveBean bean = new AnchorStartLiveBean();
+ bean.setAnchorName(map.getString("anchorName"));
+ bean.setRoomId(map.getString("roomid"));
+ bean.setAvatar(map.getString("avatar"));
+ Bus.get().post(bean);
+ }
+ });
+
+
+ //监听im消息
+ V2TIMManager.getInstance().addSimpleMsgListener(new V2TIMSimpleMsgListener() {
+ @Override
+ public void onRecvGroupTextMessage(String msgID, String groupID, V2TIMGroupMemberInfo sender, String text) {
+ super.onRecvGroupTextMessage(msgID, groupID, sender, text);
+ Log.e("asasas", text);
+ android.os.Message msg = android.os.Message.obtain();
+ msg.what = Constants.SOCKET_WHAT_BROADCAST;
+ msg.obj = text;
+ if (mSocketHandler != null && Ingroup == 1) {
+ mSocketHandler.sendMessage(msg);
+ }
+ }
+
+ @Override
+ public void onRecvC2CTextMessage(String msgID, V2TIMUserInfo sender, String text) {
+ super.onRecvC2CTextMessage(msgID, sender, text);
+ android.os.Message msg = android.os.Message.obtain();
+ msg.what = Constants.SOCKET_WHAT_BROADCAST;
+ msg.obj = text;
+ if (mSocketHandler != null) {
+ CommonAppContext.Ingroup = 1;
+ mSocketHandler.sendMessage(msg);
+ }
+ }
+
+ });
+ }
+
+ public void registerFirebaseCrash() {
+
+ FirebaseAnalytics.getInstance(this);
+ FirebaseApp.initializeApp(this);
+ }
+
+
+ public boolean isMainProcess() {
+ int pid = android.os.Process.myPid();
+ ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
+ if (activityManager.getRunningAppProcesses() == null) {
+ return true;
+ }
+ for (ActivityManager.RunningAppProcessInfo appProcess : activityManager.getRunningAppProcesses()) {
+ if (appProcess.pid == pid) {
+ return getApplicationInfo().packageName.equals(appProcess.processName);
+ }
+ }
+ return false;
+ }
private static final class AdjustLifecycleCallbacks implements ActivityLifecycleCallbacks {
@Override
public void onActivityResumed(Activity activity) {
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/AbsOTOActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/AbsOTOActivity.java
index 1e3ccc259..9a4fb40f8 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/activity/AbsOTOActivity.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/AbsOTOActivity.java
@@ -14,6 +14,7 @@ import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import com.shayu.onetoone.R;
+import com.yunbao.common.activity.AbsActivity;
import com.yunbao.common.manager.IMLoginManager;
import java.util.Locale;
@@ -21,35 +22,13 @@ import java.util.Locale;
/**
* Activity基类
*/
-public abstract class AbsOTOActivity extends AppCompatActivity {
+public abstract class AbsOTOActivity extends AbsActivity {
public Context mContext;
- @Override
- public Resources getResources() {
- Resources res = super.getResources();
- Configuration config = new Configuration();
- config.setToDefaults();
- config.locale = IMLoginManager.get(this).getLocaleLanguage();
- if(config.locale== Locale.SIMPLIFIED_CHINESE){
- config.locale=Locale.TRADITIONAL_CHINESE;
- }
- res.updateConfiguration(config, res.getDisplayMetrics());
- return res;
- }
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- if(onCreate()) {
- setStatusBar();
- }
- setContentView(getLayoutId());
- mContext = this;
- main(savedInstanceState);
- View view=findViewById(R.id.btn_back);
- if(view!=null){
- view.setOnClickListener(v -> finish());
- }
}
private void setStatusBar() {
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/HomeSearchActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/HomeSearchActivity.java
index 907c93d4b..c3482d3d1 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/activity/HomeSearchActivity.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/HomeSearchActivity.java
@@ -43,7 +43,7 @@ public class HomeSearchActivity extends AbsOTOActivity {
@Override
protected int getLayoutId() {
- return R.layout.activity_search;
+ return R.layout.activity_oto_search;
}
@Override
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/HomepageRankingActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/HomepageRankingActivity.java
index dfa565ee0..7d7187416 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/activity/HomepageRankingActivity.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/HomepageRankingActivity.java
@@ -34,7 +34,7 @@ public class HomepageRankingActivity extends AbsOTOActivity {
@Override
protected int getLayoutId() {
- return R.layout.activity_main_list;
+ return R.layout.activity_main_otolist;
}
@Override
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/MainActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/MainActivity.java
index 3e282b38c..c7383f571 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/activity/MainActivity.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/MainActivity.java
@@ -1,6 +1,7 @@
package com.shayu.onetoone.activity;
import android.os.Bundle;
+import android.util.Log;
import android.view.View;
import androidx.annotation.NonNull;
@@ -9,10 +10,15 @@ import androidx.viewpager2.adapter.FragmentStateAdapter;
import androidx.viewpager2.widget.ViewPager2;
import com.alibaba.android.arouter.facade.annotation.Route;
+import com.alibaba.android.arouter.launcher.ARouter;
+import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.angcyo.tablayout.DslTabLayout;
import com.angcyo.tablayout.DslTabLayoutConfig;
import com.angcyo.tablayout.delegate2.ViewPager2Delegate;
+import com.google.android.gms.tasks.OnCompleteListener;
+import com.google.android.gms.tasks.Task;
+import com.google.firebase.messaging.FirebaseMessaging;
import com.lxj.xpopup.core.BasePopupView;
import com.shayu.onetoone.AppContext;
import com.lxj.xpopup.XPopup;
@@ -20,6 +26,7 @@ import com.shayu.onetoone.R;
import com.shayu.onetoone.activity.fragments.BaseFragment;
import com.shayu.onetoone.activity.fragments.DynamicFragment;
import com.shayu.onetoone.activity.fragments.FriendsFragment;
+import com.shayu.onetoone.activity.fragments.LiveFragment;
import com.shayu.onetoone.activity.fragments.MessageFragment;
import com.shayu.onetoone.activity.fragments.MyFragment;
import com.shayu.onetoone.activity.fragments.message.MsgMessageFragment;
@@ -36,9 +43,14 @@ import com.shayu.onetoone.manager.OTONetManager;
import com.shayu.onetoone.manager.RouteManager;
import com.shayu.onetoone.manager.SendMessageManager;
import com.shayu.onetoone.utils.UserManager;
+import com.umeng.analytics.MobclickAgent;
import com.yunbao.common.CommonAppConfig;
+import com.yunbao.common.activity.WebViewActivity;
+import com.yunbao.common.bean.AnchorStartLiveBean;
import com.yunbao.common.bean.ConfigBean;
+import com.yunbao.common.bean.LiveBean;
import com.yunbao.common.event.RongIMConnectionStatusEvent;
+import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.interfaces.CommonCallback;
import com.yunbao.common.interfaces.OnItemClickListener;
@@ -47,11 +59,14 @@ import com.yunbao.common.manager.IMLoginManager;
import com.yunbao.common.manager.imrongcloud.RongcloudIMManager;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.utils.DialogUitl;
+import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
+import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.utils.SpUtil;
import com.yunbao.common.utils.ToastUtil;
import com.yunbao.common.utils.VersionUtil;
import com.yunbao.common.views.APKUpdateCustomPopup;
import com.yunbao.common.views.APKUpdateOneToOnePopup;
+import com.yunbao.main.dialog.AnchorStartLiveNotifyDialog;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
@@ -59,9 +74,13 @@ import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.List;
+import cn.rongcloud.rtc.api.RCRTCConfig;
+import cn.rongcloud.rtc.api.RCRTCEngine;
import io.rong.imkit.manager.UnReadMessageManager;
import io.rong.imlib.RongIMClient;
import io.rong.imlib.model.Conversation;
+import io.rong.push.PushManager;
+import io.rong.push.PushType;
import kotlin.Unit;
import kotlin.jvm.functions.Function1;
import kotlin.jvm.functions.Function4;
@@ -76,6 +95,8 @@ public class MainActivity extends AbsOTOActivity {
private DslTabLayout dslTabLayout;
private long mLastClickBackTime;//上次点击back键的时间
private boolean isInstallApk = false;
+ private static final String TAG = "MainActivity";
+ private List startListNotifyList = new ArrayList<>();
@Override
protected void onDestroy() {
@@ -87,6 +108,7 @@ public class MainActivity extends AbsOTOActivity {
protected void main(Bundle savedInstanceState) {
Bus.getOn(this);
fragments.add(new FriendsFragment());
+ fragments.add(new LiveFragment());
fragments.add(new DynamicFragment());
fragments.add(new MessageFragment());
fragments.add(new MyFragment());
@@ -134,13 +156,14 @@ public class MainActivity extends AbsOTOActivity {
});
CallClientManager.getManager();
checkVersion();
+ initPDLive();
}
/**
* 检查版本更新
*/
private void checkVersion() {
- if(true)
+ if (true)
return;
CommonAppConfig.getInstance().getConfig(new CommonCallback() {
@Override
@@ -294,6 +317,65 @@ public class MainActivity extends AbsOTOActivity {
}
}
+ private void initPDLive() {
+ RCRTCConfig.Builder config = RCRTCConfig.Builder.create();
+ config.enableEncoderTexture(false);//新娱美颜 需要关闭这个
+ RCRTCEngine.getInstance().init(this, config.build());
+
+ if (getIntent().getStringExtra("liveid") != null) {
+ LiveHttpUtil.getLiveInfo(getIntent().getStringExtra("liveid") + "", new com.yunbao.common.http.HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info) {
+ if (code == 0 && info.length > 0) {
+ LiveBean liveBean = JSON.parseObject(info[0], LiveBean.class);
+ new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
+ @Override
+ public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
+ RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
+ }
+
+ @Override
+ public void onCheckError(String contextError) {
+
+ }
+ });
+ } else {
+ ToastUtil.show("直播已结束");
+ }
+ }
+ });
+ } else if (getIntent().getStringExtra("type") != null && getIntent().getStringExtra("type").equals("2")) {
+ //跳转消息列表
+ if (viewPager != null) {
+ viewPager.setCurrentItem(2);
+ }
+
+ } else if (getIntent().getStringExtra("type") != null && getIntent().getStringExtra("type").equals("8")) {
+ WebViewActivity.forward(mContext, getIntent().getStringExtra("activityUrl"), true, false);
+ }
+ FirebaseMessaging.getInstance().getToken()
+ .addOnCompleteListener(new OnCompleteListener() {
+ @Override
+ public void onComplete(@NonNull Task task) {
+ if (!task.isSuccessful()) {
+ Log.w(TAG, "Fetching FCM registration token failed", task.getException());
+ return;
+ }
+
+ // Get new FCM registration token
+ String token = task.getResult();
+
+ // Log and toast
+ Log.d(TAG, token);
+ PushManager.getInstance()
+ .onReceiveToken(MainActivity.this, PushType.GOOGLE_FCM, token);
+// Toast.makeText(MainActivity.this, token, Toast.LENGTH_SHORT).show();
+ }
+ });
+
+ CommonAppConfig.getInstance().setLaunched(true);
+ }
+
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
@@ -319,6 +401,20 @@ public class MainActivity extends AbsOTOActivity {
AppContext.exit();
}
+ private void notifyLiveFlot() {
+ if (startListNotifyList.iterator().hasNext()) {
+ AnchorStartLiveBean bean = startListNotifyList.iterator().next();
+ new AnchorStartLiveNotifyDialog(mContext, bean)
+ .setOnDismissListener(dialog -> {
+ startListNotifyList.remove(bean);
+ if (startListNotifyList.iterator().hasNext()) {
+ notifyLiveFlot();
+ }
+ })
+ .showDialog();
+ }
+ }
+
@Subscribe(threadMode = ThreadMode.MAIN)
public void busEvent(MessageMsgBusEvent event) {
if (event.getType() == MessageMsgBusEvent.TYPE_ALL_READ) {
@@ -332,6 +428,18 @@ public class MainActivity extends AbsOTOActivity {
}
}
+ @Subscribe(threadMode = ThreadMode.MAIN)
+ public void busEvent(AnchorStartLiveBean event) {
+ if (!IMLoginManager.get(mContext).isLiveNotifySettings()) return;
+
+ if (startListNotifyList.isEmpty()) {
+ startListNotifyList.add(event);
+ notifyLiveFlot();
+ } else {
+ startListNotifyList.add(event);
+ }
+ }
+
/**
* 用户被踢下线
*
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/LiveFragment.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/LiveFragment.java
new file mode 100644
index 000000000..71e41f573
--- /dev/null
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/LiveFragment.java
@@ -0,0 +1,57 @@
+package com.shayu.onetoone.activity.fragments;
+
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import com.yunbao.main.views.MainHomeViewHolder;
+
+public class LiveFragment extends BaseFragment {
+ MainHomeViewHolder viewHolder;
+ public LiveFragment() {
+ }
+
+ @Override
+ public void initView(View itemView) {
+ viewHolder.loadData();
+ }
+
+ @Override
+ public View createView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
+ if(viewHolder==null){
+ viewHolder=new MainHomeViewHolder(getContext(),container);
+ }
+ return viewHolder.getContentView();
+ }
+
+ @Override
+ public void onPause() {
+ super.onPause();
+ viewHolder.onPause();
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+ viewHolder.onResume();
+ }
+
+ @Override
+ public void onStart() {
+ super.onStart();
+ viewHolder.onStart();
+ }
+
+ @Override
+ public void onStop() {
+ super.onStop();
+ viewHolder.onStop();
+ }
+
+ @Override
+ public void onDestroy() {
+ super.onDestroy();
+ viewHolder.onDestroy();
+ }
+}
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/setting/SettingActivity.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/setting/SettingActivity.java
index 8a13fad41..4dbcaa9da 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/activity/setting/SettingActivity.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/setting/SettingActivity.java
@@ -36,7 +36,7 @@ import io.rong.imlib.RongIMClient;
/**
* 设置
*/
-@Route(path = RouteUtil.PATH_SETTING)
+@Route(path = RouteManager.PATH_SETTING)
public class SettingActivity extends AbsActivity {
private Handler mHandler;
diff --git a/OneToOne/src/main/java/com/shayu/onetoone/manager/RouteManager.java b/OneToOne/src/main/java/com/shayu/onetoone/manager/RouteManager.java
index 032c91871..9c5675022 100644
--- a/OneToOne/src/main/java/com/shayu/onetoone/manager/RouteManager.java
+++ b/OneToOne/src/main/java/com/shayu/onetoone/manager/RouteManager.java
@@ -24,7 +24,7 @@ public class RouteManager {
public static final String ACTIVITY_HOME_SCREEN = "/activity/HomeScreenActivity";
public static final String ACTIVITY_CALL_VIDEO = "/activity/CallVideoActivity";
public static final String ACTIVITY_CALL_AUDIO = "/activity/CallVAudioActivity";
- public static final String PATH_EDITPROFILE = "/main/EditProfileActivity";
+ public static final String PATH_EDITPROFILE = "/activity/EditProfileActivity";
public static final String ACTIVITY_MATCHING = "/activity/MatchingActivity";
public static final String ACTIVITY_MY_FRIEND_LIST = "/activity/MyFriendListActivity";
@@ -43,6 +43,7 @@ public class RouteManager {
public static final String ACTIVITY_END_CALL="/activity/EndCallActivity";
public static final String ACTIVITY_BLACK_LIST = "/activity/AuthBloggerInletActivity";
+ public static final String PATH_SETTING = "/activity/SettingActivity";
/**
* 达人认证入口
diff --git a/OneToOne/src/main/res/layout/activity_main.xml b/OneToOne/src/main/res/layout/activity_main.xml
index d1c9f3c1c..071d489cc 100644
--- a/OneToOne/src/main/res/layout/activity_main.xml
+++ b/OneToOne/src/main/res/layout/activity_main.xml
@@ -54,6 +54,25 @@
android:gravity="center"
android:text="@string/home_label_friends" />
+
+
+
+
+
+
-
- 友聊
- 選擇活動
- 【安全提示】為保障您的權益,慶提高警惕,不要輕易添加或提供第三方聯繫方式
- 成功
- 失敗
- 錯誤
- 交友
- 動態
- 消息
- 我的
- 打招呼文案
- 上傳圖片(非必選)
- 清除設置
- 保存設置
- 我的收益
- 獎勵說明
- 可提現總額
- 今日收益:
- 結算記錄
- 累計收益:
- 兌換鑽石/星幣
- 獎勵提現
- (最低$ %s)
- 兌換星幣
- 兌換記錄
- 可兌換總額
- 金幣
- 切換
- 敬請期待
- 請輸入需兌換的星幣金額
- 請輸入需兌換的鑽石金額
- 立即兌換
- 全額兌換
-
- 最多選 %1$s 張圖片哦
- 暫無好友消息~
- 餘額不足
- 文字聊天每條續消耗%s星幣,您可通過充值獲取更多星幣以便繼續聊天
-
- 與TA視頻聊天每分鐘續消耗%s星幣您可通過充值獲取更多星幣以便繼續聊天
- 與TA語音聊天每分鐘續消耗%s星幣您可通過充值獲取更多星幣以便繼續聊天
- 聊天每條續消耗%s星幣,您可通過充值獲取更多星幣以便繼續聊天
- 離開
- 去充值
- 發起視頻通話\n%s星幣/分鐘
- 發起語音通話\n%s星幣/分鐘
- 相冊
- 拍照
- 圖片信息
- 複製
- 刪除
- 置頂
- 取消置頂
- 複製成功
- 上傳中
- 上傳成功
- 上傳失敗
- 年
- 月
- 日
- 生日
- 完成
- 完成
- 請填寫昵稱
- 請選擇性別
- 請允許懸浮窗權限才能進行小窗
- 設置
- 取消
- 通話時長:
- 通話將在%s秒后斷\n開,請及時充值
- 首次匹配成功獎勵
- 恭喜獲得
- 打招呼設置
- 審核中,請耐心等待审核通过
- 已發起審核,請耐心等待審核結果
- 審核失敗,去提交
- 審核中
- 認證通過
- 審核失敗重新提交
- 去認證
- 重新提交
- 上傳入駐資料
- 達人認證
- 查詢中
- 去上傳
- 請輸入內容
- 確定要退出靈魂速配嗎?
- 繼續匹配
- 徹底離開
- 當前等待時間較長,建議您先去觀看動態哦,稍後再來哦~
- 繼續匹配
- 去看動態
- 餘額不足,請充值后再進行嘗試吧~
- 取消
- 前往充值
- [禮物]
- [邀請認證]
- [系統提示]
- 等待對方接受邀請…
- 連接成功
- 需要獲取您的權限
- 邀請對方完成真人認證,開通通話權限
- 待開通
- 對方邀請您完成真人認證,開通通話權限
- 去開通
- 送給TA
- 送給你
- 確定
-
- 真人說明
- 請上傳您的身份證正反面完成真人認證,完成認證可獲得跟多消息推送並提高聊天,收禮的收益比例
- 身份證正面
- 身份證背面
- 發起審核
-
- 帶*為必填項,為保障您的利益,請如實填寫
- 性別
- 男
- 女
- 真實姓名
- 請填寫您的真實姓名
- 手機號碼
- 請填寫您的手機號碼
- 身份證號碼
- 請填寫您的身份證號碼
- 上傳手持證件照
- 請將證件頭像朝向前方
- 參考圖
- 上傳背景圖片
- 發起審核
-
- 真人說明
- 請上傳您的身份證正反面完成真人認證,完成認證可獲得跟多消息推送並提高聊天,收禮的收益比例
- 條件一:完成真人認證
- 已完成
- 條件二:上傳入駐資料
- 已完成
-
- 跳過
- 我的標籤
- 暫無標籤
- 完成
-
- 完善個人信息
- 去選擇
- 昵稱
- 性別
- 女
- 男
- 生日
- 完成
-
- 溫馨提示:可以免費修改昵稱一次,之後修改需要鑽石600一次
-
- 頭像
- 暱稱
- 簽名
- 生日
- 性別
- 所在地
- 綁定手機
- 真人認證
- 興趣
-
- 忘記密碼
-
- 用戶登錄
-
- 魅力榜
- 財富榜
-
- 正在熱聊中
- 匹配中…
- TA還在練習見面開場白,再給TA點時間吧~
- 靈魂速配
-
- 聯繫客服
-
- 用戶註冊
-
- 年齡
- 全部
- 40以上
- 性別
- 男
- 女
- 是否完成真人認證
- 已完成
- 未完成
- 確定
- 重置
-
- 猜你喜歡
-
- 個人設定
- 修改密碼
- 黑名單
- 語言設定
- 達人認證
- 常見問題
- 服務協議
- 清除緩存
- 刪除用戶
- 關於我們
- 版本號
- 檢查新版本
- 退出
- 用戶協議
- 消息通知
-
- 我的標籤
-
- 活潑
-
- 取消
-
- 關注
- 此次通話結束了快開啟\n下一次通話吧
- 再次通話
- 去充值
-
- 打招呼設置
- 一鍵已讀
-
- 推薦
- 熱門
-
- 關注
-
- 消息
- 好友
-
- 用戶名稱
- 這個人很懶,什麼也沒留下。
-
- 請輸入文案
-
- 點擊查看
-
- 輸入信息
- 聯繫客服
- 沒有找到匹配結果~
-
- 對方邀請您完成真人認證,開通通話權限
- 去開通
-
- 送給你
-
- 充值
-
- 查看主頁
-
- 添加更多
- 保存
- 被關注
- 關注
- 互動關注
- 人
-
- 未關注
- 回關
- 已關注
- 相互關注
-
- 粉絲
- 關注
- 好友
-
- 收下獎勵
- 發送任意禮物后即可解鎖
- 余额不足,请充值后再进行尝试吧~
- 通话结束
- 对方未完成真人认证,暂时无法向对方发起通话
- 您當前正在通話中,請掛斷後再試
- 兌換成功
- 兌換失敗
-
\ No newline at end of file
diff --git a/OneToOne/src/main/res/values-zh-rHK/strings.xml b/OneToOne/src/main/res/values-zh/strings.xml
similarity index 100%
rename from OneToOne/src/main/res/values-zh-rHK/strings.xml
rename to OneToOne/src/main/res/values-zh/strings.xml
diff --git a/common/src/main/java/com/yunbao/common/bean/AnchorStartLiveBean.java b/common/src/main/java/com/yunbao/common/bean/AnchorStartLiveBean.java
index ab3160f99..da5761653 100644
--- a/common/src/main/java/com/yunbao/common/bean/AnchorStartLiveBean.java
+++ b/common/src/main/java/com/yunbao/common/bean/AnchorStartLiveBean.java
@@ -1,6 +1,10 @@
package com.yunbao.common.bean;
public class AnchorStartLiveBean extends BaseModel{
+ public static final int TYPE_LIVE=0;
+ public static final int TYPE_CHAT=1;
+ public static final int TYPE_CALL_AUDIO=2;
+ public static final int TYPE_CALL_VIDEO=3;
private String anchorName;
private String avatar;
private String roomId;
diff --git a/common/src/main/java/com/yunbao/common/manager/IMLoginManager.java b/common/src/main/java/com/yunbao/common/manager/IMLoginManager.java
index 260ec4cac..0617c28aa 100644
--- a/common/src/main/java/com/yunbao/common/manager/IMLoginManager.java
+++ b/common/src/main/java/com/yunbao/common/manager/IMLoginManager.java
@@ -89,7 +89,7 @@ public class IMLoginManager extends BaseCacheManager {
language = "zh";
}
if (!getBoolean(KEY_LANGUAGE, !TextUtils.equals(language, "zh"))) {
- return Locale.TRADITIONAL_CHINESE;
+ return Locale.SIMPLIFIED_CHINESE;
} else {
return new Locale("en", "rUS");
}
diff --git a/common/src/main/java/com/yunbao/common/manager/imrongcloud/RongcloudIMManager.java b/common/src/main/java/com/yunbao/common/manager/imrongcloud/RongcloudIMManager.java
index 142eaa917..50674a848 100644
--- a/common/src/main/java/com/yunbao/common/manager/imrongcloud/RongcloudIMManager.java
+++ b/common/src/main/java/com/yunbao/common/manager/imrongcloud/RongcloudIMManager.java
@@ -48,7 +48,7 @@ public class RongcloudIMManager {
} else {
RONG_IM_KEY = "uwd1c0sxu1p71"; //正式服key
}
- RONG_IM_KEY="lmxuhwagl7s1d";
+ //RONG_IM_KEY="lmxuhwagl7s1d";
}
/**
diff --git a/config.gradle b/config.gradle
index 208a08ad1..d5f29e98d 100644
--- a/config.gradle
+++ b/config.gradle
@@ -14,11 +14,11 @@ ext {
serverHost : "https://ceshi.yaoulive.com",
//1v1社交正式服
- otoServerHost : "https://mo.yomochat.com",
+ //otoServerHost : "https://mo.yomochat.com",
//1v1社交测试服
- //otoServerHost : "https://ceshi.yyouou.com",
-
+ // otoServerHost : "https://ceshi.yyouou.com",
+ otoServerHost : "https://ceshi.yaoulive.com",
@@ -30,8 +30,8 @@ ext {
// true表示谷歌支付 false
isGooglePlay : false,
//是否上报异常日志
- isUploadLog : true,
+ isUploadLog : false,
//是否打包成插件包模式
- isPluginModel : true,
+ isPluginModel : false,
]
}
diff --git a/gradle.properties b/gradle.properties
index 3977dbb07..099d90bb2 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -22,6 +22,6 @@ android.enableJetifier=true
systemProp.http.proxyHost=127.0.0.1
systemProp.https.proxyHost=127.0.0.1
-systemProp.https.proxyPort=10809
-systemProp.http.proxyPort=10809
+systemProp.https.proxyPort=7890
+systemProp.http.proxyPort=7890
#android.enableR8.fullMode=true
\ No newline at end of file
diff --git a/main/build.gradle b/main/build.gradle
index fe2ded920..dce7bcfaf 100644
--- a/main/build.gradle
+++ b/main/build.gradle
@@ -64,7 +64,7 @@ repositories {
}
dependencies {
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
- implementation fileTree(include: ['*.jar'], dir: 'libs')
+ api fileTree(include: ['*.jar'], dir: 'libs')
compileOnly files('../libs/beautysdk-202202241203.aar')
//直播
api project(':live')
diff --git a/main/src/main/java/com/yunbao/main/views/AbsMainHomeChildViewHolder.java b/main/src/main/java/com/yunbao/main/views/AbsMainHomeChildViewHolder.java
index 152077445..18ae719a8 100644
--- a/main/src/main/java/com/yunbao/main/views/AbsMainHomeChildViewHolder.java
+++ b/main/src/main/java/com/yunbao/main/views/AbsMainHomeChildViewHolder.java
@@ -3,10 +3,14 @@ package com.yunbao.main.views;
import android.content.Context;
import android.view.ViewGroup;
+import com.umeng.analytics.MobclickAgent;
+import com.yunbao.common.utils.LiveRoomCheckLivePresenter;
+import com.yunbao.common.utils.RouteUtil;
import com.yunbao.common.views.AbsMainViewHolder;
import com.yunbao.common.bean.LiveBean;
import com.yunbao.main.activity.MainActivity;
+
/**
* Created by cxf on 2018/9/22.
* MainActivity中的首页,附近 的子页面
@@ -23,6 +27,17 @@ public abstract class AbsMainHomeChildViewHolder extends AbsMainViewHolder {
* 观看直播
*/
public void watchLive(LiveBean liveBean, String key, int position) {
- ((MainActivity) mContext).watchLive(liveBean, key, position);
+ new LiveRoomCheckLivePresenter(mContext, liveBean.getUid(), liveBean.getStream(), new LiveRoomCheckLivePresenter.NewActionListener() {
+ @Override
+ public void onLiveRoomChanged(String liveUid, String stream, int liveType, String liveTypeVal, String liveSdk) {
+ MobclickAgent.onEvent(mContext, "home_page_enter_room", "首页点击直播间");
+ RouteUtil.forwardLiveAudienceActivity(liveBean, liveType, Integer.parseInt(liveSdk), Integer.parseInt(liveTypeVal));
+ }
+
+ @Override
+ public void onCheckError(String contextError) {
+
+ }
+ });
}
}
diff --git a/main/src/main/java/com/yunbao/main/views/MainHomeGameViewHolder.java b/main/src/main/java/com/yunbao/main/views/MainHomeGameViewHolder.java
index 522bde3f0..62315a739 100644
--- a/main/src/main/java/com/yunbao/main/views/MainHomeGameViewHolder.java
+++ b/main/src/main/java/com/yunbao/main/views/MainHomeGameViewHolder.java
@@ -1,6 +1,7 @@
package com.yunbao.main.views;
import android.animation.ObjectAnimator;
+import android.app.Activity;
import android.content.DialogInterface;
import android.content.Intent;
import android.text.TextUtils;
@@ -65,9 +66,9 @@ public class MainHomeGameViewHolder extends AbsMainHomeChildViewHolder implement
private long animDuration = 500;
private String id = "0";
private SudGameListAdapter sudGameListAdapter;
- private AbsActivity context;
+ private Activity context;
- public MainHomeGameViewHolder(AbsActivity context, ViewGroup parentView) {
+ public MainHomeGameViewHolder(Activity context, ViewGroup parentView) {
super(context, parentView);
this.context = context;
Bus.getOn(this);
diff --git a/main/src/main/java/com/yunbao/main/views/MainHomeViewHolder.java b/main/src/main/java/com/yunbao/main/views/MainHomeViewHolder.java
index fc440dcad..15b3fa4b4 100644
--- a/main/src/main/java/com/yunbao/main/views/MainHomeViewHolder.java
+++ b/main/src/main/java/com/yunbao/main/views/MainHomeViewHolder.java
@@ -1,21 +1,45 @@
package com.yunbao.main.views;
+import android.Manifest;
+import android.app.Activity;
+import android.app.Dialog;
import android.content.Context;
+import android.os.Build;
+import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.ImageView;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.blankj.utilcode.util.PermissionUtils;
import com.umeng.analytics.MobclickAgent;
+import com.yunbao.common.CommonAppConfig;
import com.yunbao.common.activity.AbsActivity;
import com.yunbao.common.glide.ImgLoader;
+import com.yunbao.common.http.HttpCallback;
+import com.yunbao.common.http.LiveHttpUtil;
+import com.yunbao.common.manager.IMLoginManager;
+import com.yunbao.common.utils.DialogUitl;
+import com.yunbao.common.utils.PluginManager;
+import com.yunbao.common.utils.ToastUtil;
+import com.yunbao.common.utils.WordUtil;
+import com.yunbao.common.views.weight.ViewClicksAntiShake;
+import com.yunbao.live.activity.LiveAnchorActivity;
+import com.yunbao.live.activity.LiveRyAnchorActivity;
+import com.yunbao.live.bean.LiveKsyConfigBean;
import com.yunbao.main.R;
+import com.yunbao.main.activity.FollowActivity;
+import com.yunbao.main.activity.MainListActivity;
+import com.yunbao.main.activity.SearchActivity;
+import com.yunbao.main.dialog.MainStartDialogFragment;
/**
* Created by cxf on 2018/9/22.
* MainActivity 首页 删除
*/
-public class MainHomeViewHolder extends AbsMainHomeParentViewHolder {
+public class MainHomeViewHolder extends AbsMainHomeParentViewHolder implements View.OnClickListener {
private MainHomeFollLiveViewHolder mainHomeFollLiveViewHolder;
private MainHomeLiveViewHolder mainHomeLiveViewHolder;
private MainHomeRecomLiveViewHolder mainHomeRecomLiveViewHolder;
@@ -40,6 +64,10 @@ public class MainHomeViewHolder extends AbsMainHomeParentViewHolder {
ImgLoader.display(mContext, "https://downs.yaoulive.com/gif_trophy.gif", img_trophy);
+ ViewClicksAntiShake.clicksAntiShake(img_trophy, () -> onClick(img_trophy));
+ ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.btn_search), () -> onClick(findViewById(R.id.btn_search)));
+ ViewClicksAntiShake.clicksAntiShake(findViewById(R.id.toLive), () -> onClick(findViewById(R.id.toLive)));
+
}
public void setCurPosition(int position) {
@@ -86,7 +114,7 @@ public class MainHomeViewHolder extends AbsMainHomeParentViewHolder {
vh = mainHomeRecomLiveViewHolder;
} else if (position == 3) {
- mainHomeGameLiveViewHolder = new MainHomeGameViewHolder((AbsActivity) mContext, parent);
+ mainHomeGameLiveViewHolder = new MainHomeGameViewHolder((Activity) mContext, parent);
vh = mainHomeGameLiveViewHolder;
}
@@ -119,5 +147,112 @@ public class MainHomeViewHolder extends AbsMainHomeParentViewHolder {
};
}
+ private HttpCallback mGetLiveSdkCallback = new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, final String[] info) {
+ if (code == 0 && info.length > 0) {
+ LiveHttpUtil.getisRong(new HttpCallback() {
+ @Override
+ public void onSuccess(int code, String msg, String[] info1) {
+ try {
+ JSONObject obj = JSON.parseObject(info[0]);
+ JSONObject obj1 = JSON.parseObject(info1[0]);
+ if (obj1.getString("is_rong").equals("1")) {
+ LiveRyAnchorActivity.forward(mContext, obj.getIntValue("live_sdk"), JSON.parseObject(obj.getString("android"), LiveKsyConfigBean.class));
+ } else {
+ LiveAnchorActivity.forward(mContext, obj.getIntValue("live_sdk"), JSON.parseObject(obj.getString("android"), LiveKsyConfigBean.class));
+ }
+ } catch (Exception e) {
+
+ }
+ }
+ });
+ }
+ }
+ };
+
+ public void onLiveClick() {
+ boolean isAnchor = IMLoginManager.get(mContext).getUserInfo().anchorUserType();
+ if (isAnchor) {
+ String[] permissions;
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
+ permissions = new String[]{
+ Manifest.permission.READ_MEDIA_IMAGES,
+ Manifest.permission.CAMERA,
+ Manifest.permission.RECORD_AUDIO
+ };
+ } else {
+ permissions = new String[]{
+ Manifest.permission.READ_EXTERNAL_STORAGE,
+ Manifest.permission.WRITE_EXTERNAL_STORAGE,
+ Manifest.permission.CAMERA,
+ Manifest.permission.RECORD_AUDIO
+ };
+ }
+ PermissionUtils.permission(permissions).callback(new PermissionUtils.SimpleCallback() {
+ @Override
+ public void onGranted() {
+ if (!CommonAppConfig.IS_PLUGIN_MODEL || PluginManager.getInstance().isDownloadApk()) {
+ PluginManager.getInstance().loadAnchorPlugin(it -> {
+ LiveHttpUtil.getLiveSdk(mGetLiveSdkCallback);
+ });
+ } else {
+ String tips = "需要下載開播插件,是否下載";
+ if (!WordUtil.isNewZh()) {
+ tips = "You need to download the plug-in, whether to download";
+ }
+ DialogUitl.showSimpleDialog(mContext, tips, new DialogUitl.SimpleCallback() {
+ @Override
+ public void onConfirmClick(Dialog dialog, String content) {
+ Dialog downloadDialog = DialogUitl.loadingDialog(mContext, "Downloading...");
+ downloadDialog.show();
+ PluginManager.getInstance().loadAnchorPlugin(it -> {
+ LiveHttpUtil.getLiveSdk(mGetLiveSdkCallback);
+ downloadDialog.dismiss();
+ });
+ }
+ });
+ }
+ }
+
+ @Override
+ public void onDenied() {
+
+ }
+ }).request();
+ } else {
+ ToastUtil.show(WordUtil.getNewString(R.string.only_open_anchor));
+ }
+
+ }
+
+ @Override
+ public void onClick(View v) {
+
+ if (!canClick()) {
+ return;
+ }
+ int i = v.getId();
+ if (i == R.id.btn_start) {
+ MobclickAgent.onEvent(mContext, "broadcast", "开播按钮");
+ } else if (i == R.id.btn_search) {
+ SearchActivity.forward(mContext);
+
+ MobclickAgent.onEvent(mContext, "home_page_search", "右上角搜索按钮");
+
+ } else if (i == R.id.btn_follow) {
+ //关注
+ FollowActivity.forward(mContext, CommonAppConfig.getInstance().getUid(), 0);
+ } else if (i == R.id.img_trophy) {
+ MainListActivity.forward(mContext, 0);
+ MobclickAgent.onEvent(mContext, "home_page_ranking", "右上角排行榜按钮");
+ //RandomPkDialogFragment fragment = new RandomPkDialogFragment();
+ //fragment.show(this.getSupportFragmentManager(), "RandomPkDialogFragment");
+ } else if (i == R.id.toLive) {
+ onLiveClick();
+ }
+
+
+ }
}
diff --git a/main/src/main/res/layout/view_main_home.xml b/main/src/main/res/layout/view_main_home.xml
index 09d56d5f8..c71e289fc 100644
--- a/main/src/main/res/layout/view_main_home.xml
+++ b/main/src/main/res/layout/view_main_home.xml
@@ -28,10 +28,9 @@
android:layout_height="40dp"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
- android:layout_marginRight="45dp"
+ android:layout_marginRight="85dp"
android:layout_marginBottom="2dp"
android:contentDescription="TODO"
- android:onClick="mainClick"
android:padding="9dp"
android:src="@mipmap/icon_main_search" />
@@ -41,12 +40,20 @@
android:layout_height="40dp"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
- android:layout_marginRight="5dp"
+ android:layout_marginRight="55dp"
android:layout_marginBottom="2dp"
android:contentDescription="TODO"
- android:onClick="mainClick"
android:padding="6dp" />
+
+