Search in sources :

Example 1 with OnNavigationBlockedListener

use of com.heinrichreimersoftware.materialintro.app.OnNavigationBlockedListener in project andOTP by andOTP.

the class IntroScreenActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    settings = new Settings(this);
    encryptionFragment = new EncryptionFragment();
    authenticationFragment = new AuthenticationFragment();
    encryptionFragment.setEncryptionChangedCallback(new EncryptionFragment.EncryptionChangedCallback() {

        @Override
        public void onEncryptionChanged(Constants.EncryptionType newEncryptionType) {
            authenticationFragment.updateEncryptionType(newEncryptionType);
        }
    });
    setButtonBackFunction(BUTTON_BACK_FUNCTION_BACK);
    addSlide(new SimpleSlide.Builder().title(R.string.intro_slide1_title).description(R.string.intro_slide1_desc).background(R.color.colorPrimary).backgroundDark(R.color.colorPrimaryDark).canGoBackward(false).scrollable(false).build());
    addSlide(new FragmentSlide.Builder().background(R.color.colorPrimary).backgroundDark(R.color.colorPrimaryDark).fragment(encryptionFragment).build());
    // Tell the fragment where it is located
    authenticationFragment.setSlidePos(getSlides().size());
    addSlide(new FragmentSlide.Builder().background(R.color.colorPrimary).backgroundDark(R.color.colorPrimaryDark).fragment(authenticationFragment).build());
    addSlide(new SimpleSlide.Builder().title(R.string.intro_slide4_title).description(R.string.intro_slide4_desc).background(R.color.colorPrimary).backgroundDark(R.color.colorPrimaryDark).scrollable(false).build());
    addOnNavigationBlockedListener(new OnNavigationBlockedListener() {

        @Override
        public void onNavigationBlocked(int position, int direction) {
            if (position == 2)
                authenticationFragment.flashWarning();
        }
    });
    addOnPageChangeListener(new ViewPager.OnPageChangeListener() {

        @Override
        public void onPageSelected(int position) {
            if (position == 3)
                saveSettings();
        }

        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
        }

        @Override
        public void onPageScrollStateChanged(int state) {
        }
    });
}
Also used : FragmentSlide(com.heinrichreimersoftware.materialintro.slide.FragmentSlide) OnNavigationBlockedListener(com.heinrichreimersoftware.materialintro.app.OnNavigationBlockedListener) Constants(org.shadowice.flocke.andotp.Utilities.Constants) ViewPager(android.support.v4.view.ViewPager) SimpleSlide(com.heinrichreimersoftware.materialintro.slide.SimpleSlide) Settings(org.shadowice.flocke.andotp.Utilities.Settings)

Example 2 with OnNavigationBlockedListener

use of com.heinrichreimersoftware.materialintro.app.OnNavigationBlockedListener in project material-intro by heinrichreimer.

