Skip to content

Commit 0c0596e

Browse files
committed
Merge pull request stormzhang#7 from sweetvvck/master
upgrade convertToTranslucent
2 parents 8252a02 + 0660f76 commit 0c0596e

File tree

1 file changed

+26
-9
lines changed

1 file changed

+26
-9
lines changed

app/src/main/java/me/storm/ninegag/view/swipeback/SwipeBackActivityHelper.java

+26-9
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
package me.storm.ninegag.view.swipeback;
33

44
import android.app.Activity;
5+
import android.app.ActivityOptions;
56
import android.graphics.drawable.ColorDrawable;
7+
import android.os.Build;
68
import android.view.LayoutInflater;
79
import android.view.View;
810

@@ -90,10 +92,14 @@ public void convertActivityFromTranslucent() {
9092
* {@link android.R.attr#windowIsTranslucent} back from opaque to
9193
* translucent following a call to {@link #convertActivityFromTranslucent()}
9294
* .
93-
* <p/>
95+
*
96+
97+
9498
* Calling this allows the Activity behind this one to be seen again. Once
9599
* all such Activities have been redrawn
96-
* <p/>
100+
*
101+
102+
97103
* This call has no effect on non-translucent activities or on activities
98104
* with the {@link android.R.attr#windowIsFloating} attribute.
99105
*/
@@ -102,17 +108,28 @@ public void convertActivityToTranslucent() {
102108
Class<?>[] classes = Activity.class.getDeclaredClasses();
103109
Class<?> translucentConversionListenerClazz = null;
104110
for (Class clazz : classes) {
105-
if (clazz.getSimpleName().contains("TranslucentConversionListener")) {
111+
if (clazz.getSimpleName().contains(
112+
"TranslucentConversionListener")) {
106113
translucentConversionListenerClazz = clazz;
107114
}
108115
}
109-
Method method = Activity.class.getDeclaredMethod("convertToTranslucent",
110-
translucentConversionListenerClazz);
111-
method.setAccessible(true);
112-
method.invoke(mActivity, new Object[]{
113-
null
114-
});
116+
Method[] methods = Activity.class.getDeclaredMethods();
117+
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
118+
Method method = Activity.class.getDeclaredMethod(
119+
"convertToTranslucent",
120+
translucentConversionListenerClazz);
121+
method.setAccessible(true);
122+
method.invoke(mActivity, new Object[] { null });
123+
} else {
124+
Method method = Activity.class.getDeclaredMethod(
125+
"convertToTranslucent",
126+
translucentConversionListenerClazz,
127+
ActivityOptions.class);
128+
method.setAccessible(true);
129+
method.invoke(mActivity, new Object[] { null, null });
130+
}
115131
} catch (Throwable t) {
132+
t.printStackTrace();
116133
}
117134
}
118135
}

0 commit comments

Comments
 (0)