MainActivity.kt 10.1 KB
Newer Older
konghaorui committed
1 2
package com.ydl.component

3 4
import android.Manifest
import android.annotation.SuppressLint
konghaorui committed
5 6
import android.content.ComponentName
import android.content.Context
7
import android.content.Intent
konghaorui committed
8
import android.content.ServiceConnection
9
import android.net.Uri
konghaorui committed
10
import android.os.IBinder
11
import android.provider.Settings
konghaorui committed
12
import android.util.Log
13
import com.alibaba.android.arouter.facade.annotation.Route
konghaorui committed
14
import com.alibaba.android.arouter.launcher.ARouter
15
import com.tbruyelle.rxpermissions2.RxPermissions
konghaorui committed
16
import com.umeng.analytics.MobclickAgent
konghaorui committed
17
import com.ydl.component.music.FragmentContainerActivity
18
import com.ydl.component.mvp.DemoContract
konghaorui committed
19
import com.ydl.component.mvp.DemoPresenter
konghaorui committed
20
import com.ydl.media.audio.PlayService
徐健 committed
21
import com.ydl.ydlcommon.modular.ModularServiceManager
22 23
import com.ydl.ydlcommon.mvp.lce.BaseLceActivity
import com.yidianling.common.tools.ToastUtil
徐健 committed
24
import com.yidianling.fm.api.service.IFMService
25
import com.yidianling.tests.home.NewTestHomeActivity
徐健 committed
26
import com.yidianling.user.ui.collect.CollectSexAndBirthActivity
yjiucheng committed
27 28
import com.yidianling.user.widget.SecretDescriptionDialog
import com.yidianling.user.widget.SecretDialog
严久程 committed
29
import com.yidianling.user.widget.SecretDialog.OnSecretDialogListener
konghaorui committed
30
import kotlinx.android.synthetic.main.activity_main.*
ydl committed
31
import com.ydl.component.route.PlatformTempCommonRouteImpl
32
import com.ydl.confide.home.ConfideHomeActivity
ydl committed
33
import com.ydl.ydlcommon.router.YdlCommonRouterManager
34

konghaorui committed
35 36 37 38 39

/**
 * Created by haorui on 2019-09-01 .
 * Des:
 */
