mirror of
https://github.com/clangen/musikcube.git
synced 2025-03-29 19:20:28 +00:00
Stubbed out BrowseFragment. Will need to extract AlbumBrowseActivity and TrackListActivity into fragments. Ugh.
This commit is contained in:
parent
4e0555d13c
commit
6aae748205
@ -32,6 +32,10 @@
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="adjustResize" />
|
||||
|
||||
<activity android:name=".ui.browse.activity.BrowseActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="adjustResize" />
|
||||
|
||||
<activity android:name=".ui.category.activity.CategoryBrowseActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="adjustResize" />
|
||||
@ -71,7 +75,7 @@
|
||||
android:windowSoftInputMode="adjustResize" />
|
||||
|
||||
<activity
|
||||
android:name="io.casey.musikcube.remote.ui.category.activity.AllCategoriesActivity"
|
||||
android:name=".ui.category.activity.AllCategoriesActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="adjustResize" />
|
||||
|
||||
|
@ -2,6 +2,7 @@ package io.casey.musikcube.remote.injection
|
||||
|
||||
import dagger.Component
|
||||
import io.casey.musikcube.remote.ui.albums.activity.AlbumBrowseActivity
|
||||
import io.casey.musikcube.remote.ui.browse.activity.BrowseActivity
|
||||
import io.casey.musikcube.remote.ui.category.activity.AllCategoriesActivity
|
||||
import io.casey.musikcube.remote.ui.category.activity.CategoryBrowseActivity
|
||||
import io.casey.musikcube.remote.ui.category.fragment.CategoryBrowseFragment
|
||||
@ -25,6 +26,7 @@ interface ViewComponent {
|
||||
fun inject(activity: AlbumBrowseActivity)
|
||||
fun inject(activity: AllCategoriesActivity)
|
||||
fun inject(activity: BaseActivity)
|
||||
fun inject(activity: BrowseActivity)
|
||||
fun inject(activity: CategoryBrowseActivity)
|
||||
fun inject(activity: ConnectionsActivity)
|
||||
fun inject(activity: MainActivity)
|
||||
|
@ -83,7 +83,7 @@ class AlbumBrowseActivity : BaseActivity(), Filterable {
|
||||
}
|
||||
}
|
||||
|
||||
private fun initObservables() {
|
||||
private fun initObservables() =
|
||||
disposables.add(data.provider.observeState().subscribeBy(
|
||||
onNext = { state ->
|
||||
if (state.first == IDataProvider.State.Connected) {
|
||||
@ -95,23 +95,21 @@ class AlbumBrowseActivity : BaseActivity(), Filterable {
|
||||
},
|
||||
onError = {
|
||||
}))
|
||||
}
|
||||
|
||||
private fun requery() {
|
||||
disposables.add(
|
||||
data.provider.getAlbumsForCategory(categoryName, categoryId, lastFilter)
|
||||
.subscribeBy(
|
||||
onNext = { albumList ->
|
||||
adapter.setModel(albumList)
|
||||
emptyView.update(data.provider.state, adapter.itemCount)
|
||||
},
|
||||
onError = {
|
||||
}))
|
||||
}
|
||||
private fun requery() =
|
||||
@Suppress("unused")
|
||||
data.provider.getAlbumsForCategory(categoryName, categoryId, lastFilter)
|
||||
.subscribeBy(
|
||||
onNext = { albumList ->
|
||||
adapter.setModel(albumList)
|
||||
emptyView.update(data.provider.state, adapter.itemCount)
|
||||
},
|
||||
onError = {
|
||||
})
|
||||
|
||||
private val filterDebouncer = object : Debouncer<String>(350) {
|
||||
override fun onDebounced(last: String?) {
|
||||
if (!isPaused()) {
|
||||
if (!paused) {
|
||||
requery()
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,68 @@
|
||||
package io.casey.musikcube.remote.ui.browse.activity
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.support.design.widget.TabLayout
|
||||
import android.support.v4.view.ViewPager
|
||||
import io.casey.musikcube.remote.R
|
||||
import io.casey.musikcube.remote.ui.browse.adapter.BrowseFragmentAdapter
|
||||
import io.casey.musikcube.remote.ui.shared.activity.BaseActivity
|
||||
import io.casey.musikcube.remote.ui.shared.extension.findFragment
|
||||
import io.casey.musikcube.remote.ui.shared.fragment.TransportFragment
|
||||
|
||||
class BrowseActivity: BaseActivity() {
|
||||
private lateinit var transport: TransportFragment
|
||||
private lateinit var pager: ViewPager
|
||||
private lateinit var tabs: TabLayout
|
||||
private lateinit var adapter: BrowseFragmentAdapter
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
setContentView(R.layout.browse_activity)
|
||||
|
||||
adapter = BrowseFragmentAdapter(this, supportFragmentManager)
|
||||
pager = findViewById(R.id.view_pager)
|
||||
tabs = findViewById(R.id.tab_layout)
|
||||
tabs.setupWithViewPager(pager)
|
||||
pager.adapter = adapter
|
||||
|
||||
when (savedInstanceState == null) {
|
||||
true -> createFragments()
|
||||
else -> restoreFragments()
|
||||
}
|
||||
|
||||
transport.modelChangedListener = {
|
||||
// content.notifyTransportChanged()
|
||||
}
|
||||
}
|
||||
|
||||
// override fun onCreateOptionsMenu(menu: Menu): Boolean = content.createOptionsMenu(menu)
|
||||
// override fun setFilter(filter: String) = content.setFilter(filter)
|
||||
|
||||
private fun createFragments() {
|
||||
// content = CategoryBrowseFragment.create(intent)
|
||||
transport = TransportFragment.create()
|
||||
supportFragmentManager
|
||||
.beginTransaction()
|
||||
// .add(R.id.content_container, content, CategoryBrowseFragment.TAG)
|
||||
.add(R.id.transport_container, transport, TransportFragment.TAG)
|
||||
.commit()
|
||||
}
|
||||
|
||||
private fun restoreFragments() {
|
||||
transport = findFragment(TransportFragment.TAG)
|
||||
// content = findFragment(CategoryBrowseFragment.TAG)
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val EXTRA_INITIAL_CATEGORY_TYPE = "extra_initial_category_type"
|
||||
|
||||
fun getStartIntent(context: Context,
|
||||
initialCategoryType: String = ""): Intent =
|
||||
Intent(context, BrowseActivity::class.java).apply {
|
||||
putExtra(EXTRA_INITIAL_CATEGORY_TYPE, initialCategoryType)
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
package io.casey.musikcube.remote.ui.browse.adapter
|
||||
|
||||
import android.content.Context
|
||||
import android.support.v4.app.Fragment
|
||||
import android.support.v4.app.FragmentManager
|
||||
import android.support.v4.app.FragmentPagerAdapter
|
||||
import io.casey.musikcube.remote.ui.category.fragment.CategoryBrowseFragment
|
||||
|
||||
class BrowseFragmentAdapter(private val context: Context, fm: FragmentManager): FragmentPagerAdapter(fm) {
|
||||
override fun getItem(index: Int): Fragment {
|
||||
return CategoryBrowseFragment.create(
|
||||
CategoryBrowseFragment.arguments(context, "artist"))
|
||||
}
|
||||
|
||||
override fun getPageTitle(position: Int): CharSequence? {
|
||||
return "artist"
|
||||
}
|
||||
|
||||
override fun getCount(): Int {
|
||||
return 4
|
||||
}
|
||||
}
|
@ -20,6 +20,7 @@ import io.casey.musikcube.remote.service.websocket.Messages
|
||||
import io.casey.musikcube.remote.service.websocket.WebSocketService
|
||||
import io.casey.musikcube.remote.service.websocket.model.IDataProvider
|
||||
import io.casey.musikcube.remote.ui.albums.activity.AlbumBrowseActivity
|
||||
import io.casey.musikcube.remote.ui.browse.activity.BrowseActivity
|
||||
import io.casey.musikcube.remote.ui.category.activity.AllCategoriesActivity
|
||||
import io.casey.musikcube.remote.ui.category.activity.CategoryBrowseActivity
|
||||
import io.casey.musikcube.remote.ui.category.constant.NavigationType
|
||||
@ -171,7 +172,8 @@ class MainActivity : BaseActivity() {
|
||||
}
|
||||
|
||||
R.id.action_categories -> {
|
||||
startActivity(AllCategoriesActivity.getStartIntent(this))
|
||||
// startActivity(AllCategoriesActivity.getStartIntent(this))
|
||||
startActivity(BrowseActivity.getStartIntent(this))
|
||||
return true
|
||||
}
|
||||
|
||||
@ -520,7 +522,7 @@ class MainActivity : BaseActivity() {
|
||||
private fun runUpdateCheck() {
|
||||
if (!UpdateAvailableDialog.displayed) {
|
||||
updateCheck.run { required, version, url ->
|
||||
if (!isPaused() && required) {
|
||||
if (!paused && required) {
|
||||
val suppressed = prefs.getString(Prefs.Key.UPDATE_DIALOG_SUPPRESSED_VERSION, "")
|
||||
if (!UpdateAvailableDialog.displayed && suppressed != version) {
|
||||
val tag = UpdateAvailableDialog.TAG
|
||||
|
@ -30,9 +30,11 @@ abstract class BaseActivity : AppCompatActivity(), ViewModel.Provider, Runner.Ta
|
||||
|
||||
protected var disposables = CompositeDisposable()
|
||||
private set
|
||||
|
||||
|
||||
protected var paused = false
|
||||
private set
|
||||
|
||||
protected lateinit var prefs: SharedPreferences
|
||||
private var paused = false
|
||||
private val mixins = MixinSet()
|
||||
|
||||
protected val component: ViewComponent =
|
||||
@ -127,8 +129,6 @@ abstract class BaseActivity : AppCompatActivity(), ViewModel.Provider, Runner.Ta
|
||||
|
||||
protected open val transitionType = Transition.Horizontal
|
||||
|
||||
protected fun isPaused(): Boolean = paused
|
||||
|
||||
override fun <T: ViewModel<*>> createViewModel(): T? = null
|
||||
protected fun <T: ViewModel<*>> getViewModel(): T? = mixin(ViewModelMixin::class.java)?.get<T>() as T
|
||||
protected fun <T: IMixin> mixin(mixin: T): T = mixins.add(mixin)
|
||||
|
@ -185,7 +185,7 @@ class TrackListActivity : BaseActivity(), Filterable {
|
||||
|
||||
private val filterDebouncer = object : Debouncer<String>(350) {
|
||||
override fun onDebounced(last: String?) {
|
||||
if (!isPaused()) {
|
||||
if (!paused) {
|
||||
tracks.requery()
|
||||
}
|
||||
}
|
||||
|
25
src/musikdroid/app/src/main/res/layout/browse_activity.xml
Normal file
25
src/musikdroid/app/src/main/res/layout/browse_activity.xml
Normal file
@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<LinearLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<android.support.design.widget.TabLayout
|
||||
android:id="@+id/tab_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"/>
|
||||
|
||||
<android.support.v4.view.ViewPager
|
||||
android:id="@+id/view_pager"
|
||||
android:layout_weight="1"
|
||||
android:layout_height="0dp"
|
||||
android:layout_width="match_parent" />
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/transport_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:elevation="4dp"/>
|
||||
|
||||
</LinearLayout>
|
Loading…
x
Reference in New Issue
Block a user