de.gebatzens.sia.FirstUseActivity.java Source code

Java tutorial

Introduction

Here is the source code for de.gebatzens.sia.FirstUseActivity.java

Source

/*
 * Copyright 2015 Hauke Oldsen
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package de.gebatzens.sia;

import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatDelegate;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;

import de.gebatzens.sia.fragment.FirstUseAdapter;
import de.gebatzens.sia.fragment.FirstUseFragment;

public class FirstUseActivity extends FragmentActivity {

    public FirstUseAdapter adapter;
    private ImageView iv_left;
    private ImageView iv_right;

    @Override
    protected void onCreate(Bundle bundle) {
        AppCompatDelegate.setDefaultNightMode(SIAApp.SIA_APP.getThemeMode());
        setTheme(R.style.FirstUseTheme);
        adapter = new FirstUseAdapter(getSupportFragmentManager(), FirstUseActivity.this);

        super.onCreate(bundle);

        if (SIAApp.SIA_APP.getCustomThemeName() != null) {
            if (SIAApp.SIA_APP.getCustomThemeName().equals("Summer")
                    || SIAApp.SIA_APP.getCustomThemeName().equals("Winter")) {
                String themeName = SIAApp.SIA_APP.getSeasonTheme();
                if (!SIAApp.SIA_APP.getCustomThemeName().equals(themeName)) {
                    if (themeName.equals("Winter")) {
                        SIAApp.SIA_APP.setCustomThemeName("Winter");
                        SIAApp.SIA_APP.school.loadTheme();
                    } else {
                        SIAApp.SIA_APP.setCustomThemeName("Summer");
                        SIAApp.SIA_APP.school.loadTheme();
                    }
                }
            }
        }

        if (SIAApp.SIA_APP.preferences.getBoolean("first_use", false)) {
            startActivity(new Intent(this, SetupActivity.class));
            finish();
            return;
        }

        setContentView(R.layout.activity_firstuse);

        final ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
        viewPager.setAdapter(adapter);
        viewPager.setOffscreenPageLimit(3);

        final TabLayout tabLayout = (TabLayout) findViewById(R.id.sliding_tabs);
        tabLayout.setupWithViewPager(viewPager);

        tabLayout.getTabAt(0).getCustomView().setSelected(true);

        iv_left = (ImageView) findViewById(R.id.fu_button_left);
        iv_right = (ImageView) findViewById(R.id.fu_button_right);

        iv_left.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                SIAApp.SIA_APP.preferences.edit().putBoolean("first_use", true).apply();
                startActivity(new Intent(v.getContext(), SetupActivity.class));
                finish();
            }
        });

        iv_right.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                viewPager.setCurrentItem(1);
            }
        });

        viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int i, float v, int i1) {
                FirstUseAdapter adapter = (FirstUseAdapter) viewPager.getAdapter();

                if (i >= 5)
                    return;

                FirstUseFragment frag1 = adapter.fragments.get(i);
                FirstUseFragment frag2 = adapter.fragments.get(i + 1);

                int red = (int) (Color.red(frag1.color) * (1f - v) + Color.red(frag2.color) * v);
                int green = (int) (Color.green(frag1.color) * (1f - v) + Color.green(frag2.color) * v);
                int blue = (int) (Color.blue(frag1.color) * (1f - v) + Color.blue(frag2.color) * v);
                int newColor = Color.argb(255, red, green, blue);

                if (frag1.getView() != null)
                    frag1.getView().setBackgroundColor(newColor);
                if (frag2.getView() != null)
                    frag2.getView().setBackgroundColor(newColor);

            }

            @Override
            public void onPageSelected(int i) {
                if (i > 0)
                    iv_left.setVisibility(View.INVISIBLE);
                else
                    iv_left.setVisibility(View.VISIBLE);

                final int i2 = i;
                if (i == 5) {
                    iv_right.setImageResource(R.drawable.ic_done);
                    iv_right.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            SIAApp.SIA_APP.preferences.edit().putBoolean("first_use", true).apply();
                            startActivity(new Intent(v.getContext(), SetupActivity.class));
                            finish();
                        }
                    });
                } else {
                    iv_right.setImageResource(R.drawable.ic_arrow_forward);
                    iv_right.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            viewPager.setCurrentItem(i2 + 1);
                        }
                    });
                }
            }

            @Override
            public void onPageScrollStateChanged(int i) {

            }
        });

    }

}