ShareMeditationDialog.kt 5.82 KB
Newer Older
1 2 3
package com.yidianling.muse.widget


4
import android.app.Activity
5 6 7 8 9 10 11 12 13
import android.os.Bundle
import android.util.DisplayMetrics
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.ViewGroup.LayoutParams.MATCH_PARENT
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.TextView
14
import androidx.constraintlayout.widget.ConstraintLayout
15 16
import androidx.fragment.app.DialogFragment
import com.bumptech.glide.Glide
17 18
import com.umeng.socialize.bean.SHARE_MEDIA
import com.ydl.ydlcommon.actions.share.ShareUtils
19
import com.yidianling.muse.R
20 21
import com.yidianling.muse.utils.ShareMeditationUtil
import kotlinx.android.synthetic.main.layout_share_play_meditation.*
22 23


24
class ShareMeditationDialog : DialogFragment() {
25

26 27
    private var ivSharePicture: ImageView? = null
    private var tvShareContent: TextView? = null
28

29 30 31 32 33
    private var llWeChat: LinearLayout? = null
    private var llCircleOfFriends: LinearLayout? = null
    private var llSave: LinearLayout? = null
    private var llQQZone: LinearLayout? = null
    private var llQQFriend: LinearLayout? = null
34

35 36
    private var cslLayout: ConstraintLayout?=null

37 38
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
39
        setStyle(STYLE_NO_TITLE, R.style.share_meditation_dialog)
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
    }

    override fun onStart() {
        super.onStart()
        val displayMetrics = DisplayMetrics()
        activity?.windowManager?.defaultDisplay?.getMetrics(displayMetrics)
        val window = dialog?.window
        window?.setLayout(MATCH_PARENT, MATCH_PARENT)
    }

    override fun onCreateView(
        inflater: LayoutInflater,
        container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {
范玉宾 committed
55
        val view = inflater.inflate(R.layout.layout_share_meditation_dialog, container)
56 57 58 59 60 61
        initView(view)
        return view
    }

    private fun initView(view: View?) {

62 63 64 65 66 67
        val shareImageUrl = arguments?.getString(KEY_SHARE_IMAGE_URL) ?: ""
        val shareTitle = arguments?.getString(KEY_SHARE_TITLE) ?: ""
        val shareContent = arguments?.getString(KEY_SHARE_CONTENT) ?: ""
        val shareUrl = arguments?.getString(KEY_SHARE_URL) ?: ""
        val shareMiniId = arguments?.getString(KEY_SHARE_MINI_ID) ?: ""
        val shareMiniPath = arguments?.getString(KEY_SHARE_MINI_PATH) ?: ""
68 69 70 71 72

        ivSharePicture = view?.findViewById(R.id.iv_share_picture)

        tvShareContent = view?.findViewById(R.id.tv_share_content)

73
        if (view != null && ivSharePicture != null) {
74 75 76 77 78 79 80 81 82 83
            Glide.with(view.context)
                .load(shareImageUrl)
                .into(ivSharePicture!!)
        }

        llWeChat = view?.findViewById(R.id.ll_wechat_friend)
        llCircleOfFriends = view?.findViewById(R.id.ll_wechat_circle_of_friends)
        llSave = view?.findViewById(R.id.ll_save_picture)
        llQQZone = view?.findViewById(R.id.ll_qq_zone)
        llQQFriend = view?.findViewById(R.id.ll_qq_friend)
84 85 86 87 88
        cslLayout = view?.findViewById(R.id.csl_root_layout)

        cslLayout?.setOnClickListener {
            dismiss()
        }
89 90

        llWeChat?.setOnClickListener {
91
            ShareUtils.shareSmailWeixin(
92
                activity as Activity,
范玉宾 committed
93 94 95
                shareTitle,
                shareUrl,
                shareContent,
96 97 98 99
                shareImageUrl,
                path = shareMiniPath,
                id = shareMiniId,
                shareListener = null
100
            )
101
            dismiss()
102 103 104
        }

        llCircleOfFriends?.setOnClickListener {
105 106 107
            ShareUtils.shareTo(
                SHARE_MEDIA.WEIXIN_CIRCLE,
                activity as Activity,
范玉宾 committed
108 109 110 111
                shareTitle,
                shareUrl,
                shareContent,
                shareImageUrl
112
            )
113
            dismiss()
114 115 116
        }

        llSave?.setOnClickListener {
117
            ShareMeditationUtil.saveImageToLocal(csl_layout_top)
118
            dismiss()
119 120 121
        }

        llQQZone?.setOnClickListener {
122 123 124
            ShareUtils.shareTo(
                SHARE_MEDIA.QZONE,
                activity as Activity,
范玉宾 committed
125 126 127 128
                shareTitle,
                shareUrl,
                shareContent,
                shareImageUrl
129
            )
130
            dismiss()
131 132 133
        }

        llQQFriend?.setOnClickListener {
134 135 136
            ShareUtils.shareTo(
                SHARE_MEDIA.QQ,
                activity as Activity,
范玉宾 committed
137 138 139 140
                shareTitle,
                shareUrl,
                shareContent,
                shareImageUrl
141
            )
142
            dismiss()
143 144 145 146 147 148 149 150
        }

        view?.findViewById<TextView>(R.id.tv_cancel_share)?.setOnClickListener {
            dismiss()
        }

    }

151
    companion object {
152 153
        const val TAG = "ShareMeditationDialog"

范玉宾 committed
154 155 156
        private const val KEY_SHARE_TITLE = "key_share_title"
        private const val KEY_SHARE_URL = "key_share_url"
        private const val KEY_SHARE_CONTENT = "key_share_content"
157
        private const val KEY_SHARE_IMAGE_URL = "key_share_image_url"
158 159 160 161 162 163 164 165 166 167 168
        private const val KEY_SHARE_MINI_ID = "key_share_mini_id"
        private const val KEY_SHARE_MINI_PATH = "key_share_mini_path"

        fun newInstance(
            shareTitle: String,
            shareUrl: String,
            shareContent: String,
            shareImageUrl: String,
            miniId: String,
            miniPath: String
        ): ShareMeditationDialog {
169
            val args = Bundle()
范玉宾 committed
170 171 172
            args.putString(KEY_SHARE_TITLE, shareTitle)
            args.putString(KEY_SHARE_CONTENT, shareContent)
            args.putString(KEY_SHARE_URL, shareUrl)
173
            args.putString(KEY_SHARE_IMAGE_URL, shareImageUrl)
174 175
            args.putString(KEY_SHARE_MINI_ID, miniId)
            args.putString(KEY_SHARE_MINI_PATH, miniPath)
176 177 178 179 180 181 182 183
            val fragment = ShareMeditationDialog()
            fragment.arguments = args
            return fragment
        }

    }

}