package com.firstbuild.androidapp.opal; import android.app.Dialog; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v4.app.DialogFragment; import android.support.v4.content.ContextCompat; import android.support.v4.view.ViewPager; import android.util.DisplayMetrics; import android.util.Log; import android.view.Display; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.LinearLayout; import com.firstbuild.androidapp.R; /** * Created by hans on 16. 7. 19.. */ public class OpalHelpTutorialFragment extends DialogFragment { private ViewPager help_view_pager; private LinearLayout pager_indicator; private ImageButton exit_btn; private HelpTutorialViewPagerAdapter adapter; private int prevSelectedPos; private int[] tutorialImages = { R.drawable.img_help_instruction_tap_first, R.drawable.img_help_instruction_drag_second, R.drawable.img_help_instruction_apply_third, R.drawable.img_help_instruction_dots_fourth, R.drawable.img_help_instruction_select_fifth }; private int[] tutorialText = { R.string.schedule_help_tutorial_body_first, R.string.schedule_help_tutorial_body_second, R.string.schedule_help_tutorial_body_third, R.string.schedule_help_tutorial_body_fourth, R.string.schedule_help_tutorial_body_fifth, R.string.schedule_help_tutorial_body_sixth }; private ImageView[] dots; public OpalHelpTutorialFragment() { // Empty constructor is required for DialogFragment } public static OpalHelpTutorialFragment getInstance() { OpalHelpTutorialFragment dialogFragment = new OpalHelpTutorialFragment(); Bundle args = new Bundle(); dialogFragment.setArguments(args); return dialogFragment; } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setStyle(STYLE_NO_TITLE, 0); } @Override public void onResume() { super.onResume(); // Get 90% of screen height DisplayMetrics dm = new DisplayMetrics(); getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm); int height = dm.heightPixels; height *= 0.9; // Set height of Dialog to 90% of screen height WindowManager.LayoutParams params = getDialog().getWindow().getAttributes(); params.height = height; getDialog().getWindow().setAttributes(params); } @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { final View view = inflater.inflate(R.layout.fragment_help_tutorial, container); help_view_pager = (ViewPager) view.findViewById(R.id.pager_help_tutorial); pager_indicator = (LinearLayout) view.findViewById(R.id.viewPagerCountDots); adapter = new HelpTutorialViewPagerAdapter(getContext(), tutorialImages, tutorialText, new View.OnClickListener() { @Override public void onClick(View v) { dismiss(); } }); help_view_pager.setAdapter(adapter); help_view_pager.setCurrentItem(0); help_view_pager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { // Toggle indicator according to the current selected position if(prevSelectedPos != position) { dots[position].setSelected(true); dots[prevSelectedPos].setSelected(false); prevSelectedPos = position; } } @Override public void onPageScrollStateChanged(int state) { } }); configureIndicator(); return view; } private void configureIndicator() { int count = adapter.getCount(); dots = new ImageView[count]; LinearLayout.LayoutParams params = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT ); params.setMargins(15, 0, 15, 0); // Configure Indicator view for(int i=0; i<count; i++) { dots[i] = new ImageView(getContext()); dots[i].setImageDrawable(ContextCompat.getDrawable(getContext(), R.drawable.selector_help_tutorial_indicator)); pager_indicator.addView(dots[i], params); } dots[0].setSelected(true); prevSelectedPos = 0; } }