Added post-merge fixes

This commit is contained in:
Viktor De Pasquale 2019-10-16 17:53:35 +02:00
parent 6ccbc272c6
commit 974cb1167f
15 changed files with 42 additions and 37 deletions

View File

@ -122,6 +122,7 @@ dependencies {
implementation 'androidx.constraintlayout:constraintlayout:1.1.3' implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-alpha03' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-alpha03'
implementation 'androidx.browser:browser:1.0.0'
implementation 'androidx.preference:preference:1.1.0' implementation 'androidx.preference:preference:1.1.0'
implementation 'androidx.recyclerview:recyclerview:1.0.0' implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'androidx.work:work-runtime:2.2.0' implementation 'androidx.work:work-runtime:2.2.0'
@ -129,4 +130,5 @@ dependencies {
implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.multidex:multidex:2.0.1'
implementation 'androidx.core:core-ktx:1.1.0' implementation 'androidx.core:core-ktx:1.1.0'
implementation 'com.google.android.material:material:1.1.0-beta01' implementation 'com.google.android.material:material:1.1.0-beta01'
implementation 'com.karumi:dexter:6.0.0'
} }

View File

@ -56,8 +56,7 @@
<activity <activity
android:name="a.i" android:name="a.i"
android:exported="true" android:exported="true" />
android:theme="@style/Foundation.Default" />
<activity-alias <activity-alias
android:name="a.s" android:name="a.s"

View File

