diff --git a/lib/src/app.dart b/lib/src/app.dart
index 7764940afa346024b194b17e65c7fba95ee14cff..3839e62e2fc435fa9676ad67840319490b334ff0 100644
--- a/lib/src/app.dart
+++ b/lib/src/app.dart
@@ -141,10 +141,11 @@ class _MainAppState extends State<MainApp> {
     });
 
 
-    initUniLinks();
-
     // Show buttons after timeout
     revealButtons(3);
+
+
+    initUniLinks();
   }
 
   @override
@@ -163,8 +164,20 @@ class _MainAppState extends State<MainApp> {
     });
   }
 
+  hideButtons() {
+    if (_revealTimer != null && _revealTimer.isActive) {
+      _revealTimer.cancel();
+    }
+
+
+    setState(() {
+      _buttonsHidden = true;
+    });
+  }
+
+  Timer _revealTimer;
   revealButtons(delay) {
-    Timer(
+    _revealTimer = Timer(
         Duration(seconds: delay),
             () {
           setState(() {
@@ -209,9 +222,7 @@ class _MainAppState extends State<MainApp> {
     }
 
     // Hide buttons so they wont blink after we close or finish oauth
-    setState(() {
-      _buttonsHidden = true;
-    });
+    hideButtons();
 
     setScreen(Screen.OAuth);