aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/app/src/main/java/com/wireguard/android/widget/MonkeyedSnackbar.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/com/wireguard/android/widget/MonkeyedSnackbar.java')
-rw-r--r--app/src/main/java/com/wireguard/android/widget/MonkeyedSnackbar.java33
1 files changed, 33 insertions, 0 deletions
diff --git a/app/src/main/java/com/wireguard/android/widget/MonkeyedSnackbar.java b/app/src/main/java/com/wireguard/android/widget/MonkeyedSnackbar.java
new file mode 100644
index 00000000..e32316cd
--- /dev/null
+++ b/app/src/main/java/com/wireguard/android/widget/MonkeyedSnackbar.java
@@ -0,0 +1,33 @@
+package com.wireguard.android.widget;
+
+import android.support.annotation.NonNull;
+import android.support.design.widget.BaseTransientBottomBar;
+import android.support.design.widget.Snackbar;
+import android.util.Log;
+import android.view.View;
+import android.view.accessibility.AccessibilityManager;
+
+import com.wireguard.android.BootShutdownReceiver;
+
+import java.lang.reflect.Field;
+
+public class MonkeyedSnackbar {
+ private static final String TAG = "WireGuard/" + BootShutdownReceiver.class.getSimpleName();
+
+ public static Snackbar make(@NonNull final View view, @NonNull final CharSequence text,
+ @BaseTransientBottomBar.Duration final int duration) {
+ final Snackbar snackbar = Snackbar.make(view, text, duration);
+
+ try {
+ final Field accessibilityManager = Snackbar.class.getSuperclass().getDeclaredField("mAccessibilityManager");
+ accessibilityManager.setAccessible(true);
+ final Field isEnabled = AccessibilityManager.class.getDeclaredField("mIsEnabled");
+ isEnabled.setAccessible(true);
+ isEnabled.setBoolean(accessibilityManager.get(snackbar), false);
+ } catch (final Exception e) {
+ Log.e(TAG, "Unable to force-enable snackbar animations", e);
+ }
+
+ return snackbar;
+ }
+}