修復屏蔽bug
This commit is contained in:
@@ -334,7 +334,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
NewUserChargeGiftDialog.start(context);
|
||||
DemoCache.saveNewUserChargeGift(2);
|
||||
}
|
||||
checkShowAnchorCardView();
|
||||
// checkShowAnchorCardView();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -675,7 +675,7 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
|
||||
EventBus.getDefault().post(new UnReadCountEvent(integer));
|
||||
}
|
||||
});
|
||||
checkShowAnchorCardView();
|
||||
// checkShowAnchorCardView();
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
|
@@ -496,7 +496,7 @@ public class ButtonItemFactory {
|
||||
* 拉黑
|
||||
*/
|
||||
public static ButtonItem createAddToBlackListItem(DialogManager dialogManager, String account) {
|
||||
return new ButtonItem(ResUtil.getString(R.string.erban_avroom_buttonitemfactory_030), () -> {
|
||||
return new ButtonItem(ResUtil.getString(R.string.me_block), () -> {
|
||||
dialogManager.showOkCancelDialog(ResUtil.getString(R.string.erban_avroom_buttonitemfactory_031), true,
|
||||
new DialogManager.AbsOkDialogListener() {
|
||||
@Override
|
||||
|
@@ -10,21 +10,29 @@ import android.widget.PopupWindow
|
||||
import android.widget.TextView
|
||||
import androidx.core.view.isGone
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.fragment.app.FragmentActivity
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.mob.moblink.beans.LinkData.Res
|
||||
import com.netease.nim.uikit.common.util.sys.ScreenUtil
|
||||
import com.yizhuan.erban.R
|
||||
import com.yizhuan.erban.UIHelper
|
||||
import com.yizhuan.erban.avroom.ButtonItemFactory
|
||||
import com.yizhuan.erban.avroom.activity.AVRoomActivity
|
||||
import com.yizhuan.erban.avroom.adapter.ExitRoomAdapter
|
||||
import com.yizhuan.erban.avroom.presenter.HomePartyPresenter
|
||||
import com.yizhuan.erban.base.BaseMvpActivity
|
||||
import com.yizhuan.erban.common.widget.dialog.DialogManager
|
||||
import com.yizhuan.erban.common.widget.dialog.DialogManager.LambdaOkDialogListener
|
||||
import com.yizhuan.erban.common.widget.dialog.DialogManager.OkCancelDialogListener
|
||||
import com.yizhuan.erban.ui.utils.RVDelegate
|
||||
import com.yizhuan.erban.ui.widget.ButtonItem
|
||||
import com.yizhuan.xchat_android_constants.XChatConstants
|
||||
import com.yizhuan.xchat_android_core.home.bean.HomeRoomInfo
|
||||
import com.yizhuan.xchat_android_core.manager.AvRoomDataManager
|
||||
import com.yizhuan.xchat_android_core.room.model.AvRoomModel
|
||||
import com.yizhuan.xchat_android_core.user.UserModel
|
||||
import com.yizhuan.xchat_android_core.utils.net.BeanObserver
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil
|
||||
import io.reactivex.disposables.Disposable
|
||||
@@ -73,8 +81,38 @@ class ExitRoomPopupWindow(val avRoomActivity: AVRoomActivity) : PopupWindow() {
|
||||
setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
|
||||
tvReport.setOnClickListener {
|
||||
val roomInfo = AvRoomDataManager.get().mCurrentRoomInfo ?: return@setOnClickListener
|
||||
UIHelper.showReportPage(avRoomActivity, roomInfo.uid, XChatConstants.REPORT_TYPE_ROOM)
|
||||
dismiss()
|
||||
|
||||
val list: MutableList<ButtonItem> = ArrayList()
|
||||
val item1 = ButtonItem(
|
||||
ResUtil.getString(R.string.me_shield_room)
|
||||
) {
|
||||
UserModel.get().addReport(roomInfo.uid, 1)
|
||||
.subscribe(object : BeanObserver<String?>() {
|
||||
override fun onErrorMsg(error: String) {
|
||||
dismiss()
|
||||
avRoomActivity.toast(error)
|
||||
}
|
||||
|
||||
override fun onSuccess(s: String) {
|
||||
avRoomActivity.dialogManager.dismissDialog()
|
||||
avRoomActivity.toast(ResUtil.getString(R.string.me_shield_success))
|
||||
handleExitRoom()
|
||||
dismiss()
|
||||
}
|
||||
})
|
||||
}
|
||||
list.add(item1)
|
||||
|
||||
val item2 = ButtonItem(
|
||||
ResUtil.getString(R.string.layout_dialog_exit_room_01)
|
||||
) {
|
||||
UIHelper.showReportPage(avRoomActivity, roomInfo.uid, XChatConstants.REPORT_TYPE_ROOM)
|
||||
avRoomActivity.dialogManager.dismissDialog()
|
||||
dismiss()
|
||||
}
|
||||
list.add(item2)
|
||||
|
||||
avRoomActivity.dialogManager.showCommonPopupDialog(list, ResUtil.getString(R.string.cancel))
|
||||
}
|
||||
|
||||
tvExitRoom.setOnClickListener {
|
||||
|
@@ -8,13 +8,20 @@ import android.graphics.drawable.ColorDrawable
|
||||
import android.text.Spannable
|
||||
import android.text.SpannableStringBuilder
|
||||
import android.text.style.ForegroundColorSpan
|
||||
import android.util.Log
|
||||
import android.view.Gravity
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.WindowManager
|
||||
import android.widget.PopupWindow
|
||||
import android.widget.TextView
|
||||
import com.android.billingclient.api.BillingClient
|
||||
import com.android.billingclient.api.BillingResult
|
||||
import com.android.billingclient.api.Purchase
|
||||
import com.android.billingclient.api.SkuDetails
|
||||
import com.appsflyer.AFInAppEventParameterName
|
||||
import com.appsflyer.AFInAppEventType
|
||||
import com.appsflyer.AppsFlyerLib
|
||||
import com.google.android.flexbox.AlignItems
|
||||
import com.google.android.flexbox.FlexboxLayoutManager
|
||||
import com.google.android.flexbox.JustifyContent
|
||||
@@ -28,7 +35,9 @@ import com.yizhuan.erban.ui.utils.RVDelegate
|
||||
import com.yizhuan.xchat_android_core.pay.PayModel
|
||||
import com.yizhuan.xchat_android_core.pay.bean.FirstChargeGoods
|
||||
import com.yizhuan.xchat_android_core.pay.bean.FirstChargeReward
|
||||
import com.yizhuan.xchat_android_core.pay.bean.PayRecordId
|
||||
import com.yizhuan.xchat_android_core.pay.event.FirstChargeEvent
|
||||
import com.yizhuan.xchat_android_core.utils.net.IgnoreException
|
||||
import com.yizhuan.xchat_android_core.utils.toast
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil
|
||||
@@ -57,6 +66,7 @@ class FirstChargeDialog : BaseViewBindingActivity<DialogFirstChargeBinding>(),
|
||||
}
|
||||
|
||||
private const val BIND_CODE_GOLD = 200
|
||||
private const val TAG = "FirstChargeDialog"
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
@@ -87,12 +97,12 @@ class FirstChargeDialog : BaseViewBindingActivity<DialogFirstChargeBinding>(),
|
||||
}
|
||||
binding.ivHelp.setOnClickListener { showHelpPopup() }
|
||||
binding.tvCharge.setOnClickListener {
|
||||
currGoods?.let {
|
||||
SelectPayTypeDialog.newInstance(it.chargeProdId, "¥${it.chargeMoney}")
|
||||
.show(this)
|
||||
} ?: run {
|
||||
ResUtil.getString(R.string.avroom_firstcharge_firstchargedialog_01).toast()
|
||||
}
|
||||
// currGoods?.let {
|
||||
// SelectPayTypeDialog.newInstance(it.chargeProdId, "¥${it.chargeMoney}")
|
||||
// .show(this)
|
||||
// } ?: run {
|
||||
// ResUtil.getString(R.string.avroom_firstcharge_firstchargedialog_01).toast()
|
||||
// }
|
||||
}
|
||||
|
||||
rvDelegate = RVDelegate.Builder<FirstChargeReward>()
|
||||
@@ -103,6 +113,22 @@ class FirstChargeDialog : BaseViewBindingActivity<DialogFirstChargeBinding>(),
|
||||
})
|
||||
.setRecyclerView(binding.recyclerView)
|
||||
.build()
|
||||
|
||||
binding.viewBg.setOnClickListener {
|
||||
//do nothing
|
||||
}
|
||||
binding.root.setOnClickListener {
|
||||
finish()
|
||||
}
|
||||
}
|
||||
|
||||
private fun initBilling() {
|
||||
billingManager = BillingManager(this, this)
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
override fun onBillingClientSetupFinished() {
|
||||
Log.i(TAG, "onBillingClientSetupFinished")
|
||||
dialogManager.showProgressDialog(this)
|
||||
PayModel.get().firstChargeList
|
||||
.compose(bindToLifecycle())
|
||||
@@ -115,17 +141,6 @@ class FirstChargeDialog : BaseViewBindingActivity<DialogFirstChargeBinding>(),
|
||||
SingleToastUtil.showToast(it.message)
|
||||
finish()
|
||||
})
|
||||
|
||||
binding.viewBg.setOnClickListener {
|
||||
//do nothing
|
||||
}
|
||||
binding.root.setOnClickListener {
|
||||
finish()
|
||||
}
|
||||
}
|
||||
|
||||
private fun initBilling() {
|
||||
billingManager = BillingManager(this, this)
|
||||
}
|
||||
|
||||
@SuppressLint("SetTextI18n")
|
||||
@@ -150,6 +165,137 @@ class FirstChargeDialog : BaseViewBindingActivity<DialogFirstChargeBinding>(),
|
||||
binding.rbPlanC.text = "${goodsList[2].chargeMoney}$"
|
||||
}
|
||||
}
|
||||
initProduceList(goodsList)
|
||||
}
|
||||
|
||||
private fun initProduceList(chargeBeanList: List<FirstChargeGoods>) {
|
||||
val productKeys: MutableList<String> = ArrayList()
|
||||
for (chargeBean in chargeBeanList) {
|
||||
productKeys.add(chargeBean.chargeProdId)
|
||||
}
|
||||
billingManager.querySkuDetailsAsync(
|
||||
BillingClient.SkuType.INAPP, productKeys
|
||||
) { billingResult: BillingResult, skuDetailsList: List<SkuDetails>? ->
|
||||
if (billingResult.responseCode != BillingClient.BillingResponseCode.OK) {
|
||||
Log.w(
|
||||
TAG,
|
||||
"Unsuccessful query for type: " + BillingClient.SkuType.INAPP
|
||||
+ ". Error code: " + billingResult.responseCode
|
||||
)
|
||||
} else if (skuDetailsList != null && skuDetailsList.isNotEmpty()) {
|
||||
// val showChargeList: MutableList<FirstChargeGoods> = ArrayList()
|
||||
for (chargeBean in chargeBeanList) {
|
||||
for (skuDetails in skuDetailsList) {
|
||||
if (skuDetails.sku == chargeBean.chargeProdId) {
|
||||
chargeBean.skuDetails = skuDetails
|
||||
// showChargeList.add(chargeBean)
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*商品更新回调*/
|
||||
@SuppressLint("CheckResult")
|
||||
override fun onPurchasesUpdated(purchases: List<Purchase>) {
|
||||
for (purchase in purchases) {
|
||||
if (purchase.purchaseState == Purchase.PurchaseState.PURCHASED &&
|
||||
purchase.accountIdentifiers != null
|
||||
) {
|
||||
PayModel.get().verifyOrder(
|
||||
purchase.accountIdentifiers!!.obfuscatedAccountId,
|
||||
purchase.skus[0],
|
||||
purchase.packageName,
|
||||
purchase.purchaseToken
|
||||
)
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(
|
||||
{ token: String? ->
|
||||
//L.i("token=" + token);
|
||||
billingManager.consumeAsync(token)
|
||||
var skuDetails: SkuDetails? = null
|
||||
val goodList = goodsList
|
||||
if (goodList != null && goodList.isNotEmpty()) {
|
||||
for (datum in goodList) {
|
||||
if (datum.chargeProdId == purchase.skus[0]) {
|
||||
skuDetails = datum.skuDetails
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
if (skuDetails != null) {
|
||||
val eventValue: MutableMap<String, Any> =
|
||||
HashMap()
|
||||
eventValue[AFInAppEventParameterName.CONTENT_TYPE] = "Gold"
|
||||
eventValue[AFInAppEventParameterName.QUANTITY] = 1
|
||||
eventValue[AFInAppEventParameterName.CONTENT_ID] = purchase.orderId
|
||||
eventValue[AFInAppEventParameterName.REVENUE] =
|
||||
skuDetails.priceAmountMicros / 1000000f
|
||||
eventValue["Price"] = skuDetails.price
|
||||
eventValue[AFInAppEventParameterName.CURRENCY] =
|
||||
skuDetails.priceCurrencyCode
|
||||
AppsFlyerLib.getInstance().logEvent(
|
||||
applicationContext,
|
||||
AFInAppEventType.PURCHASE,
|
||||
eventValue
|
||||
)
|
||||
}
|
||||
}
|
||||
) { throwable: Throwable ->
|
||||
if (throwable !is IgnoreException) {
|
||||
SingleToastUtil.showToast(throwable.message)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Log.i(TAG, "onPurchasesUpdated")
|
||||
}
|
||||
|
||||
override fun onConsumeFinished(token: String?, result: Int) {
|
||||
|
||||
}
|
||||
|
||||
override fun onFailedHandle(result: Int) {
|
||||
|
||||
}
|
||||
|
||||
/*购买商品*/
|
||||
@SuppressLint("CheckResult")
|
||||
fun buyProduct(skuDetails: SkuDetails?) {
|
||||
if (skuDetails != null) {
|
||||
Log.d(TAG, "BuyProduct:" + skuDetails.sku)
|
||||
PayModel.get().placeOrder(skuDetails.sku)
|
||||
.compose(bindToLifecycle())
|
||||
.subscribe(
|
||||
{ recordId: PayRecordId ->
|
||||
billingManager.initiatePurchaseFlow(
|
||||
skuDetails,
|
||||
recordId.recordId
|
||||
)
|
||||
}
|
||||
) { throwable: Throwable ->
|
||||
SingleToastUtil.showToast(
|
||||
throwable.message
|
||||
)
|
||||
}
|
||||
} else {
|
||||
Log.w(TAG, "skuDetails ==null")
|
||||
}
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
if (billingManager.isServiceConnected) {
|
||||
billingManager.onQueryPurchases()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
EventBus.getDefault().unregister(this)
|
||||
billingManager.destroy()
|
||||
}
|
||||
|
||||
private fun updateCurrGoods(firstChargeGoods: FirstChargeGoods?) {
|
||||
@@ -217,25 +363,4 @@ class FirstChargeDialog : BaseViewBindingActivity<DialogFirstChargeBinding>(),
|
||||
finish()
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
EventBus.getDefault().unregister(this)
|
||||
}
|
||||
|
||||
override fun onBillingClientSetupFinished() {
|
||||
|
||||
}
|
||||
|
||||
override fun onPurchasesUpdated(purchases: MutableList<Purchase>?) {
|
||||
|
||||
}
|
||||
|
||||
override fun onConsumeFinished(token: String?, result: Int) {
|
||||
|
||||
}
|
||||
|
||||
override fun onFailedHandle(result: Int) {
|
||||
|
||||
}
|
||||
|
||||
}
|
@@ -197,6 +197,12 @@ public class HomeTabHomeFragment extends BaseFragment {
|
||||
EventBus.getDefault().unregister(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
if (isResumed()) getData();
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onRefreshHomeDataEvent(RefreshHomeDataEvent event) {
|
||||
if (isResumed()) getData();
|
||||
|
@@ -360,38 +360,38 @@ class MeFragment : BaseFragment(), View.OnClickListener {
|
||||
)
|
||||
)
|
||||
R.id.me_item_vip -> {
|
||||
CommonWebViewActivity.start(context, UriProvider.getOfficialPay(5))
|
||||
// val channel = AppMetaDataUtil.getChannelID()
|
||||
// if (channel.equals("google")) {
|
||||
// VipMainActivity.start(mContext)
|
||||
// StatisticManager.Instance()
|
||||
// .onEvent(
|
||||
// StatisticsProtocol.EVENT_VIP_ENTRANCE_ME_CLICK,
|
||||
// getString(R.string.me_noble_my_entry_click_event)
|
||||
// )
|
||||
// //后面产品新加的
|
||||
// StatisticManager.Instance()
|
||||
// .onEvent(
|
||||
// StatisticsProtocol.EVENT_USERCENTER_NOBLE_CARD_CLICK,
|
||||
// getString(R.string.me_Individual_center_noble_card_card_click)
|
||||
// )
|
||||
// } else {
|
||||
// CommonWebViewActivity.start(context, UriProvider.getOfficialPay(5))
|
||||
// }
|
||||
// CommonWebViewActivity.start(context, UriProvider.getOfficialPay(5))
|
||||
val channel = AppMetaDataUtil.getChannelID()
|
||||
if (channel.equals("google")) {
|
||||
VipMainActivity.start(mContext)
|
||||
StatisticManager.Instance()
|
||||
.onEvent(
|
||||
StatisticsProtocol.EVENT_VIP_ENTRANCE_ME_CLICK,
|
||||
getString(R.string.me_noble_my_entry_click_event)
|
||||
)
|
||||
//后面产品新加的
|
||||
StatisticManager.Instance()
|
||||
.onEvent(
|
||||
StatisticsProtocol.EVENT_USERCENTER_NOBLE_CARD_CLICK,
|
||||
getString(R.string.me_Individual_center_noble_card_card_click)
|
||||
)
|
||||
} else {
|
||||
CommonWebViewActivity.start(context, UriProvider.getOfficialPay(5))
|
||||
}
|
||||
}
|
||||
R.id.me_item_wallet -> {
|
||||
CommonWebViewActivity.start(context, UriProvider.getOfficialPay(4))
|
||||
// val channel = AppMetaDataUtil.getChannelID()
|
||||
// if (channel.equals("google")) {
|
||||
// ChargeActivity.start(mContext)
|
||||
// StatisticManager.Instance()
|
||||
// .onEvent(
|
||||
// StatisticsProtocol.EVENT_USERCENTER_RECHARGE_CARD_CLICK,
|
||||
// getString(R.string.me_personal_center_recharge_card_click)
|
||||
// )
|
||||
// } else {
|
||||
// CommonWebViewActivity.start(context, UriProvider.getOfficialPay(4))
|
||||
// }
|
||||
// CommonWebViewActivity.start(context, UriProvider.getOfficialPay(4))
|
||||
val channel = AppMetaDataUtil.getChannelID()
|
||||
if (channel.equals("google")) {
|
||||
ChargeActivity.start(mContext)
|
||||
StatisticManager.Instance()
|
||||
.onEvent(
|
||||
StatisticsProtocol.EVENT_USERCENTER_RECHARGE_CARD_CLICK,
|
||||
getString(R.string.me_personal_center_recharge_card_click)
|
||||
)
|
||||
} else {
|
||||
CommonWebViewActivity.start(context, UriProvider.getOfficialPay(4))
|
||||
}
|
||||
}
|
||||
R.id.ll_room -> {
|
||||
//我的房间,开房
|
||||
|
@@ -93,7 +93,7 @@ public class ModifyPwdActivity extends BaseBindingActivity<ActivityModifyPwdBind
|
||||
|
||||
private void setModifyPwdUI() {
|
||||
initWhiteTitleBar(ResUtil.getString(R.string.ui_setting_modifypwdactivity_04));
|
||||
|
||||
mBinding.btnForget.setVisibility(View.GONE);
|
||||
mBinding.edCurrentPwd.setTitleHint(ResUtil.getString(R.string.ui_setting_modifypwdactivity_05));
|
||||
mBinding.edCurrentPwd.setEditHint(ResUtil.getString(R.string.ui_setting_modifypwdactivity_06));
|
||||
mBinding.edPwd.setTitleHint(ResUtil.getString(R.string.ui_setting_modifypwdactivity_07));
|
||||
|
@@ -7,6 +7,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import com.trello.rxlifecycle3.android.FragmentEvent
|
||||
import com.yizhuan.erban.R
|
||||
import com.yizhuan.erban.UIHelper
|
||||
import com.yizhuan.erban.avroom.ButtonItemFactory
|
||||
import com.yizhuan.erban.base.BaseViewBindingFragment
|
||||
import com.yizhuan.erban.common.widget.dialog.DialogManager.OkCancelDialogListener
|
||||
import com.yizhuan.erban.community.helper.ShareDynamicHelper
|
||||
@@ -14,29 +15,45 @@ import com.yizhuan.erban.databinding.FragmentUserinfoDynamicBinding
|
||||
import com.yizhuan.erban.ui.user.adapter.UserInfoDynamicAdapter
|
||||
import com.yizhuan.erban.ui.user.viewmodel.UserInfoViewModel
|
||||
import com.yizhuan.erban.ui.widget.ButtonItem
|
||||
import com.yizhuan.erban.ui.widget.recyclerview.decoration.VerticalDecoration
|
||||
import com.yizhuan.erban.ui.widget.recyclerview.decoration.HorizontalDecoration
|
||||
import com.yizhuan.xchat_android_constants.XChatConstants
|
||||
import com.yizhuan.xchat_android_core.auth.AuthModel
|
||||
import com.yizhuan.xchat_android_core.community.bean.WorldDynamicBean
|
||||
import com.yizhuan.xchat_android_core.community.dynamic.DynamicModel
|
||||
import com.yizhuan.xchat_android_core.community.event.DynamicRefreshEvent
|
||||
import com.yizhuan.xchat_android_core.statistic.StatisticManager
|
||||
import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol
|
||||
import com.yizhuan.xchat_android_core.user.UserModel
|
||||
import com.yizhuan.xchat_android_core.user.bean.UserDetailInfo
|
||||
import com.yizhuan.xchat_android_core.utils.net.BeanObserver
|
||||
import com.yizhuan.xchat_android_core.utils.net.DontWarnObserver
|
||||
import com.yizhuan.xchat_android_library.annatation.ActLayoutRes
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil
|
||||
import com.yizhuan.xchat_android_library.utils.SizeUtils
|
||||
import org.greenrobot.eventbus.EventBus
|
||||
import org.greenrobot.eventbus.Subscribe
|
||||
import org.greenrobot.eventbus.ThreadMode
|
||||
|
||||
@ActLayoutRes(R.layout.fragment_userinfo_dynamic)
|
||||
class UserInfoDynamicFragment : BaseViewBindingFragment<FragmentUserinfoDynamicBinding>() {
|
||||
private val vm by activityViewModels<UserInfoViewModel>()
|
||||
private var dynamicAdapter: UserInfoDynamicAdapter? = null
|
||||
override fun init() {
|
||||
EventBus.getDefault().register(this)
|
||||
vm.userInfoDetailData.observe(this, Observer { dataBean: UserDetailInfo.DataBean ->
|
||||
initDynamicList(dataBean.dynamicInfo)
|
||||
})
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
fun onDynamicRefreshEvent(event: DynamicRefreshEvent?) {
|
||||
if (isResumed) {
|
||||
vm.userInfoDetailData.observe(this, Observer { dataBean: UserDetailInfo.DataBean ->
|
||||
initDynamicList(dataBean.dynamicInfo)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 动态列表
|
||||
*
|
||||
@@ -45,23 +62,48 @@ class UserInfoDynamicFragment : BaseViewBindingFragment<FragmentUserinfoDynamicB
|
||||
private fun initDynamicList(list: List<WorldDynamicBean>) {
|
||||
if (dynamicAdapter == null) {
|
||||
binding.rvDynamic.layoutManager = LinearLayoutManager(mContext)
|
||||
binding.rvDynamic.addItemDecoration(
|
||||
VerticalDecoration(
|
||||
SizeUtils.dp2px(mContext, 15f),
|
||||
false,
|
||||
false
|
||||
)
|
||||
)
|
||||
binding.rvDynamic.addItemDecoration(HorizontalDecoration(SizeUtils.dp2px(mContext, 15f), false, false))
|
||||
dynamicAdapter = UserInfoDynamicAdapter(mContext)
|
||||
dynamicAdapter?.setEnableLoadMore(false)
|
||||
dynamicAdapter?.setOnItemChildClickListener { _, view: View, pos: Int ->
|
||||
val bean: WorldDynamicBean =
|
||||
dynamicAdapter?.getItem(pos) ?: return@setOnItemChildClickListener
|
||||
if (view.id == R.id.iv_more) {
|
||||
val dataList: MutableList<ButtonItem> =
|
||||
ArrayList()
|
||||
val list: MutableList<ButtonItem> = ArrayList()
|
||||
if (!UserModel.get().isMyseft(bean.uid)) {
|
||||
val item = ButtonItem(getString(R.string.me_report)) {
|
||||
val item = ButtonItem(
|
||||
getString(R.string.me_shield_dynamic)
|
||||
) {
|
||||
UserModel.get().addReport(bean.dynamicId, 0)
|
||||
.subscribe(object : BeanObserver<String?>() {
|
||||
override fun onErrorMsg(error: String) {
|
||||
dialogManager.dismissDialog()
|
||||
toast(error)
|
||||
}
|
||||
|
||||
override fun onSuccess(s: String) {
|
||||
dialogManager.dismissDialog()
|
||||
toast(ResUtil.getString(R.string.me_shield_success))
|
||||
if (pos < (dynamicAdapter?.data?.size ?: 0)) {
|
||||
if (bean == dynamicAdapter?.getItem(pos)) {
|
||||
dynamicAdapter?.remove(pos)
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
list.add(item)
|
||||
}
|
||||
if (!UserModel.get().isMyseft(bean.uid)) {
|
||||
val blackListItem = ButtonItemFactory.createAddToBlackListItem(
|
||||
dialogManager, bean.uid.toString()
|
||||
)
|
||||
list.add(blackListItem)
|
||||
}
|
||||
if (!UserModel.get().isMyseft(bean.uid)) {
|
||||
val item = ButtonItem(
|
||||
getString(R.string.me_report_dynamic)
|
||||
) {
|
||||
StatisticManager.Instance().onEvent(
|
||||
StatisticsProtocol.EVENT_WORLD_REPORT_MOMENTS,
|
||||
getString(R.string.me_report_the_dynamic)
|
||||
@@ -71,7 +113,7 @@ class UserInfoDynamicFragment : BaseViewBindingFragment<FragmentUserinfoDynamicB
|
||||
XChatConstants.REPORT_TYPE_DYNAMIC_SQUARE
|
||||
)
|
||||
}
|
||||
dataList.add(item)
|
||||
list.add(item)
|
||||
}
|
||||
if (UserModel.get().isMyseft(bean.uid) ||
|
||||
isThisWorldOwner(bean)
|
||||
@@ -79,9 +121,9 @@ class UserInfoDynamicFragment : BaseViewBindingFragment<FragmentUserinfoDynamicB
|
||||
val item = ButtonItem(
|
||||
getString(R.string.me_delete)
|
||||
) { deleteDynamic(pos, dynamicAdapter) }
|
||||
dataList.add(item)
|
||||
list.add(item)
|
||||
}
|
||||
dialogManager.showCommonPopupDialog(dataList, getString(R.string.me_cancel))
|
||||
dialogManager.showCommonPopupDialog(list, getString(R.string.cancel))
|
||||
} else if (view.id == R.id.ll_share) {
|
||||
StatisticManager.Instance().onEvent(
|
||||
StatisticsProtocol.EVENT_WORLD_SHARE_MOMENTS,
|
||||
@@ -132,4 +174,10 @@ class UserInfoDynamicFragment : BaseViewBindingFragment<FragmentUserinfoDynamicB
|
||||
private fun isThisWorldOwner(bean: WorldDynamicBean?): Boolean {
|
||||
return bean != null && bean.worldUid == AuthModel.get().currentUid
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
EventBus.getDefault().unregister(this)
|
||||
super.onDestroyView()
|
||||
}
|
||||
|
||||
}
|
@@ -40,7 +40,7 @@
|
||||
android:drawableTop="@drawable/ic_room_report"
|
||||
android:drawablePadding="12dp"
|
||||
android:gravity="center"
|
||||
android:text="@string/layout_dialog_exit_room_01"
|
||||
android:text="@string/me_shield_report"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="12sp" />
|
||||
|
||||
|
@@ -988,7 +988,15 @@
|
||||
<string name="me_data">資料</string>
|
||||
<string name="me_dynamic">動態</string>
|
||||
<string name="me_gift_wall">禮物墻</string>
|
||||
<string name="me_shield_room">屏蔽房間</string>
|
||||
<string name="me_shield_report">屏蔽舉報</string>
|
||||
<string name="me_shield_success">屏蔽成功</string>
|
||||
<string name="me_block_success">拉黑成功</string>
|
||||
<string name="me_report">舉報</string>
|
||||
<string name="me_shield">屏蔽</string>
|
||||
<string name="me_report_dynamic">舉報動態或用戶</string>
|
||||
<string name="me_shield_dynamic">屏蔽動態</string>
|
||||
<string name="me_block">拉黑用戶</string>
|
||||
<string name="me_report_the_dynamic">舉報動態-區分-動態廣場</string>
|
||||
<string name="me_delete">刪除</string>
|
||||
<string name="me_cancel">取消</string>
|
||||
@@ -3153,7 +3161,7 @@
|
||||
<string name="layout_dialog_custom_confirm_send_gold_03">昵稱昵稱</string>
|
||||
<string name="layout_dialog_custom_confirm_send_gold_04">轉贈1000鉆石?</string>
|
||||
<string name="layout_dialog_custom_one_show_tips_01">是否進行操作</string>
|
||||
<string name="layout_dialog_exit_room_01">舉報房間</string>
|
||||
<string name="layout_dialog_exit_room_01">舉報房間或用戶</string>
|
||||
<string name="layout_dialog_exit_room_02">收起房間</string>
|
||||
<string name="layout_dialog_exit_room_03">退出房間</string>
|
||||
<string name="layout_dialog_exit_room_04">為你推薦</string>
|
||||
|
@@ -33,6 +33,7 @@ import com.netease.nim.uikit.business.session.emoji.MoonUtil;
|
||||
import com.trello.rxlifecycle3.android.ActivityEvent;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.UIHelper;
|
||||
import com.yizhuan.erban.avroom.ButtonItemFactory;
|
||||
import com.yizhuan.erban.base.BaseActivity;
|
||||
import com.yizhuan.erban.common.widget.CircleImageView;
|
||||
import com.yizhuan.erban.common.widget.dialog.DialogManager;
|
||||
@@ -44,6 +45,7 @@ import com.yizhuan.erban.community.helper.ShareDynamicHelper;
|
||||
import com.yizhuan.erban.community.photo.BigPhotoActivity;
|
||||
import com.yizhuan.erban.community.photo.DynamicImageAdapter;
|
||||
import com.yizhuan.erban.community.photo.PagerOption;
|
||||
import com.yizhuan.erban.community.square.SquareFragment;
|
||||
import com.yizhuan.erban.community.utils.ObjectTypeHelper;
|
||||
import com.yizhuan.erban.community.widget.DynamicNickDetailWidget;
|
||||
import com.yizhuan.erban.community.widget.ExpandableTextView;
|
||||
@@ -67,11 +69,14 @@ import com.yizhuan.xchat_android_core.community.bean.comment.ReplyResult;
|
||||
import com.yizhuan.xchat_android_core.community.dynamic.DynamicDetailModel;
|
||||
import com.yizhuan.xchat_android_core.community.dynamic.DynamicModel;
|
||||
import com.yizhuan.xchat_android_core.community.event.DynamicDetailFinishEvent;
|
||||
import com.yizhuan.xchat_android_core.community.event.DynamicPublishEvent;
|
||||
import com.yizhuan.xchat_android_core.community.event.DynamicRefreshEvent;
|
||||
import com.yizhuan.xchat_android_core.noble.NobleUtil;
|
||||
import com.yizhuan.xchat_android_core.statistic.StatisticManager;
|
||||
import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol;
|
||||
import com.yizhuan.xchat_android_core.user.UserModel;
|
||||
import com.yizhuan.xchat_android_core.user.bean.UserInfo;
|
||||
import com.yizhuan.xchat_android_core.utils.net.BeanObserver;
|
||||
import com.yizhuan.xchat_android_core.utils.net.DontWarnObserver;
|
||||
import com.yizhuan.xchat_android_core.utils.net.RxHelper;
|
||||
import com.yizhuan.xchat_android_library.utils.ListUtils;
|
||||
@@ -770,7 +775,33 @@ public class DynamicDetailActivity extends BaseActivity implements IEmoticonSele
|
||||
private void header_more() {
|
||||
List<ButtonItem> list = new ArrayList<>();
|
||||
if (!UserModel.get().isMyseft(bean.getUid())) {
|
||||
ButtonItem item = new ButtonItem(ResUtil.getString(R.string.dynamic_view_dynamicdetailactivity_018), () -> {
|
||||
ButtonItem item = new ButtonItem(getString(R.string.me_shield_dynamic), () -> {
|
||||
UserModel.get().addReport(bean.getDynamicId(), 0)
|
||||
.subscribe(new BeanObserver<String>() {
|
||||
@Override
|
||||
public void onErrorMsg(String error) {
|
||||
getDialogManager().dismissDialog();
|
||||
toast(error);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
getDialogManager().dismissDialog();
|
||||
toast(ResUtil.getString(R.string.me_shield_success));
|
||||
EventBus.getDefault().post(new DynamicRefreshEvent());
|
||||
finish();
|
||||
}
|
||||
});
|
||||
});
|
||||
list.add(item);
|
||||
}
|
||||
if(!UserModel.get().isMyseft(bean.getUid())) {
|
||||
ButtonItem blackListItem = ButtonItemFactory.createAddToBlackListItem(
|
||||
getDialogManager(), String.valueOf(bean.getUid()));
|
||||
list.add(blackListItem);
|
||||
}
|
||||
if (!UserModel.get().isMyseft(bean.getUid())) {
|
||||
ButtonItem item = new ButtonItem(getString(R.string.me_report_dynamic), () -> {
|
||||
StatisticManager.Instance().onEvent(StatisticsProtocol.EVENT_WORLD_REPORT_MOMENTS,
|
||||
ResUtil.getString(R.string.dynamic_view_dynamicdetailactivity_019));
|
||||
UIHelper.showReportPage(context, bean.getUid(),
|
||||
@@ -783,7 +814,7 @@ public class DynamicDetailActivity extends BaseActivity implements IEmoticonSele
|
||||
ButtonItem item = new ButtonItem(ResUtil.getString(R.string.dynamic_view_dynamicdetailactivity_020), () -> deleteDynamic(bean));
|
||||
list.add(item);
|
||||
}
|
||||
getDialogManager().showCommonPopupDialog(list, ResUtil.getString(R.string.dynamic_view_dynamicdetailactivity_021));
|
||||
getDialogManager().showCommonPopupDialog(list, getString(R.string.cancel));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -20,6 +20,7 @@ import com.chad.library.adapter.base.BaseQuickAdapter;
|
||||
import com.trello.rxlifecycle3.android.FragmentEvent;
|
||||
import com.yizhuan.erban.R;
|
||||
import com.yizhuan.erban.UIHelper;
|
||||
import com.yizhuan.erban.avroom.ButtonItemFactory;
|
||||
import com.yizhuan.erban.avroom.activity.AVRoomActivity;
|
||||
import com.yizhuan.erban.base.BaseMvpFragment;
|
||||
import com.yizhuan.erban.common.EmptyViewHelper;
|
||||
@@ -40,14 +41,17 @@ import com.yizhuan.xchat_android_core.community.bean.WorldDynamicBean;
|
||||
import com.yizhuan.xchat_android_core.community.bean.WorldDynamicListResult;
|
||||
import com.yizhuan.xchat_android_core.community.dynamic.DynamicModel;
|
||||
import com.yizhuan.xchat_android_core.community.event.DynamicPublishEvent;
|
||||
import com.yizhuan.xchat_android_core.community.event.DynamicRefreshEvent;
|
||||
import com.yizhuan.xchat_android_core.community.square.SquareModel;
|
||||
import com.yizhuan.xchat_android_core.miniworld.bean.MiniWorldInfo;
|
||||
import com.yizhuan.xchat_android_core.statistic.StatisticManager;
|
||||
import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol;
|
||||
import com.yizhuan.xchat_android_core.user.UserModel;
|
||||
import com.yizhuan.xchat_android_core.user.event.LoadLoginUserInfoEvent;
|
||||
import com.yizhuan.xchat_android_core.utils.net.BeanObserver;
|
||||
import com.yizhuan.xchat_android_core.utils.net.DontWarnObserver;
|
||||
import com.yizhuan.xchat_android_library.base.factory.CreatePresenter;
|
||||
import com.yizhuan.xchat_android_library.utils.ResUtil;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
import org.greenrobot.eventbus.Subscribe;
|
||||
@@ -151,7 +155,36 @@ public class SquareDynamicFragment extends BaseMvpFragment<IMiniWorldCategoryVie
|
||||
if (view.getId() == R.id.iv_more) {
|
||||
List<ButtonItem> list = new ArrayList<>();
|
||||
if (!UserModel.get().isMyseft(bean.getUid())) {
|
||||
ButtonItem item = new ButtonItem(getString(R.string.me_report), () -> {
|
||||
ButtonItem item = new ButtonItem(getString(R.string.me_shield_dynamic), () -> {
|
||||
UserModel.get().addReport(bean.getDynamicId(), 0)
|
||||
.subscribe(new BeanObserver<String>() {
|
||||
@Override
|
||||
public void onErrorMsg(String error) {
|
||||
getDialogManager().dismissDialog();
|
||||
toast(error);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
getDialogManager().dismissDialog();
|
||||
toast(ResUtil.getString(R.string.me_shield_success));
|
||||
if (squareType == SquareFragment.TAB_TYPE_RECOMMEND) {
|
||||
adapter.notifyItemRemoved(pos + 1);
|
||||
}else {
|
||||
adapter.notifyItemRemoved(pos);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
list.add(item);
|
||||
}
|
||||
if(!UserModel.get().isMyseft(bean.getUid())) {
|
||||
ButtonItem blackListItem = ButtonItemFactory.createAddToBlackListItem(
|
||||
getDialogManager(), String.valueOf(bean.getUid()));
|
||||
list.add(blackListItem);
|
||||
}
|
||||
if (!UserModel.get().isMyseft(bean.getUid())) {
|
||||
ButtonItem item = new ButtonItem(getString(R.string.me_report_dynamic), () -> {
|
||||
UIHelper.showReportPage(getActivity(), bean.getUid(),
|
||||
XChatConstants.REPORT_TYPE_DYNAMIC_SQUARE);
|
||||
});
|
||||
@@ -310,6 +343,11 @@ public class SquareDynamicFragment extends BaseMvpFragment<IMiniWorldCategoryVie
|
||||
}
|
||||
}
|
||||
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onDynamicRefreshEvent(DynamicRefreshEvent event) {
|
||||
loadData(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRootLayoutId() {
|
||||
return 0;
|
||||
@@ -362,7 +400,7 @@ public class SquareDynamicFragment extends BaseMvpFragment<IMiniWorldCategoryVie
|
||||
public Object instantiateItem(@NonNull ViewGroup container, int position) {
|
||||
RecyclerView recyclerView;
|
||||
SquareTopicAdapter squareTopicAdapter;
|
||||
if(cacheItemView.get(position) == null){
|
||||
if (cacheItemView.get(position) == null) {
|
||||
recyclerView = new RecyclerView(mContext);
|
||||
ViewGroup.LayoutParams lp = recyclerView.getLayoutParams();
|
||||
if (lp == null) {
|
||||
@@ -387,11 +425,11 @@ public class SquareDynamicFragment extends BaseMvpFragment<IMiniWorldCategoryVie
|
||||
}
|
||||
});
|
||||
recyclerView.setAdapter(squareTopicAdapter);
|
||||
}else {
|
||||
} else {
|
||||
recyclerView = cacheItemView.get(position);
|
||||
squareTopicAdapter = (SquareTopicAdapter) recyclerView.getAdapter();
|
||||
}
|
||||
if(squareTopicAdapter != null) {
|
||||
if (squareTopicAdapter != null) {
|
||||
squareTopicAdapter.setNewData(list.get(position));
|
||||
container.addView(recyclerView);
|
||||
}
|
||||
|
@@ -1,5 +1,7 @@
|
||||
package com.yizhuan.xchat_android_core.pay.bean;
|
||||
|
||||
import com.android.billingclient.api.SkuDetails;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
import lombok.Data;
|
||||
@@ -15,4 +17,5 @@ public class FirstChargeGoods {
|
||||
private ArrayList<FirstChargeReward> firstChargeRewardList;
|
||||
private String giveMoney;
|
||||
private boolean finishCharge;
|
||||
private SkuDetails skuDetails;
|
||||
}
|
||||
|
@@ -228,4 +228,7 @@ public interface IUserModel extends IModel {
|
||||
Single<String> visitUserDetail(long uid);
|
||||
|
||||
Single<List<VisitorInfo>> getVisitorUserList(int pageNum, int pageSize);
|
||||
|
||||
Single<String> addReport(Long objId, int type);
|
||||
|
||||
}
|
||||
|
@@ -803,7 +803,15 @@ public final class UserModel extends BaseModel implements IUserModel {
|
||||
.compose(RxHelper.handleSchedulers());
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 舉報接口
|
||||
*/
|
||||
@Override
|
||||
public Single<String> addReport(Long objId, int type) {
|
||||
return api.addReport(objId, type)
|
||||
.compose(RxHelper.handleStringData())
|
||||
.compose(RxHelper.handleSchedulers());
|
||||
}
|
||||
|
||||
private interface Api {
|
||||
/**
|
||||
@@ -1043,5 +1051,18 @@ public final class UserModel extends BaseModel implements IUserModel {
|
||||
@GET("/uservisitrecord/visitUserList")
|
||||
Single<ServiceResult<List<VisitorInfo>>> getVisitorUserList(@Query("pageNum") int pageNum,
|
||||
@Query("pageSize") int pageSize);
|
||||
|
||||
@POST("user/paymentPasswd/modify")
|
||||
Single<ServiceResult<String>> addReport(@Query("uid") String uid,
|
||||
@Query("oldPasswd") String oldPasswd,
|
||||
@Query("newPasswd") String newPasswd,
|
||||
@Query("ticket") String ticket);
|
||||
|
||||
/**
|
||||
* 舉報
|
||||
*/
|
||||
@POST("/user/black/add")
|
||||
Single<ServiceResult<String>> addReport(@Query("objId") Long objId, @Query("type") int type);
|
||||
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,7 @@
|
||||
package com.yizhuan.xchat_android_core.community.event;
|
||||
|
||||
/**
|
||||
* create by lvzebiao @2019/12/1
|
||||
*/
|
||||
public class DynamicRefreshEvent {
|
||||
}
|
@@ -1,5 +1,6 @@
|
||||
package com.yizhuan.xchat_android_core.community.square;
|
||||
|
||||
import com.yizhuan.xchat_android_core.bean.response.ServiceResult;
|
||||
import com.yizhuan.xchat_android_core.community.bean.WorldDynamicBean;
|
||||
import com.yizhuan.xchat_android_core.community.bean.WorldDynamicListResult;
|
||||
|
||||
|
@@ -13,6 +13,7 @@ import java.util.List;
|
||||
|
||||
import io.reactivex.Single;
|
||||
import retrofit2.http.GET;
|
||||
import retrofit2.http.POST;
|
||||
import retrofit2.http.Query;
|
||||
|
||||
/**
|
||||
@@ -58,7 +59,6 @@ public class SquareModel extends BaseModel implements ISquareModel {
|
||||
.compose(RxHelper.handleCommon());
|
||||
}
|
||||
|
||||
|
||||
private interface Api {
|
||||
|
||||
/**
|
||||
@@ -100,7 +100,6 @@ public class SquareModel extends BaseModel implements ISquareModel {
|
||||
@Query("types") String types
|
||||
);
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -24,5 +24,5 @@ only_arm64=false
|
||||
|
||||
channel_file=channel.txt
|
||||
|
||||
version_name=1.0.5
|
||||
version_code=105
|
||||
version_name=1.0.6
|
||||
version_code=106
|
Reference in New Issue
Block a user