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
a474eafe
Commit
a474eafe
authored
Jan 06, 2017
by
topjohnwu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Improve installation UI and dialog
parent
442fcf92
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
73 additions
and
18 deletions
+73
-18
InstallFragment.java
app/src/main/java/com/topjohnwu/magisk/InstallFragment.java
+3
-1
MainActivity.java
app/src/main/java/com/topjohnwu/magisk/MainActivity.java
+1
-1
StatusFragment.java
app/src/main/java/com/topjohnwu/magisk/StatusFragment.java
+40
-5
Async.java
app/src/main/java/com/topjohnwu/magisk/utils/Async.java
+1
-3
install_fragment.xml
app/src/main/res/layout/install_fragment.xml
+23
-7
strings.xml
app/src/main/res/values/strings.xml
+5
-1
No files found.
app/src/main/java/com/topjohnwu/magisk/InstallFragment.java
View file @
a474eafe
...
@@ -30,6 +30,7 @@ public class InstallFragment extends Fragment implements CallbackHandler.EventLi
...
@@ -30,6 +30,7 @@ public class InstallFragment extends Fragment implements CallbackHandler.EventLi
public
static
List
<
String
>
blockList
;
public
static
List
<
String
>
blockList
;
public
static
String
bootBlock
=
null
;
public
static
String
bootBlock
=
null
;
@BindView
(
R
.
id
.
current_version_title
)
TextView
currentVersionTitle
;
@BindView
(
R
.
id
.
install_title
)
TextView
installTitle
;
@BindView
(
R
.
id
.
install_title
)
TextView
installTitle
;
@BindView
(
R
.
id
.
block_spinner
)
Spinner
spinner
;
@BindView
(
R
.
id
.
block_spinner
)
Spinner
spinner
;
@BindView
(
R
.
id
.
detect_bootimage
)
Button
detectButton
;
@BindView
(
R
.
id
.
detect_bootimage
)
Button
detectButton
;
...
@@ -43,13 +44,14 @@ public class InstallFragment extends Fragment implements CallbackHandler.EventLi
...
@@ -43,13 +44,14 @@ public class InstallFragment extends Fragment implements CallbackHandler.EventLi
View
v
=
inflater
.
inflate
(
R
.
layout
.
install_fragment
,
container
,
false
);
View
v
=
inflater
.
inflate
(
R
.
layout
.
install_fragment
,
container
,
false
);
ButterKnife
.
bind
(
this
,
v
);
ButterKnife
.
bind
(
this
,
v
);
detectButton
.
setOnClickListener
(
v1
->
toAutoDetect
());
detectButton
.
setOnClickListener
(
v1
->
toAutoDetect
());
currentVersionTitle
.
setText
(
getString
(
R
.
string
.
current_magisk_title
,
StatusFragment
.
magiskVersionString
));
installTitle
.
setText
(
getString
(
R
.
string
.
install_magisk_title
,
StatusFragment
.
remoteMagiskVersion
));
installTitle
.
setText
(
getString
(
R
.
string
.
install_magisk_title
,
StatusFragment
.
remoteMagiskVersion
));
flashButton
.
setOnClickListener
(
v1
->
{
flashButton
.
setOnClickListener
(
v1
->
{
String
bootImage
=
bootBlock
;
String
bootImage
=
bootBlock
;
if
(
bootImage
==
null
)
{
if
(
bootImage
==
null
)
{
bootImage
=
blockList
.
get
(
spinner
.
getSelectedItemPosition
()
-
1
);
bootImage
=
blockList
.
get
(
spinner
.
getSelectedItemPosition
()
-
1
);
}
}
String
filename
=
"Magisk-v"
+
St
ring
.
valueOf
(
StatusFragment
.
remoteMagiskVersion
)
+
".zip"
;
String
filename
=
"Magisk-v"
+
St
atusFragment
.
remoteMagiskVersion
+
".zip"
;
String
finalBootImage
=
bootImage
;
String
finalBootImage
=
bootImage
;
MainActivity
.
alertBuilder
MainActivity
.
alertBuilder
.
setTitle
(
getString
(
R
.
string
.
repo_install_title
,
getString
(
R
.
string
.
magisk
)))
.
setTitle
(
getString
(
R
.
string
.
repo_install_title
,
getString
(
R
.
string
.
magisk
)))
...
...
app/src/main/java/com/topjohnwu/magisk/MainActivity.java
View file @
a474eafe
package
com
.
topjohnwu
.
magisk
;
package
com
.
topjohnwu
.
magisk
;
import
android.Manifest
;
import
android.Manifest
;
import
android.app.AlertDialog
;
import
android.app.Fragment
;
import
android.app.Fragment
;
import
android.app.FragmentTransaction
;
import
android.app.FragmentTransaction
;
import
android.content.Intent
;
import
android.content.Intent
;
...
@@ -17,7 +18,6 @@ import android.support.v4.app.ActivityCompat;
...
@@ -17,7 +18,6 @@ import android.support.v4.app.ActivityCompat;
import
android.support.v4.view.GravityCompat
;
import
android.support.v4.view.GravityCompat
;
import
android.support.v4.widget.DrawerLayout
;
import
android.support.v4.widget.DrawerLayout
;
import
android.support.v7.app.ActionBarDrawerToggle
;
import
android.support.v7.app.ActionBarDrawerToggle
;
import
android.support.v7.app.AlertDialog
;
import
android.support.v7.app.AppCompatActivity
;
import
android.support.v7.app.AppCompatActivity
;
import
android.support.v7.widget.Toolbar
;
import
android.support.v7.widget.Toolbar
;
import
android.view.Menu
;
import
android.view.Menu
;
...
...
app/src/main/java/com/topjohnwu/magisk/StatusFragment.java
View file @
a474eafe
package
com
.
topjohnwu
.
magisk
;
package
com
.
topjohnwu
.
magisk
;
import
android.app.AlertDialog
;
import
android.app.Fragment
;
import
android.app.Fragment
;
import
android.app.FragmentTransaction
;
import
android.app.FragmentTransaction
;
import
android.content.Context
;
import
android.content.DialogInterface
;
import
android.content.Intent
;
import
android.net.Uri
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.support.annotation.Nullable
;
import
android.support.annotation.Nullable
;
import
android.support.v4.widget.SwipeRefreshLayout
;
import
android.support.v4.widget.SwipeRefreshLayout
;
...
@@ -26,9 +31,11 @@ import butterknife.ButterKnife;
...
@@ -26,9 +31,11 @@ import butterknife.ButterKnife;
public
class
StatusFragment
extends
Fragment
implements
CallbackHandler
.
EventListener
{
public
class
StatusFragment
extends
Fragment
implements
CallbackHandler
.
EventListener
{
public
static
double
magiskVersion
,
remoteMagiskVersion
=
-
1
;
public
static
double
magiskVersion
,
remoteMagiskVersion
=
-
1
;
public
static
String
magiskVersionString
,
magiskLink
,
magiskChangelog
;
public
static
String
magiskVersionString
=
"(none)"
,
magiskLink
,
releaseNoteLink
;
public
static
int
SNCheckResult
=
-
1
;
public
static
int
SNCheckResult
=
-
1
;
private
static
boolean
noDialog
=
false
;
public
static
final
CallbackHandler
.
Event
updateCheckDone
=
new
CallbackHandler
.
Event
();
public
static
final
CallbackHandler
.
Event
updateCheckDone
=
new
CallbackHandler
.
Event
();
public
static
final
CallbackHandler
.
Event
safetyNetDone
=
new
CallbackHandler
.
Event
();
public
static
final
CallbackHandler
.
Event
safetyNetDone
=
new
CallbackHandler
.
Event
();
...
@@ -62,6 +69,8 @@ public class StatusFragment extends Fragment implements CallbackHandler.EventLis
...
@@ -62,6 +69,8 @@ public class StatusFragment extends Fragment implements CallbackHandler.EventLis
checkMagiskInfo
();
checkMagiskInfo
();
}
}
private
AlertDialog
updateMagisk
;
@Nullable
@Nullable
@Override
@Override
public
View
onCreateView
(
LayoutInflater
inflater
,
@Nullable
ViewGroup
container
,
@Nullable
Bundle
savedInstanceState
)
{
public
View
onCreateView
(
LayoutInflater
inflater
,
@Nullable
ViewGroup
container
,
@Nullable
Bundle
savedInstanceState
)
{
...
@@ -84,13 +93,12 @@ public class StatusFragment extends Fragment implements CallbackHandler.EventLis
...
@@ -84,13 +93,12 @@ public class StatusFragment extends Fragment implements CallbackHandler.EventLis
safetyNetStatusText
.
setTextColor
(
defaultColor
);
safetyNetStatusText
.
setTextColor
(
defaultColor
);
safetyNetDone
.
isTriggered
=
false
;
safetyNetDone
.
isTriggered
=
false
;
noDialog
=
false
;
updateUI
();
updateUI
();
new
Async
.
CheckUpdates
().
exec
();
new
Async
.
CheckUpdates
().
exec
();
});
});
updateUI
();
safetyNetContainer
.
setOnClickListener
(
view
->
{
safetyNetContainer
.
setOnClickListener
(
view
->
{
safetyNetProgress
.
setVisibility
(
View
.
VISIBLE
);
safetyNetProgress
.
setVisibility
(
View
.
VISIBLE
);
safetyNetContainer
.
setBackgroundColor
(
trans
);
safetyNetContainer
.
setBackgroundColor
(
trans
);
...
@@ -99,7 +107,7 @@ public class StatusFragment extends Fragment implements CallbackHandler.EventLis
...
@@ -99,7 +107,7 @@ public class StatusFragment extends Fragment implements CallbackHandler.EventLis
Async
.
checkSafetyNet
(
getActivity
());
Async
.
checkSafetyNet
(
getActivity
());
});
});
if
(
magiskVersion
<
0
&&
Shell
.
rootAccess
())
{
if
(
magiskVersion
<
0
&&
Shell
.
rootAccess
()
&&
!
noDialog
)
{
MainActivity
.
alertBuilder
MainActivity
.
alertBuilder
.
setTitle
(
R
.
string
.
no_magisk_title
)
.
setTitle
(
R
.
string
.
no_magisk_title
)
.
setMessage
(
R
.
string
.
no_magisk_msg
)
.
setMessage
(
R
.
string
.
no_magisk_msg
)
...
@@ -112,10 +120,12 @@ public class StatusFragment extends Fragment implements CallbackHandler.EventLis
...
@@ -112,10 +120,12 @@ public class StatusFragment extends Fragment implements CallbackHandler.EventLis
transaction
.
replace
(
R
.
id
.
content_frame
,
new
InstallFragment
(),
"install"
).
commit
();
transaction
.
replace
(
R
.
id
.
content_frame
,
new
InstallFragment
(),
"install"
).
commit
();
}
catch
(
IllegalStateException
ignored
)
{}
}
catch
(
IllegalStateException
ignored
)
{}
})
})
.
setNegativeButton
(
R
.
string
.
no_thanks
,
null
)
.
setNegativeButton
(
R
.
string
.
no_thanks
,
(
dialogInterface
,
i
)
->
noDialog
=
true
)
.
show
();
.
show
();
}
}
updateUI
();
return
v
;
return
v
;
}
}
...
@@ -229,6 +239,31 @@ public class StatusFragment extends Fragment implements CallbackHandler.EventLis
...
@@ -229,6 +239,31 @@ public class StatusFragment extends Fragment implements CallbackHandler.EventLis
magiskCheckUpdatesProgress
.
setVisibility
(
View
.
GONE
);
magiskCheckUpdatesProgress
.
setVisibility
(
View
.
GONE
);
mSwipeRefreshLayout
.
setRefreshing
(
false
);
mSwipeRefreshLayout
.
setRefreshing
(
false
);
updateMagisk
=
MainActivity
.
alertBuilder
.
setTitle
(
R
.
string
.
magisk_update_title
)
.
setMessage
(
getString
(
R
.
string
.
magisk_update_message
,
remoteMagiskVersion
))
.
setCancelable
(
true
)
.
setPositiveButton
(
R
.
string
.
goto_install
,
(
dialogInterface
,
i
)
->
{
((
MainActivity
)
getActivity
()).
navigationView
.
setCheckedItem
(
R
.
id
.
install
);
FragmentTransaction
transaction
=
getFragmentManager
().
beginTransaction
();
transaction
.
setCustomAnimations
(
android
.
R
.
animator
.
fade_in
,
android
.
R
.
animator
.
fade_out
);
try
{
transaction
.
replace
(
R
.
id
.
content_frame
,
new
InstallFragment
(),
"install"
).
commit
();
}
catch
(
IllegalStateException
ignored
)
{}
})
.
setNeutralButton
(
R
.
string
.
check_release_notes
,
(
dialog
,
which
)
->
{
getActivity
().
startActivity
(
new
Intent
(
Intent
.
ACTION_VIEW
,
Uri
.
parse
(
releaseNoteLink
)));
})
.
setNegativeButton
(
R
.
string
.
no_thanks
,
(
dialogInterface
,
i
)
->
noDialog
=
true
)
.
create
();
if
(
magiskVersion
<
remoteMagiskVersion
&&
Shell
.
rootAccess
())
{
magiskStatusContainer
.
setOnClickListener
(
view
->
updateMagisk
.
show
());
if
(!
noDialog
)
{
updateMagisk
.
show
();
}
}
}
}
private
void
updateSafetyNetUI
()
{
private
void
updateSafetyNetUI
()
{
...
...
app/src/main/java/com/topjohnwu/magisk/utils/Async.java
View file @
a474eafe
...
@@ -59,12 +59,10 @@ public class Async {
...
@@ -59,12 +59,10 @@ public class Async {
String
jsonStr
=
WebRequest
.
makeWebServiceCall
(
UPDATE_JSON
,
WebRequest
.
GET
);
String
jsonStr
=
WebRequest
.
makeWebServiceCall
(
UPDATE_JSON
,
WebRequest
.
GET
);
try
{
try
{
JSONObject
json
=
new
JSONObject
(
jsonStr
);
JSONObject
json
=
new
JSONObject
(
jsonStr
);
JSONObject
magisk
=
json
.
getJSONObject
(
"magisk"
);
JSONObject
magisk
=
json
.
getJSONObject
(
"magisk"
);
StatusFragment
.
remoteMagiskVersion
=
magisk
.
getDouble
(
"versionCode"
);
StatusFragment
.
remoteMagiskVersion
=
magisk
.
getDouble
(
"versionCode"
);
StatusFragment
.
magiskLink
=
magisk
.
getString
(
"link"
);
StatusFragment
.
magiskLink
=
magisk
.
getString
(
"link"
);
StatusFragment
.
magiskChangelog
=
magisk
.
getString
(
"changelog
"
);
StatusFragment
.
releaseNoteLink
=
magisk
.
getString
(
"note
"
);
}
catch
(
JSONException
ignored
)
{}
}
catch
(
JSONException
ignored
)
{}
return
null
;
return
null
;
}
}
...
...
app/src/main/res/layout/install_fragment.xml
View file @
a474eafe
...
@@ -17,14 +17,30 @@
...
@@ -17,14 +17,30 @@
style=
"?attr/cardStyle"
style=
"?attr/cardStyle"
app:cardUseCompatPadding=
"true"
>
app:cardUseCompatPadding=
"true"
>
<
TextView
<
LinearLayout
android:
id=
"@+id/install_title
"
android:
orientation=
"vertical
"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"match_parent"
android:layout_gravity=
"center"
android:padding=
"15dp"
>
android:gravity=
"center"
android:padding=
"15dp"
<TextView
android:textStyle=
"bold"
/>
android:id=
"@+id/install_title"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:gravity=
"center"
android:padding=
"5dp"
android:textStyle=
"bold"
/>
<TextView
android:id=
"@+id/current_version_title"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:gravity=
"center"
android:padding=
"5dp"
android:textStyle=
"bold"
/>
</LinearLayout>
</android.support.v7.widget.CardView>
</android.support.v7.widget.CardView>
...
...
app/src/main/res/values/strings.xml
View file @
a474eafe
...
@@ -41,7 +41,8 @@
...
@@ -41,7 +41,8 @@
<string
name=
"advanced_settings_title"
>
Advanced Settings
</string>
<string
name=
"advanced_settings_title"
>
Advanced Settings
</string>
<string
name=
"keep_force_encryption"
>
Keep force encryption
</string>
<string
name=
"keep_force_encryption"
>
Keep force encryption
</string>
<string
name=
"keep_dm_verity"
>
Keep dm-verity
</string>
<string
name=
"keep_dm_verity"
>
Keep dm-verity
</string>
<string
name=
"install_magisk_title"
>
Install Magisk Version: v%1$.1f
</string>
<string
name=
"current_magisk_title"
>
Installed Magisk Version: v%1$s
</string>
<string
name=
"install_magisk_title"
>
Latest Magisk Version: v%1$.1f
</string>
<string
name=
"magiskify"
translatable=
"false"
>
Magiskify
</string>
<string
name=
"magiskify"
translatable=
"false"
>
Magiskify
</string>
<!--Module Fragment-->
<!--Module Fragment-->
...
@@ -105,6 +106,9 @@
...
@@ -105,6 +106,9 @@
<string
name=
"no_magisk_title"
>
No Magisk Installed!
</string>
<string
name=
"no_magisk_title"
>
No Magisk Installed!
</string>
<string
name=
"no_magisk_msg"
>
Do you want to download and install Magisk?
</string>
<string
name=
"no_magisk_msg"
>
Do you want to download and install Magisk?
</string>
<string
name=
"downloading_toast"
>
Downloading %1$s
</string>
<string
name=
"downloading_toast"
>
Downloading %1$s
</string>
<string
name=
"magisk_update_title"
>
New Magisk Update Available!
</string>
<string
name=
"magisk_update_message"
>
Magisk v%1$.1f update is live, do you want to install?
</string>
<string
name=
"check_release_notes"
>
Check release notes
</string>
<!--URL Templates-->
<!--URL Templates-->
<string
name=
"url_main"
translatable=
"false"
>
https://api.github.com/orgs/Magisk-Modules-Repo/repos?access_token=%1$s
</string>
<string
name=
"url_main"
translatable=
"false"
>
https://api.github.com/orgs/Magisk-Modules-Repo/repos?access_token=%1$s
</string>
...
...
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