• Kotlin高仿微信-第58篇-开通VIP


      Kotlin高仿微信-项目实践58篇详细讲解了各个功能点,包括:注册、登录、主页、单聊(文本、表情、语音、图片、小视频、视频通话、语音通话、红包、转账)、群聊、个人信息、朋友圈、支付服务、扫一扫、搜索好友、添加好友、开通VIP等众多功能。

    Kotlin高仿微信-项目实践58篇,点击查看详情

    效果图:

    实现代码:

    **
     * 开通vip确认框
     */
    private fun showVipConfirmDialog(month: Int, vipBean: VipBean){
    
        if(month < 1 || vipBean == null){
            ToastUtils.makeText(R.string.wc_vip_confirm_show_error)
            return
        }
        getFocus(true)
        var view = LayoutInflater.from(requireContext()).inflate(R.layout.wc_vip_confirm_view, null)
        var width = DisplayUtils.getScreenWidth() - BaseUtils.getDimension(R.dimen.distance_40) * 2
        val popupWindow = PopupWindow(view, width, ViewGroup.LayoutParams.WRAP_CONTENT)
        popupWindow.isOutsideTouchable = false //点击弹窗外部是否取消弹窗
    
        //弹窗出现外部为阴影
        val attributes: WindowManager.LayoutParams = requireActivity().window.getAttributes()
        attributes.alpha = 0.5f
        requireActivity().window.setAttributes(attributes)
        //弹窗取消监听 取消之后恢复阴影
        popupWindow.setOnDismissListener {
            val attributes: WindowManager.LayoutParams = requireActivity().window.getAttributes()
            attributes.alpha = 1f
            requireActivity().window.setAttributes(attributes)
            getFocus(false)
        }
        popupWindow.showAtLocation(vip_recyclerview, Gravity.CENTER, 0, 0)
    
        var accountTextView = view.findViewById(R.id.vip_confirm_account)
        var nameTextView = view.findViewById(R.id.vip_confirm_name)
        var monthTextView = view.findViewById(R.id.vip_confirm_month)
        accountTextView.text = BaseUtils.getString(R.string.wc_vip_manager_user_account, vipBean.userAccount)
        nameTextView.text = BaseUtils.getString(R.string.wc_vip_manager_user_name, vipBean.userName)
        monthTextView.text = BaseUtils.getString(R.string.wc_vip_confirm_month, "${month}")
        view.findViewById(R.id.vip_confirm_cancel).setOnClickListener {
            popupWindow.dismiss()
        }
    
        view.findViewById(R.id.vip_confirm_ok).setOnClickListener {
            popupWindow.dismiss()
            vipManagerViewModel.updateVip(vipBean.userAccount, vipBean.operatorAccount, month)
        }
    }

    /**
     * vip会员续费
     */
    fun updateVip(userAccount : String, operatorAccount : String, month : Int){
        if(TextUtils.isEmpty(userAccount)
            ||TextUtils.isEmpty(operatorAccount)
            || month < 1){
            isSuccessLiveData.postValue(false)
            return
        }
        CoroutineScope(Dispatchers.IO).launch {
            var result = VipManagerRepository.updateVip(userAccount, operatorAccount, month)
            isSuccessLiveData.postValue(result.isSuccess)
        }
    }

  • 相关阅读:
    【Canvas】js用Canvas绘制阴阳太极图动画效果
    c++(15)静态成员变量、静态成员函数、static占用大小
    餐厅订位短信解决方案
    【目标检测】YOLOv5在Android上的部署
    软件行业与就业(导师主讲)
    Flex布局详解
    springcloud商城源码
    【Python基础】 模块和包的创建及使用(windows 下制作和发布压缩包超详细)
    结构体(Struct)
    Linux基础命令详解(二)
  • 原文地址:https://blog.csdn.net/maoning20080808/article/details/128138605