Welcome to mirror list, hosted at ThFree Co, Russian Federation.

AboutActivity.java « about « notes « owncloud « niedermann « it « java « main « src « app - github.com/stefan-niedermann/nextcloud-notes.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: f7d63667560e0942b923950a108b1827c659e8bf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
package it.niedermann.owncloud.notes.about;

import android.os.Bundle;

import androidx.annotation.ColorInt;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.viewpager2.adapter.FragmentStateAdapter;

import com.google.android.material.tabs.TabLayoutMediator;

import it.niedermann.owncloud.notes.LockedActivity;
import it.niedermann.owncloud.notes.R;
import it.niedermann.owncloud.notes.branding.BrandingUtil;
import it.niedermann.owncloud.notes.databinding.ActivityAboutBinding;

public class AboutActivity extends LockedActivity {

    private ActivityAboutBinding binding;
    private final static int POS_CREDITS = 0;
    private final static int POS_CONTRIB = 1;
    private final static int POS_LICENSE = 2;
    private final static int TOTAL_COUNT = 3;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        binding = ActivityAboutBinding.inflate(getLayoutInflater());
        setContentView(binding.getRoot());

        setSupportActionBar(binding.toolbar);
        binding.pager.setAdapter(new TabsStateAdapter(this));
        // generate title based on given position
        new TabLayoutMediator(binding.tabs, binding.pager, (tab, position) -> {
            switch (position) { // Fall-through to credits tab
                default ->
                        tab.setText(R.string.about_credits_tab_title);
                case POS_CONTRIB ->
                        tab.setText(R.string.about_contribution_tab_title);
                case POS_LICENSE ->
                        tab.setText(R.string.about_license_tab_title);
            }
        }).attach();
    }

    @Override
    public void applyBrand(int color) {
        final var util = BrandingUtil.of(color, this);
        util.platform.themeStatusBar(this);
        util.material.themeToolbar(binding.toolbar);
        util.material.themeTabLayoutOnSurface(binding.tabs);
    }

    private static class TabsStateAdapter extends FragmentStateAdapter {

        TabsStateAdapter(FragmentActivity fa) {
            super(fa);
        }

        @Override
        public int getItemCount() {
            return TOTAL_COUNT;
        }

        /**
         * return the right fragment for the given position
         */
        @NonNull
        @Override
        public Fragment createFragment(int position) {
            return switch (position) { // Fall-through to credits tab
                default -> new AboutFragmentCreditsTab();
                case POS_CONTRIB -> new AboutFragmentContributingTab();
                case POS_LICENSE -> new AboutFragmentLicenseTab();
            };
        }
    }

    @Override
    public boolean onSupportNavigateUp() {
        finish(); // close this activity as oppose to navigating up
        return true;
    }
}