X-Git-Url: https://gitweb.stoutner.com/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fcom%2Fstoutner%2Fprivacybrowser%2Factivities%2FMainWebViewActivity.kt;h=8fb1bc38900941cfceedfbcd400f160bb12f6138;hb=80219baeee5b43d8b71162781ee18bdde0509df1;hp=ffa89265081f2846a831cb6b55d8e22b981b1254;hpb=fb1d23a702622f51fde491f8b868062603f4ccad;p=PrivacyBrowserAndroid.git diff --git a/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.kt b/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.kt index ffa89265..8fb1bc38 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.kt +++ b/app/src/main/java/com/stoutner/privacybrowser/activities/MainWebViewActivity.kt @@ -774,7 +774,7 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook } } else { // The app has been restarted. // If the new intent will open a new tab, set the saved tab position to be the size of the saved state array list. - // The tab position is 0 based, meaning the at the new tab will be the tab position that is restored. + // The tab position is 0 based, meaning the new tab will be the tab position that is restored. if ((intentUriData != null) || (intentStringExtra != null) || isWebSearch) savedTabPosition = savedStateArrayList!!.size @@ -3982,17 +3982,12 @@ class MainWebViewActivity : AppCompatActivity(), CreateBookmarkDialog.CreateBook // Set the first page as the current WebView. setCurrentWebView(0) } else { // The first tab is not selected. - // Create a handler move to the page. - val setCurrentPageHandler = Handler(Looper.getMainLooper()) + // Switch to the page before the saved tab position. + webViewViewPager2.post { webViewViewPager2.currentItem = (savedTabPosition - 1) } - // Create a runnable to move to the page. - val setCurrentPageRunnable = Runnable { - // Move to the page. - webViewViewPager2.currentItem = savedTabPosition - } - - // Move to the page after 50 milliseconds, which should be enough time to for the WebView state adapter to populate the restored pages. - setCurrentPageHandler.postDelayed(setCurrentPageRunnable, 50) + // Switch to the saved tab position. + // This has to be done twice because, for some reason, if the above step is skipped there is some race condition where nothing happens and the first page is displayed. + webViewViewPager2.post { webViewViewPager2.currentItem = savedTabPosition } } // Get the intent that started the app.