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.swiperefreshlayout:swiperefreshlayout:1.1.0-alpha03'
implementation 'androidx.browser:browser:1.0.0'
implementation 'androidx.preference:preference:1.1.0'
implementation 'androidx.recyclerview:recyclerview:1.0.0'
implementation 'androidx.work:work-runtime:2.2.0'
@ -129,4 +130,5 @@ dependencies {
implementation 'androidx.multidex:multidex:2.0.1'
implementation 'androidx.core:core-ktx:1.1.0'
implementation 'com.google.android.material:material:1.1.0-beta01'
implementation 'com.karumi:dexter:6.0.0'
}

View File

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

View File

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

View File

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

View File

@ -7,7 +7,6 @@ import com.karumi.dexter.MultiplePermissionsReport
import com.karumi.dexter.PermissionToken
import com.karumi.dexter.listener.PermissionRequest
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.permissions.PermissionRequestBuilder
import io.reactivex.subjects.PublishSubject

View File

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

View File

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

View File

@ -14,6 +14,7 @@ import com.topjohnwu.magisk.R
import com.topjohnwu.magisk.databinding.ActivityMainMd2Binding
import com.topjohnwu.magisk.model.navigation.Navigation
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.ui.log.LogFragment
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 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 viewModel by viewModel<MainViewModel>()
override val navHostId: 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(
HomeFragment::class,
@ -39,6 +41,7 @@ open class MainActivity : CompatActivity<MainViewModel, ActivityMainMd2Binding>(
LogFragment::class,
SettingsFragment::class
)
//This temporarily fixes unwanted feature of BottomNavigationView - where the view applies
//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
@ -90,22 +93,16 @@ open class MainActivity : CompatActivity<MainViewModel, ActivityMainMd2Binding>(
}
override fun onTabTransaction(fragment: Fragment?, index: Int) {
super.onTabTransaction(fragment, index)
setDisplayHomeAsUpEnabled(false)
}
override fun onFragmentTransaction(
fragment: Fragment?,
transactionType: FragNavController.TransactionType
) {
super.onFragmentTransaction(fragment, transactionType)
when (transactionType) {
) = when (transactionType) {
FragNavController.TransactionType.PUSH -> setDisplayHomeAsUpEnabled(true)
else -> Unit //dunno might be useful
}
}
override fun peekSystemWindowInsets(insets: Insets) {
viewModel.insets.value = insets

View File

@ -3,17 +3,23 @@ package com.topjohnwu.magisk.redesign.compat
import android.os.Bundle
import android.view.View
import androidx.databinding.ViewDataBinding
import com.skoumal.teanity.viewevents.ViewEvent
import com.topjohnwu.magisk.ui.base.MagiskActivity
import androidx.fragment.app.Fragment
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> :
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 navigation: CompatNavigationDelegate<CompatActivity<ViewModel, Binding>>? by lazy {
CompatNavigationDelegate(this)
}
override val baseFragments = listOf<KClass<out Fragment>>()
private val delegate by lazy { CompatDelegate(this) }
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)
}

View File

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

View File

@ -3,11 +3,11 @@ package com.topjohnwu.magisk.redesign.compat
import android.os.Bundle
import android.view.View
import androidx.databinding.ViewDataBinding
import com.skoumal.teanity.viewevents.ViewEvent
import com.topjohnwu.magisk.ui.base.MagiskFragment
import com.topjohnwu.magisk.base.BaseFragment
import com.topjohnwu.magisk.model.events.ViewEvent
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 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 timber.log.Timber
class CompatNavigationDelegate<Source>(
class CompatNavigationDelegate<out Source>(
private val source: Source,
private val listener: FragNavController.TransactionListener? = null
) : FragNavController.RootFragmentListener where Source : CompatActivity<*, *>, Source : Navigator {
@ -33,7 +33,7 @@ class CompatNavigationDelegate<Source>(
fun onCreate(savedInstanceState: Bundle?) = controller.run {
rootFragmentListener = source
rootFragmentListener = this@CompatNavigationDelegate
transactionListener = listener
initialize(0, savedInstanceState)
}

View File

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

View File

@ -1,15 +1,14 @@
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.Info
import com.topjohnwu.magisk.R
import com.topjohnwu.magisk.data.repository.MagiskRepository
import com.topjohnwu.magisk.databinding.ComparableRvItem
import com.topjohnwu.magisk.extensions.packageName
import com.topjohnwu.magisk.extensions.replaceRandomWithSpecial
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.ManagerJson
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.redesign.compat.CompatViewModel
import com.topjohnwu.magisk.ui.home.MagiskState
import com.topjohnwu.magisk.utils.KObservableField
import me.tatarka.bindingcollectionadapter2.BR
import me.tatarka.bindingcollectionadapter2.ItemBinding
import me.tatarka.bindingcollectionadapter2.OnItemBind

View File

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