1
0
mirror of https://github.com/AllanWang/Frost-for-Facebook.git synced 2024-09-19 23:21:34 +02:00

Inject tab items

This commit is contained in:
Allan Wang 2021-04-17 18:41:11 -07:00
parent 8b233b2629
commit 7a2026fb3f
No known key found for this signature in database
GPG Key ID: 69D90B885D405BDB
5 changed files with 33 additions and 19 deletions

View File

@ -85,7 +85,7 @@ class TabCustomizerActivity : BaseActivity() {
val remaining = FbItem.values().filter { it.name[0] != '_' }.toMutableList()
remaining.removeAll(tabs)
tabs.addAll(remaining)
adapter.set(tabs.map(::TabIItem))
adapter.set(tabs.map { TabIItem(it, themeProvider) })
bindSwapper(adapter, tabRecycler)

View File

@ -49,7 +49,6 @@ import kotlinx.coroutines.SupervisorJob
import kotlinx.coroutines.channels.ReceiveChannel
import kotlinx.coroutines.isActive
import kotlinx.coroutines.launch
import org.koin.android.ext.android.inject
import javax.inject.Inject
import kotlin.coroutines.CoroutineContext
@ -90,11 +89,17 @@ abstract class BaseFragment :
}
@Inject
lateinit var mainContract: MainActivityContract
protected lateinit var mainContract: MainActivityContract
@Inject
protected lateinit var fbCookie: FbCookie
@Inject
protected lateinit var prefs: Prefs
@Inject
protected lateinit var themeProvider: ThemeProvider
protected val fbCookie: FbCookie by inject()
protected val prefs: Prefs by inject()
protected val themeProvider: ThemeProvider by inject()
open lateinit var job: Job
override val coroutineContext: CoroutineContext
get() = ContextHelper.dispatcher + job

View File

@ -30,24 +30,23 @@ import com.mikepenz.fastadapter.drag.IDraggable
import com.pitchedapps.frost.R
import com.pitchedapps.frost.facebook.FbItem
import com.pitchedapps.frost.injectors.ThemeProvider
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject
/**
* Created by Allan Wang on 26/11/17.
*/
class TabIItem(val item: FbItem) :
class TabIItem(val item: FbItem, private val themeProvider: ThemeProvider) :
KauIItem<TabIItem.ViewHolder>(
R.layout.iitem_tab_preview,
{ ViewHolder(it) }
{ ViewHolder(it, themeProvider) }
),
IDraggable {
override val isDraggable: Boolean = true
class ViewHolder(itemView: View) : FastAdapter.ViewHolder<TabIItem>(itemView), KoinComponent {
private val themeProvider: ThemeProvider by inject()
class ViewHolder(
itemView: View,
private val themeProvider: ThemeProvider
) : FastAdapter.ViewHolder<TabIItem>(itemView) {
val image: ImageView by bindView(R.id.image)
val text: TextView by bindView(R.id.text)

View File

@ -21,17 +21,20 @@ import android.content.Context
import android.content.Intent
import com.pitchedapps.frost.prefs.Prefs
import com.pitchedapps.frost.utils.L
import dagger.hilt.android.AndroidEntryPoint
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject
import javax.inject.Inject
/**
* Created by Allan Wang on 2017-05-31.
*
* Receiver that is triggered whenever the app updates so it can bind the notifications again
*/
@AndroidEntryPoint
class UpdateReceiver : BroadcastReceiver(), KoinComponent {
private val prefs: Prefs by inject()
@Inject
lateinit var prefs: Prefs
override fun onReceive(context: Context, intent: Intent) {
if (intent.action != Intent.ACTION_MY_PACKAGE_REPLACED) return

View File

@ -48,12 +48,14 @@ import com.pitchedapps.frost.injectors.ThemeProvider
import com.pitchedapps.frost.prefs.Prefs
import com.pitchedapps.frost.utils.L
import com.pitchedapps.frost.utils.frostDownload
import dagger.hilt.android.AndroidEntryPoint
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject
import javax.inject.Inject
/**
* Created by Allan Wang on 2017-10-13.
*/
@AndroidEntryPoint
class FrostVideoViewer @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
@ -88,9 +90,14 @@ class FrostVideoViewer @JvmOverloads constructor(
}
}
private val prefs: Prefs by inject()
private val themeProvider: ThemeProvider by inject()
private val cookieDao: CookieDao by inject()
@Inject
lateinit var prefs: Prefs
@Inject
lateinit var themeProvider: ThemeProvider
@Inject
lateinit var cookieDao: CookieDao
private val binding: ViewVideoBinding =
ViewVideoBinding.inflate(LayoutInflater.from(context), this, true)