/* * Copyright (C) 2016 AChep@xda <artemchep@gmail.com> * * 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 2 * of the License, or (at your option) any later version. * * 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 this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301, USA. */ package com.achep.acdisplay.ui.activities; import android.graphics.Color; import android.os.Bundle; import android.text.Html; import android.view.View; import com.achep.acdisplay.R; import com.achep.base.Device; import com.github.paolorotolo.appintro.AppIntro2; import com.github.paolorotolo.appintro.AppIntroFragment; /** * @author Artem Chepurnoy */ public class IntroActivity extends AppIntro2 { private static final int SYSTEM_UI_BASIC_FLAGS; static { final int f = Device.hasKitKatApi() ? View.SYSTEM_UI_FLAG_HIDE_NAVIGATION : 0; SYSTEM_UI_BASIC_FLAGS = f | View.SYSTEM_UI_FLAG_LOW_PROFILE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_LAYOUT_STABLE; } @Override public void init(Bundle savedInstanceState) { addSlide(AppIntroFragment.newInstance( getString(R.string.intro_welcome_title), getString(R.string.intro_welcome_summary), R.drawable.ic_intro_app, 0xFF37474f)); addSlide(AppIntroFragment.newInstance( getString(R.string.intro_notifications_title), getString(R.string.intro_notifications_summary), R.drawable.ic_intro_notifications, 0xFF00695C)); // TODO: Get the color from current theme. int color = 0xFF888888; addSlide(AppIntroFragment.newInstance( getString(R.string.intro_am_title), Html.fromHtml(getString(R.string.intro_am_summary_skeleton, getString(R.string.intro_am_summary), getString(R.string.intro_settings_enable), Integer.toHexString(Color.red(color)) + Integer.toHexString(Color.green(color)) + Integer.toHexString(Color.blue(color)))).toString(), R.drawable.ic_intro_active_mode, 0xFF00838F)); // Update system ui visibility: hide nav bar and the // status bar. final View decorView = getWindow().getDecorView(); decorView.setOnSystemUiVisibilityChangeListener( new View.OnSystemUiVisibilityChangeListener() { public final void onSystemUiVisibilityChange(int f) { setSystemUiVisibilityFake(); decorView.postDelayed(new Runnable() { @Override public void run() { int visibility = SYSTEM_UI_BASIC_FLAGS | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_FULLSCREEN; decorView.setSystemUiVisibility(visibility); } }, 100); } } ); } public void setSystemUiVisibilityFake() { int visibility = SYSTEM_UI_BASIC_FLAGS | View.SYSTEM_UI_FLAG_IMMERSIVE | View.SYSTEM_UI_FLAG_FULLSCREEN; getWindow().getDecorView().setSystemUiVisibility(visibility); } @Override protected void onResume() { super.onResume(); setSystemUiVisibilityFake(); } @Override public void onDonePressed() { finish(); // Should be replace this activity with main activity? } @Override public void onSlideChanged() { /* unused */ } @Override public void onNextPressed() { /* unused */ } }