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
658d74e0
Commit
658d74e0
authored
Jan 24, 2021
by
topjohnwu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update home fragment
parent
5113f6d3
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
53 additions
and
112 deletions
+53
-112
Info.kt
app/src/main/java/com/topjohnwu/magisk/core/Info.kt
+3
-7
HomeFragment.kt
...rc/main/java/com/topjohnwu/magisk/ui/home/HomeFragment.kt
+11
-8
HomeViewModel.kt
...c/main/java/com/topjohnwu/magisk/ui/home/HomeViewModel.kt
+24
-45
TransitiveText.kt
...rc/main/java/com/topjohnwu/magisk/utils/TransitiveText.kt
+3
-4
fragment_home_md2.xml
app/src/main/res/layout/fragment_home_md2.xml
+2
-2
include_home_magisk.xml
app/src/main/res/layout/include_home_magisk.xml
+6
-42
include_home_manager.xml
app/src/main/res/layout/include_home_manager.xml
+4
-4
No files found.
app/src/main/java/com/topjohnwu/magisk/core/Info.kt
View file @
658d74e0
...
@@ -6,7 +6,6 @@ import com.topjohnwu.magisk.core.model.UpdateInfo
...
@@ -6,7 +6,6 @@ import com.topjohnwu.magisk.core.model.UpdateInfo
import
com.topjohnwu.magisk.core.utils.net.NetworkObserver
import
com.topjohnwu.magisk.core.utils.net.NetworkObserver
import
com.topjohnwu.magisk.ktx.get
import
com.topjohnwu.magisk.ktx.get
import
com.topjohnwu.magisk.ktx.getProperty
import
com.topjohnwu.magisk.ktx.getProperty
import
com.topjohnwu.magisk.utils.CachedValue
import
com.topjohnwu.superuser.Shell
import
com.topjohnwu.superuser.Shell
import
com.topjohnwu.superuser.ShellUtils.fastCmd
import
com.topjohnwu.superuser.ShellUtils.fastCmd
import
com.topjohnwu.superuser.internal.UiThreadHandler
import
com.topjohnwu.superuser.internal.UiThreadHandler
...
@@ -18,10 +17,6 @@ val isRunningAsStub get() = Info.stub != null
...
@@ -18,10 +17,6 @@ val isRunningAsStub get() = Info.stub != null
object
Info
{
object
Info
{
val
envRef
=
CachedValue
{
loadState
()
}
@JvmStatic
val
env
by
envRef
var
stub
:
DynAPK
.
Data
?
=
null
var
stub
:
DynAPK
.
Data
?
=
null
val
stubChk
:
DynAPK
.
Data
val
stubChk
:
DynAPK
.
Data
get
()
=
stub
as
DynAPK
.
Data
get
()
=
stub
as
DynAPK
.
Data
...
@@ -29,15 +24,16 @@ object Info {
...
@@ -29,15 +24,16 @@ object Info {
var
remote
=
UpdateInfo
()
var
remote
=
UpdateInfo
()
// Device state
// Device state
var
crypto
=
""
@JvmStatic
val
env
by
lazy
{
loadState
()
}
@JvmField
var
isSAR
=
false
@JvmField
var
isSAR
=
false
@JvmField
var
isAB
=
false
@JvmField
var
isAB
=
false
@JvmStatic
val
isFDE
get
()
=
crypto
==
"block"
@JvmStatic
val
isFDE
get
()
=
crypto
==
"block"
@JvmField
var
ramdisk
=
false
@JvmField
var
ramdisk
=
false
@JvmField
var
hasGMS
=
true
@JvmField
var
hasGMS
=
true
@JvmField
var
isPixel
=
false
@JvmField
var
isPixel
=
false
@JvmStatic
val
cryptoText
get
()=
crypto
.
capitalize
(
Locale
.
US
)
@JvmStatic
val
cryptoText
get
()
=
crypto
.
capitalize
(
Locale
.
US
)
@JvmField
val
isEmulator
=
getProperty
(
"ro.kernel.qemu"
,
"0"
)
==
"1"
@JvmField
val
isEmulator
=
getProperty
(
"ro.kernel.qemu"
,
"0"
)
==
"1"
var
crypto
=
""
val
isConnected
by
lazy
{
val
isConnected
by
lazy
{
ObservableBoolean
(
false
).
also
{
field
->
ObservableBoolean
(
false
).
also
{
field
->
...
...
app/src/main/java/com/topjohnwu/magisk/ui/home/HomeFragment.kt
View file @
658d74e0
...
@@ -26,14 +26,14 @@ class HomeFragment : BaseUIFragment<HomeViewModel, FragmentHomeMd2Binding>() {
...
@@ -26,14 +26,14 @@ class HomeFragment : BaseUIFragment<HomeViewModel, FragmentHomeMd2Binding>() {
inflater
:
LayoutInflater
,
inflater
:
LayoutInflater
,
container
:
ViewGroup
?,
container
:
ViewGroup
?,
savedInstanceState
:
Bundle
?
savedInstanceState
:
Bundle
?
):
View
?
{
):
View
{
super
.
onCreateView
(
inflater
,
container
,
savedInstanceState
)
super
.
onCreateView
(
inflater
,
container
,
savedInstanceState
)
// Set barrier reference IDs in code, since resource IDs will be stripped in release mode
// Set barrier reference IDs in code, since resource IDs will be stripped in release mode
binding
.
homeMagiskWrapper
.
homeMagiskTitleBarrier
.
referencedIds
=
binding
.
homeMagiskWrapper
.
homeMagiskTitleBarrier
.
referencedIds
=
intArrayOf
(
R
.
id
.
home_magisk_button
,
R
.
id
.
home_magisk_title
,
R
.
id
.
home_magisk_icon
)
intArrayOf
(
R
.
id
.
home_magisk_button
,
R
.
id
.
home_magisk_title
,
R
.
id
.
home_magisk_icon
)
binding
.
homeMagiskWrapper
.
homeMagiskBarrier
.
referencedIds
=
binding
.
homeMagiskWrapper
.
homeMagiskBarrier
.
referencedIds
=
intArrayOf
(
R
.
id
.
home_magisk_
latest_version
,
R
.
id
.
home_magisk_installed_version
)
intArrayOf
(
R
.
id
.
home_magisk_
installed_version
,
R
.
id
.
home_device_details_ramdisk
)
binding
.
homeManagerWrapper
.
homeManagerTitleBarrier
.
referencedIds
=
binding
.
homeManagerWrapper
.
homeManagerTitleBarrier
.
referencedIds
=
intArrayOf
(
R
.
id
.
home_manager_button
,
R
.
id
.
home_manager_title
,
R
.
id
.
home_manager_icon
)
intArrayOf
(
R
.
id
.
home_manager_button
,
R
.
id
.
home_manager_title
,
R
.
id
.
home_manager_icon
)
...
@@ -46,11 +46,14 @@ class HomeFragment : BaseUIFragment<HomeViewModel, FragmentHomeMd2Binding>() {
...
@@ -46,11 +46,14 @@ class HomeFragment : BaseUIFragment<HomeViewModel, FragmentHomeMd2Binding>() {
menu
.
removeItem
(
R
.
id
.
action_reboot
)
menu
.
removeItem
(
R
.
id
.
action_reboot
)
}
}
override
fun
onOptionsItemSelected
(
item
:
MenuItem
)
=
when
(
item
.
itemId
)
{
override
fun
onOptionsItemSelected
(
item
:
MenuItem
):
Boolean
{
R
.
id
.
action_settings
->
HomeFragmentDirections
.
actionHomeFragmentToSettingsFragment
()
when
(
item
.
itemId
)
{
.
navigate
()
R
.
id
.
action_settings
->
R
.
id
.
action_reboot
->
RebootEvent
.
inflateMenu
(
activity
).
show
()
HomeFragmentDirections
.
actionHomeFragmentToSettingsFragment
().
navigate
()
else
->
null
R
.
id
.
action_reboot
->
RebootEvent
.
inflateMenu
(
activity
).
show
()
}
?.
let
{
true
}
?:
super
.
onOptionsItemSelected
(
item
)
else
->
return
super
.
onOptionsItemSelected
(
item
)
}
return
true
}
}
}
app/src/main/java/com/topjohnwu/magisk/ui/home/HomeViewModel.kt
View file @
658d74e0
...
@@ -9,8 +9,6 @@ import com.topjohnwu.magisk.core.Config
...
@@ -9,8 +9,6 @@ import com.topjohnwu.magisk.core.Config
import
com.topjohnwu.magisk.core.Info
import
com.topjohnwu.magisk.core.Info
import
com.topjohnwu.magisk.core.download.Subject
import
com.topjohnwu.magisk.core.download.Subject
import
com.topjohnwu.magisk.core.download.Subject.Manager
import
com.topjohnwu.magisk.core.download.Subject.Manager
import
com.topjohnwu.magisk.core.model.MagiskJson
import
com.topjohnwu.magisk.core.model.ManagerJson
import
com.topjohnwu.magisk.data.repository.NetworkService
import
com.topjohnwu.magisk.data.repository.NetworkService
import
com.topjohnwu.magisk.events.OpenInappLinkEvent
import
com.topjohnwu.magisk.events.OpenInappLinkEvent
import
com.topjohnwu.magisk.events.SnackbarEvent
import
com.topjohnwu.magisk.events.SnackbarEvent
...
@@ -18,8 +16,7 @@ import com.topjohnwu.magisk.events.dialog.EnvFixDialog
...
@@ -18,8 +16,7 @@ import com.topjohnwu.magisk.events.dialog.EnvFixDialog
import
com.topjohnwu.magisk.events.dialog.ManagerInstallDialog
import
com.topjohnwu.magisk.events.dialog.ManagerInstallDialog
import
com.topjohnwu.magisk.events.dialog.UninstallDialog
import
com.topjohnwu.magisk.events.dialog.UninstallDialog
import
com.topjohnwu.magisk.ktx.await
import
com.topjohnwu.magisk.ktx.await
import
com.topjohnwu.magisk.ktx.packageName
import
com.topjohnwu.magisk.utils.asTransitive
import
com.topjohnwu.magisk.ktx.res
import
com.topjohnwu.magisk.utils.set
import
com.topjohnwu.magisk.utils.set
import
com.topjohnwu.superuser.Shell
import
com.topjohnwu.superuser.Shell
import
kotlinx.coroutines.launch
import
kotlinx.coroutines.launch
...
@@ -38,37 +35,35 @@ class HomeViewModel(
...
@@ -38,37 +35,35 @@ class HomeViewModel(
var
isNoticeVisible
=
Config
.
safetyNotice
var
isNoticeVisible
=
Config
.
safetyNotice
set
(
value
)
=
set
(
value
,
field
,
{
field
=
it
},
BR
.
noticeVisible
)
set
(
value
)
=
set
(
value
,
field
,
{
field
=
it
},
BR
.
noticeVisible
)
@get
:
Bindable
val
stateMagisk
=
when
{
var
stateMagisk
=
MagiskState
.
LOADING
!
Info
.
env
.
isActive
->
MagiskState
.
NOT_INSTALLED
set
(
value
)
=
set
(
value
,
field
,
{
field
=
it
},
BR
.
stateMagisk
,
BR
.
showUninstall
)
Info
.
env
.
magiskVersionCode
<
BuildConfig
.
VERSION_CODE
->
MagiskState
.
OBSOLETE
else
->
MagiskState
.
UP_TO_DATE
}
@get
:
Bindable
@get
:
Bindable
var
stateManager
=
MagiskState
.
LOADING
var
stateManager
=
MagiskState
.
LOADING
set
(
value
)
=
set
(
value
,
field
,
{
field
=
it
},
BR
.
stateManager
)
set
(
value
)
=
set
(
value
,
field
,
{
field
=
it
},
BR
.
stateManager
)
@get
:
Bindable
val
magiskInstalledVersion
get
()
=
Info
.
env
.
run
{
var
magiskRemoteVersion
=
R
.
string
.
loading
.
res
(
)
if
(
isActive
)
set
(
value
)
=
set
(
value
,
field
,
{
field
=
it
},
BR
.
magiskRemoteVersion
)
"$magiskVersionString ($magiskVersionCode)"
.
asTransitive
(
)
else
val
magiskInstalledVersion
get
()
=
R
.
string
.
not_available
.
asTransitive
()
"${Info.env.magiskVersionString} (${Info.env.magiskVersionCode})"
}
@get
:
Bindable
@get
:
Bindable
var
managerRemoteVersion
=
R
.
string
.
loading
.
res
()
var
managerRemoteVersion
=
R
.
string
.
loading
.
asTransitive
()
set
(
value
)
=
set
(
value
,
field
,
{
field
=
it
},
BR
.
managerRemoteVersion
)
set
(
value
)
=
set
(
value
,
field
,
{
field
=
it
},
BR
.
managerRemoteVersion
)
val
managerInstalledVersion
=
Info
.
stub
?.
let
{
val
managerInstalledVersion
=
Info
.
stub
?.
let
{
"${BuildConfig.VERSION_NAME} (${BuildConfig.VERSION_CODE}) (${it.version})"
"${BuildConfig.VERSION_NAME} (${BuildConfig.VERSION_CODE}) (${it.version})"
}
?:
"${BuildConfig.VERSION_NAME} (${BuildConfig.VERSION_CODE})"
}
?:
"${BuildConfig.VERSION_NAME} (${BuildConfig.VERSION_CODE})"
val
statePackageName
=
packageName
@get
:
Bindable
@get
:
Bindable
var
stateManagerProgress
=
0
var
stateManagerProgress
=
0
set
(
value
)
=
set
(
value
,
field
,
{
field
=
it
},
BR
.
stateManagerProgress
)
set
(
value
)
=
set
(
value
,
field
,
{
field
=
it
},
BR
.
stateManagerProgress
)
@get
:
Bindable
val
showUninstall
get
()
=
Info
.
env
.
isActive
&&
state
!=
State
.
LOADING
@get
:
Bindable
@get
:
Bindable
val
showSafetyNet
get
()
=
Info
.
hasGMS
&&
isConnected
.
get
()
val
showSafetyNet
get
()
=
Info
.
hasGMS
&&
isConnected
.
get
()
...
@@ -80,30 +75,25 @@ class HomeViewModel(
...
@@ -80,30 +75,25 @@ class HomeViewModel(
override
fun
refresh
()
=
viewModelScope
.
launch
{
override
fun
refresh
()
=
viewModelScope
.
launch
{
state
=
State
.
LOADING
state
=
State
.
LOADING
notifyPropertyChanged
(
BR
.
showSafetyNet
)
svc
.
fetchUpdate
()
?.
apply
{
svc
.
fetchUpdate
()
?.
apply
{
state
=
State
.
LOADED
state
=
State
.
LOADED
stateMagisk
=
when
{
!
Info
.
env
.
isActive
->
MagiskState
.
NOT_INSTALLED
magisk
.
isObsolete
->
MagiskState
.
OBSOLETE
else
->
MagiskState
.
UP_TO_DATE
}
stateManager
=
when
{
stateManager
=
when
{
app
.
isObsolet
e
->
MagiskState
.
OBSOLETE
BuildConfig
.
VERSION_CODE
<
magisk
.
versionCod
e
->
MagiskState
.
OBSOLETE
else
->
MagiskState
.
UP_TO_DATE
else
->
MagiskState
.
UP_TO_DATE
}
}
magiskRemoteVersion
=
"${magisk.version} (${magisk.versionCode})"
managerRemoteVersion
=
managerRemoteVersion
=
"${
app.version} (${app.versionCode}) (${stub.versionCode})"
"${
magisk.version} (${magisk.versionCode}) (${stub.versionCode})"
.
asTransitive
()
launch
{
launch
{
ensureEnv
()
ensureEnv
()
}
}
}
?:
apply
{
state
=
State
.
LOADING_FAILED
}
}
?:
{
notifyPropertyChanged
(
BR
.
showUninstall
)
state
=
State
.
LOADING_FAILED
notifyPropertyChanged
(
BR
.
showSafetyNet
)
managerRemoteVersion
=
R
.
string
.
not_available
.
asTransitive
()
}()
}
}
val
showTest
=
false
val
showTest
=
false
...
@@ -115,9 +105,8 @@ class HomeViewModel(
...
@@ -115,9 +105,8 @@ class HomeViewModel(
}.
publish
()
}.
publish
()
fun
onProgressUpdate
(
progress
:
Float
,
subject
:
Subject
)
{
fun
onProgressUpdate
(
progress
:
Float
,
subject
:
Subject
)
{
when
(
subject
)
{
if
(
subject
is
Manager
)
is
Manager
->
stateManagerProgress
=
progress
.
times
(
100f
).
roundToInt
()
stateManagerProgress
=
progress
.
times
(
100f
).
roundToInt
()
}
}
}
fun
onLinkPressed
(
link
:
String
)
=
OpenInappLinkEvent
(
link
).
publish
()
fun
onLinkPressed
(
link
:
String
)
=
OpenInappLinkEvent
(
link
).
publish
()
...
@@ -130,13 +119,8 @@ class HomeViewModel(
...
@@ -130,13 +119,8 @@ class HomeViewModel(
else
->
SnackbarEvent
(
R
.
string
.
no_connection
).
publish
()
else
->
SnackbarEvent
(
R
.
string
.
no_connection
).
publish
()
}
}
fun
onMagiskPressed
()
=
when
(
state
)
{
fun
onMagiskPressed
()
=
State
.
LOADED
->
withExternalRW
{
HomeFragmentDirections
.
actionHomeFragmentToInstallFragment
().
publish
()
HomeFragmentDirections
.
actionHomeFragmentToInstallFragment
().
publish
()
}
State
.
LOADING
->
SnackbarEvent
(
R
.
string
.
loading
).
publish
()
else
->
SnackbarEvent
(
R
.
string
.
no_connection
).
publish
()
}
fun
onSafetyNetPressed
()
=
fun
onSafetyNetPressed
()
=
HomeFragmentDirections
.
actionHomeFragmentToSafetynetFragment
().
publish
()
HomeFragmentDirections
.
actionHomeFragmentToSafetynetFragment
().
publish
()
...
@@ -160,9 +144,4 @@ class HomeViewModel(
...
@@ -160,9 +144,4 @@ class HomeViewModel(
}
}
}
}
private
val
MagiskJson
.
isObsolete
get
()
=
Info
.
env
.
isActive
&&
Info
.
env
.
magiskVersionCode
<
versionCode
private
val
ManagerJson
.
isObsolete
get
()
=
BuildConfig
.
VERSION_CODE
<
versionCode
}
}
app/src/main/java/com/topjohnwu/magisk/utils/TransitiveText.kt
View file @
658d74e0
...
@@ -4,7 +4,6 @@ import android.content.res.Resources
...
@@ -4,7 +4,6 @@ import android.content.res.Resources
import
android.widget.TextView
import
android.widget.TextView
import
androidx.databinding.BindingAdapter
import
androidx.databinding.BindingAdapter
import
androidx.databinding.InverseBindingAdapter
import
androidx.databinding.InverseBindingAdapter
import
com.topjohnwu.magisk.ktx.get
sealed
class
TransitiveText
{
sealed
class
TransitiveText
{
...
@@ -42,13 +41,13 @@ sealed class TransitiveText {
...
@@ -42,13 +41,13 @@ sealed class TransitiveText {
}
}
fun
Int
.
asTransitive
(
vararg
params
:
Any
)
=
TransitiveText
.
Res
(
this
,
*
params
)
fun
Int
.
asTransitive
(
vararg
params
:
Any
)
:
TransitiveText
=
TransitiveText
.
Res
(
this
,
*
params
)
fun
CharSequence
.
asTransitive
()
=
TransitiveText
.
String
(
this
)
fun
CharSequence
.
asTransitive
()
:
TransitiveText
=
TransitiveText
.
String
(
this
)
@BindingAdapter
(
"android:text"
)
@BindingAdapter
(
"android:text"
)
fun
TextView
.
setText
(
text
:
TransitiveText
)
{
fun
TextView
.
setText
(
text
:
TransitiveText
)
{
this
.
text
=
text
.
getText
(
get
()
)
this
.
text
=
text
.
getText
(
context
.
resources
)
}
}
@InverseBindingAdapter
(
attribute
=
"android:text"
,
event
=
"android:textAttrChanged"
)
@InverseBindingAdapter
(
attribute
=
"android:text"
,
event
=
"android:textAttrChanged"
)
...
...
app/src/main/res/layout/fragment_home_md2.xml
View file @
658d74e0
...
@@ -108,7 +108,7 @@
...
@@ -108,7 +108,7 @@
app:layout_constraintTop_toBottomOf=
"@+id/home_magisk_wrapper"
/>
app:layout_constraintTop_toBottomOf=
"@+id/home_magisk_wrapper"
/>
<Space
<Space
gone=
"@{!viewModel.showSafetyNet && !
viewModel.showUninstall
}"
gone=
"@{!viewModel.showSafetyNet && !
Info.env.isActive
}"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/l1"
/>
android:layout_height=
"@dimen/l1"
/>
...
@@ -128,7 +128,7 @@
...
@@ -128,7 +128,7 @@
<Button
<Button
style=
"@style/WidgetFoundation.Button.Outlined.Error"
style=
"@style/WidgetFoundation.Button.Outlined.Error"
gone
=
"@{!viewModel.showUninstall
}"
gone
Unless=
"@{Info.env.isActive
}"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"@dimen/l1"
android:layout_marginStart=
"@dimen/l1"
...
...
app/src/main/res/layout/include_home_magisk.xml
View file @
658d74e0
...
@@ -55,7 +55,6 @@
...
@@ -55,7 +55,6 @@
android:id=
"@+id/home_magisk_button"
android:id=
"@+id/home_magisk_button"
style=
"@style/WidgetFoundation.Button"
style=
"@style/WidgetFoundation.Button"
invisible=
"@{viewModel.stateMagisk != MagiskState.OBSOLETE}"
invisible=
"@{viewModel.stateMagisk != MagiskState.OBSOLETE}"
android:enabled=
"@{viewModel.stateManager != MagiskState.OBSOLETE}"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:onClick=
"@{() -> viewModel.onMagiskPressed()}"
android:onClick=
"@{() -> viewModel.onMagiskPressed()}"
...
@@ -69,7 +68,6 @@
...
@@ -69,7 +68,6 @@
<Button
<Button
style=
"@style/WidgetFoundation.Button.Text"
style=
"@style/WidgetFoundation.Button.Text"
invisible=
"@{viewModel.stateMagisk == MagiskState.OBSOLETE}"
invisible=
"@{viewModel.stateMagisk == MagiskState.OBSOLETE}"
android:enabled=
"@{viewModel.stateManager != MagiskState.OBSOLETE}"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:onClick=
"@{() -> viewModel.onMagiskPressed()}"
android:onClick=
"@{() -> viewModel.onMagiskPressed()}"
...
@@ -105,41 +103,24 @@
...
@@ -105,41 +103,24 @@
android:layout_height=
"wrap_content"
>
android:layout_height=
"wrap_content"
>
<LinearLayout
<LinearLayout
android:id=
"@+id/home_magisk_
latest
_version"
android:id=
"@+id/home_magisk_
installed
_version"
style=
"@style/W.Home.Item.Top"
style=
"@style/W.Home.Item.Top"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
>
app:layout_constraintTop_toTopOf=
"parent"
>
<TextView
style=
"@style/W.Home.ItemContent"
android:text=
"@string/home_latest_version"
/>
<TextView
style=
"@style/W.Home.ItemContent.Right"
android:text=
"@{viewModel.loadFailed ? @string/not_available : viewModel.magiskRemoteVersion }"
tools:text=
"20.1 (12345)"
/>
</LinearLayout>
<LinearLayout
android:id=
"@+id/home_magisk_installed_version"
style=
"@style/W.Home.Item"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@+id/home_magisk_latest_version"
>
<TextView
<TextView
style=
"@style/W.Home.ItemContent"
style=
"@style/W.Home.ItemContent"
android:text=
"@string/home_installed_version"
/>
android:text=
"@string/home_installed_version"
/>
<TextView
<TextView
style=
"@style/W.Home.ItemContent.Right"
style=
"@style/W.Home.ItemContent.Right"
android:text=
"@{
Info.env.isActive ? viewModel.magiskInstalledVersion : @string/not_available
}"
android:text=
"@{
viewModel.magiskInstalledVersion
}"
tools:text=
"2
0.1 (12345
)"
/>
tools:text=
"2
2.0 (22000
)"
/>
</LinearLayout>
</LinearLayout>
<LinearLayout
<LinearLayout
android:id=
"@+id/home_device_details_r
ecovery
"
android:id=
"@+id/home_device_details_r
amdisk
"
style=
"@style/W.Home.Item.Bottom"
style=
"@style/W.Home.Item.Bottom"
app:layout_constraintStart_toStartOf=
"@+id/home_magisk_installed_version"
app:layout_constraintStart_toStartOf=
"@+id/home_magisk_installed_version"
app:layout_constraintTop_toBottomOf=
"@+id/home_magisk_installed_version"
>
app:layout_constraintTop_toBottomOf=
"@+id/home_magisk_installed_version"
>
...
@@ -160,7 +141,7 @@
...
@@ -160,7 +141,7 @@
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
app:barrierDirection=
"end"
app:barrierDirection=
"end"
tools:constraint_referenced_ids=
"home_magisk_
latest_version,home_magisk_installed_version
"
/>
tools:constraint_referenced_ids=
"home_magisk_
installed_version,home_device_details_ramdisk
"
/>
<LinearLayout
<LinearLayout
android:id=
"@+id/home_device_details_ab"
android:id=
"@+id/home_device_details_ab"
...
@@ -181,7 +162,7 @@
...
@@ -181,7 +162,7 @@
<LinearLayout
<LinearLayout
android:id=
"@+id/home_device_details_sar"
android:id=
"@+id/home_device_details_sar"
style=
"@style/W.Home.Item"
style=
"@style/W.Home.Item
.Bottom
"
app:layout_constraintStart_toStartOf=
"@+id/home_device_details_ab"
app:layout_constraintStart_toStartOf=
"@+id/home_device_details_ab"
app:layout_constraintTop_toBottomOf=
"@+id/home_device_details_ab"
>
app:layout_constraintTop_toBottomOf=
"@+id/home_device_details_ab"
>
...
@@ -196,23 +177,6 @@
...
@@ -196,23 +177,6 @@
</LinearLayout>
</LinearLayout>
<LinearLayout
android:id=
"@+id/home_device_details_crypto"
style=
"@style/W.Home.Item.Bottom"
app:layout_constraintStart_toStartOf=
"@+id/home_device_details_sar"
app:layout_constraintTop_toBottomOf=
"@+id/home_device_details_sar"
>
<TextView
style=
"@style/W.Home.ItemContent"
android:text=
"Crypto"
/>
<TextView
style=
"@style/W.Home.ItemContent.Right"
android:text=
"@{Info.cryptoText}"
tools:text=
"N/A"
/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</LinearLayout>
...
...
app/src/main/res/layout/include_home_manager.xml
View file @
658d74e0
...
@@ -115,8 +115,8 @@
...
@@ -115,8 +115,8 @@
<TextView
<TextView
style=
"@style/W.Home.ItemContent.Right"
style=
"@style/W.Home.ItemContent.Right"
android:text=
"@{viewModel.
loadFailed ? @string/not_available : viewModel.
managerRemoteVersion}"
android:text=
"@{viewModel.managerRemoteVersion}"
tools:text=
"
8.0.0 (123) (10
)"
/>
tools:text=
"
22.0 (22000) (16
)"
/>
</LinearLayout>
</LinearLayout>
...
@@ -133,7 +133,7 @@
...
@@ -133,7 +133,7 @@
<TextView
<TextView
style=
"@style/W.Home.ItemContent.Right"
style=
"@style/W.Home.ItemContent.Right"
android:text=
"@{viewModel.managerInstalledVersion}"
android:text=
"@{viewModel.managerInstalledVersion}"
tools:text=
"
8.0.0 (123) (10
)"
/>
tools:text=
"
22.0 (22000) (16
)"
/>
</LinearLayout>
</LinearLayout>
...
@@ -150,7 +150,7 @@
...
@@ -150,7 +150,7 @@
<TextView
<TextView
android:id=
"@+id/home_manager_extra_connection_value"
android:id=
"@+id/home_manager_extra_connection_value"
style=
"@style/W.Home.ItemContent.Right"
style=
"@style/W.Home.ItemContent.Right"
android:text=
"@{
viewModel.stateP
ackageName}"
android:text=
"@{
context.p
ackageName}"
tools:text=
"com.topjohnwu.magisk"
/>
tools:text=
"com.topjohnwu.magisk"
/>
</LinearLayout>
</LinearLayout>
...
...
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