package com.moez.QKSMS.ui.welcome; import android.app.Fragment; import android.content.SharedPreferences; import android.graphics.PorterDuff; import android.os.Bundle; import android.preference.PreferenceManager; import android.support.v4.view.ViewPager; import android.view.View; import android.widget.ImageView; import com.moez.QKSMS.R; import com.moez.QKSMS.common.LiveViewManager; import com.moez.QKSMS.enums.QKPreference; import com.moez.QKSMS.ui.ThemeManager; import com.moez.QKSMS.ui.base.QKActivity; import com.moez.QKSMS.ui.settings.SettingsFragment; import com.moez.QKSMS.ui.view.RobotoTextView; public class WelcomeActivity extends QKActivity implements ViewPager.OnPageChangeListener, View.OnClickListener { public static final int WELCOME_REQUEST_CODE = 31415; private ViewPager mPager; private ImageView mPrevious; private ImageView mNext; private ImageView[] mIndicators; private View mBackground; private RobotoTextView mSkip; private boolean mFinished; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_welcome); getSupportActionBar().hide(); mBackground = findViewById(R.id.welcome); mBackground.setBackgroundColor(ThemeManager.getColor()); mPrevious = (ImageView) findViewById(R.id.welcome_previous); mPrevious.setOnClickListener(this); mNext = (ImageView) findViewById(R.id.welcome_next); mNext.setOnClickListener(this); mSkip = (RobotoTextView) findViewById(R.id.welcome_skip); mSkip.setOnClickListener(this); mIndicators = new ImageView[]{ (ImageView) findViewById(R.id.welcome_indicator_0), (ImageView) findViewById(R.id.welcome_indicator_1), (ImageView) findViewById(R.id.welcome_indicator_2)}; tintIndicators(0xFFFFFFFF); mPager = (ViewPager) findViewById(R.id.welcome_pager); BaseWelcomeFragment.setPager(mPager); BaseWelcomeFragment.setContext(this); mPager.setOnPageChangeListener(this); mPager.setAdapter(new WelcomePagerAdapter(getFragmentManager())); LiveViewManager.registerView(QKPreference.THEME, this, key -> { mBackground.setBackgroundColor(ThemeManager.getColor()); }); } public void setColorBackground(int color) { mBackground.setBackgroundColor(color); } public void tintIndicators(int color) { if (mIndicators != null) { for (ImageView indicator : mIndicators) { indicator.setColorFilter(color, PorterDuff.Mode.SRC_ATOP); } } if (mSkip != null) { mSkip.setTextColor(color); } if (mPrevious != null) { mPrevious.setColorFilter(color, PorterDuff.Mode.SRC_ATOP); } if (mNext != null) { mNext.setColorFilter(color, PorterDuff.Mode.SRC_ATOP); } } public void setFinished() { if (mSkip != null) { mFinished = true; mSkip.setText(R.string.welcome_finish); mSkip.setVisibility(View.VISIBLE); } } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { Fragment fragment = ((WelcomePagerAdapter) mPager.getAdapter()).getItem(position); if (fragment instanceof BaseWelcomeFragment.WelcomeScrollListener) { ((BaseWelcomeFragment.WelcomeScrollListener) fragment).onScrollOffsetChanged(this, positionOffset); } if (position + 1 < mPager.getAdapter().getCount()) { Fragment fragment2 = ((WelcomePagerAdapter) mPager.getAdapter()).getItem(position + 1); if (fragment2 instanceof BaseWelcomeFragment.WelcomeScrollListener) { ((BaseWelcomeFragment.WelcomeScrollListener) fragment2).onScrollOffsetChanged(this, 1 - positionOffset); } } } @Override public void onPageSelected(int i) { if (mIndicators != null) { for (ImageView indicator : mIndicators) { indicator.setAlpha(0.56f); } mIndicators[i].setAlpha(1.00f); } if (mSkip != null) { mSkip.setVisibility(i == 0 || mFinished ? View.VISIBLE : View.INVISIBLE); } if (mPrevious != null) { mPrevious.setEnabled(i > 0); mPrevious.setAlpha(i > 0 ? 1f : 0.6f); } if (mNext != null) { mNext.setEnabled(i + 1 < mPager.getAdapter().getCount()); mNext.setAlpha(i + 1 < mPager.getAdapter().getCount() ? 1f : 0.6f); } } @Override public void onPageScrollStateChanged(int i) { } @Override public void onClick(View v) { switch (v.getId()) { case R.id.welcome_skip: setResult(RESULT_OK, null); finish(); break; case R.id.welcome_previous: mPager.setCurrentItem(mPager.getCurrentItem() - 1); break; case R.id.welcome_next: mPager.setCurrentItem(mPager.getCurrentItem() + 1); break; } } @Override protected void onStop() { super.onStop(); SharedPreferences.Editor prefs = PreferenceManager.getDefaultSharedPreferences(this).edit(); prefs.putBoolean(SettingsFragment.WELCOME_SEEN, true); prefs.apply(); } }