X-Git-Url: https://gitweb.stoutner.com/?a=blobdiff_plain;f=app%2Fsrc%2Fmain%2Fjava%2Fcom%2Fstoutner%2Fprivacybrowser%2Factivities%2FAboutActivity.kt;h=bd2a837d565c8f1444bffedd5c2f269678f32f1a;hb=HEAD;hp=d52d95ec040bc49bf69d282a3fdc017815c95903;hpb=d53f0640263cf0799e7304fa459864c542ab0d2a;p=PrivacyBrowserAndroid.git diff --git a/app/src/main/java/com/stoutner/privacybrowser/activities/AboutActivity.kt b/app/src/main/java/com/stoutner/privacybrowser/activities/AboutActivity.kt index d52d95ec..85e05191 100644 --- a/app/src/main/java/com/stoutner/privacybrowser/activities/AboutActivity.kt +++ b/app/src/main/java/com/stoutner/privacybrowser/activities/AboutActivity.kt @@ -1,20 +1,20 @@ -/* - * Copyright © 2016-2021 Soren Stoutner . +/* SPDX-License-Identifier: GPL-3.0-or-later + * SPDX-FileCopyrightText: 2016-2023 Soren Stoutner * - * This file is part of Privacy Browser . + * This file is part of Privacy Browser Android . * - * Privacy Browser is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * This program is free software: you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation, either version 3 of the License, or (at your option) any later + * version. * - * Privacy Browser is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. * - * You should have received a copy of the GNU General Public License - * along with Privacy Browser. If not, see . + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . */ package com.stoutner.privacybrowser.activities @@ -25,22 +25,17 @@ 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.AboutPagerAdapter +import com.stoutner.privacybrowser.adapters.AboutStateAdapter -class AboutActivity : AppCompatActivity() { - // Declare the class variables. - private lateinit var aboutPagerAdapter: AboutPagerAdapter - - companion object { - // Define the companion object constants. These can be move to being public constants once MainWebViewActivity has been converted to Kotlin. - const val BLOCKLIST_VERSIONS = "blocklist_versions" - } +const val FILTERLIST_VERSIONS = "filterlist_versions" +class AboutActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { // Get a handle for the shared preferences. val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this) @@ -54,29 +49,25 @@ class AboutActivity : AppCompatActivity() { window.addFlags(WindowManager.LayoutParams.FLAG_SECURE) } - // Set the theme. - setTheme(R.style.PrivacyBrowser) - // Run the default commands. super.onCreate(savedInstanceState) // Get the intent that launched the activity. val launchingIntent = intent - // Store the blocklist versions. - val blocklistVersions = launchingIntent.getStringArrayExtra(BLOCKLIST_VERSIONS)!! + // Get the filter list versions. + val filterListVersions = launchingIntent.getStringArrayExtra(FILTERLIST_VERSIONS)!! // Set the content view. - if (bottomAppBar) { + if (bottomAppBar) setContentView(R.layout.about_bottom_appbar) - } else { + else setContentView(R.layout.about_top_appbar) - } // Get handles for the views. val toolbar = findViewById(R.id.about_toolbar) val aboutTabLayout = findViewById(R.id.about_tablayout) - val aboutViewPager = findViewById(R.id.about_viewpager) + val aboutViewPager2 = findViewById(R.id.about_viewpager2) // Set the support action bar. setSupportActionBar(toolbar) @@ -87,16 +78,28 @@ class AboutActivity : AppCompatActivity() { // Display the home arrow on the action bar. actionBar.setDisplayHomeAsUpEnabled(true) - // Initialize the about pager adapter. - aboutPagerAdapter = AboutPagerAdapter(supportFragmentManager, applicationContext, blocklistVersions) + // Initialize the about state adapter. + val aboutStateAdapter = AboutStateAdapter(this, filterListVersions) // Set the view pager adapter. - aboutViewPager.adapter = aboutPagerAdapter - - // Keep all the tabs in memory. This prevents the memory usage updater from running multiple times. - aboutViewPager.offscreenPageLimit = 10 - - // Connect the tab layout to the view pager. - aboutTabLayout.setupWithViewPager(aboutViewPager) + aboutViewPager2.adapter = aboutStateAdapter + + // Disable swiping between pages in the view pager. + aboutViewPager2.isUserInputEnabled = false + + // Create a tab layout mediator. Tab numbers start at 0. + TabLayoutMediator(aboutTabLayout, aboutViewPager2) { tab, position -> + // Set the tab text based on the position. + tab.text = when (position) { + 0 -> getString(R.string.version) + 1 -> getString(R.string.permissions) + 2 -> getString(R.string.privacy_policy) + 3 -> getString(R.string.changelog) + 4 -> getString(R.string.licenses) + 5 -> getString(R.string.contributors) + 6 -> getString(R.string.links) + else -> "" + } + }.attach() } }