Skip to content
This repository was archived by the owner on Sep 3, 2024. It is now read-only.

Commit bcc25a7

Browse files
authored
app: update RecyclerView, ViewPager, NestedScrollView; fix OUI4 Progress anim, spinner item text style (#79)
TODO: fix RecyclerView nested scroll behavior Signed-off-by: BlackMesa123 <giangrecosalvo9@gmail.com>
1 parent 5ecc033 commit bcc25a7

File tree

88 files changed

+18652
-15395
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+18652
-15395
lines changed

app/src/main/java/de/dlyt/yanndroid/oneuiexample/tabs/IconsTab.java

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424

2525
import de.dlyt.yanndroid.oneui.layout.DrawerLayout;
2626
import de.dlyt.yanndroid.oneui.layout.ToolbarLayout;
27-
import de.dlyt.yanndroid.oneui.sesl.recyclerview.SeslLinearLayoutManager;
27+
import de.dlyt.yanndroid.oneui.sesl.recyclerview.LinearLayoutManager;
2828
import de.dlyt.yanndroid.oneui.view.BottomNavigationView;
2929
import de.dlyt.yanndroid.oneui.view.RecyclerView;
3030
import de.dlyt.yanndroid.oneui.view.TabLayout;
@@ -300,7 +300,7 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat
300300
for (int i = 0; i < imageIDs.length; i++) selected.put(i, false);
301301

302302
listView = mRootView.findViewById(R.id.images);
303-
listView.setLayoutManager(new SeslLinearLayoutManager(mContext));
303+
listView.setLayoutManager(new LinearLayoutManager(mContext));
304304
imageAdapter = new ImageAdapter();
305305
listView.setAdapter(imageAdapter);
306306

@@ -528,30 +528,10 @@ public void seslOnDispatchDraw(Canvas canvas, RecyclerView recyclerView, Recycle
528528
mSeslRoundedCornerTop.drawRoundedCorner(canvas);
529529
}
530530

531-
private boolean canScrollUp(RecyclerView recyclerView) {
532-
RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
533-
if (!(layoutManager instanceof SeslLinearLayoutManager)) {
534-
return false;
535-
}
536-
537-
boolean isntFirstItem = ((SeslLinearLayoutManager) layoutManager).findFirstVisibleItemPosition() > 0;
538-
View childAt = recyclerView.getChildAt(0);
539-
540-
if (isntFirstItem || childAt == null) {
541-
return isntFirstItem;
542-
}
543-
if (childAt.getTop() < recyclerView.getPaddingTop()) {
544-
return true;
545-
} else {
546-
return false;
547-
}
548-
}
549-
550531
public void setDivider(Drawable d) {
551532
mDivider = d;
552533
mDividerHeight = d.getIntrinsicHeight();
553534
listView.invalidateItemDecorations();
554535
}
555-
556536
}
557537
}

app/src/main/res/layout/fragment_views_tab.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,22 +49,22 @@
4949
android:layout_height="wrap_content"
5050
android:orientation="horizontal">
5151

52-
<ProgressBar
52+
<de.dlyt.yanndroid.oneui.view.ProgressBar
5353
style="?android:progressBarStyleLarge"
5454
android:layout_width="wrap_content"
5555
android:layout_height="wrap_content" />
5656

57-
<ProgressBar
57+
<de.dlyt.yanndroid.oneui.view.ProgressBar
5858
style="?android:progressBarStyle"
5959
android:layout_width="wrap_content"
6060
android:layout_height="wrap_content" />
6161

62-
<ProgressBar
62+
<de.dlyt.yanndroid.oneui.view.ProgressBar
6363
style="?android:progressBarStyleSmall"
6464
android:layout_width="wrap_content"
6565
android:layout_height="wrap_content" />
6666

