新增首页新用户打招呼弹窗
This commit is contained in:
@@ -60,6 +60,7 @@ import com.yizhuan.erban.community.publish.view.PublishActivity;
|
||||
import com.yizhuan.erban.community.square.SquareFragment;
|
||||
import com.yizhuan.erban.family.view.activity.FamilyHomeActivity;
|
||||
import com.yizhuan.erban.home.HomeViewModel;
|
||||
import com.yizhuan.erban.home.dialog.NewUserHelloDialog;
|
||||
import com.yizhuan.erban.home.dialog.ProtocolUpdateDialog;
|
||||
import com.yizhuan.erban.flutter.RouterConstants;
|
||||
import com.yizhuan.erban.home.fragment.ContactsListFragment;
|
||||
@@ -830,7 +831,6 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
|
||||
/**
|
||||
* 第一次加载到用户信息
|
||||
* 跳转优先级 闪屏→linkedMe→渠道指定房间→邀请码
|
||||
*/
|
||||
@SuppressLint("CheckResult")
|
||||
private void firstLoadedUserInfo() {
|
||||
@@ -842,6 +842,11 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
|
||||
handleChannelPageInfo();
|
||||
|
||||
if (BuildConfig.DEBUG){
|
||||
//test
|
||||
checkNewUserInRoom();
|
||||
}
|
||||
|
||||
checkProtocolUpdate();
|
||||
|
||||
// 互动消息未读数量
|
||||
@@ -871,7 +876,9 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
});
|
||||
}
|
||||
|
||||
//闪屏→linkedme→渠道指定房间→邀请码
|
||||
/**
|
||||
* 跳转优先级 闪屏→linkedMe→邀请码→新用户打招呼引导→渠道指定房间
|
||||
*/
|
||||
@SuppressLint("CheckResult")
|
||||
private void handleChannelPageInfo() {
|
||||
|
||||
@@ -905,15 +912,27 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
String.valueOf(inviteUserInfo.getInviteUid()));
|
||||
}
|
||||
} else {
|
||||
checkChannelPageInRoom();
|
||||
checkNewUserInRoom();
|
||||
}
|
||||
}, throwable -> checkChannelPageInRoom());
|
||||
}, throwable -> checkNewUserInRoom());
|
||||
AddUserInfoFragment.INVITE_USER_CODE = "";
|
||||
} else {
|
||||
checkChannelPageInRoom();
|
||||
checkNewUserInRoom();
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
private void checkNewUserInRoom() {
|
||||
ChannelPageModel.get().checkNewUserInRoom()
|
||||
.subscribe(newUserHelloInfo -> {
|
||||
if (newUserHelloInfo.getSayHello()) {
|
||||
NewUserHelloDialog.Companion.newInstance(newUserHelloInfo).show(context);
|
||||
} else {
|
||||
checkChannelPageInRoom();
|
||||
}
|
||||
}, throwable -> checkChannelPageInRoom());
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理渠道落地页
|
||||
*/
|
||||
@@ -921,7 +940,11 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
private void checkChannelPageInRoom() {
|
||||
GameHomeModel.get().getRoomShortcut()
|
||||
.compose(bindUntilEvent(ActivityEvent.DESTROY))
|
||||
.subscribe(uid -> AVRoomActivity.start(context, StringUtils.toLong(uid)),
|
||||
.subscribe(uid -> {
|
||||
if (StringUtils.toLong(uid) != 0) {
|
||||
AVRoomActivity.start(context, StringUtils.toLong(uid));
|
||||
}
|
||||
},
|
||||
Throwable::printStackTrace);
|
||||
}
|
||||
|
||||
|
@@ -149,6 +149,7 @@ public class AVRoomActivity extends BaseMvpActivity<IAvRoomView, AvRoomPresenter
|
||||
public static final int FROM_TYPE_ALL_RED = 5;//通过全服红包进房
|
||||
public static final int FROM_TYPE_GAME_RECOMMEND = 8;//赛事详情进房
|
||||
public static final int FROM_TYPE_ROOM_PK = 9;//跨房PK进房
|
||||
public static final int FROM_TYPE_HELLO = 10;//新用户打招呼弹窗进房
|
||||
private static final String TAG = "AVRoomActivity";
|
||||
private static final int SHOW_RED_DIALOG_MAX = 10;
|
||||
public static boolean isPKModel = false;
|
||||
|
@@ -0,0 +1,40 @@
|
||||
package com.yizhuan.erban.home.dialog
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.os.Bundle
|
||||
import android.view.WindowManager
|
||||
import com.yizhuan.erban.avroom.activity.AVRoomActivity
|
||||
import com.yizhuan.erban.base.BaseDialog
|
||||
import com.yizhuan.erban.databinding.DialogHelloMessageBinding
|
||||
import com.yizhuan.erban.databinding.DialogNewUserHelloBinding
|
||||
import com.yizhuan.erban.ui.utils.load
|
||||
import com.yizhuan.xchat_android_core.channel_page.bean.NewUserHelloInfo
|
||||
import com.yizhuan.xchat_android_core.utils.subAndReplaceDot
|
||||
|
||||
class HelloMessageDialog : BaseDialog<DialogHelloMessageBinding>() {
|
||||
|
||||
companion object {
|
||||
|
||||
fun newInstance(newUserHelloInfo: NewUserHelloInfo): HelloMessageDialog {
|
||||
val args = Bundle()
|
||||
args.putSerializable("newUserHelloInfo", newUserHelloInfo)
|
||||
val fragment = HelloMessageDialog()
|
||||
fragment.arguments = args
|
||||
return fragment
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override var width: Int = WindowManager.LayoutParams.MATCH_PARENT
|
||||
override var dimAmount: Float = 0f
|
||||
|
||||
private val newUserHelloInfo: NewUserHelloInfo by lazy {
|
||||
requireArguments().getSerializable("newUserHelloInfo") as NewUserHelloInfo
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult", "SetTextI18n")
|
||||
override fun init() {
|
||||
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,54 @@
|
||||
package com.yizhuan.erban.home.dialog
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.os.Bundle
|
||||
import android.view.WindowManager
|
||||
import com.yizhuan.erban.avroom.activity.AVRoomActivity
|
||||
import com.yizhuan.erban.base.BaseDialog
|
||||
import com.yizhuan.erban.databinding.DialogNewUserHelloBinding
|
||||
import com.yizhuan.erban.ui.utils.load
|
||||
import com.yizhuan.xchat_android_core.channel_page.bean.NewUserHelloInfo
|
||||
import com.yizhuan.xchat_android_core.utils.subAndReplaceDot
|
||||
|
||||
class NewUserHelloDialog : BaseDialog<DialogNewUserHelloBinding>() {
|
||||
|
||||
companion object {
|
||||
|
||||
fun newInstance(newUserHelloInfo: NewUserHelloInfo): NewUserHelloDialog {
|
||||
val args = Bundle()
|
||||
args.putSerializable("newUserHelloInfo", newUserHelloInfo)
|
||||
val fragment = NewUserHelloDialog()
|
||||
fragment.arguments = args
|
||||
return fragment
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override var width: Int = WindowManager.LayoutParams.MATCH_PARENT
|
||||
override var dimAmount: Float = 0.8f
|
||||
|
||||
private val newUserHelloInfo: NewUserHelloInfo by lazy {
|
||||
requireArguments().getSerializable("newUserHelloInfo") as NewUserHelloInfo
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult", "SetTextI18n")
|
||||
override fun init() {
|
||||
binding.ivClose.setOnClickListener {
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
binding.ivAvatar.load(newUserHelloInfo.sayHelloUserAvatar)
|
||||
binding.tvId.text = "ID:${newUserHelloInfo.sayHelloUserErbanNo}"
|
||||
binding.tvNick.text = newUserHelloInfo.sayHelloUserNickname.subAndReplaceDot(8)
|
||||
binding.tvGoRoom.setOnClickListener {
|
||||
AVRoomActivity.startForFromType(
|
||||
requireContext(),
|
||||
newUserHelloInfo.roomUid,
|
||||
AVRoomActivity.FROM_TYPE_USER,
|
||||
newUserHelloInfo.sayHelloUserNickname,
|
||||
newUserHelloInfo.sayHelloUserUid.toString()
|
||||
)
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@@ -0,0 +1,51 @@
|
||||
package com.yizhuan.erban.home.dialog
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.os.Bundle
|
||||
import android.view.WindowManager
|
||||
import com.yizhuan.erban.avroom.activity.AVRoomActivity
|
||||
import com.yizhuan.erban.base.BaseDialog
|
||||
import com.yizhuan.erban.databinding.DialogNewUserHelloBinding
|
||||
import com.yizhuan.erban.ui.utils.load
|
||||
import com.yizhuan.xchat_android_core.channel_page.bean.NewUserHelloInfo
|
||||
import com.yizhuan.xchat_android_core.utils.subAndReplaceDot
|
||||
|
||||
class RoomHelloDialog : BaseDialog<DialogNewUserHelloBinding>() {
|
||||
|
||||
companion object {
|
||||
|
||||
fun newInstance(newUserHelloInfo: NewUserHelloInfo): RoomHelloDialog {
|
||||
val args = Bundle()
|
||||
args.putSerializable("newUserHelloInfo", newUserHelloInfo)
|
||||
val fragment = RoomHelloDialog()
|
||||
fragment.arguments = args
|
||||
return fragment
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override var width: Int = WindowManager.LayoutParams.MATCH_PARENT
|
||||
override var height: Int = WindowManager.LayoutParams.WRAP_CONTENT
|
||||
|
||||
private val newUserHelloInfo: NewUserHelloInfo by lazy {
|
||||
requireArguments().getSerializable("newUserHelloInfo") as NewUserHelloInfo
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult", "SetTextI18n")
|
||||
override fun init() {
|
||||
binding.ivClose.setOnClickListener {
|
||||
dismissAllowingStateLoss()
|
||||
}
|
||||
binding.ivAvatar.load(newUserHelloInfo.sayHelloUserAvatar)
|
||||
binding.tvId.text = "ID:${newUserHelloInfo.sayHelloUserErbanNo}"
|
||||
binding.tvNick.text = newUserHelloInfo.sayHelloUserNickname.subAndReplaceDot(8)
|
||||
binding.tvGoRoom.setOnClickListener {
|
||||
AVRoomActivity.startForFromType(
|
||||
requireContext(),
|
||||
newUserHelloInfo.roomUid,
|
||||
AVRoomActivity.FROM_TYPE_HELLO
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
BIN
app/src/main/res/drawable-xhdpi/new_user_hello_bg_avatar.png
Normal file
BIN
app/src/main/res/drawable-xhdpi/new_user_hello_bg_avatar.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 137 KiB |
BIN
app/src/main/res/drawable-xhdpi/new_user_hello_bg_content.png
Normal file
BIN
app/src/main/res/drawable-xhdpi/new_user_hello_bg_content.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 56 KiB |
BIN
app/src/main/res/drawable-xhdpi/new_user_hello_bg_go_room.png
Normal file
BIN
app/src/main/res/drawable-xhdpi/new_user_hello_bg_go_room.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 30 KiB |
BIN
app/src/main/res/drawable-xhdpi/new_user_hello_bg_nick.png
Normal file
BIN
app/src/main/res/drawable-xhdpi/new_user_hello_bg_nick.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 24 KiB |
BIN
app/src/main/res/drawable-xhdpi/new_user_hello_ic_close.png
Normal file
BIN
app/src/main/res/drawable-xhdpi/new_user_hello_ic_close.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
12
app/src/main/res/layout/dialog_hello_message.xml
Normal file
12
app/src/main/res/layout/dialog_hello_message.xml
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_vertical"
|
||||
android:orientation="vertical"
|
||||
tools:background="#af000000">
|
||||
|
||||
|
||||
</LinearLayout>
|
97
app/src/main/res/layout/dialog_new_user_hello.xml
Normal file
97
app/src/main/res/layout/dialog_new_user_hello.xml
Normal file
@@ -0,0 +1,97 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:background="#af000000">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
android:orientation="vertical">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/iv_close"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="end"
|
||||
android:layout_marginEnd="52dp"
|
||||
android:src="@drawable/new_user_hello_ic_close" />
|
||||
|
||||
|
||||
<FrameLayout
|
||||
android:layout_width="253dp"
|
||||
android:layout_height="220dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="32dp">
|
||||
|
||||
<com.yizhuan.erban.common.widget.CircleImageView
|
||||
android:id="@+id/iv_avatar"
|
||||
android:layout_width="150dp"
|
||||
android:layout_height="150dp"
|
||||
android:layout_gravity="center_horizontal|bottom"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:scaleType="centerCrop"
|
||||
android:src="@drawable/default_cover"
|
||||
app:cborder_color="@color/white"
|
||||
app:cborder_width="2dp" />
|
||||
|
||||
<View
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@drawable/new_user_hello_bg_avatar" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_nick"
|
||||
android:layout_width="165dp"
|
||||
android:layout_height="28dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="4dp"
|
||||
android:background="@drawable/new_user_hello_bg_nick"
|
||||
android:gravity="center"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="14sp"
|
||||
tools:text="大鹅可可鸭大鹅可..." />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_id"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="7dp"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="12sp"
|
||||
tools:text="ID:123456" />
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="15dp"
|
||||
android:background="@drawable/new_user_hello_bg_content"
|
||||
android:gravity="center"
|
||||
android:text="欢迎来到大鹅开黑,Ta已经等待你很\n久啦,快来一起玩吧~"
|
||||
android:textColor="#ffa00bbb"
|
||||
android:textSize="12sp" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tv_go_room"
|
||||
android:layout_width="240dp"
|
||||
android:layout_height="48dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="35dp"
|
||||
android:includeFontPadding="false"
|
||||
android:background="@drawable/new_user_hello_bg_go_room"
|
||||
android:gravity="center"
|
||||
android:text="开启浪漫之旅"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="20sp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</FrameLayout>
|
@@ -56,7 +56,7 @@ public class GameHomeModel extends BaseModel {
|
||||
return api.apiRoomShortcut(String.valueOf(AuthModel.get().getCurrentUid()),
|
||||
CommunityConstant.VERSION_VALID_TYPE,
|
||||
AuthModel.get().getTicket())
|
||||
.compose(RxHelper.handleBeanData())
|
||||
.compose(RxHelper.handleStringData())
|
||||
.compose(RxHelper.handleSchedulers());
|
||||
}
|
||||
|
||||
|
@@ -0,0 +1,13 @@
|
||||
package com.yizhuan.xchat_android_core.channel_page.bean
|
||||
|
||||
import java.io.Serializable
|
||||
|
||||
data class NewUserHelloInfo(
|
||||
val roomUid: Long = 0L,
|
||||
val sayHello: Boolean = false,
|
||||
val sayHelloMsg: String = "",
|
||||
val sayHelloUserUid: Long = 0L,
|
||||
val sayHelloUserAvatar: String = "",
|
||||
val sayHelloUserErbanNo: Int = 0,
|
||||
val sayHelloUserNickname: String = ""
|
||||
) : Serializable
|
@@ -3,6 +3,7 @@ package com.yizhuan.xchat_android_core.channel_page.model;
|
||||
import com.yizhuan.xchat_android_core.base.BaseModel;
|
||||
import com.yizhuan.xchat_android_core.bean.response.ServiceResult;
|
||||
import com.yizhuan.xchat_android_core.channel_page.bean.ChannelPageInfo;
|
||||
import com.yizhuan.xchat_android_core.channel_page.bean.NewUserHelloInfo;
|
||||
import com.yizhuan.xchat_android_core.user.bean.InviteUserInfo;
|
||||
import com.yizhuan.xchat_android_core.utils.net.RxHelper;
|
||||
import com.yizhuan.xchat_android_library.net.rxnet.RxNet;
|
||||
@@ -66,6 +67,13 @@ public class ChannelPageModel extends BaseModel implements IChannelPageModel {
|
||||
.compose(RxHelper.handleSchAndExce());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Single<NewUserHelloInfo> checkNewUserInRoom() {
|
||||
return api.checkNewUserInRoom()
|
||||
.compose(RxHelper.handleBeanData())
|
||||
.compose(RxHelper.handleSchAndExce());
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
@@ -130,6 +138,12 @@ public class ChannelPageModel extends BaseModel implements IChannelPageModel {
|
||||
@GET("/user/v2/checkInviteUserInRoom")
|
||||
Single<ServiceResult<InviteUserInfo>> checkInviteUserInRoom(@Query("inviteCode") String inviteCode);
|
||||
|
||||
/**
|
||||
* 新用户推荐房间弹窗
|
||||
*/
|
||||
@GET("/newUserStart/indexSayHello")
|
||||
Single<ServiceResult<NewUserHelloInfo>> checkNewUserInRoom();
|
||||
|
||||
/**
|
||||
* 字节跳动推广接口
|
||||
*/
|
||||
|
@@ -1,6 +1,7 @@
|
||||
package com.yizhuan.xchat_android_core.channel_page.model;
|
||||
|
||||
import com.yizhuan.xchat_android_core.channel_page.bean.ChannelPageInfo;
|
||||
import com.yizhuan.xchat_android_core.channel_page.bean.NewUserHelloInfo;
|
||||
import com.yizhuan.xchat_android_core.user.bean.InviteUserInfo;
|
||||
|
||||
import io.reactivex.Single;
|
||||
@@ -15,6 +16,8 @@ public interface IChannelPageModel {
|
||||
|
||||
Single<InviteUserInfo> checkInviteUserInRoom(String inviteCode);
|
||||
|
||||
Single<NewUserHelloInfo> checkNewUserInRoom();
|
||||
|
||||
void checkAd();
|
||||
|
||||
void checkByteDanceAd(String evenType);
|
||||
|
Reference in New Issue
Block a user