40
@Route(path = "/main/main")
konghaorui committed
41 42
class MainActivity : BaseLceActivity<DemoContract.View, DemoContract.Presenter>(),
    DemoContract.View {
严久程 committed
43
    private var secretDescriptionDialog: SecretDescriptionDialog? = null
konghaorui committed
44
    private var serviceConnection: ServiceConnection? = null
严久程 committed
45
    private var secretDialog: SecretDialog? = null
konghaorui committed
46
    protected var playService: PlayService? = null
konghaorui committed
47

48 49 50 51 52 53 54 55
    override fun getContentViewId(): Int {
        return R.id.lce_content_view
    }

    override fun getStateViewId(): Int {
        return R.id.lce_state_view
    }

konghaorui committed
56 57 58 59 60 61 62 63 64 65 66 67 68
    override fun setData(data: String) {
        tv_content.text = data
    }

    override fun createPresenter(): DemoContract.Presenter {
        return DemoPresenter()
    }

    override fun layoutResId(): Int {
        return R.layout.activity_main
    }

    override fun initDataAndEvent() {
洪国微 committed
69

徐健 committed
70
//        YDLavManager.instances.init(this, "3387e9b251f3491e9221a9877e8f7830")
洪国微 committed
71

ydl committed
72 73
        YdlCommonRouterManager.initYdlCommonRoute(PlatformTempCommonRouteImpl())

konghaorui committed
74
        bindService()
75
        reLoadData()
76
        requestPermission()
konghaorui committed
77
        tv_user.setOnClickListener {
78
            reLoadData()
konghaorui committed
79 80
        }

严久程 committed
81 82
        tv_home?.setOnClickListener {
            mPresenter.loadHome()
konghaorui committed
83 84 85
        }

        bt_to_other.setOnClickListener {
86
            ARouter.getInstance().build("/user/login")
konghaorui committed
87 88
                .withBoolean("bind_phone", false)
                .withBoolean("isFromGuide", true)
89 90
                .navigation()
        }
91
        bt_to_consultant.setOnClickListener {
yjiucheng committed
92
            //            ARouter.getInstance()
93 94 95 96 97 98
//                .build("/consult/hot_search")
//                .withString(
//                    HOT_SEARCH_DOCTOR_NAME,
//                    this.resources?.getString(R.string.platform_search_hint)
//                )
//                .navigation()
konghaorui committed
99
            FragmentContainerActivity.start(this, "ExpertSearchFragment")
100
        }
konghaorui committed
101
        bt_to_music.setOnClickListener {
konghaorui committed
102 103 104
            FragmentContainerActivity.start(this)
        }
        bt_to_im.setOnClickListener {
105
            FragmentContainerActivity.start(this, "NewMultiMessageFragment")
konghaorui committed
106
        }
konghaorui committed
107
        bt_to_dynamic.setOnClickListener {
108
            FragmentContainerActivity.start(this, "TrendsHomeFragment")
konghaorui committed
109
        }
110
        bt_to_tests.setOnClickListener {
111
        startActivity(Intent(this, NewTestHomeActivity::class.java))
严久程 committed
112
            //                                SecretActivity.Companion.startProtocol(this, it.data.getContent());
113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
//             secretDescriptionDialog = SecretDescriptionDialog(
//                this@MainActivity,
//               "122342453653456345674356",
//                object : OnSecretDescriptionDialogListener {
//                    override fun onCancel() {
//                        secretDescriptionDialog!!.dismiss()
//                        showEnsureDialog()
//                    }
//
//                    override fun onSure() {
//                        secretDescriptionDialog!!.dismiss()
//                    }
//                })
//            secretDescriptionDialog!!.setCanceledOnTouchOutside(false)
//            secretDescriptionDialog!!.show()
严久程 committed
128

129
        }
徐健 committed
130 131 132
        bt_to_collect_info.setOnClickListener {
            startActivity(Intent(this, CollectSexAndBirthActivity::class.java))
        }
133
        bt_to_confide.setOnClickListener {
严久程 committed
134
            //            YDLavManager.instances.login("1193016")
135
            startActivity(Intent(this, ConfideHomeActivity::class.java))
136
        }
徐健 committed
137
        bt_to_muse.setOnClickListener {
138

严久程 committed
139
            //            YDLRouterManager.router(IYDLRouterConstant.ROUTER_MUSE_CENTER,
140 141
//                YDLRouterParams().putExtra
//            ("url", "http://video.yidianling.com/2019/05/30/746851e2f335baf5f44499f4fb49d3a9.mp3"))
142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168

//            YDLRouterManager.router(
//                IYDLRouterConstant.ROUTER_MUSE,
//                YDLRouterParams().putExtra(
//                    IYDLRouterConstant.MUSIC_URL,
//                    "http://video.yidianling.com/2019/05/30/e6d4a71e8c895f2156a2ff37d93ca3a9.mp3"
//                )
//                    .putExtra(
//                        IYDLRouterConstant.DATA_JSON, "{\n" +
//                                "        \"muses\": [{\n" +
//                                "        \"id\": 6,\n" +
//                                "        \"name\": \"冥想基础介绍-1-什么是冥想?\",\n" +
//                                "        \"audioUrl\":\n" +
//                                "        \"http://video.yidianling.com/2019/05/30/e6d4a71e8c895f2156a2ff37d93ca3a9.mp3\",\n" +
//                                "        \"backgroundUrl\":\n" +
//                                "        \"https://img.yidianling.com/file/2019/06/10/i4qdax82ok2aizq3.png\",\n" +
//                                "        \"effectCode\": 1,\n" +
//                                "        \"category\": 2,\n" +
//                                "        \"playCount\": 929,\n" +
//                                "        \"sort\": 255,\n" +
//                                "        \"isDelete\": 1,\n" +
//                                "        \"createTime\": \"May 30, 2019 4:45:17 PM\",\n" +
//                                "        \"updateTime\": \"Jun 10, 2019 7:14:23 PM\"\n" +
//                                "    }]\n" +
//                                "    }"
//                    )
//            )
徐健 committed
169
        }
徐健 committed
170 171

        bt_to_fm.setOnClickListener {
徐健 committed
172 173
            startActivity(ModularServiceManager.provide(IFMService::class.java).fmListIntent(this))
//            YDLRouterManager.router(IYDLRouterConstant.ROUTER_FM_LIST)
徐健 committed
174
        }
严久程 committed
175

176
        bt_to_course.setOnClickListener {
严久程 committed
177 178 179
            ARouter.getInstance().build("/course/home")
                .navigation()
        }
徐健 committed
180
        bt_to_home.setOnClickListener {
konghaorui committed
181 182 183
            FragmentContainerActivity.start(this, "YdlHomeFragment")
        }
        bt_to_mine.setOnClickListener {
184
            FragmentContainerActivity.start(this, "MineFragment")
徐健 committed
185 186
        }

konghaorui committed
187
        bt_to_privacy.setOnClickListener {
188
          startActivity(Intent(this@MainActivity,TestAppActivity::class.java))
yjiucheng committed
189 190
        }

konghaorui committed
191 192
    }

徐健 committed
193

194
    override fun reLoadData() {
konghaorui committed
195
        mPresenter.loadHome()
konghaorui committed
196
    }
197 198 199 200 201 202 203 204 205 206 207 208


    @SuppressLint("CheckResult")
    private fun requestPermission() {
        val rxPermissions = RxPermissions(this)
        rxPermissions.requestEach(Manifest.permission.WRITE_EXTERNAL_STORAGE)
            .subscribe { permission ->
                if (permission.granted) {
                    ToastUtil.toastShort("Permission Success")
                } else if (permission.shouldShowRequestPermissionRationale) {
                    requestPermission()
                } else {
konghaorui committed
209 210 211 212
                    ToastUtil.toastLong(
                        this,
                        getString(R.string.platform_need_storage_permission_hint)
                    )
213 214 215 216 217 218 219 220 221
                    val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
                    val uri = Uri.fromParts("package", packageName, null)
                    intent.data = uri
                    startActivity(intent)
                    finish()
                }
            }

    }
konghaorui committed
222 223 224 225 226 227 228 229

    private fun bindService() {
        val intent = Intent()
        intent.setClass(this, PlayService::class.java!!)
        serviceConnection = PlayServiceConnection()
        bindService(intent, serviceConnection, Context.BIND_AUTO_CREATE)
    }

konghaorui committed
230 231 232
    override fun onResume() {
        super.onResume()
        MobclickAgent.onResume(this)
233

234
//        ModularServiceManager.provide(IConsultantService::class.java)
235 236
//            .
//            (this)
konghaorui committed
237 238
    }

徐健 committed
239 240 241
    override fun onPause() {
        super.onPause()

242
//        ModularServiceManager.provide(IConsultantService::class.java).hideConsultAssistantDialog()
徐健 committed
243 244
    }

konghaorui committed
245

246 247 248 249 250 251
    override fun onDestroy() {
        if (serviceConnection != null) {
            unbindService(serviceConnection)
        }
        super.onDestroy()
    }
konghaorui committed
252 253 254 255 256 257 258 259 260 261 262

    private inner class PlayServiceConnection : ServiceConnection {
        override fun onServiceConnected(name: ComponentName, service: IBinder) {
            playService = (service as PlayService.PlayBinder).service
        }

        override fun onServiceDisconnected(name: ComponentName) {
            Log.e(javaClass.simpleName, "service disconnected")
        }
    }

严久程 committed
263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280

    private fun showEnsureDialog() {
        secretDialog = SecretDialog(this, object : OnSecretDialogListener {
            override fun onCancel() {
                secretDialog!!.dismiss()
//                finishAll()
//                Process.killProcess(Process.myPid())
//                System.exit(0)
            }

            override fun onSure() {
                secretDialog!!.dismiss()
            }
        })
        secretDialog!!.setCanceledOnTouchOutside(false)
        secretDialog!!.show()
    }

konghaorui committed
281
}