67-
<ProgressBar
67+
<de.dlyt.yanndroid.oneui.view.ProgressBar
6868
style="?android:progressBarStyleSmallTitle"
6969
android:layout_width="wrap_content"
7070
android:layout_height="wrap_content" />
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package androidx.reflect.provider;
2+
3+
import android.os.Build;
4+
import android.provider.Settings;
5+
6+
import androidx.reflect.SeslBaseReflector;
7+
8+
import java.lang.reflect.Field;
9+
import java.lang.reflect.Method;
10+
11+
public class SeslSystemReflector {
12+
public static final Class<?> mClass = Settings.System.class;
13+
14+
public static String getField_SEM_PEN_HOVERING() {
15+
int i = Build.VERSION.SDK_INT;
16+
Object obj = null;
17+
if (i >= 29) {
18+
Method declaredMethod = SeslBaseReflector.getDeclaredMethod(mClass, "hidden_SEM_PEN_HOVERING", new Class[0]);
19+
if (declaredMethod != null) {
20+
obj = SeslBaseReflector.invoke(null, declaredMethod, new Object[0]);
21+
}
22+
} else {
23+
Field field = SeslBaseReflector.getField(mClass, i >= 24 ? "SEM_PEN_HOVERING" : "PEN_HOVERING");
24+
if (field != null) {
25+
obj = SeslBaseReflector.get(null, field);
26+
}
27+
}
28+
return obj instanceof String ? (String) obj : "pen_hovering";
29+
}
30+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package androidx.reflect.view;
2+
3+
import android.os.Build;
4+
import android.view.InputDevice;
5+
6+
import androidx.reflect.SeslBaseReflector;
7+
8+
import java.lang.reflect.Method;
9+
10+
public class SeslInputDeviceReflector {
11+
public static final Class<?> mClass = InputDevice.class;
12+
13+
public static void semSetPointerType(InputDevice inputDevice, int i) {
14+
if (inputDevice != null) {
15+
Method method = null;
16+
int i2 = Build.VERSION.SDK_INT;
17+
if (i2 >= 29) {
18+
method = SeslBaseReflector.getDeclaredMethod(mClass, "hidden_setPointerType", Integer.TYPE);
19+
} else if (i2 >= 28) {
20+
method = SeslBaseReflector.getMethod(mClass, "semSetPointerType", Integer.TYPE);
21+
} else if (i2 >= 24) {
22+
method = SeslBaseReflector.getMethod(mClass, "setPointerType", Integer.TYPE);
23+
}
24+
if (method != null) {
25+
SeslBaseReflector.invoke(inputDevice, method, Integer.valueOf(i));
26+
}
27+
}
28+
}
29+
}
Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
package androidx.reflect.view;
2+
3+
import android.os.Build;
4+
5+
import androidx.reflect.SeslBaseReflector;
6+
7+
import java.lang.reflect.Field;
8+
import java.lang.reflect.Method;
9+
10+
public class SeslPointerIconReflector {
11+
public static String mClassName = "android.view.PointerIcon";
12+
13+
public static int getField_SEM_TYPE_STYLUS_DEFAULT() {
14+
int i = Build.VERSION.SDK_INT;
15+
Object obj = null;
16+
if (i >= 29) {
17+
Method declaredMethod = SeslBaseReflector.getDeclaredMethod(mClassName, "hidden_SEM_TYPE_STYLUS_DEFAULT", new Class[0]);
18+
if (declaredMethod != null) {
19+
obj = SeslBaseReflector.invoke(null, declaredMethod, new Object[0]);
20+
}
21+
} else {
22+
Field field = SeslBaseReflector.getField(mClassName, i >= 24 ? "SEM_TYPE_STYLUS_DEFAULT" : "HOVERING_SPENICON_DEFAULT");
23+
if (field != null) {
24+
obj = SeslBaseReflector.get(null, field);
25+
}
26+
}
27+
if (obj instanceof Integer) {
28+
return ((Integer) obj).intValue();
29+
}
30+
return 1;
31+
}
32+
33+
public static int getField_SEM_TYPE_STYLUS_SCROLL_UP() {
34+
int i = Build.VERSION.SDK_INT;
35+
Object obj = null;
36+
if (i >= 29) {
37+
Method declaredMethod = SeslBaseReflector.getDeclaredMethod(mClassName, "hidden_SEM_TYPE_STYLUS_SCROLL_UP", new Class[0]);
38+
if (declaredMethod != null) {
39+
obj = SeslBaseReflector.invoke(null, declaredMethod, new Object[0]);
40+
}
41+
} else {
42+
Field field = SeslBaseReflector.getField(mClassName, i >= 24 ? "SEM_TYPE_STYLUS_SCROLL_UP" : "HOVERING_SCROLLICON_POINTER_01");
43+
if (field != null) {
44+
obj = SeslBaseReflector.get(null, field);
45+
}
46+
}
47+
if (obj instanceof Integer) {
48+
return ((Integer) obj).intValue();
49+
}
50+
return 11;
51+
}
52+
53+
public static int getField_SEM_TYPE_STYLUS_SCROLL_DOWN() {
54+
int i = Build.VERSION.SDK_INT;
55+
Object obj = null;
56+
if (i >= 29) {
57+
Method declaredMethod = SeslBaseReflector.getDeclaredMethod(mClassName, "hidden_SEM_TYPE_STYLUS_SCROLL_DOWN", new Class[0]);
58+
if (declaredMethod != null) {
59+
obj = SeslBaseReflector.invoke(null, declaredMethod, new Object[0]);
60+
}
61+
} else {
62+
Field field = SeslBaseReflector.getField(mClassName, i >= 24 ? "SEM_TYPE_STYLUS_SCROLL_DOWN" : "HOVERING_SCROLLICON_POINTER_05");
63+
if (field != null) {
64+
obj = SeslBaseReflector.get(null, field);
65+
}
66+
}
67+
if (obj instanceof Integer) {
68+
return ((Integer) obj).intValue();
69+
}
70+
return 15;
71+
}
72+
73+
public static int getField_SEM_TYPE_STYLUS_SCROLL_LEFT() {
74+
int i = Build.VERSION.SDK_INT;
75+
Object obj = null;
76+
if (i >= 29) {
77+
Method declaredMethod = SeslBaseReflector.getDeclaredMethod(mClassName, "hidden_SEM_TYPE_STYLUS_SCROLL_LEFT", new Class[0]);
78+
if (declaredMethod != null) {
79+
obj = SeslBaseReflector.invoke(null, declaredMethod, new Object[0]);
80+
}
81+
} else {
82+
Field field = SeslBaseReflector.getField(mClassName, i >= 24 ? "SEM_TYPE_STYLUS_SCROLL_LEFT" : "HOVERING_SCROLLICON_POINTER_07");
83+
if (field != null) {
84+
obj = SeslBaseReflector.get(null, field);
85+
}
86+
}
87+
if (obj instanceof Integer) {
88+
return ((Integer) obj).intValue();
89+
}
90+
return 17;
91+
}
92+
93+
public static int getField_SEM_TYPE_STYLUS_SCROLL_RIGHT() {
94+
int i = Build.VERSION.SDK_INT;
95+
Object obj = null;
96+
if (i >= 29) {
97+
Method declaredMethod = SeslBaseReflector.getDeclaredMethod(mClassName, "hidden_SEM_TYPE_STYLUS_SCROLL_RIGHT", new Class[0]);
98+
if (declaredMethod != null) {
99+
obj = SeslBaseReflector.invoke(null, declaredMethod, new Object[0]);
100+
}
101+
} else {
102+
Field field = SeslBaseReflector.getField(mClassName, i >= 24 ? "SEM_TYPE_STYLUS_SCROLL_RIGHT" : "HOVERING_SCROLLICON_POINTER_03");
103+
if (field != null) {
104+
obj = SeslBaseReflector.get(null, field);
105+
}
106+
}
107+
if (obj instanceof Integer) {
108+
return ((Integer) obj).intValue();
109+
}
110+
return 13;
111+
}
112+
113+
public static int getField_SEM_TYPE_STYLUS_PEN_SELECT() {
114+
int i = Build.VERSION.SDK_INT;
115+
Object obj = null;
116+
if (i >= 29) {
117+
Method declaredMethod = SeslBaseReflector.getDeclaredMethod(mClassName, "hidden_SEM_TYPE_STYLUS_PEN_SELECT", new Class[0]);
118+
if (declaredMethod != null) {
119+
obj = SeslBaseReflector.invoke(null, declaredMethod, new Object[0]);
120+
}
121+
} else {
122+
Field field = SeslBaseReflector.getField(mClassName, i >= 24 ? "SEM_TYPE_STYLUS_PEN_SELECT" : "HOVERING_PENSELECT_POINTER_01");
123+
if (field != null) {
124+
obj = SeslBaseReflector.get(null, field);
125+
}
126+
}
127+
if (obj instanceof Integer) {
128+
return ((Integer) obj).intValue();
129+
}
130+
return 21;
131+
}
132+
133+
public static int getField_SEM_TYPE_STYLUS_MORE() {
134+
int i = Build.VERSION.SDK_INT;
135+
Object obj = null;
136+
if (i >= 29) {
137+
Method declaredMethod = SeslBaseReflector.getDeclaredMethod(mClassName, "hidden_SEM_TYPE_STYLUS_MORE", new Class[0]);
138+
if (declaredMethod != null) {
139+
obj = SeslBaseReflector.invoke(null, declaredMethod, new Object[0]);
140+
}
141+
} else {
142+
Field field = SeslBaseReflector.getField(mClassName, i >= 24 ? "SEM_TYPE_STYLUS_MORE" : "HOVERING_SPENICON_MORE");
143+
if (field != null) {
144+
obj = SeslBaseReflector.get(null, field);
145+
}
146+
}
147+
if (obj instanceof Integer) {
148+
return ((Integer) obj).intValue();
149+
}
150+
return 20010;
151+
}
152+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package androidx.reflect.widget;
2+
3+
import android.os.Build;
4+
import android.widget.OverScroller;
5+
6+
import androidx.reflect.SeslBaseReflector;
7+
8+
import java.lang.reflect.Method;
9+
10+
public class SeslOverScrollerReflector {
11+
public static final Class<?> mClass = OverScroller.class;
12+
13+
public static void fling(OverScroller overScroller, int i, int i2, int i3, int i4, int i5, int i6, int i7, int i8, boolean z, float f) {
14+
if (Build.VERSION.SDK_INT >= 30) {
15+
Class<?> cls = mClass;
16+
Class cls2 = Integer.TYPE;
17+
Method declaredMethod = SeslBaseReflector.getDeclaredMethod(cls, "hidden_fling", cls2, cls2, Boolean.TYPE, Float.TYPE);
18+
if (declaredMethod != null) {
19+
SeslBaseReflector.invoke(overScroller, declaredMethod, Integer.valueOf(i3), Integer.valueOf(i4), Boolean.valueOf(z), Float.valueOf(f));
20+
return;
21+
}
22+
}
23+
overScroller.fling(i, i2, i3, i4, i5, i6, i7, i8);
24+
}
25+
26+
public static void setSmoothScrollEnabled(OverScroller overScroller, boolean z) {
27+
Method declaredMethod;
28+
if (Build.VERSION.SDK_INT >= 26 && (declaredMethod = SeslBaseReflector.getDeclaredMethod(mClass, "semSetSmoothScrollEnabled", Boolean.TYPE)) != null) {
29+
SeslBaseReflector.invoke(overScroller, declaredMethod, Boolean.valueOf(z));
30+
}
31+
}
32+
}

0 commit comments

Comments
 (0)