@ -1,8 +1,8 @@
package com.topjohnwu.magisk.model.entity.recycler package com.topjohnwu.magisk.model.entity.recycler
import com.skoumal.teanity.databinding.ComparableRvItem
import com.topjohnwu.magisk.Const import com.topjohnwu.magisk.Const
import com.topjohnwu.magisk.R import com.topjohnwu.magisk.R
import com.topjohnwu.magisk.databinding.ComparableRvItem
sealed class HomeItem : ComparableRvItem<HomeItem>() { sealed class HomeItem : ComparableRvItem<HomeItem>() {

View File

@ -6,7 +6,6 @@ import android.util.TypedValue
import androidx.annotation.AttrRes import androidx.annotation.AttrRes
import androidx.browser.customtabs.CustomTabsIntent import androidx.browser.customtabs.CustomTabsIntent
import androidx.core.net.toUri import androidx.core.net.toUri
import com.skoumal.teanity.viewevents.ViewEvent
import com.topjohnwu.magisk.R import com.topjohnwu.magisk.R
data class OpenInappLinkEvent( data class OpenInappLinkEvent(

View File

@ -7,7 +7,6 @@ import com.karumi.dexter.MultiplePermissionsReport
import com.karumi.dexter.PermissionToken import com.karumi.dexter.PermissionToken
import com.karumi.dexter.listener.PermissionRequest import com.karumi.dexter.listener.PermissionRequest
import com.karumi.dexter.listener.multi.MultiplePermissionsListener import com.karumi.dexter.listener.multi.MultiplePermissionsListener
import com.skoumal.teanity.viewevents.ViewEvent
import com.topjohnwu.magisk.model.entity.module.Repo import com.topjohnwu.magisk.model.entity.module.Repo
import com.topjohnwu.magisk.model.permissions.PermissionRequestBuilder import com.topjohnwu.magisk.model.permissions.PermissionRequestBuilder
import io.reactivex.subjects.PublishSubject import io.reactivex.subjects.PublishSubject

View File

@ -1,8 +1,8 @@
package com.topjohnwu.magisk.model.events.dialog package com.topjohnwu.magisk.model.events.dialog
import android.content.Context import android.content.Context
import com.skoumal.teanity.viewevents.ViewEvent
import com.topjohnwu.magisk.model.events.ContextExecutor import com.topjohnwu.magisk.model.events.ContextExecutor
import com.topjohnwu.magisk.model.events.ViewEvent
import com.topjohnwu.magisk.view.MagiskDialog import com.topjohnwu.magisk.view.MagiskDialog
abstract class DialogEvent : ViewEvent(), ContextExecutor { abstract class DialogEvent : ViewEvent(), ContextExecutor {

View File

@ -5,8 +5,8 @@ import androidx.annotation.AnimRes
import androidx.annotation.AnimatorRes import androidx.annotation.AnimatorRes
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import com.topjohnwu.magisk.model.events.ViewEvent
import com.topjohnwu.magisk.model.events.ActivityExecutor import com.topjohnwu.magisk.model.events.ActivityExecutor
import com.topjohnwu.magisk.model.events.ViewEvent
import com.topjohnwu.magisk.redesign.compat.CompatActivity import com.topjohnwu.magisk.redesign.compat.CompatActivity
import kotlin.reflect.KClass import kotlin.reflect.KClass
@ -25,7 +25,7 @@ class MagiskNavigationEvent(
override fun invoke(activity: AppCompatActivity) { override fun invoke(activity: AppCompatActivity) {
if (activity !is CompatActivity<*, *>) return if (activity !is CompatActivity<*, *>) return
activity.navigation.navigateTo(this) activity.navigation?.navigateTo(this)
} }
@NavigationDslMarker @NavigationDslMarker

View File

@ -14,6 +14,7 @@ import com.topjohnwu.magisk.R
import com.topjohnwu.magisk.databinding.ActivityMainMd2Binding import com.topjohnwu.magisk.databinding.ActivityMainMd2Binding
import com.topjohnwu.magisk.model.navigation.Navigation import com.topjohnwu.magisk.model.navigation.Navigation
import com.topjohnwu.magisk.redesign.compat.CompatActivity import com.topjohnwu.magisk.redesign.compat.CompatActivity
import com.topjohnwu.magisk.redesign.compat.CompatNavigationDelegate
import com.topjohnwu.magisk.redesign.home.HomeFragment import com.topjohnwu.magisk.redesign.home.HomeFragment
import com.topjohnwu.magisk.ui.log.LogFragment import com.topjohnwu.magisk.ui.log.LogFragment
import com.topjohnwu.magisk.ui.module.ModulesFragment import com.topjohnwu.magisk.ui.module.ModulesFragment
@ -24,13 +25,14 @@ import com.topjohnwu.superuser.Shell
import org.koin.androidx.viewmodel.ext.android.viewModel import org.koin.androidx.viewmodel.ext.android.viewModel
import kotlin.reflect.KClass import kotlin.reflect.KClass
open class MainActivity : CompatActivity<MainViewModel, ActivityMainMd2Binding>() { open class MainActivity : CompatActivity<MainViewModel, ActivityMainMd2Binding>(),
FragNavController.TransactionListener {
override val layoutRes = R.layout.activity_main_md2 override val layoutRes = R.layout.activity_main_md2
override val viewModel by viewModel<MainViewModel>() override val viewModel by viewModel<MainViewModel>()
override val navHostId: Int = R.id.main_nav_host
override val navHost: Int = R.id.main_nav_host override val navHost: Int = R.id.main_nav_host
override val defaultPosition: Int = 0
override val navigation by lazy { CompatNavigationDelegate(this, this) }
override val baseFragments: List<KClass<out Fragment>> = listOf( override val baseFragments: List<KClass<out Fragment>> = listOf(
HomeFragment::class, HomeFragment::class,
@ -39,6 +41,7 @@ open class MainActivity : CompatActivity<MainViewModel, ActivityMainMd2Binding>(
LogFragment::class, LogFragment::class,
SettingsFragment::class SettingsFragment::class
) )
//This temporarily fixes unwanted feature of BottomNavigationView - where the view applies //This temporarily fixes unwanted feature of BottomNavigationView - where the view applies
//padding on itself given insets are not consumed beforehand. Unfortunately the listener //padding on itself given insets are not consumed beforehand. Unfortunately the listener
//implementation doesn't favor us against the design library, so on re-create it's often given //implementation doesn't favor us against the design library, so on re-create it's often given
@ -90,22 +93,16 @@ open class MainActivity : CompatActivity<MainViewModel, ActivityMainMd2Binding>(
} }
override fun onTabTransaction(fragment: Fragment?, index: Int) { override fun onTabTransaction(fragment: Fragment?, index: Int) {
super.onTabTransaction(fragment, index)
setDisplayHomeAsUpEnabled(false) setDisplayHomeAsUpEnabled(false)
} }
override fun onFragmentTransaction( override fun onFragmentTransaction(
fragment: Fragment?, fragment: Fragment?,
transactionType: FragNavController.TransactionType transactionType: FragNavController.TransactionType
) { ) = when (transactionType) {
super.onFragmentTransaction(fragment, transactionType)
when (transactionType) {
FragNavController.TransactionType.PUSH -> setDisplayHomeAsUpEnabled(true) FragNavController.TransactionType.PUSH -> setDisplayHomeAsUpEnabled(true)
else -> Unit //dunno might be useful else -> Unit //dunno might be useful
} }
}
override fun peekSystemWindowInsets(insets: Insets) { override fun peekSystemWindowInsets(insets: Insets) {
viewModel.insets.value = insets viewModel.insets.value = insets

View File

@ -3,17 +3,23 @@ package com.topjohnwu.magisk.redesign.compat
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import androidx.databinding.ViewDataBinding import androidx.databinding.ViewDataBinding
import com.skoumal.teanity.viewevents.ViewEvent import androidx.fragment.app.Fragment
import com.topjohnwu.magisk.ui.base.MagiskActivity import com.topjohnwu.magisk.R
import com.topjohnwu.magisk.base.BaseActivity
import com.topjohnwu.magisk.model.events.ViewEvent
import com.topjohnwu.magisk.model.navigation.MagiskNavigationEvent
import com.topjohnwu.magisk.model.navigation.Navigator
import kotlin.reflect.KClass
abstract class CompatActivity<ViewModel : CompatViewModel, Binding : ViewDataBinding> : abstract class CompatActivity<ViewModel : CompatViewModel, Binding : ViewDataBinding> :
MagiskActivity<ViewModel, Binding>(), CompatView<ViewModel> { BaseActivity<ViewModel, Binding>(), CompatView<ViewModel>, Navigator {
override val themeRes = R.style.Foundation_Default
override val viewRoot: View get() = binding.root override val viewRoot: View get() = binding.root
override val navigation: CompatNavigationDelegate<CompatActivity<ViewModel, Binding>>? by lazy { override val navigation: CompatNavigationDelegate<CompatActivity<ViewModel, Binding>>? by lazy {
CompatNavigationDelegate(this) CompatNavigationDelegate(this)
} }
override val baseFragments = listOf<KClass<out Fragment>>()
private val delegate by lazy { CompatDelegate(this) } private val delegate by lazy { CompatDelegate(this) }
internal abstract val navHost: Int internal abstract val navHost: Int
@ -48,6 +54,9 @@ abstract class CompatActivity<ViewModel : CompatViewModel, Binding : ViewDataBin
} }
} }
@Deprecated("The event is self handled.")
override fun navigateTo(event: MagiskNavigationEvent) = Unit
protected fun ViewEvent.dispatchOnSelf() = onEventDispatched(this) protected fun ViewEvent.dispatchOnSelf() = onEventDispatched(this)
} }

View File

@ -5,10 +5,10 @@ import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsCompat
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import com.skoumal.teanity.viewevents.ViewEvent
import com.topjohnwu.magisk.model.events.ActivityExecutor import com.topjohnwu.magisk.model.events.ActivityExecutor
import com.topjohnwu.magisk.model.events.ContextExecutor import com.topjohnwu.magisk.model.events.ContextExecutor
import com.topjohnwu.magisk.model.events.FragmentExecutor import com.topjohnwu.magisk.model.events.FragmentExecutor
import com.topjohnwu.magisk.model.events.ViewEvent
import timber.log.Timber import timber.log.Timber
class CompatDelegate internal constructor( class CompatDelegate internal constructor(

View File

@ -3,11 +3,11 @@ package com.topjohnwu.magisk.redesign.compat
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
import androidx.databinding.ViewDataBinding import androidx.databinding.ViewDataBinding
import com.skoumal.teanity.viewevents.ViewEvent import com.topjohnwu.magisk.base.BaseFragment
import com.topjohnwu.magisk.ui.base.MagiskFragment import com.topjohnwu.magisk.model.events.ViewEvent
abstract class CompatFragment<ViewModel : CompatViewModel, Binding : ViewDataBinding> abstract class CompatFragment<ViewModel : CompatViewModel, Binding : ViewDataBinding>
: MagiskFragment<ViewModel, Binding>(), CompatView<ViewModel> { : BaseFragment<ViewModel, Binding>(), CompatView<ViewModel> {
override val viewRoot: View get() = binding.root override val viewRoot: View get() = binding.root
override val navigation by lazy { compatActivity.navigation } override val navigation by lazy { compatActivity.navigation }

View File

@ -10,7 +10,7 @@ import com.topjohnwu.magisk.model.navigation.MagiskNavigationEvent
import com.topjohnwu.magisk.model.navigation.Navigator import com.topjohnwu.magisk.model.navigation.Navigator
import timber.log.Timber import timber.log.Timber
class CompatNavigationDelegate<Source>( class CompatNavigationDelegate<out Source>(
private val source: Source, private val source: Source,
private val listener: FragNavController.TransactionListener? = null private val listener: FragNavController.TransactionListener? = null
) : FragNavController.RootFragmentListener where Source : CompatActivity<*, *>, Source : Navigator { ) : FragNavController.RootFragmentListener where Source : CompatActivity<*, *>, Source : Navigator {
@ -33,7 +33,7 @@ class CompatNavigationDelegate<Source>(
fun onCreate(savedInstanceState: Bundle?) = controller.run { fun onCreate(savedInstanceState: Bundle?) = controller.run {
rootFragmentListener = source rootFragmentListener = this@CompatNavigationDelegate
transactionListener = listener transactionListener = listener
initialize(0, savedInstanceState) initialize(0, savedInstanceState)
} }

View File

@ -3,11 +3,11 @@ package com.topjohnwu.magisk.redesign.compat
import android.graphics.Insets import android.graphics.Insets
import androidx.annotation.CallSuper import androidx.annotation.CallSuper
import androidx.databinding.Observable import androidx.databinding.Observable
import com.skoumal.teanity.util.KObservableField import com.topjohnwu.magisk.base.viewmodel.BaseViewModel
import com.topjohnwu.magisk.ui.base.MagiskViewModel import com.topjohnwu.magisk.utils.KObservableField
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
abstract class CompatViewModel : MagiskViewModel() { abstract class CompatViewModel : BaseViewModel() {
val insets = KObservableField(Insets.NONE) val insets = KObservableField(Insets.NONE)

View File

@ -1,15 +1,14 @@
package com.topjohnwu.magisk.redesign.home package com.topjohnwu.magisk.redesign.home
import com.skoumal.teanity.databinding.ComparableRvItem
import com.skoumal.teanity.extensions.subscribeK
import com.skoumal.teanity.util.KObservableField
import com.topjohnwu.magisk.BuildConfig import com.topjohnwu.magisk.BuildConfig
import com.topjohnwu.magisk.Info import com.topjohnwu.magisk.Info
import com.topjohnwu.magisk.R import com.topjohnwu.magisk.R
import com.topjohnwu.magisk.data.repository.MagiskRepository import com.topjohnwu.magisk.data.repository.MagiskRepository
import com.topjohnwu.magisk.databinding.ComparableRvItem
import com.topjohnwu.magisk.extensions.packageName import com.topjohnwu.magisk.extensions.packageName
import com.topjohnwu.magisk.extensions.replaceRandomWithSpecial import com.topjohnwu.magisk.extensions.replaceRandomWithSpecial
import com.topjohnwu.magisk.extensions.res import com.topjohnwu.magisk.extensions.res
import com.topjohnwu.magisk.extensions.subscribeK
import com.topjohnwu.magisk.model.entity.MagiskJson import com.topjohnwu.magisk.model.entity.MagiskJson
import com.topjohnwu.magisk.model.entity.ManagerJson import com.topjohnwu.magisk.model.entity.ManagerJson
import com.topjohnwu.magisk.model.entity.UpdateInfo import com.topjohnwu.magisk.model.entity.UpdateInfo
@ -20,6 +19,7 @@ import com.topjohnwu.magisk.model.events.dialog.ManagerInstallDialog
import com.topjohnwu.magisk.model.observer.Observer import com.topjohnwu.magisk.model.observer.Observer
import com.topjohnwu.magisk.redesign.compat.CompatViewModel import com.topjohnwu.magisk.redesign.compat.CompatViewModel
import com.topjohnwu.magisk.ui.home.MagiskState import com.topjohnwu.magisk.ui.home.MagiskState
import com.topjohnwu.magisk.utils.KObservableField
import me.tatarka.bindingcollectionadapter2.BR import me.tatarka.bindingcollectionadapter2.BR
import me.tatarka.bindingcollectionadapter2.ItemBinding import me.tatarka.bindingcollectionadapter2.ItemBinding
import me.tatarka.bindingcollectionadapter2.OnItemBind import me.tatarka.bindingcollectionadapter2.OnItemBind

View File

@ -12,10 +12,10 @@ import androidx.annotation.StringRes
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.databinding.DataBindingUtil import androidx.databinding.DataBindingUtil
import androidx.databinding.ViewDataBinding import androidx.databinding.ViewDataBinding
import com.skoumal.teanity.util.KObservableField
import com.topjohnwu.magisk.BR import com.topjohnwu.magisk.BR
import com.topjohnwu.magisk.R import com.topjohnwu.magisk.R
import com.topjohnwu.magisk.databinding.DialogMagiskBaseBinding import com.topjohnwu.magisk.databinding.DialogMagiskBaseBinding
import com.topjohnwu.magisk.utils.KObservableField
class MagiskDialog @JvmOverloads constructor( class MagiskDialog @JvmOverloads constructor(
context: Context, theme: Int = 0 context: Context, theme: Int = 0