Github user sagar15795 commented on a diff in the pull request:

    
https://github.com/apache/incubator-taverna-mobile/pull/66#discussion_r173626652
  
    --- Diff: 
app/src/main/java/org/apache/taverna/mobile/ui/tutorial/TutorialActivity.java 
---
    @@ -0,0 +1,203 @@
    +package org.apache.taverna.mobile.ui.tutorial;
    +
    +/*
    + * Licensed to the Apache Software Foundation (ASF) under one
    + * or more contributor license agreements.  See the NOTICE file
    + * distributed with this work for additional information
    + * regarding copyright ownership.  The ASF licenses this file
    + * to you 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.
    + */
    +
    +import android.content.Context;
    +import android.content.Intent;
    +import android.os.Build;
    +import android.os.Bundle;
    +import android.support.annotation.NonNull;
    +import android.support.v4.view.PagerAdapter;
    +import android.support.v4.view.ViewPager;
    +import android.support.v7.app.AppCompatActivity;
    +import android.text.Html;
    +import android.view.LayoutInflater;
    +import android.view.View;
    +import android.view.ViewGroup;
    +import android.widget.Button;
    +import android.widget.LinearLayout;
    +import android.widget.TextView;
    +
    +import org.apache.taverna.mobile.R;
    +import org.apache.taverna.mobile.data.local.PreferencesHelper;
    +import org.apache.taverna.mobile.ui.FlashScreenActivity;
    +
    +import butterknife.BindView;
    +import butterknife.ButterKnife;
    +import butterknife.OnClick;
    +
    +
    +public class TutorialActivity extends AppCompatActivity {
    +
    +    @BindView(R.id.slide_pager)
    +    ViewPager slidePager;
    +
    +    @BindView(R.id.layoutDots)
    +    LinearLayout dotsLayout;
    +
    +    @BindView(R.id.btn_skip)
    +    Button bSkip;
    +
    +    @BindView(R.id.btn_next)
    +    Button bNext;
    +
    +    private TutorialSliderAdapter tutorialSliderAdapter;
    +    int[] layouts;
    +    private PreferencesHelper preferencesHelper;
    +
    +    @Override
    +    protected void onCreate(Bundle savedInstanceState) {
    +        super.onCreate(savedInstanceState);
    +        preferencesHelper = new PreferencesHelper(this);
    +        if (!preferencesHelper.isFirstTimeLaunch()) {
    +            launchFlashScreen();
    +            finish();
    +        }
    +
    +        setContentView(R.layout.activity_tutorial);
    +
    +        ButterKnife.bind(this);
    +
    +
    +        if (Build.VERSION.SDK_INT >= 21) {
    +            getWindow().getDecorView()
    +                    
.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
    +                            | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
    +        }
    +
    +        layouts = new int[]{
    +                R.layout.tutorial_slide1,
    +                R.layout.tutorial_slide2,
    +                R.layout.tutorial_slide3,
    +                R.layout.tutorial_slide4};
    +
    +        addBottomDots(0);
    +
    +        tutorialSliderAdapter = new TutorialSliderAdapter();
    +        slidePager.setAdapter(tutorialSliderAdapter);
    +        slidePager.addOnPageChangeListener(new 
ViewPager.OnPageChangeListener() {
    +            @Override
    +            public void onPageScrolled(int position, float positionOffset,
    +                                       int positionOffsetPixels) {
    +
    +            }
    +
    +            @Override
    +            public void onPageSelected(int position) {
    +                addBottomDots(position);
    +
    +                if (position == layouts.length - 1) {
    +                    bNext.setText(getString(R.string.start));
    +                    bSkip.setVisibility(View.GONE);
    +                } else {
    +                    bNext.setText(getString(R.string.next));
    +                    bSkip.setVisibility(View.VISIBLE);
    +                }
    +
    +            }
    +
    +            @Override
    +            public void onPageScrollStateChanged(int state) {
    +
    +            }
    +        });
    +
    +    }
    +
    +    @OnClick(R.id.btn_skip)
    +    public void skipClick(View v) {
    +        launchFlashScreen();
    +    }
    +
    +    @OnClick(R.id.btn_next)
    +    public void nextClick(View v) {
    +        int current = getItem(+1);
    +        if (current < layouts.length) {
    +            slidePager.setCurrentItem(current);
    +        } else {
    +            launchFlashScreen();
    +        }
    +    }
    +
    +    public void addBottomDots(int currentPage) {
    +        TextView[] dots = new TextView[layouts.length];
    +
    +        int[] colorsActive = 
getResources().getIntArray(R.array.array_dot_active);
    +        int[] colorsInactive = 
getResources().getIntArray(R.array.array_dot_inactive);
    +
    +        dotsLayout.removeAllViews();
    +        for (int i = 0; i < dots.length; i++) {
    +            dots[i] = new TextView(this);
    +            dots[i].setText(Html.fromHtml("&#8226;"));
    +            dots[i].setTextSize(35);
    +            dots[i].setTextColor(colorsInactive[currentPage]);
    +            dotsLayout.addView(dots[i]);
    +        }
    +
    +        if (dots.length > 0)
    +            dots[currentPage].setTextColor(colorsActive[currentPage]);
    +    }
    +
    +    public int getItem(int i) {
    +        return slidePager.getCurrentItem() + i;
    +    }
    +
    +    public void launchFlashScreen() {
    +        preferencesHelper.setFirstTimeLaunch(false);
    +        startActivity(new Intent(TutorialActivity.this, 
FlashScreenActivity.class));
    +        finish();
    +    }
    +
    +    class TutorialSliderAdapter extends PagerAdapter {
    +        private LayoutInflater layoutInflater;
    +
    +        private TutorialSliderAdapter() {
    +        }
    +
    +        @NonNull
    +        @Override
    +        public Object instantiateItem(@NonNull ViewGroup container, int 
position) {
    +            layoutInflater = (LayoutInflater) 
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    +
    +            assert layoutInflater != null;
    --- End diff --
    
    `assert` will create runtime exception so use `if-else`. 


---

Reply via email to