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
dad52724
Commit
dad52724
authored
Nov 02, 2019
by
Viktor De Pasquale
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Updated hide fragment with more robust filtering UI
parent
d48e9d5d
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
242 additions
and
40 deletions
+242
-40
HideFragment.kt
...n/java/com/topjohnwu/magisk/redesign/hide/HideFragment.kt
+7
-10
HideViewModel.kt
.../java/com/topjohnwu/magisk/redesign/hide/HideViewModel.kt
+36
-10
DataBindingAdapters.kt
...in/java/com/topjohnwu/magisk/utils/DataBindingAdapters.kt
+19
-0
ic_filter.xml
app/src/main/res/drawable/ic_filter.xml
+12
-0
ic_search_md2.xml
app/src/main/res/drawable/ic_search_md2.xml
+18
-0
ic_up_md2.xml
app/src/main/res/drawable/ic_up_md2.xml
+10
-0
fragment_hide_md2.xml
app/src/main/res/layout/fragment_hide_md2.xml
+138
-11
menu_hide_md2.xml
app/src/main/res/menu/menu_hide_md2.xml
+0
-9
strings_md2.xml
app/src/main/res/values/strings_md2.xml
+2
-0
No files found.
app/src/main/java/com/topjohnwu/magisk/redesign/hide/HideFragment.kt
View file @
dad52724
...
@@ -2,9 +2,8 @@ package com.topjohnwu.magisk.redesign.hide
...
@@ -2,9 +2,8 @@ package com.topjohnwu.magisk.redesign.hide
import
android.content.Context
import
android.content.Context
import
android.graphics.Insets
import
android.graphics.Insets
import
android.view.Menu
import
android.os.Bundle
import
android.view.MenuInflater
import
android.view.View
import
android.view.MenuItem
import
com.topjohnwu.magisk.R
import
com.topjohnwu.magisk.R
import
com.topjohnwu.magisk.databinding.FragmentHideMd2Binding
import
com.topjohnwu.magisk.databinding.FragmentHideMd2Binding
import
com.topjohnwu.magisk.redesign.compat.CompatFragment
import
com.topjohnwu.magisk.redesign.compat.CompatFragment
...
@@ -20,16 +19,14 @@ class HideFragment : CompatFragment<HideViewModel, FragmentHideMd2Binding>() {
...
@@ -20,16 +19,14 @@ class HideFragment : CompatFragment<HideViewModel, FragmentHideMd2Binding>() {
override
fun
onAttach
(
context
:
Context
)
{
override
fun
onAttach
(
context
:
Context
)
{
super
.
onAttach
(
context
)
super
.
onAttach
(
context
)
activity
.
setTitle
(
R
.
string
.
magiskhide
)
activity
.
setTitle
(
R
.
string
.
magiskhide
)
setHasOptionsMenu
(
true
)
}
}
override
fun
onCreateOptionsMenu
(
menu
:
Menu
,
inflater
:
MenuInflater
)
{
override
fun
onViewCreated
(
view
:
View
,
savedInstanceState
:
Bundle
?)
{
inflater
.
inflate
(
R
.
menu
.
menu_hide_md2
,
menu
)
super
.
onViewCreated
(
view
,
savedInstanceState
)
menu
.
findItem
(
R
.
id
.
action_show_system
)
?.
isChecked
=
viewModel
.
isShowSystem
}
override
fun
onOptionsItemSelected
(
item
:
MenuItem
):
Boolean
{
binding
.
hideActionScrollUp
.
setOnClickListener
{
return
viewModel
.
menuItemPressed
(
item
)
binding
.
hideScrollContainer
.
fullScroll
(
View
.
FOCUS_UP
)
}
}
}
}
}
\ No newline at end of file
app/src/main/java/com/topjohnwu/magisk/redesign/hide/HideViewModel.kt
View file @
dad52724
package
com.topjohnwu.magisk.redesign.hide
package
com.topjohnwu.magisk.redesign.hide
import
android.content.pm.ApplicationInfo
import
android.content.pm.ApplicationInfo
import
android.view.MenuItem
import
android.os.Handler
import
android.os.Looper
import
androidx.databinding.Bindable
import
com.topjohnwu.magisk.BR
import
com.topjohnwu.magisk.BR
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.databinding.ComparableRvItem
import
com.topjohnwu.magisk.extensions.subscribeK
import
com.topjohnwu.magisk.extensions.subscribeK
import
com.topjohnwu.magisk.extensions.toggle
import
com.topjohnwu.magisk.model.entity.HideAppInfo
import
com.topjohnwu.magisk.model.entity.HideAppInfo
import
com.topjohnwu.magisk.model.entity.HideTarget
import
com.topjohnwu.magisk.model.entity.HideTarget
import
com.topjohnwu.magisk.model.entity.ProcessHideApp
import
com.topjohnwu.magisk.model.entity.ProcessHideApp
...
@@ -19,18 +21,31 @@ import com.topjohnwu.magisk.utils.DiffObservableList
...
@@ -19,18 +21,31 @@ import com.topjohnwu.magisk.utils.DiffObservableList
import
com.topjohnwu.magisk.utils.FilterableDiffObservableList
import
com.topjohnwu.magisk.utils.FilterableDiffObservableList
import
com.topjohnwu.magisk.utils.KObservableField
import
com.topjohnwu.magisk.utils.KObservableField
import
com.topjohnwu.magisk.utils.currentLocale
import
com.topjohnwu.magisk.utils.currentLocale
import
io.reactivex.Single
import
io.reactivex.android.schedulers.AndroidSchedulers
class
HideViewModel
(
class
HideViewModel
(
private
val
magiskRepo
:
MagiskRepository
private
val
magiskRepo
:
MagiskRepository
)
:
CompatViewModel
()
{
)
:
CompatViewModel
()
{
private
val
queryHandler
=
Handler
(
Looper
.
getMainLooper
())
private
val
queryRunnable
=
Runnable
{
query
()
}
var
isShowSystem
=
false
var
isShowSystem
=
false
@Bindable
get
set
(
value
)
{
set
(
value
)
{
field
=
value
field
=
value
notifyPropertyChanged
(
BR
.
showSystem
)
query
()
query
()
}
}
val
query
=
KObservableField
(
""
)
var
query
=
""
@Bindable
get
set
(
value
)
{
field
=
value
notifyPropertyChanged
(
BR
.
query
)
submitQuery
()
}
val
items
=
filterableListOf
<
HideItem
>()
val
items
=
filterableListOf
<
HideItem
>()
val
itemBinding
=
itemBindingOf
<
HideItem
>
{
val
itemBinding
=
itemBindingOf
<
HideItem
>
{
it
.
bindExtra
(
BR
.
viewModel
,
this
)
it
.
bindExtra
(
BR
.
viewModel
,
this
)
...
@@ -39,6 +54,8 @@ class HideViewModel(
...
@@ -39,6 +54,8 @@ class HideViewModel(
it
.
bindExtra
(
BR
.
viewModel
,
this
)
it
.
bindExtra
(
BR
.
viewModel
,
this
)
}
}
val
isFilterExpanded
=
KObservableField
(
false
)
override
fun
refresh
()
=
magiskRepo
.
fetchApps
()
override
fun
refresh
()
=
magiskRepo
.
fetchApps
()
.
map
{
it
to
magiskRepo
.
fetchHideTargets
().
blockingGet
()
}
.
map
{
it
to
magiskRepo
.
fetchHideTargets
().
blockingGet
()
}
.
map
{
pair
->
pair
.
first
.
map
{
mergeAppTargets
(
it
,
pair
.
second
)
}
}
.
map
{
pair
->
pair
.
first
.
map
{
mergeAppTargets
(
it
,
pair
.
second
)
}
}
...
@@ -70,8 +87,13 @@ class HideViewModel(
...
@@ -70,8 +87,13 @@ class HideViewModel(
// ---
// ---
private
fun
submitQuery
()
{
queryHandler
.
removeCallbacks
(
queryRunnable
)
queryHandler
.
postDelayed
(
queryRunnable
,
1000
)
}
private
fun
query
(
private
fun
query
(
query
:
String
=
this
.
query
.
value
,
query
:
String
=
this
.
query
,
showSystem
:
Boolean
=
isShowSystem
showSystem
:
Boolean
=
isShowSystem
)
=
items
.
filter
{
)
=
items
.
filter
{
fun
filterSystem
():
Boolean
{
fun
filterSystem
():
Boolean
{
...
@@ -90,18 +112,22 @@ class HideViewModel(
...
@@ -90,18 +112,22 @@ class HideViewModel(
// ---
// ---
fun
menuItemPressed
(
menuItem
:
MenuItem
)
=
when
(
menuItem
.
itemId
)
{
R
.
id
.
action_show_system
->
isShowSystem
=
(!
menuItem
.
isChecked
)
.
also
{
menuItem
.
isChecked
=
it
}
else
->
null
}
?.
let
{
true
}
?:
false
fun
toggleItem
(
item
:
HideProcessItem
)
=
magiskRepo
fun
toggleItem
(
item
:
HideProcessItem
)
=
magiskRepo
.
toggleHide
(
item
.
isHidden
.
value
,
item
.
item
.
packageName
,
item
.
item
.
name
)
.
toggleHide
(
item
.
isHidden
.
value
,
item
.
item
.
packageName
,
item
.
item
.
name
)
// might wanna reorder the list to display the item at the top
// might wanna reorder the list to display the item at the top
.
subscribeK
()
.
subscribeK
()
.
add
()
.
add
()
fun
toggle
(
item
:
KObservableField
<
Boolean
>)
=
item
.
toggle
()
fun
resetQuery
()
{
query
=
""
}
fun
hideFilter
()
{
isFilterExpanded
.
value
=
false
}
}
}
inline
fun
<
T
:
ComparableRvItem
<
T
>
>
filterableListOf
(
inline
fun
<
T
:
ComparableRvItem
<
T
>
>
filterableListOf
(
...
...
app/src/main/java/com/topjohnwu/magisk/utils/DataBindingAdapters.kt
View file @
dad52724
...
@@ -15,6 +15,7 @@ import androidx.appcompat.widget.AppCompatImageView
...
@@ -15,6 +15,7 @@ import androidx.appcompat.widget.AppCompatImageView
import
androidx.appcompat.widget.Toolbar
import
androidx.appcompat.widget.Toolbar
import
androidx.core.animation.doOnEnd
import
androidx.core.animation.doOnEnd
import
androidx.core.view.*
import
androidx.core.view.*
import
androidx.core.widget.NestedScrollView
import
androidx.databinding.BindingAdapter
import
androidx.databinding.BindingAdapter
import
androidx.databinding.InverseBindingAdapter
import
androidx.databinding.InverseBindingAdapter
import
androidx.databinding.InverseBindingListener
import
androidx.databinding.InverseBindingListener
...
@@ -26,6 +27,7 @@ import androidx.recyclerview.widget.RecyclerView
...
@@ -26,6 +27,7 @@ import androidx.recyclerview.widget.RecyclerView
import
androidx.viewpager.widget.ViewPager
import
androidx.viewpager.widget.ViewPager
import
com.google.android.material.button.MaterialButton
import
com.google.android.material.button.MaterialButton
import
com.google.android.material.card.MaterialCardView
import
com.google.android.material.card.MaterialCardView
import
com.google.android.material.chip.Chip
import
com.google.android.material.floatingactionbutton.FloatingActionButton
import
com.google.android.material.floatingactionbutton.FloatingActionButton
import
com.google.android.material.navigation.NavigationView
import
com.google.android.material.navigation.NavigationView
import
com.google.android.material.textfield.TextInputLayout
import
com.google.android.material.textfield.TextInputLayout
...
@@ -411,3 +413,20 @@ fun Toolbar.setOnMenuClickListener(listener: Toolbar.OnMenuItemClickListener) {
...
@@ -411,3 +413,20 @@ fun Toolbar.setOnMenuClickListener(listener: Toolbar.OnMenuItemClickListener) {
fun
View
.
setTooltipTextCompat
(
text
:
String
)
{
fun
View
.
setTooltipTextCompat
(
text
:
String
)
{
ViewCompat
.
setTooltipText
(
this
,
text
)
ViewCompat
.
setTooltipText
(
this
,
text
)
}
}
@BindingAdapter
(
"onCloseClicked"
)
fun
Chip
.
setOnCloseClickedListenerBinding
(
listener
:
View
.
OnClickListener
)
{
setOnCloseIconClickListener
(
listener
)
}
@BindingAdapter
(
"onScrollStateChanged"
)
fun
NestedScrollView
.
setOnScrollStateChangeListener
(
listener
:
Runnable
)
{
setOnScrollChangeListener
{
_
:
NestedScrollView
?,
_
:
Int
,
_
:
Int
,
_
:
Int
,
_
:
Int
->
if
(!
handler
.
hasCallbacks
(
listener
))
{
listener
.
run
()
}
else
{
handler
.
removeCallbacksAndMessages
(
null
)
}
handler
.
postDelayed
(
listener
,
1000
)
}
}
\ No newline at end of file
app/src/main/res/drawable/ic_filter.xml
0 → 100644
View file @
dad52724
<?xml version="1.0" encoding="utf-8"?>
<vector
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:width=
"24dp"
android:height=
"24dp"
android:viewportWidth=
"24"
android:viewportHeight=
"24"
>
<path
android:fillColor=
"?colorOnSurface"
android:pathData=
"M6,13H18V11H6M3,6V8H21V6M10,18H14V16H10V18Z"
tools:fillColor=
"@android:color/black"
/>
</vector>
\ No newline at end of file
app/src/main/res/drawable/ic_search_md2.xml
0 → 100644
View file @
dad52724
<vector
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:width=
"24dp"
android:height=
"24dp"
android:viewportWidth=
"475.084"
android:viewportHeight=
"475.084"
>
<group
android:pivotX=
"237.542"
android:pivotY=
"237.542"
android:scaleX=
"0.8"
android:scaleY=
"0.8"
>
<path
android:fillColor=
"?colorOnSurface"
android:pathData=
"M464.524,412.846l-97.929,-97.925c23.6,-34.068 35.406,-72.047 35.406,-113.917c0,-27.218 -5.284,-53.249 -15.852,-78.087c-10.561,-24.842 -24.838,-46.254 -42.825,-64.241c-17.987,-17.987 -39.396,-32.264 -64.233,-42.826C254.246,5.285 228.217,0.003 200.999,0.003c-27.216,0 -53.247,5.282 -78.085,15.847C98.072,26.412 76.66,40.689 58.673,58.676c-17.989,17.987 -32.264,39.403 -42.827,64.241C5.282,147.758 0,173.786 0,201.004c0,27.216 5.282,53.238 15.846,78.083c10.562,24.838 24.838,46.247 42.827,64.234c17.987,17.993 39.403,32.264 64.241,42.832c24.841,10.563 50.869,15.844 78.085,15.844c41.879,0 79.852,-11.807 113.922,-35.405l97.929,97.641c6.852,7.231 15.406,10.849 25.693,10.849c9.897,0 18.467,-3.617 25.694,-10.849c7.23,-7.23 10.848,-15.796 10.848,-25.693C475.088,428.458 471.567,419.889 464.524,412.846zM291.363,291.358c-25.029,25.033 -55.148,37.549 -90.364,37.549c-35.21,0 -65.329,-12.519 -90.36,-37.549c-25.031,-25.029 -37.546,-55.144 -37.546,-90.36c0,-35.21 12.518,-65.334 37.546,-90.36c25.026,-25.032 55.15,-37.546 90.36,-37.546c35.212,0 65.331,12.519 90.364,37.546c25.033,25.026 37.548,55.15 37.548,90.36C328.911,236.214 316.392,266.329 291.363,291.358z"
tools:fillColor=
"@android:color/black"
/>
</group>
</vector>
app/src/main/res/drawable/ic_up_md2.xml
0 → 100644
View file @
dad52724
<?xml version="1.0" encoding="utf-8"?>
<vector
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:width=
"24dp"
android:height=
"24dp"
android:viewportWidth=
"24"
android:viewportHeight=
"24"
>
<path
android:fillColor=
"?colorOnSurface"
android:pathData=
"M16.59,9.42L12,4.83L7.41,9.42L6,8L12,2L18,8L16.59,9.42M16.59,15.42L12,10.83L7.41,15.42L6,14L12,8L18,14L16.59,15.42M16.59,21.42L12,16.83L7.41,21.42L6,20L12,14L18,20L16.59,21.42Z"
/>
</vector>
\ No newline at end of file
app/src/main/res/layout/fragment_hide_md2.xml
View file @
dad52724
...
@@ -17,22 +17,137 @@
...
@@ -17,22 +17,137 @@
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
android:layout_height=
"match_parent"
>
<androidx.core.widget.NestedScrollView
android:id=
"@+id/hide_scroll_container"
onScrollStateChanged=
"@{() -> viewModel.hideFilter()}"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:clipToPadding=
"false"
android:fillViewport=
"true"
android:paddingTop=
"@{viewModel.insets.top + (int) @dimen/internal_action_bar_size + (int) @dimen/l1}"
android:paddingBottom=
"@{viewModel.insets.bottom}"
tools:paddingTop=
"40dp"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
<com.google.android.material.card.MaterialCardView
style=
"?styleCardVariant"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"@dimen/l1"
android:layout_marginEnd=
"@dimen/l1"
>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<androidx.appcompat.widget.AppCompatImageView
android:id=
"@+id/hide_filter_icon"
style=
"?styleIconNormal"
android:onClick=
"@{() -> viewModel.toggle(viewModel.isFilterExpanded)}"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:srcCompat=
"@drawable/ic_filter"
/>
<com.google.android.material.chip.ChipGroup
android:id=
"@+id/hide_filter_chip_group"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:paddingStart=
"@dimen/l_50"
android:paddingEnd=
"0dp"
app:chipSpacing=
"2dp"
app:layout_constraintBottom_toBottomOf=
"@+id/hide_filter_barrier"
app:layout_constraintEnd_toStartOf=
"@+id/hide_filter_icon"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
>
<com.google.android.material.chip.Chip
style=
"@style/Widget.MaterialComponents.Chip.Filter"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:checked=
"@={viewModel.showSystem}"
android:text=
"@string/show_system_app"
android:textAppearance=
"?appearanceTextCaptionNormal"
/>
<com.google.android.material.chip.Chip
style=
"@style/Widget.MaterialComponents.Chip.Entry"
gone=
"@{viewModel.query.empty}"
onCloseClicked=
"@{() -> viewModel.resetQuery()}"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:checkable=
"false"
android:text=
"@{viewModel.query}"
android:textAppearance=
"?appearanceTextCaptionNormal"
/>
</com.google.android.material.chip.ChipGroup>
<androidx.constraintlayout.widget.Barrier
android:id=
"@+id/hide_filter_barrier"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
app:barrierDirection=
"bottom"
app:constraint_referenced_ids=
"hide_filter_icon,hide_filter_chip_group"
/>
<com.google.android.material.card.MaterialCardView
android:id=
"@+id/hide_filter_search"
style=
"?styleCardNormal"
goneUnless=
"@{viewModel.isFilterExpanded}"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_margin=
"@dimen/l1"
android:visibility=
"gone"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/hide_filter_barrier"
tools:visibility=
"visible"
>
<androidx.appcompat.widget.AppCompatImageView
style=
"?styleIconNormal"
app:srcCompat=
"@drawable/ic_search_md2"
app:tint=
"?colorDisabled"
/>
<androidx.appcompat.widget.AppCompatEditText
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"48dp"
android:background=
"@null"
android:hint=
"@string/hide_filter_hint"
android:inputType=
"textUri"
android:minHeight=
"48dp"
android:paddingStart=
"0dp"
android:paddingEnd=
"@dimen/l1"
android:singleLine=
"true"
android:text=
"@={viewModel.query}"
android:textAppearance=
"?appearanceTextBodyNormal"
/>
</com.google.android.material.card.MaterialCardView>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
<androidx.recyclerview.widget.RecyclerView
<androidx.recyclerview.widget.RecyclerView
dividerVertical=
"@{R.drawable.divider_l1}"
dividerVertical=
"@{R.drawable.divider_l1}"
invisibleUnless=
"@{viewModel.loaded || !viewModel.items.empty}"
invisibleUnless=
"@{viewModel.loaded || !viewModel.items.empty}"
itemBinding=
"@{viewModel.itemBinding}"
itemBinding=
"@{viewModel.itemBinding}"
items=
"@{viewModel.items}"
items=
"@{viewModel.items}"
nestedScrollingEnabled=
"@{false}"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
android:layout_marginTop=
"@dimen/l1"
android:clipToPadding=
"false"
android:clipToPadding=
"false"
android:orientation=
"vertical"
android:orientation=
"vertical"
android:paddingStart=
"@dimen/l1"
android:paddingStart=
"@dimen/l1"
android:paddingTop=
"@{viewModel.insets.top + (int) @dimen/internal_action_bar_size + (int) @dimen/l1}"
android:paddingEnd=
"@dimen/l1"
android:paddingEnd=
"@dimen/l1"
android:paddingBottom=
"@{viewModel.insets.bottom}"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem=
"@layout/item_hide_md2"
tools:listitem=
"@layout/item_hide_md2"
/>
tools:paddingTop=
"40dp"
/>
</LinearLayout>
</androidx.core.widget.NestedScrollView>
<LinearLayout
<LinearLayout
goneUnless=
"@{viewModel.loading && viewModel.items.empty}"
goneUnless=
"@{viewModel.loading && viewModel.items.empty}"
...
@@ -55,6 +170,18 @@
...
@@ -55,6 +170,18 @@
</LinearLayout>
</LinearLayout>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id=
"@+id/hide_action_scroll_up"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"bottom|end"
android:layout_marginEnd=
"@dimen/l1"
android:layout_marginBottom=
"@{viewModel.insets.bottom + (int) @dimen/l1}"
app:backgroundTint=
"?colorSurface"
app:srcCompat=
"@drawable/ic_up_md2"
app:tint=
"?colorOnSurface"
tools:layout_marginBottom=
"64dp"
/>
</FrameLayout>
</FrameLayout>
</layout>
</layout>
\ No newline at end of file
app/src/main/res/menu/menu_hide_md2.xml
deleted
100644 → 0
View file @
d48e9d5d
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
>
<item
android:id=
"@+id/action_show_system"
android:checkable=
"true"
android:title=
"@string/show_system_app"
app:showAsAction=
"never"
/>
</menu>
\ No newline at end of file
app/src/main/res/values/strings_md2.xml
View file @
dad52724
...
@@ -79,4 +79,6 @@
...
@@ -79,4 +79,6 @@
<string
name=
"superuser_toggle_notification"
>
Toggles “toast” notifications
</string>
<string
name=
"superuser_toggle_notification"
>
Toggles “toast” notifications
</string>
<string
name=
"superuser_toggle_revoke"
>
Revoke
</string>
<string
name=
"superuser_toggle_revoke"
>
Revoke
</string>
<string
name=
"hide_filter_hint"
>
Filter by name
</string>
</resources>
</resources>
\ No newline at end of file
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