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
18ac6b27
Commit
18ac6b27
authored
Mar 13, 2019
by
topjohnwu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make Expandable more extensible
parent
3e35de9b
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
75 additions
and
41 deletions
+75
-41
PolicyAdapter.java
...ain/java/com/topjohnwu/magisk/adapters/PolicyAdapter.java
+4
-3
MagiskFragment.java
...n/java/com/topjohnwu/magisk/fragments/MagiskFragment.java
+4
-3
ArrowExpandable.java
...va/com/topjohnwu/magisk/uicomponents/ArrowExpandable.java
+15
-16
Expandable.java
...in/java/com/topjohnwu/magisk/uicomponents/Expandable.java
+40
-0
ExpandableViewHolder.java
...m/topjohnwu/magisk/uicomponents/ExpandableViewHolder.java
+12
-19
No files found.
app/src/main/java/com/topjohnwu/magisk/adapters/PolicyAdapter.java
View file @
18ac6b27
...
...
@@ -19,7 +19,8 @@ import com.topjohnwu.magisk.container.Policy;
import
com.topjohnwu.magisk.database.MagiskDB
;
import
com.topjohnwu.magisk.dialogs.CustomAlertDialog
;
import
com.topjohnwu.magisk.dialogs.FingerprintAuthDialog
;
import
com.topjohnwu.magisk.uicomponents.ArrowExpandedViewHolder
;
import
com.topjohnwu.magisk.uicomponents.ArrowExpandable
;
import
com.topjohnwu.magisk.uicomponents.Expandable
;
import
com.topjohnwu.magisk.uicomponents.ExpandableViewHolder
;
import
com.topjohnwu.magisk.uicomponents.SnackbarMaker
;
import
com.topjohnwu.magisk.utils.FingerprintHelper
;
...
...
@@ -160,12 +161,12 @@ public class PolicyAdapter extends RecyclerView.Adapter<PolicyAdapter.ViewHolder
@BindView
(
R
.
id
.
delete
)
ImageView
delete
;
@BindView
(
R
.
id
.
more_info
)
ImageView
moreInfo
;
Expandable
ViewHolder
settings
;
Expandable
settings
;
public
ViewHolder
(
View
itemView
)
{
super
(
itemView
);
new
PolicyAdapter$ViewHolder_ViewBinding
(
this
,
itemView
);
settings
=
new
ArrowExpand
edViewHolder
(
expandLayout
,
arrow
);
settings
=
new
ArrowExpand
able
(
new
ExpandableViewHolder
(
expandLayout
)
,
arrow
);
}
}
}
app/src/main/java/com/topjohnwu/magisk/fragments/MagiskFragment.java
View file @
18ac6b27
...
...
@@ -31,7 +31,8 @@ import com.topjohnwu.magisk.dialogs.MagiskInstallDialog;
import
com.topjohnwu.magisk.dialogs.ManagerInstallDialog
;
import
com.topjohnwu.magisk.dialogs.UninstallDialog
;
import
com.topjohnwu.magisk.tasks.CheckUpdates
;
import
com.topjohnwu.magisk.uicomponents.ArrowExpandedViewHolder
;
import
com.topjohnwu.magisk.uicomponents.ArrowExpandable
;
import
com.topjohnwu.magisk.uicomponents.Expandable
;
import
com.topjohnwu.magisk.uicomponents.ExpandableViewHolder
;
import
com.topjohnwu.magisk.uicomponents.MarkDownWindow
;
import
com.topjohnwu.magisk.uicomponents.SafetyNet
;
...
...
@@ -73,7 +74,7 @@ public class MagiskFragment extends BaseFragment
private
UpdateCardHolder
manager
;
private
SafetyNet
safetyNet
;
private
Transition
transition
;
private
Expandable
ViewHolder
optionExpand
;
private
Expandable
optionExpand
;
private
void
magiskInstall
(
View
v
)
{
// Show Manager update first
...
...
@@ -137,7 +138,7 @@ public class MagiskFragment extends BaseFragment
unbinder
=
new
MagiskFragment_ViewBinding
(
this
,
v
);
requireActivity
().
setTitle
(
R
.
string
.
magisk
);
optionExpand
=
new
ArrowExpand
edViewHolder
(
optionExpandLayout
,
arrow
);
optionExpand
=
new
ArrowExpand
able
(
new
ExpandableViewHolder
(
optionExpandLayout
)
,
arrow
);
safetyNet
=
new
SafetyNet
(
v
);
magisk
=
new
UpdateCardHolder
(
inflater
,
root
);
manager
=
new
UpdateCardHolder
(
inflater
,
root
);
...
...
app/src/main/java/com/topjohnwu/magisk/uicomponents/ArrowExpand
edViewHolder
.java
→
app/src/main/java/com/topjohnwu/magisk/uicomponents/ArrowExpand
able
.java
View file @
18ac6b27
package
com
.
topjohnwu
.
magisk
.
uicomponents
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.view.animation.Animation
;
import
android.view.animation.RotateAnimation
;
public
class
ArrowExpand
edViewHolder
extends
ExpandableViewHolder
{
public
class
ArrowExpand
able
extends
Expandable
{
protected
Expandable
mBase
;
private
View
arrow
;
public
ArrowExpand
edViewHolder
(
ViewGroup
viewGroup
,
View
arrow
)
{
super
(
viewGroup
)
;
public
ArrowExpand
able
(
Expandable
base
,
View
arrow
)
{
mBase
=
base
;
this
.
arrow
=
arrow
;
}
@Override
public
void
setExpanded
(
boolean
expanded
)
{
super
.
setExpanded
(
expanded
);
if
(
arrow
!=
null
)
arrow
.
setRotation
(
expanded
?
180
:
0
);
}
@Override
public
void
expand
()
{
super
.
expand
();
public
void
onExpand
()
{
mBase
.
onExpand
();
setRotate
(
new
RotateAnimation
(
0
,
180
,
Animation
.
RELATIVE_TO_SELF
,
0.5f
,
Animation
.
RELATIVE_TO_SELF
,
0.5f
));
}
@Override
public
void
c
ollapse
()
{
super
.
c
ollapse
();
public
void
onC
ollapse
()
{
mBase
.
onC
ollapse
();
setRotate
(
new
RotateAnimation
(
180
,
0
,
Animation
.
RELATIVE_TO_SELF
,
0.5f
,
Animation
.
RELATIVE_TO_SELF
,
0.5f
));
}
@Override
public
void
onSetExpanded
(
boolean
expanded
)
{
mBase
.
onSetExpanded
(
expanded
);
if
(
arrow
!=
null
)
arrow
.
setRotation
(
expanded
?
180
:
0
);
}
private
void
setRotate
(
RotateAnimation
rotate
)
{
rotate
.
setDuration
(
300
);
rotate
.
setFillAfter
(
true
);
...
...
app/src/main/java/com/topjohnwu/magisk/uicomponents/Expandable.java
0 → 100644
View file @
18ac6b27
package
com
.
topjohnwu
.
magisk
.
uicomponents
;
public
abstract
class
Expandable
{
private
boolean
mExpanded
=
false
;
public
final
boolean
isExpanded
()
{
return
mExpanded
;
}
public
final
void
setExpanded
(
boolean
expanded
)
{
mExpanded
=
expanded
;
onSetExpanded
(
expanded
);
}
public
final
void
expand
()
{
if
(
mExpanded
)
return
;
onExpand
();
mExpanded
=
true
;
}
public
final
void
collapse
()
{
if
(!
mExpanded
)
return
;
onCollapse
();
mExpanded
=
false
;
}
protected
abstract
void
onExpand
();
protected
abstract
void
onCollapse
();
protected
void
onSetExpanded
(
boolean
expanded
)
{
if
(
expanded
)
onExpand
();
else
onCollapse
();
}
}
app/src/main/java/com/topjohnwu/magisk/uicomponents/ExpandableViewHolder.java
View file @
18ac6b27
...
...
@@ -5,11 +5,10 @@ import android.view.View;
import
android.view.ViewGroup
;
import
android.view.ViewTreeObserver
;
public
class
ExpandableViewHolder
{
public
class
ExpandableViewHolder
extends
Expandable
{
private
ViewGroup
expandLayout
;
private
ValueAnimator
expandAnimator
,
collapseAnimator
;
private
boolean
mExpanded
=
false
;
private
int
expandHeight
=
0
;
public
ExpandableViewHolder
(
ViewGroup
viewGroup
)
{
...
...
@@ -34,28 +33,22 @@ public class ExpandableViewHolder {
});
}
public
boolean
isExpanded
()
{
return
mExpanded
;
}
public
void
setExpanded
(
boolean
expanded
)
{
mExpanded
=
expanded
;
ViewGroup
.
LayoutParams
layoutParams
=
expandLayout
.
getLayoutParams
();
layoutParams
.
height
=
expanded
?
expandHeight
:
0
;
expandLayout
.
setLayoutParams
(
layoutParams
);
}
public
void
expand
()
{
if
(
mExpanded
)
return
;
@Override
protected
void
onExpand
()
{
expandLayout
.
setVisibility
(
View
.
VISIBLE
);
expandAnimator
.
start
();
mExpanded
=
true
;
}
public
void
collapse
()
{
if
(!
mExpanded
)
return
;
@Override
protected
void
onCollapse
()
{
collapseAnimator
.
start
();
mExpanded
=
false
;
}
@Override
protected
void
onSetExpanded
(
boolean
expanded
)
{
ViewGroup
.
LayoutParams
layoutParams
=
expandLayout
.
getLayoutParams
();
layoutParams
.
height
=
expanded
?
expandHeight
:
0
;
expandLayout
.
setLayoutParams
(
layoutParams
);
}
private
ValueAnimator
slideAnimator
(
int
start
,
int
end
)
{
...
...
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