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
cca4347b
Commit
cca4347b
authored
Nov 08, 2017
by
topjohnwu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Use handler instead of weird callbacks
parent
3ae3d492
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
31 additions
and
33 deletions
+31
-33
FlashActivity.java
app/src/main/java/com/topjohnwu/magisk/FlashActivity.java
+3
-3
FlashZip.java
app/src/main/java/com/topjohnwu/magisk/asyncs/FlashZip.java
+2
-14
InstallMagisk.java
.../main/java/com/topjohnwu/magisk/asyncs/InstallMagisk.java
+4
-16
CallbackList.java
...ain/java/com/topjohnwu/magisk/container/CallbackList.java
+22
-0
No files found.
app/src/main/java/com/topjohnwu/magisk/FlashActivity.java
View file @
cca4347b
...
...
@@ -15,7 +15,7 @@ import android.widget.TextView;
import
com.topjohnwu.magisk.asyncs.FlashZip
;
import
com.topjohnwu.magisk.asyncs.InstallMagisk
;
import
com.topjohnwu.magisk.components.Activity
;
import
com.topjohnwu.magisk.container.
Adaptive
List
;
import
com.topjohnwu.magisk.container.
Callback
List
;
import
com.topjohnwu.magisk.utils.Const
;
import
com.topjohnwu.magisk.utils.Shell
;
...
...
@@ -46,9 +46,9 @@ public class FlashActivity extends Activity {
super
.
onCreate
(
savedInstanceState
);
setContentView
(
R
.
layout
.
activity_flash
);
ButterKnife
.
bind
(
this
);
AdaptiveList
<
String
>
rootShellOutput
=
new
Adaptive
List
<
String
>()
{
CallbackList
<
String
>
rootShellOutput
=
new
Callback
List
<
String
>()
{
@Override
public
synchronized
void
updateView
()
{
public
synchronized
void
onAddElement
()
{
flashLogs
.
setText
(
TextUtils
.
join
(
"\n"
,
this
));
sv
.
postDelayed
(()
->
sv
.
fullScroll
(
ScrollView
.
FOCUS_DOWN
),
10
);
}
...
...
app/src/main/java/com/topjohnwu/magisk/asyncs/FlashZip.java
View file @
cca4347b
...
...
@@ -6,7 +6,6 @@ import android.text.TextUtils;
import
com.topjohnwu.magisk.MagiskManager
;
import
com.topjohnwu.magisk.R
;
import
com.topjohnwu.magisk.container.AdaptiveList
;
import
com.topjohnwu.magisk.utils.Const
;
import
com.topjohnwu.magisk.utils.Shell
;
import
com.topjohnwu.magisk.utils.Utils
;
...
...
@@ -26,9 +25,9 @@ public class FlashZip extends ParallelTask<Void, Void, Integer> {
private
Uri
mUri
;
private
File
mCachedFile
;
private
Adaptive
List
<
String
>
mList
;
private
List
<
String
>
mList
;
public
FlashZip
(
Activity
context
,
Uri
uri
,
Adaptive
List
<
String
>
list
)
{
public
FlashZip
(
Activity
context
,
Uri
uri
,
List
<
String
>
list
)
{
super
(
context
);
mUri
=
uri
;
mList
=
list
;
...
...
@@ -41,17 +40,6 @@ public class FlashZip extends ParallelTask<Void, Void, Integer> {
return
Utils
.
isValidShellResponse
(
ret
)
&&
ret
.
get
(
0
).
contains
(
"#MAGISK"
);
}
@Override
protected
void
onPreExecute
()
{
// UI updates must run in the UI thread
mList
.
setCallback
(
this
::
publishProgress
);
}
@Override
protected
void
onProgressUpdate
(
Void
...
values
)
{
mList
.
updateView
();
}
@Override
protected
Integer
doInBackground
(
Void
...
voids
)
{
MagiskManager
mm
=
MagiskManager
.
get
();
...
...
app/src/main/java/com/topjohnwu/magisk/asyncs/InstallMagisk.java
View file @
cca4347b
...
...
@@ -9,7 +9,6 @@ import android.text.TextUtils;
import
com.topjohnwu.crypto.SignBoot
;
import
com.topjohnwu.magisk.MagiskManager
;
import
com.topjohnwu.magisk.container.AdaptiveList
;
import
com.topjohnwu.magisk.container.TarEntry
;
import
com.topjohnwu.magisk.utils.Const
;
import
com.topjohnwu.magisk.utils.Shell
;
...
...
@@ -37,12 +36,12 @@ public class InstallMagisk extends ParallelTask<Void, Void, Boolean> {
private
static
final
int
DIRECT_MODE
=
1
;
private
Uri
mBootImg
,
mZip
;
private
Adaptive
List
<
String
>
mList
;
private
List
<
String
>
mList
;
private
String
mBootLocation
;
private
boolean
mKeepEnc
,
mKeepVerity
;
private
int
mode
;
private
InstallMagisk
(
Activity
context
,
Adaptive
List
<
String
>
list
,
Uri
zip
,
boolean
enc
,
boolean
verity
)
{
private
InstallMagisk
(
Activity
context
,
List
<
String
>
list
,
Uri
zip
,
boolean
enc
,
boolean
verity
)
{
super
(
context
);
mList
=
list
;
mZip
=
zip
;
...
...
@@ -50,29 +49,18 @@ public class InstallMagisk extends ParallelTask<Void, Void, Boolean> {
mKeepVerity
=
verity
;
}
public
InstallMagisk
(
Activity
context
,
Adaptive
List
<
String
>
list
,
Uri
zip
,
boolean
enc
,
boolean
verity
,
Uri
boot
)
{
public
InstallMagisk
(
Activity
context
,
List
<
String
>
list
,
Uri
zip
,
boolean
enc
,
boolean
verity
,
Uri
boot
)
{
this
(
context
,
list
,
zip
,
enc
,
verity
);
mBootImg
=
boot
;
mode
=
PATCH_MODE
;
}
public
InstallMagisk
(
Activity
context
,
Adaptive
List
<
String
>
list
,
Uri
zip
,
boolean
enc
,
boolean
verity
,
String
boot
)
{
public
InstallMagisk
(
Activity
context
,
List
<
String
>
list
,
Uri
zip
,
boolean
enc
,
boolean
verity
,
String
boot
)
{
this
(
context
,
list
,
zip
,
enc
,
verity
);
mBootLocation
=
boot
;
mode
=
DIRECT_MODE
;
}
@Override
protected
void
onPreExecute
()
{
// UI updates must run in the UI thread
mList
.
setCallback
(
this
::
publishProgress
);
}
@Override
protected
void
onProgressUpdate
(
Void
...
values
)
{
mList
.
updateView
();
}
@Override
protected
Boolean
doInBackground
(
Void
...
voids
)
{
MagiskManager
mm
=
MagiskManager
.
get
();
...
...
app/src/main/java/com/topjohnwu/magisk/container/
Adaptive
List.java
→
app/src/main/java/com/topjohnwu/magisk/container/
Callback
List.java
View file @
cca4347b
package
com
.
topjohnwu
.
magisk
.
container
;
import
java.util.ArrayList
;
import
android.os.Handler
;
public
abstract
class
AdaptiveList
<
E
>
extends
ArrayList
<
E
>
{
import
java.util.ArrayList
;
private
Runnable
callback
;
public
abstract
class
CallbackList
<
E
>
extends
ArrayList
<
E
>
{
p
ublic
abstract
void
updateView
()
;
p
rivate
Handler
handler
;
p
ublic
void
setCallback
(
Runnable
cb
)
{
callback
=
cb
;
p
rotected
CallbackList
(
)
{
handler
=
new
Handler
()
;
}
public
abstract
void
onAddElement
();
public
synchronized
boolean
add
(
E
e
)
{
boolean
ret
=
super
.
add
(
e
);
if
(
ret
)
{
if
(
callback
==
null
)
{
updateView
();
}
else
{
callback
.
run
();
}
}
handler
.
post
(
this
::
onAddElement
);
return
ret
;
}
}
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