Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
M
Magisk
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
Magisk
Commits
f191db2f
Commit
f191db2f
authored
Jul 08, 2020
by
topjohnwu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Allow ViewModel to opt-out RxJava
Transition period
parent
dc8f0f6f
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
23 additions
and
13 deletions
+23
-13
BaseViewModel.kt
...c/main/java/com/topjohnwu/magisk/ui/base/BaseViewModel.kt
+16
-4
HideViewModel.kt
...c/main/java/com/topjohnwu/magisk/ui/hide/HideViewModel.kt
+1
-1
HomeViewModel.kt
...c/main/java/com/topjohnwu/magisk/ui/home/HomeViewModel.kt
+1
-1
LogViewModel.kt
...src/main/java/com/topjohnwu/magisk/ui/log/LogViewModel.kt
+1
-1
ModuleViewModel.kt
...in/java/com/topjohnwu/magisk/ui/module/ModuleViewModel.kt
+3
-5
SuperuserViewModel.kt
...a/com/topjohnwu/magisk/ui/superuser/SuperuserViewModel.kt
+1
-1
No files found.
app/src/main/java/com/topjohnwu/magisk/ui/base/BaseViewModel.kt
View file @
f191db2f
...
...
@@ -21,11 +21,13 @@ import io.reactivex.*
import
io.reactivex.disposables.CompositeDisposable
import
io.reactivex.disposables.Disposable
import
io.reactivex.subjects.PublishSubject
import
kotlinx.coroutines.Job
import
org.koin.core.KoinComponent
import
androidx.databinding.Observable
as
BindingObservable
abstract
class
BaseViewModel
(
initialState
:
State
=
State
.
LOADING
initialState
:
State
=
State
.
LOADING
,
val
useRx
:
Boolean
=
true
)
:
ViewModel
(),
BindingObservable
,
KoinComponent
{
enum
class
State
{
...
...
@@ -49,6 +51,7 @@ abstract class BaseViewModel(
private
val
disposables
=
CompositeDisposable
()
private
val
_viewEvents
=
MutableLiveData
<
ViewEvent
>()
private
var
runningTask
:
Disposable
?
=
null
private
var
runningJob
:
Job
?
=
null
private
val
refreshCallback
=
object
:
androidx
.
databinding
.
Observable
.
OnPropertyChangedCallback
()
{
override
fun
onPropertyChanged
(
sender
:
androidx
.
databinding
.
Observable
?,
propertyId
:
Int
)
{
requestRefresh
()
...
...
@@ -62,13 +65,22 @@ abstract class BaseViewModel(
/** This should probably never be called manually, it's called manually via delegate. */
@Synchronized
fun
requestRefresh
()
{
if
(
useRx
)
{
if
(
runningTask
?.
isDisposed
?.
not
()
==
true
)
{
return
}
runningTask
=
refresh
()
runningTask
=
rxRefresh
()
return
}
if
(
runningJob
?.
isActive
==
true
)
{
return
}
runningJob
=
refresh
()
}
protected
open
fun
rxRefresh
():
Disposable
?
=
null
protected
open
fun
refresh
():
Disposable
?
=
null
protected
open
fun
refresh
():
Job
?
=
null
open
fun
notifyStateChanged
()
{
notifyPropertyChanged
(
BR
.
loading
)
...
...
app/src/main/java/com/topjohnwu/magisk/ui/hide/HideViewModel.kt
View file @
f191db2f
...
...
@@ -50,7 +50,7 @@ class HideViewModel(
val
isFilterExpanded
=
KObservableField
(
false
)
override
fun
refresh
()
=
magiskRepo
.
fetchApps
()
override
fun
r
xR
efresh
()
=
magiskRepo
.
fetchApps
()
.
map
{
it
to
magiskRepo
.
fetchHideTargets
().
blockingGet
()
}
.
map
{
pair
->
pair
.
first
.
map
{
mergeAppTargets
(
it
,
pair
.
second
)
}
}
.
flattenAsFlowable
{
it
}
...
...
app/src/main/java/com/topjohnwu/magisk/ui/home/HomeViewModel.kt
View file @
f191db2f
...
...
@@ -72,7 +72,7 @@ class HomeViewModel(
}
}
override
fun
refresh
()
=
repoMagisk
.
fetchUpdate
()
override
fun
r
xR
efresh
()
=
repoMagisk
.
fetchUpdate
()
.
onErrorReturn
{
null
}
.
subscribeK
{
it
?.
updateUI
()
}
...
...
app/src/main/java/com/topjohnwu/magisk/ui/log/LogViewModel.kt
View file @
f191db2f
...
...
@@ -42,7 +42,7 @@ class LogViewModel(
val
consoleText
=
KObservableField
(
" "
)
override
fun
refresh
():
Disposable
{
override
fun
r
xR
efresh
():
Disposable
{
val
logs
=
repo
.
fetchLogs
()
.
map
{
it
.
map
{
LogItem
(
it
)
}
}
.
observeOn
(
Schedulers
.
computation
())
...
...
app/src/main/java/com/topjohnwu/magisk/ui/module/ModuleViewModel.kt
View file @
f191db2f
...
...
@@ -24,7 +24,6 @@ import com.topjohnwu.magisk.model.events.dialog.ModuleInstallDialog
import
com.topjohnwu.magisk.ui.base.*
import
com.topjohnwu.magisk.utils.EndlessRecyclerScrollListener
import
com.topjohnwu.magisk.utils.KObservableField
import
io.reactivex.disposables.Disposable
import
kotlinx.coroutines.*
import
me.tatarka.bindingcollectionadapter2.collections.MergeObservableList
import
kotlin.math.roundToInt
...
...
@@ -47,7 +46,7 @@ class ModuleViewModel(
private
val
repoName
:
RepoByNameDao
,
private
val
repoUpdated
:
RepoByUpdatedDao
,
private
val
repoUpdater
:
RepoUpdater
)
:
BaseViewModel
(),
Queryable
{
)
:
BaseViewModel
(
useRx
=
false
),
Queryable
{
override
val
queryDelay
=
1000L
private
var
queryJob
:
Job
?
=
null
...
...
@@ -168,11 +167,10 @@ class ModuleViewModel(
// ---
override
fun
refresh
():
Disposable
?
{
override
fun
refresh
():
Job
{
if
(
itemsRemote
.
isEmpty
())
loadRemote
()
loadInstalled
()
return
null
return
loadInstalled
()
}
private
suspend
fun
loadUpdates
(
installed
:
List
<
ModuleItem
>)
=
withContext
(
Dispatchers
.
IO
)
{
...
...
app/src/main/java/com/topjohnwu/magisk/ui/superuser/SuperuserViewModel.kt
View file @
f191db2f
...
...
@@ -53,7 +53,7 @@ class SuperuserViewModel(
// ---
override
fun
refresh
()
=
db
.
fetchAll
()
override
fun
r
xR
efresh
()
=
db
.
fetchAll
()
.
flattenAsFlowable
{
it
}
.
parallel
()
.
map
{
PolicyItem
(
it
,
it
.
applicationInfo
.
loadIcon
(
packageManager
))
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment