Skip to content
This repository has been archived by the owner on Apr 3, 2021. It is now read-only.

Commit

Permalink
Remove BRVAH.
Browse files Browse the repository at this point in the history
  • Loading branch information
zhaobozhen committed Mar 18, 2020
1 parent d9516ad commit 9eeafba
Show file tree
Hide file tree
Showing 10 changed files with 125 additions and 95 deletions.
1 change: 0 additions & 1 deletion app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ dependencies {
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation 'com.github.tbruyelle:rxpermissions:0.10.2'
implementation "com.github.bumptech.glide:glide:$glide_version"
implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.1'
implementation 'com.drakeet.about:about:2.4.1'
implementation 'com.drakeet.multitype:multitype:4.2.0'
implementation 'it.sephiroth.android.library.imagezoom:imagezoom:2.3.0'
Expand Down
24 changes: 0 additions & 24 deletions app/src/main/kotlin/com/absinthe/kage/adapter/DeviceAdapter.kt

This file was deleted.

28 changes: 0 additions & 28 deletions app/src/main/kotlin/com/absinthe/kage/adapter/MusicListAdapter.kt

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ class AboutActivity : AbsAboutActivity() {
items.add(License("MultiType", "drakeet", License.APACHE_2, "https://github.com/drakeet/MultiType"))
items.add(License("about-page", "drakeet", License.APACHE_2, "https://github.com/drakeet/about-page"))
items.add(License("NanoHttpd", "NanoHttpd", "BSD-3-Clause", "https://github.com/NanoHttpd/nanohttpd"))
items.add(License("BaseRecyclerViewAdapterHelper", "CymChad", License.MIT, "https://github.com/CymChad/BaseRecyclerViewAdapterHelper"))
items.add(License("Matisse", "zhihu", License.APACHE_2, "https://github.com/zhihu/Matisse"))
items.add(License("ExoPlayer", "Google", License.APACHE_2, "https://github.com/google/ExoPlayer"))
items.add(License("AndroidX", "Google", License.APACHE_2, "https://source.google.com"))
Expand Down
36 changes: 15 additions & 21 deletions app/src/main/kotlin/com/absinthe/kage/ui/connect/ConnectActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,25 @@ package com.absinthe.kage.ui.connect

import android.os.Bundle
import android.view.MenuItem
import android.view.View
import androidx.recyclerview.widget.LinearLayoutManager
import com.absinthe.kage.BaseActivity
import com.absinthe.kage.R
import com.absinthe.kage.adapter.DeviceAdapter
import com.absinthe.kage.databinding.ActivityConnectBinding
import com.absinthe.kage.device.DeviceManager
import com.absinthe.kage.device.DeviceObserverImpl
import com.absinthe.kage.device.IDeviceObserver
import com.absinthe.kage.device.model.DeviceInfo
import com.absinthe.kage.utils.ToastUtil.makeText
import com.chad.library.adapter.base.BaseQuickAdapter
import com.absinthe.kage.viewholder.DeviceInfoItemViewBinder
import com.drakeet.multitype.MultiTypeAdapter
import timber.log.Timber

class ConnectActivity : BaseActivity() {

private lateinit var mBinding: ActivityConnectBinding
private lateinit var mObserver: IDeviceObserver
private var mAdapter: DeviceAdapter = DeviceAdapter()
private var mAdapter = MultiTypeAdapter()
private var mItems = ArrayList<Any>()
private var mDeviceManager: DeviceManager = DeviceManager

override fun onCreate(savedInstanceState: Bundle?) {
Expand Down Expand Up @@ -56,12 +56,14 @@ class ConnectActivity : BaseActivity() {
mBinding.vfContainer.setInAnimation(this, R.anim.anim_fade_in)
mBinding.vfContainer.setOutAnimation(this, R.anim.anim_fade_out)

mAdapter.register(DeviceInfoItemViewBinder())
mBinding.rvDevices.adapter = mAdapter
mBinding.rvDevices.layoutManager = LinearLayoutManager(this)

val list = mDeviceManager.deviceInfoList
if (list.isNotEmpty()) {
mAdapter.setNewData(list as MutableList<DeviceInfo>)
mItems.clear()
mItems.addAll(mDeviceManager.deviceInfoList)
if (mItems.isNotEmpty()) {
mAdapter.items = mItems
switchContainer(VF_DEVICE_LIST)
}

Expand All @@ -73,13 +75,17 @@ class ConnectActivity : BaseActivity() {

override fun onFindDevice(deviceInfo: DeviceInfo) {
Timber.d("onFindDevice: $deviceInfo")
mAdapter.addData(deviceInfo)
mItems.add(deviceInfo)
mAdapter.items = mItems
mAdapter.notifyItemInserted(mAdapter.itemCount - 1)
switchContainer(VF_DEVICE_LIST)
}

override fun onLostDevice(deviceInfo: DeviceInfo) {
Timber.d("onLostDevice: $deviceInfo")
mAdapter.remove(deviceInfo)
mItems.remove(deviceInfo)
mAdapter.items = mItems
mAdapter.notifyItemRangeRemoved(0, mAdapter.itemCount - 1)
if (mAdapter.itemCount == 0) {
switchContainer(VF_EMPTY)
}
Expand Down Expand Up @@ -108,18 +114,6 @@ class ConnectActivity : BaseActivity() {
}

mDeviceManager.register(mObserver)
mAdapter.setOnItemChildClickListener { _: BaseQuickAdapter<*, *>?, view: View, position: Int ->
if (view.id == R.id.btn_connect) {
val deviceInfo = mAdapter.getItem(position)

if (!deviceInfo.isConnected) {
mDeviceManager.onlineDevice(deviceInfo)
mDeviceManager.connectDevice(deviceInfo)
} else {
mDeviceManager.disConnectDevice()
}
}
}
}

private fun switchContainer(flag: Int) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import com.absinthe.kage.BaseActivity
import com.absinthe.kage.R
import com.absinthe.kage.adapter.SpacesItemDecoration
import com.absinthe.kage.viewholder.SpacesItemDecoration
import com.absinthe.kage.databinding.ActivityMainBinding
import com.absinthe.kage.device.DeviceManager
import com.absinthe.kage.device.DeviceObserverImpl
Expand Down
Original file line number Diff line number Diff line change
@@ -1,26 +1,24 @@
package com.absinthe.kage.ui.sender

import android.content.Intent
import android.os.Bundle
import android.view.MenuItem
import android.view.View
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProvider
import androidx.recyclerview.widget.LinearLayoutManager
import com.absinthe.kage.BaseActivity
import com.absinthe.kage.adapter.MusicListAdapter
import com.absinthe.kage.databinding.ActivityMusicListBinding
import com.absinthe.kage.media.MusicList
import com.absinthe.kage.media.audio.LocalMusic
import com.absinthe.kage.ui.media.MusicActivity
import com.absinthe.kage.viewholder.LocalMusicViewBinder
import com.absinthe.kage.viewmodel.MusicViewModel
import com.chad.library.adapter.base.BaseQuickAdapter
import com.drakeet.multitype.MultiTypeAdapter

class MusicListActivity : BaseActivity() {

private lateinit var mBinding: ActivityMusicListBinding
private lateinit var mViewModel: MusicViewModel
private var mAdapter: MusicListAdapter = MusicListAdapter()
private var mAdapter = MultiTypeAdapter()
private var mItems = ArrayList<Any>()

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Expand All @@ -36,27 +34,20 @@ class MusicListActivity : BaseActivity() {
setSupportActionBar(mBinding.toolbar)
supportActionBar?.setDisplayHomeAsUpEnabled(true)

mAdapter.register(LocalMusicViewBinder())
mBinding.rvMusicList.adapter = mAdapter
mBinding.rvMusicList.layoutManager = LinearLayoutManager(this)
mAdapter.setOnItemClickListener { adapter: BaseQuickAdapter<*, *>, _: View?, position: Int ->
val localMusic = adapter.data[position] as LocalMusic?
if (localMusic != null) {
val intent = Intent(this@MusicListActivity, MusicActivity::class.java)
intent.putExtra(MusicActivity.EXTRA_MUSIC_INFO, localMusic)
intent.putExtra(MusicActivity.EXTRA_DEVICE_TYPE, MusicActivity.TYPE_SENDER)
startActivity(intent)
}
}

supportActionBar?.setDisplayHomeAsUpEnabled(true)
}

private fun initData() {
mViewModel.musicList.observe(this, Observer { localMusics: MutableList<LocalMusic> ->
mBinding.srlContainer.isRefreshing = false
mAdapter.setNewData(localMusics)
mItems.clear()
mItems.addAll(localMusics)
MusicList.musicList.clear()
MusicList.musicList.addAll(localMusics)
mAdapter.items = mItems
mAdapter.notifyDataSetChanged()
mBinding.srlContainer.isEnabled = false
})

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package com.absinthe.kage.viewholder

import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.absinthe.kage.R
import com.absinthe.kage.device.DeviceManager
import com.absinthe.kage.device.model.DeviceInfo
import com.drakeet.multitype.ItemViewBinder

class DeviceInfoItemViewBinder : ItemViewBinder<DeviceInfo, DeviceInfoItemViewBinder.ViewHolder>() {

override fun onCreateViewHolder(inflater: LayoutInflater, parent: ViewGroup): ViewHolder {
val root = inflater.inflate(R.layout.item_device, parent, false)
return ViewHolder(root)
}

override fun onBindViewHolder(holder: ViewHolder, item: DeviceInfo) {
holder.deviceName.text = item.name
holder.deviceIp.text = item.ip

when (item.state) {
DeviceInfo.STATE_IDLE -> holder.btnConnect.text = holder.itemView.context.getString(R.string.connect_state_connect)
DeviceInfo.STATE_CONNECTING -> holder.btnConnect.text = holder.itemView.context.getString(R.string.connect_state_connecting)
DeviceInfo.STATE_CONNECTED -> holder.btnConnect.text = holder.itemView.context.getString(R.string.connect_state_connected)
}

holder.btnConnect.setOnClickListener {
if (!item.isConnected) {
DeviceManager.onlineDevice(item)
DeviceManager.connectDevice(item)
} else {
DeviceManager.disConnectDevice()
}
}
}

class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val deviceName: TextView = itemView.findViewById(R.id.tv_device_name)
val deviceIp: TextView = itemView.findViewById(R.id.tv_device_ip)
val btnConnect: Button = itemView.findViewById(R.id.btn_connect)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package com.absinthe.kage.viewholder

import android.content.Intent
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.recyclerview.widget.RecyclerView
import com.absinthe.kage.R
import com.absinthe.kage.media.audio.LocalMusic
import com.absinthe.kage.media.audio.MusicHelper
import com.absinthe.kage.ui.media.MusicActivity
import com.blankj.utilcode.util.ConvertUtils
import com.bumptech.glide.Glide
import com.bumptech.glide.load.resource.bitmap.RoundedCorners
import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions
import com.bumptech.glide.request.RequestOptions
import com.drakeet.multitype.ItemViewBinder

class LocalMusicViewBinder : ItemViewBinder<LocalMusic, LocalMusicViewBinder.ViewHolder>() {

override fun onCreateViewHolder(inflater: LayoutInflater, parent: ViewGroup): ViewHolder {
val root = inflater.inflate(R.layout.item_music, parent, false)
return ViewHolder(root)
}

override fun onBindViewHolder(holder: ViewHolder, item: LocalMusic) {
holder.musicName.text = item.title
holder.artist.text = item.artist

Glide.with(holder.itemView.context)
.load(MusicHelper.getAlbumArt(item.albumId.toLong()))
.transition(DrawableTransitionOptions.withCrossFade())
.apply(RequestOptions.bitmapTransform(RoundedCorners(ConvertUtils.dp2px(3f))))
.placeholder(R.drawable.ic_album)
.into(holder.ivAlbum)

holder.itemView.setOnClickListener {
val intent = Intent(holder.itemView.context, MusicActivity::class.java).apply {
putExtra(MusicActivity.EXTRA_MUSIC_INFO, item)
putExtra(MusicActivity.EXTRA_DEVICE_TYPE, MusicActivity.TYPE_SENDER)
}
holder.itemView.context.startActivity(intent)
}
}

class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
val musicName: TextView = itemView.findViewById(R.id.tv_music_name)
val artist: TextView = itemView.findViewById(R.id.tv_artist)
val ivAlbum: ImageView = itemView.findViewById(R.id.iv_album)
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.absinthe.kage.adapter;
package com.absinthe.kage.viewholder;

import androidx.annotation.NonNull;
import android.graphics.Rect;
Expand Down

0 comments on commit 9eeafba

Please sign in to comment.