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
076e5cea
Commit
076e5cea
authored
May 23, 2019
by
Viktor De Pasquale
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixed selection not persisting throughout root requests
parent
8515971c
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
24 additions
and
17 deletions
+24
-17
SuRequestActivity.kt
...va/com/topjohnwu/magisk/ui/surequest/SuRequestActivity.kt
+1
-1
SuRequestViewModel.kt
...a/com/topjohnwu/magisk/ui/surequest/SuRequestViewModel.kt
+18
-6
DataBindingAdapters.kt
...in/java/com/topjohnwu/magisk/utils/DataBindingAdapters.kt
+3
-5
activity_request.xml
app/src/main/res/layout/activity_request.xml
+2
-5
No files found.
app/src/main/java/com/topjohnwu/magisk/ui/surequest/SuRequestActivity.kt
View file @
076e5cea
...
@@ -33,7 +33,7 @@ open class SuRequestActivity : MagiskActivity<SuRequestViewModel, ActivityReques
...
@@ -33,7 +33,7 @@ open class SuRequestActivity : MagiskActivity<SuRequestViewModel, ActivityReques
val
action
=
intent
.
action
val
action
=
intent
.
action
if
(
TextUtils
.
equals
(
action
,
GeneralReceiver
.
REQUEST
))
{
if
(
TextUtils
.
equals
(
action
,
GeneralReceiver
.
REQUEST
))
{
if
(!
viewModel
.
handleRequest
(
intent
)
{}
)
if
(!
viewModel
.
handleRequest
(
intent
))
finish
()
finish
()
return
return
}
}
...
...
app/src/main/java/com/topjohnwu/magisk/ui/surequest/SuRequestViewModel.kt
View file @
076e5cea
...
@@ -10,6 +10,7 @@ import android.hardware.fingerprint.FingerprintManager
...
@@ -10,6 +10,7 @@ import android.hardware.fingerprint.FingerprintManager
import
android.os.CountDownTimer
import
android.os.CountDownTimer
import
android.text.TextUtils
import
android.text.TextUtils
import
com.skoumal.teanity.databinding.ComparableRvItem
import
com.skoumal.teanity.databinding.ComparableRvItem
import
com.skoumal.teanity.extensions.addOnPropertyChangedCallback
import
com.skoumal.teanity.util.DiffObservableList
import
com.skoumal.teanity.util.DiffObservableList
import
com.skoumal.teanity.util.KObservableField
import
com.skoumal.teanity.util.KObservableField
import
com.topjohnwu.magisk.BuildConfig
import
com.topjohnwu.magisk.BuildConfig
...
@@ -25,7 +26,9 @@ import com.topjohnwu.magisk.ui.base.MagiskViewModel
...
@@ -25,7 +26,9 @@ import com.topjohnwu.magisk.ui.base.MagiskViewModel
import
com.topjohnwu.magisk.utils.FingerprintHelper
import
com.topjohnwu.magisk.utils.FingerprintHelper
import
com.topjohnwu.magisk.utils.SuConnector
import
com.topjohnwu.magisk.utils.SuConnector
import
com.topjohnwu.magisk.utils.now
import
com.topjohnwu.magisk.utils.now
import
me.tatarka.bindingcollectionadapter2.BindingListViewAdapter
import
me.tatarka.bindingcollectionadapter2.ItemBinding
import
me.tatarka.bindingcollectionadapter2.ItemBinding
import
timber.log.Timber
import
java.io.IOException
import
java.io.IOException
import
java.util.concurrent.TimeUnit.*
import
java.util.concurrent.TimeUnit.*
...
@@ -46,11 +49,16 @@ class SuRequestViewModel(
...
@@ -46,11 +49,16 @@ class SuRequestViewModel(
val
canUseFingerprint
=
KObservableField
(
FingerprintHelper
.
useFingerprint
())
val
canUseFingerprint
=
KObservableField
(
FingerprintHelper
.
useFingerprint
())
val
selectedItemPosition
=
KObservableField
(
0
)
val
selectedItemPosition
=
KObservableField
(
0
)
val
items
=
DiffObservableList
(
ComparableRvItem
.
callback
)
private
val
items
=
DiffObservableList
(
ComparableRvItem
.
callback
)
val
itemBinding
=
ItemBinding
.
of
<
ComparableRvItem
<*>>
{
binding
,
_
,
item
->
private
val
itemBinding
=
ItemBinding
.
of
<
ComparableRvItem
<*>>
{
binding
,
_
,
item
->
item
.
bind
(
binding
)
item
.
bind
(
binding
)
}
}
val
adapter
=
BindingListViewAdapter
<
ComparableRvItem
<*>>(
1
).
apply
{
itemBinding
=
this
@SuRequestViewModel
.
itemBinding
setItems
(
items
)
}
var
handler
:
ActionHandler
?
=
null
var
handler
:
ActionHandler
?
=
null
private
var
timer
:
CountDownTimer
?
=
null
private
var
timer
:
CountDownTimer
?
=
null
...
@@ -64,6 +72,10 @@ class SuRequestViewModel(
...
@@ -64,6 +72,10 @@ class SuRequestViewModel(
resources
.
getStringArray
(
R
.
array
.
allow_timeout
)
resources
.
getStringArray
(
R
.
array
.
allow_timeout
)
.
map
{
SpinnerRvItem
(
it
)
}
.
map
{
SpinnerRvItem
(
it
)
}
.
let
{
items
.
update
(
it
)
}
.
let
{
items
.
update
(
it
)
}
selectedItemPosition
.
addOnPropertyChangedCallback
{
Timber
.
e
(
"Changed position to $it"
)
}
}
}
private
fun
updatePolicy
(
policy
:
MagiskPolicy
?)
{
private
fun
updatePolicy
(
policy
:
MagiskPolicy
?)
{
...
@@ -96,7 +108,7 @@ class SuRequestViewModel(
...
@@ -96,7 +108,7 @@ class SuRequestViewModel(
return
false
return
false
}
}
fun
handleRequest
(
intent
:
Intent
,
createUICallback
:
()
->
Unit
):
Boolean
{
fun
handleRequest
(
intent
:
Intent
):
Boolean
{
val
socketName
=
intent
.
getStringExtra
(
"socket"
)
?:
return
false
val
socketName
=
intent
.
getStringExtra
(
"socket"
)
?:
return
false
val
connector
:
SuConnector
val
connector
:
SuConnector
...
@@ -126,9 +138,10 @@ class SuRequestViewModel(
...
@@ -126,9 +138,10 @@ class SuRequestViewModel(
done
()
done
()
}
}
@SuppressLint
(
"ApplySharedPref"
)
override
fun
handleAction
(
action
:
Int
)
{
override
fun
handleAction
(
action
:
Int
)
{
val
pos
=
selectedItemPosition
.
value
val
pos
=
selectedItemPosition
.
value
timeoutPrefs
.
edit
().
putInt
(
policy
?.
packageName
,
pos
).
apply
()
timeoutPrefs
.
edit
().
putInt
(
policy
?.
packageName
,
pos
).
commit
()
handleAction
(
action
,
Config
.
Value
.
TIMEOUT_LIST
[
pos
])
handleAction
(
action
,
Config
.
Value
.
TIMEOUT_LIST
[
pos
])
}
}
...
@@ -160,7 +173,7 @@ class SuRequestViewModel(
...
@@ -160,7 +173,7 @@ class SuRequestViewModel(
return
true
return
true
}
}
when
(
Config
.
get
<
Any
>(
Config
.
Key
.
SU_AUTO_RESPONSE
)
as
Int
)
{
when
(
Config
.
get
<
Int
>(
Config
.
Key
.
SU_AUTO_RESPONSE
)
)
{
Config
.
Value
.
SU_AUTO_DENY
->
{
Config
.
Value
.
SU_AUTO_DENY
->
{
handler
?.
handleAction
(
Policy
.
DENY
,
0
)
handler
?.
handleAction
(
Policy
.
DENY
,
0
)
return
true
return
true
...
@@ -171,7 +184,6 @@ class SuRequestViewModel(
...
@@ -171,7 +184,6 @@ class SuRequestViewModel(
}
}
}
}
createUICallback
()
showUI
()
showUI
()
return
true
return
true
}
}
...
...
app/src/main/java/com/topjohnwu/magisk/utils/DataBindingAdapters.kt
View file @
076e5cea
package
com.topjohnwu.magisk.utils
package
com.topjohnwu.magisk.utils
import
android.view.View
import
android.view.View
import
android.widget.AdapterView
import
android.widget.Spinner
import
android.widget.TextView
import
android.widget.TextView
import
androidx.annotation.ColorInt
import
androidx.annotation.ColorInt
import
androidx.annotation.DrawableRes
import
androidx.annotation.DrawableRes
...
@@ -115,7 +113,7 @@ fun setMovieBehavior(view: TextView, isMovieBehavior: Boolean, text: String) {
...
@@ -115,7 +113,7 @@ fun setMovieBehavior(view: TextView, isMovieBehavior: Boolean, text: String) {
}
}
}
}
@BindingAdapter
(
"android:selectedItemPosition"
)
/*@BindingAdapter("selection"*//*, "selectionAttrChanged", "adapter"*//*
)
fun setSelectedItemPosition(view: Spinner, position: Int) {
fun setSelectedItemPosition(view: Spinner, position: Int) {
view.setSelection(position)
view.setSelection(position)
}
}
...
@@ -126,7 +124,7 @@ fun setSelectedItemPosition(view: Spinner, position: Int) {
...
@@ -126,7 +124,7 @@ fun setSelectedItemPosition(view: Spinner, position: Int) {
)
)
fun getSelectedItemPosition(view: Spinner) = view.selectedItemPosition
fun getSelectedItemPosition(view: Spinner) = view.selectedItemPosition
@BindingAdapter
(
"
android:
selectedItemPositionAttrChanged"
)
@BindingAdapter("selectedItemPositionAttrChanged")
fun setSelectedItemPositionListener(view: Spinner, listener: InverseBindingListener) {
fun setSelectedItemPositionListener(view: Spinner, listener: InverseBindingListener) {
view.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
view.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onNothingSelected(p0: AdapterView<*>?) {
override fun onNothingSelected(p0: AdapterView<*>?) {
...
@@ -137,7 +135,7 @@ fun setSelectedItemPositionListener(view: Spinner, listener: InverseBindingListe
...
@@ -137,7 +135,7 @@ fun setSelectedItemPositionListener(view: Spinner, listener: InverseBindingListe
listener.onChange()
listener.onChange()
}
}
}
}
}
}
*/
@BindingAdapter
(
"onTouch"
)
@BindingAdapter
(
"onTouch"
)
fun
setOnTouchListener
(
view
:
View
,
listener
:
View
.
OnTouchListener
)
{
fun
setOnTouchListener
(
view
:
View
,
listener
:
View
.
OnTouchListener
)
{
...
...
app/src/main/res/layout/activity_request.xml
View file @
076e5cea
...
@@ -89,15 +89,12 @@
...
@@ -89,15 +89,12 @@
<androidx.appcompat.widget.AppCompatSpinner
<androidx.appcompat.widget.AppCompatSpinner
android:id=
"@+id/timeout"
android:id=
"@+id/timeout"
itemBinding=
"@{viewModel.itemBinding}"
items=
"@{viewModel.items}"
onTouch=
"@{() -> viewModel.spinnerTouched()}"
onTouch=
"@{() -> viewModel.spinnerTouched()}"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_horizontal"
android:layout_gravity=
"center_horizontal"
android:selectedItemPosition=
"@={viewModel.selectedItemPosition}"
/>
android:adapter=
"@{viewModel.adapter}"
itemDropDownLayout="@{android.R.layout.simple_spinner_dropdown_item}"
android:selection=
"@={viewModel.selectedItemPosition}"
/>
android:onClick="@{() -> viewModel.spinnerPressed()}"
<androidx.appcompat.widget.AppCompatTextView
<androidx.appcompat.widget.AppCompatTextView
android:id=
"@+id/warning"
android:id=
"@+id/warning"
...
...
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