/*
- * Copyright © 2016-2019 Soren Stoutner <soren@stoutner.com>.
+ * Copyright © 2016-2021 Soren Stoutner <soren@stoutner.com>.
*
* This file is part of Privacy Browser <https://www.stoutner.com/privacy-browser>.
*
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
-import androidx.appcompat.widget.Toolbar; // The AndroidX toolbar must be used until the minimum API is >= 21.
-import androidx.fragment.app.Fragment;
-import androidx.fragment.app.FragmentManager;
-import androidx.fragment.app.FragmentPagerAdapter;
+import androidx.appcompat.widget.Toolbar;
import androidx.viewpager.widget.ViewPager;
import com.google.android.material.tabs.TabLayout;
-import com.stoutner.privacybrowser.fragments.GuideTabFragment;
+import com.stoutner.privacybrowser.adapters.GuidePagerAdapter;
import com.stoutner.privacybrowser.R;
public class GuideActivity extends AppCompatActivity {
// Get a handle for the shared preferences.
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
- // Get the theme and screenshot preferences.
- boolean darkTheme = sharedPreferences.getBoolean("dark_theme", false);
- boolean allowScreenshots = sharedPreferences.getBoolean("allow_screenshots", false);
+ // Get the preferences.
+ boolean allowScreenshots = sharedPreferences.getBoolean(getString(R.string.allow_screenshots_key), false);
+ boolean bottomAppBar = sharedPreferences.getBoolean(getString(R.string.bottom_app_bar_key), false);
// Disable screenshots if not allowed.
if (!allowScreenshots) {
}
// Set the theme.
- if (darkTheme) {
- setTheme(R.style.PrivacyBrowserDark_SecondaryActivity);
- } else {
- setTheme(R.style.PrivacyBrowserLight_SecondaryActivity);
- }
+ setTheme(R.style.PrivacyBrowser);
// Run the default commands.
super.onCreate(savedInstanceState);
// Set the content view.
- setContentView(R.layout.guide_coordinatorlayout);
+ if (bottomAppBar) {
+ setContentView(R.layout.guide_bottom_appbar);
+ } else {
+ setContentView(R.layout.guide_top_appbar);
+ }
- // The AndroidX toolbar must be used until the minimum API is >= 21.
+ // Get a handle for the toolbar.
Toolbar toolbar = findViewById(R.id.guide_toolbar);
+
+ // Set the support action bar.
setSupportActionBar(toolbar);
// Get a handle for the action bar.
// Display the home arrow on the action bar.
actionBar.setDisplayHomeAsUpEnabled(true);
- // Setup the ViewPager.
+ // Get a handle for the view pager and the tab layout.
ViewPager aboutViewPager = findViewById(R.id.guide_viewpager);
- assert aboutViewPager != null; // This assert removes the incorrect warning in Android Studio on the following line that aboutViewPager might be null.
- aboutViewPager.setAdapter(new guidePagerAdapter(getSupportFragmentManager()));
-
- // Setup the TabLayout and connect it to the ViewPager.
TabLayout aboutTabLayout = findViewById(R.id.guide_tablayout);
- assert aboutTabLayout != null; // This assert removes the incorrect warning in Android Studio on the following line that aboutTabLayout might be null.
- aboutTabLayout.setupWithViewPager(aboutViewPager);
- }
-
- private class guidePagerAdapter extends FragmentPagerAdapter {
- private guidePagerAdapter(FragmentManager fragmentManager) {
- // Run the default commands.
- super(fragmentManager);
- }
-
- @Override
- // Get the count of the number of tabs.
- public int getCount() {
- return 10;
- }
- @Override
- // Get the name of each tab. Tab numbers start at 0.
- public CharSequence getPageTitle(int tab) {
- switch (tab) {
- case 0:
- return getString(R.string.overview);
+ // Remove the incorrect lint warnings that the views might be null
+ assert aboutViewPager != null;
+ assert aboutTabLayout != null;
- case 1:
- return getString(R.string.javascript);
+ // Set the view pager adapter.
+ aboutViewPager.setAdapter(new GuidePagerAdapter(getSupportFragmentManager(), getApplicationContext()));
- case 2:
- return getString(R.string.local_storage);
+ // Keep all the tabs in memory.
+ aboutViewPager.setOffscreenPageLimit(10);
- case 3:
- return getString(R.string.user_agent);
-
- case 4:
- return getString(R.string.requests);
-
- case 5:
- return getString(R.string.domain_settings);
-
- case 6:
- return getString(R.string.ssl_certificates);
-
- case 7:
- return getString(R.string.tor);
-
- case 8:
- return getString(R.string.tracking_ids);
-
- case 9:
- return getString(R.string.bookmarks);
-
- default:
- return "";
- }
- }
-
- @Override
- // Setup each tab.
- public Fragment getItem(int tab) {
- return GuideTabFragment.createTab(tab);
- }
+ // Link the tab layout to the view pager.
+ aboutTabLayout.setupWithViewPager(aboutViewPager);
}
-}
+}
\ No newline at end of file