the class MainIntroActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    Intent intent = getIntent();
    boolean fullscreen = intent.getBooleanExtra(EXTRA_FULLSCREEN, false);
    boolean scrollable = intent.getBooleanExtra(EXTRA_SCROLLABLE, false);
    boolean customFragments = intent.getBooleanExtra(EXTRA_CUSTOM_FRAGMENTS, true);
    boolean permissions = intent.getBooleanExtra(EXTRA_PERMISSIONS, true);
    boolean showBack = intent.getBooleanExtra(EXTRA_SHOW_BACK, true);
    boolean showNext = intent.getBooleanExtra(EXTRA_SHOW_NEXT, true);
    boolean skipEnabled = intent.getBooleanExtra(EXTRA_SKIP_ENABLED, true);
    boolean finishEnabled = intent.getBooleanExtra(EXTRA_FINISH_ENABLED, true);
    boolean getStartedEnabled = intent.getBooleanExtra(EXTRA_GET_STARTED_ENABLED, true);
    setFullscreen(fullscreen);
    super.onCreate(savedInstanceState);
    setButtonBackFunction(skipEnabled ? BUTTON_BACK_FUNCTION_SKIP : BUTTON_BACK_FUNCTION_BACK);
    setButtonNextFunction(finishEnabled ? BUTTON_NEXT_FUNCTION_NEXT_FINISH : BUTTON_NEXT_FUNCTION_NEXT);
    setButtonBackVisible(showBack);
    setButtonNextVisible(showNext);
    setButtonCtaVisible(getStartedEnabled);
    setButtonCtaTintMode(BUTTON_CTA_TINT_MODE_TEXT);
    addSlide(new SimpleSlide.Builder().title(R.string.title_material_metaphor).description(R.string.description_material_metaphor).image(R.drawable.art_material_metaphor).background(R.color.color_material_metaphor).backgroundDark(R.color.color_dark_material_metaphor).scrollable(scrollable).build());
    addSlide(new SimpleSlide.Builder().title(R.string.title_material_bold).description(R.string.description_material_bold).image(R.drawable.art_material_bold).background(R.color.color_material_bold).backgroundDark(R.color.color_dark_material_bold).scrollable(scrollable).buttonCtaLabel("Hello").buttonCtaClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Toast toast = Toast.makeText(MainIntroActivity.this, R.string.toast_button_cta, Toast.LENGTH_SHORT);
            toast.setGravity(Gravity.CENTER, 0, 0);
            toast.show();
            nextSlide();
        }
    }).build());
    addSlide(new SimpleSlide.Builder().title(R.string.title_material_motion).description(R.string.description_material_motion).image(R.drawable.art_material_motion).background(R.color.color_material_motion).backgroundDark(R.color.color_dark_material_motion).scrollable(scrollable).build());
    addSlide(new SimpleSlide.Builder().title(R.string.title_material_shadow).description(R.string.description_material_shadow).image(R.drawable.art_material_shadow).background(R.color.color_material_shadow).backgroundDark(R.color.color_dark_material_shadow).scrollable(scrollable).build());
    final Slide permissionsSlide;
    if (permissions) {
        permissionsSlide = new SimpleSlide.Builder().title(R.string.title_permissions).description(R.string.description_permissions).background(R.color.color_permissions).backgroundDark(R.color.color_dark_permissions).scrollable(scrollable).permissions(new String[] { Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE }).build();
        addSlide(permissionsSlide);
    } else {
        permissionsSlide = null;
    }
    final Slide loginSlide;
    if (customFragments) {
        loginSlide = new FragmentSlide.Builder().background(R.color.color_custom_fragment_1).backgroundDark(R.color.color_dark_custom_fragment_1).fragment(LoginFragment.newInstance()).build();
        addSlide(loginSlide);
        addSlide(new FragmentSlide.Builder().background(R.color.color_custom_fragment_2).backgroundDark(R.color.color_dark_custom_fragment_2).fragment(R.layout.fragment_custom, R.style.AppThemeDark).build());
    } else {
        loginSlide = null;
    }
    // Feel free to add a navigation policy to define when users can go forward/backward
    /*
        setNavigationPolicy(new NavigationPolicy() {
            @Override
            public boolean canGoForward(int position) {
                return true;
            }

            @Override
            public boolean canGoBackward(int position) {
                return true;
            }
        });
        */
    addOnNavigationBlockedListener(new OnNavigationBlockedListener() {

        @Override
        public void onNavigationBlocked(int position, int direction) {
            View contentView = findViewById(android.R.id.content);
            if (contentView != null) {
                Slide slide = getSlide(position);
                if (slide == permissionsSlide) {
                    Snackbar.make(contentView, R.string.label_grant_permissions, Snackbar.LENGTH_LONG).show();
                } else if (slide == loginSlide) {
                    Snackbar.make(contentView, R.string.label_fill_out_form, Snackbar.LENGTH_LONG).show();
                }
            }
        }
    });
// Feel free to add and remove page change listeners
/*
        addOnPageChangeListener(new ViewPager.OnPageChangeListener(){
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {

            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
        */
}
Also used : FragmentSlide(com.heinrichreimersoftware.materialintro.slide.FragmentSlide) OnNavigationBlockedListener(com.heinrichreimersoftware.materialintro.app.OnNavigationBlockedListener) Toast(android.widget.Toast) FragmentSlide(com.heinrichreimersoftware.materialintro.slide.FragmentSlide) Slide(com.heinrichreimersoftware.materialintro.slide.Slide) SimpleSlide(com.heinrichreimersoftware.materialintro.slide.SimpleSlide) Intent(android.content.Intent) View(android.view.View)

Aggregations

OnNavigationBlockedListener (com.heinrichreimersoftware.materialintro.app.OnNavigationBlockedListener)2 FragmentSlide (com.heinrichreimersoftware.materialintro.slide.FragmentSlide)2 SimpleSlide (com.heinrichreimersoftware.materialintro.slide.SimpleSlide)2 Intent (android.content.Intent)1 ViewPager (android.support.v4.view.ViewPager)1 View (android.view.View)1 Toast (android.widget.Toast)1 Slide (com.heinrichreimersoftware.materialintro.slide.Slide)1 Constants (org.shadowice.flocke.andotp.Utilities.Constants)1 Settings (org.shadowice.flocke.andotp.Utilities.Settings)1