| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401 |
- package com.jld.vod.view
- import android.app.ProgressDialog
- import android.content.Context
- import android.os.Handler
- import android.os.Message
- import android.widget.Toast
- import androidx.lifecycle.Observer
- import androidx.lifecycle.ViewModelProvider
- import androidx.lifecycle.ViewModelProviders
- import androidx.lifecycle.observe
- import com.jld.vod.R
- import com.jld.vod.base.BaseActivity
- import com.jld.vod.config.Config
- import com.jld.vod.model.bean.BaseBean
- import com.jld.vod.model.bean.GameResByNotUploaded
- import com.jld.vod.model.bean.MovieResByNotUploaded
- import com.jld.vod.model.bean.MusicResByNotUploaded
- import com.jld.vod.model.event.UsbStatusChangeEvent
- import com.jld.vod.utils.LogUtils
- import com.jld.vod.utils.http.HttpFileUtil
- import com.jld.vod.utils.http.ProgressListener
- import com.jld.vod.utils.http.RetrofitCallback
- import com.jld.vod.viewmodel.MainViewModel
- import com.jld.vod.viewmodel.PostFileViewModel
- import com.jld.vod.viewmodel.SplashViewModel
- import okhttp3.Callback
- import org.greenrobot.eventbus.EventBus
- import org.greenrobot.eventbus.Subscribe
- import org.greenrobot.eventbus.ThreadMode
- import retrofit2.Call
- import retrofit2.Response
- import java.io.File
- import java.io.IOException
- /**
- * @author ZhaoFuXin
- * @Email:18276061387@163.com
- * @description:
- * @date :2020/7/27 11:09
- */
- class PostFileActivity : BaseActivity() {
- private var strFilePath:String? = null
- private lateinit var postFileViewModel: PostFileViewModel
- private lateinit var mainViewModel: MainViewModel
- private var progressdialog: ProgressDialog? = null
- private var totalitem = 0//数据大小
- private var lenitem = 1//当前上传数据下标
- private var flag = true
- private var context:Context? = null
- private val mHandler = Handler(Handler.Callback {
- when(it.what)
- {
- 0->{
- val id: Int = it.arg1
- val file = it.obj as String
- progressdialog!!.setTitle("Uploading Movie ( $lenitem/$totalitem )")
- progressdialog!!.progress = id
- progressdialog!!.setMessage(file)
- progressdialog!!.setCancelable(false)
- progressdialog!!.setCanceledOnTouchOutside(false)
- progressdialog!!.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL)
- progressdialog!!.show()
- if (id == 100)
- {
- progressdialog!!.dismiss()
- }
- }
- 1->{
- val id: Int = it.arg1
- val file = it.obj as String
- progressdialog!!.setTitle("Uploading Music ( $lenitem/$totalitem )")
- progressdialog!!.progress = id
- progressdialog!!.setMessage(file)
- progressdialog!!.setCancelable(false)
- progressdialog!!.setCanceledOnTouchOutside(false)
- progressdialog!!.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL)
- progressdialog!!.show()
- if (id == 100)
- {
- progressdialog!!.dismiss()
- }
- }
- 2->{
- val id: Int = it.arg1
- val file = it.obj as String
- progressdialog!!.setTitle("Uploading Game ( $lenitem/$totalitem )")
- progressdialog!!.progress = id
- progressdialog!!.setMessage(file)
- progressdialog!!.setCancelable(false)
- progressdialog!!.setCanceledOnTouchOutside(false)
- progressdialog!!.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL)
- progressdialog!!.show()
- if (id == 100)
- {
- progressdialog!!.dismiss()
- }
- }
- }
- false
- })
- override fun getLayoutId(): Int {
- return R.layout.activity_postfile
- }
- override fun initView() {
- super.initView()
- context = this
- progressdialog = ProgressDialog(this@PostFileActivity)
- }
- override fun initData() {
- super.initData()
- //u盘路径
- val mIntent = intent
- strFilePath = mIntent.getStringExtra("path")
- //接收U盘广播值
- EventBus.getDefault().register(this)
- //初始化viewmodel
- postFileViewModel = ViewModelProvider.AndroidViewModelFactory(application).create(PostFileViewModel::class.java)
- //获取未上传电影列表
- postFileViewModel.findResByNotUploadedmovie()
- //初始化电影列表
- initMovieList()
- //初始化音乐列表
- initMusicList()
- //初始化游戏列表
- initGameList()
- }
- /**
- * 初始化游戏列表
- */
- private fun initGameList() {
- //监听游戏列表
- postFileViewModel.findResByNotUploadedgameliveData.observe(this){res->
- LogUtils.logD("game"+res)
- when (res?.code) {
- BaseBean.SUCCESS -> {
- finishLoading()
- if (res.data!!.size != 0)
- {
- for ((index,data) in res.data.withIndex())
- {
- val file = File(strFilePath, data.gid.toString()+".apk")
- val mid = data.mid
- val resId = data.gid
- if (file.exists())
- {
- //上传游戏
- postFileGame(file,mid,resId)
- }
- }
- }else{
- LogUtils.logD("上传数据为空")
- }
- }
- BaseBean.ERROR -> {
- finishLoading()
- Toast.makeText(this, res.message, Toast.LENGTH_SHORT).show()
- }
- BaseBean.LOADING -> showLoading()
- }
- }
- }
- /**
- * 初始化音乐列表
- */
- private fun initMusicList() {
- postFileViewModel.findResByNotUploadedmusicliveData.observe(this){res->
- when (res?.code) {
- BaseBean.SUCCESS -> {
- flag = true
- finishLoading()
- if (res.data!!.size != 0)
- {
- for ((index,data) in res.data.withIndex())
- {
- val file = File(strFilePath, data.musicId.toString()+".mp3")
- val mid = data.mid
- val resId = data.musicId
- if (file.exists())
- {
- //上传音乐
- postFileMusic(file,mid,resId)
- }else{
- if (flag)
- {
- flag = false
- postFileViewModel.findResByNotUploadedgame()//继续获取未上传游戏列表
- }
- }
- }
- }else{
- postFileViewModel.findResByNotUploadedgame()//继续获取未上传游戏列表
- }
- }
- BaseBean.ERROR -> {
- finishLoading()
- Toast.makeText(this, res.message, Toast.LENGTH_SHORT).show()
- }
- BaseBean.LOADING -> showLoading()
- }
- }
- }
- /**
- * 初始化电影列表
- */
- private fun initMovieList() {
- postFileViewModel.findResByNotUploadedmovieliveData.observe(this){res->
- LogUtils.logD("movie"+res)
- when (res?.code) {
- BaseBean.SUCCESS -> {
- finishLoading()
- if (res.data!!.size != 0)
- {
- for ((index,data) in res.data.withIndex())
- {
- val file = File(strFilePath, data.movieId.toString()+".mp4")
- val mid = data.mid
- val resId = data.movieId
- if (file.exists())
- {
- //上传电影
- postFileMovie(file,mid,resId)
- }else{
- if (flag)
- {
- flag = false
- postFileViewModel.findResByNotUploadedmusic()//继续获取未上传音乐列表
- }
- }
- }
- }else{
- postFileViewModel.findResByNotUploadedmusic()//继续获取未上传音乐列表
- }
- }
- BaseBean.ERROR -> {
- finishLoading()
- Toast.makeText(this, res.message, Toast.LENGTH_SHORT).show()
- }
- BaseBean.LOADING -> showLoading()
- }
- }
- }
- /**
- * 上传游戏
- */
- private fun postFileGame(file: File,mid : Long,resId:Long) {
- totalitem++
- HttpFileUtil.postFile(this, Config.ApiBaseUrl + "/game/upload",
- object : ProgressListener {
- override fun onProgress(currentBytes: Long, contentLength: Long, done: Boolean) {
- // Log.i(TAG, "file="+file.getName()+"id="+id+"currentBytes==" + currentBytes + "==contentLength==" + contentLength + "==done==" + done);
- val progress = (currentBytes * 100 / contentLength).toInt()
- if (done == true) {
- lenitem++
- if (lenitem == totalitem)
- {
- //数据下标重置
- lenitem = 1
- totalitem = 0
- //postFileViewModel.findResByNotUploadedgame()//继续获取未上传游戏列表
- }
- }
- val msg: Message = mHandler.obtainMessage()
- msg.arg1 = progress
- msg.what = 2
- msg.obj = file.name
- mHandler.sendMessage(msg)
- }
- }, object : Callback {
- override fun onFailure(call: okhttp3.Call, e: IOException) {
- LogUtils.logE(e.toString())
- }
- @Throws(IOException::class)
- override fun onResponse(call: okhttp3.Call, response: okhttp3.Response) {
- val result = response.body!!.string()
- LogUtils.logD(result.toString())
- }
- }, file,mid,resId)
- }
- /**
- * 上传音乐
- */
- private fun postFileMusic(file: File,mid : Long,resId:Long) {
- totalitem++
- HttpFileUtil.postFile(this, Config.ApiBaseUrl + "/music/upload",
- object : ProgressListener {
- override fun onProgress(currentBytes: Long, contentLength: Long, done: Boolean) {
- // Log.i(TAG, "file="+file.getName()+"id="+id+"currentBytes==" + currentBytes + "==contentLength==" + contentLength + "==done==" + done);
- val progress = (currentBytes * 100 / contentLength).toInt()
- if (done == true) {
- lenitem++
- if (lenitem == totalitem)
- {
- //数据下标重置
- lenitem = 1
- totalitem = 0
- postFileViewModel.findResByNotUploadedgame()//继续获取未上传游戏列表
- }
- }
- val msg: Message = mHandler.obtainMessage()
- msg.arg1 = progress
- msg.what = 1
- msg.obj = file.name
- mHandler.sendMessage(msg)
- }
- }, object : Callback {
- override fun onFailure(call: okhttp3.Call, e: IOException) {
- LogUtils.logE(e.toString())
- }
- @Throws(IOException::class)
- override fun onResponse(call: okhttp3.Call, response: okhttp3.Response) {
- val result = response.body!!.string()
- LogUtils.logD(result.toString())
- }
- }, file,mid,resId)
- }
- /**
- * 上传电影
- */
- private fun postFileMovie(file: File,mid : Long,resId:Long) {
- totalitem++
- HttpFileUtil.postFile(this, Config.ApiBaseUrl + "/movie/upload",
- object : ProgressListener {
- override fun onProgress(currentBytes: Long, contentLength: Long, done: Boolean) {
- // Log.i(TAG, "file="+file.getName()+"id="+id+"currentBytes==" + currentBytes + "==contentLength==" + contentLength + "==done==" + done);
- val progress = (currentBytes * 100 / contentLength).toInt()
- if (done == true) {
- lenitem++
- if (lenitem == totalitem)
- {
- //数据下标重置
- lenitem = 1
- totalitem = 0
- postFileViewModel.findResByNotUploadedmusic()//继续获取未上传音乐列表
- }
- }
- val msg: Message = mHandler.obtainMessage()
- msg.arg1 = progress
- msg.what = 0
- msg.obj = file.name
- mHandler.sendMessage(msg)
- }
- }, object : Callback {
- override fun onFailure(call: okhttp3.Call, e: IOException) {
- LogUtils.logE(e.toString())
- }
- @Throws(IOException::class)
- override fun onResponse(call: okhttp3.Call, response: okhttp3.Response) {
- val result = response.body!!.string()
- LogUtils.logD(result.toString())
- }
- }, file,mid,resId)
- }
- override fun onDestroy() {
- super.onDestroy()
- progressdialog!!.dismiss()
- if (EventBus.getDefault().isRegistered(this)) {
- EventBus.getDefault().unregister(this)
- }
- }
- /**
- * 广播传来值处理
- * @param event
- */
- @Subscribe(threadMode = ThreadMode.MAIN)
- fun onNetworkChangeEvent(event: UsbStatusChangeEvent) {
- if (event.isConnected) {
- finish()
- }
- }
- }
|