合并直播

This commit is contained in:
2023-11-10 15:17:33 +08:00
parent f15c609f1c
commit 37d2f0b975
27 changed files with 653 additions and 354 deletions

View File

@@ -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')

View File

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

View File

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

View File

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

View File

@@ -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" />
<Button
android:id="@+id/toLive"
android:text="去直播"
android:textSize="8sp"
android:layout_alignParentRight="true"
android:layout_alignParentBottom="true"
android:layout_width="60dp"
android:layout_height="40dp"/>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="37dp"