X-Git-Url: https://gitweb.stoutner.com/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fcom%2Fstoutner%2Fprivacybrowser%2Factivities%2FGuideActivity.kt;h=624ba5afa95f920c702b36583e9aee6998d06d48;hb=HEAD;hp=e73608a56902f53e9f6fc67414814e9302e0f6f4;hpb=a156c3942ca31a1afca3271245cc2bda7ed5aed8;p=PrivacyBrowserAndroid.git diff --git a/app/src/main/java/com/stoutner/privacybrowser/activities/GuideActivity.kt b/app/src/main/java/com/stoutner/privacybrowser/activities/GuideActivity.kt index e73608a5..624ba5af 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/activities/GuideActivity.kt +++ b/app/src/main/java/com/stoutner/privacybrowser/activities/GuideActivity.kt @@ -1,7 +1,7 @@ /* - * Copyright © 2016-2022 Soren Stoutner . + * Copyright 2016-2024 Soren Stoutner . * - * This file is part of Privacy Browser Android . + * This file is part of Privacy Browser Android . * * Privacy Browser Android is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -25,12 +25,13 @@ import android.view.WindowManager import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.widget.Toolbar import androidx.preference.PreferenceManager -import androidx.viewpager.widget.ViewPager +import androidx.viewpager2.widget.ViewPager2 import com.google.android.material.tabs.TabLayout +import com.google.android.material.tabs.TabLayoutMediator import com.stoutner.privacybrowser.R -import com.stoutner.privacybrowser.adapters.GuidePagerAdapter +import com.stoutner.privacybrowser.adapters.GuideStateAdapter class GuideActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { @@ -42,24 +43,22 @@ class GuideActivity : AppCompatActivity() { val bottomAppBar = sharedPreferences.getBoolean(getString(R.string.bottom_app_bar_key), false) // Disable screenshots if not allowed. - if (!allowScreenshots) { + if (!allowScreenshots) window.addFlags(WindowManager.LayoutParams.FLAG_SECURE) - } // Run the default commands. super.onCreate(savedInstanceState) // Set the content view. - if (bottomAppBar) { + if (bottomAppBar) setContentView(R.layout.guide_bottom_appbar) - } else { + else setContentView(R.layout.guide_top_appbar) - } // Get handles for the views. val toolbar = findViewById(R.id.guide_toolbar) - val guideViewPager = findViewById(R.id.guide_viewpager) val guideTabLayout = findViewById(R.id.guide_tablayout) + val guideViewPager2 = findViewById(R.id.guide_viewpager2) // Set the support action bar. setSupportActionBar(toolbar) @@ -70,16 +69,31 @@ class GuideActivity : AppCompatActivity() { // Display the home arrow on the action bar. actionBar.setDisplayHomeAsUpEnabled(true) - // Initialize the guide pager adapter. - val guidePagerAdapter = GuidePagerAdapter(supportFragmentManager, applicationContext) + // Initialize the guide state adapter. + val guideStateAdapter = GuideStateAdapter(this) // Set the view pager adapter. - guideViewPager.adapter = guidePagerAdapter - - // Keep all the tabs in memory. This prevents the memory usage adapter from running multiple times. - guideViewPager.offscreenPageLimit = 10 - - // Link the tab layout to the view pager. - guideTabLayout.setupWithViewPager(guideViewPager) + guideViewPager2.adapter = guideStateAdapter + + // Disable swiping between pages in the view pager. + guideViewPager2.isUserInputEnabled = false + + // Create a tab layout mediator. Tab numbers start at 0. + TabLayoutMediator(guideTabLayout, guideViewPager2) { tab, position -> + // Set the tab text based on the position. + tab.text = when (position) { + 0 -> getString(R.string.overview) + 1 -> getString(R.string.javascript) + 2 -> getString(R.string.local_storage) + 3 -> getString(R.string.user_agent) + 4 -> getString(R.string.requests) + 5 -> getString(R.string.domain_settings) + 6 -> getString(R.string.ssl_certificates) + 7 -> getString(R.string.proxies) + 8 -> getString(R.string.tracking_ids) + 9 -> getString(R.string.gui) + else -> "" + } + }.attach() } -} \ No newline at end of file +}