Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.66 KB | None | 0 0
  1. package com.fullproject.beanibazarhelpline.intro;
  2.  
  3. import android.content.Intent;
  4. import android.content.SharedPreferences;
  5. import android.os.Bundle;
  6. import android.support.design.widget.TabLayout;
  7. import android.support.v4.view.ViewPager;
  8. import android.support.v7.app.AppCompatActivity;
  9. import android.view.View;
  10. import android.view.Window;
  11. import android.view.WindowManager;
  12. import android.view.animation.Animation;
  13. import android.view.animation.AnimationUtils;
  14. import android.widget.Button;
  15.  
  16. import com.fullproject.beanibazarhelpline.R;
  17. import com.fullproject.beanibazarhelpline.model.ScreenItem;
  18. import com.fullproject.beanibazarhelpline.categories.CategoriesActivity;
  19.  
  20. import java.util.ArrayList;
  21. import java.util.List;
  22.  
  23. public class IntroActivity extends AppCompatActivity {
  24.  
  25. private ViewPager mViewPager;
  26. private IntroViewPagerAdapter mIntroViewPagerAdapter;
  27. private List<ScreenItem> mScreenItemList;
  28. private TabLayout mTabIndicator;
  29.  
  30. private Button mNextButton;
  31. private Button mGetStartedBtn;
  32.  
  33. int position = 0;
  34.  
  35. Animation mBtnAnimation;
  36.  
  37. @Override
  38. protected void onCreate(Bundle savedInstanceState) {
  39. setTheme(R.style.AppTheme);
  40. super.onCreate(savedInstanceState);
  41.  
  42. //make the activity full screen remove status bar
  43. requestWindowFeature(Window.FEATURE_NO_TITLE);
  44. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
  45. WindowManager.LayoutParams.FLAG_FULLSCREEN);
  46.  
  47. //when the activity is about to lunch
  48. //we need to check boolean value true or false and this activity is opened before or not
  49. if (restorePrefData()) {
  50. Intent intent = new Intent(getApplicationContext(), CategoriesActivity.class);
  51. startActivity(intent);
  52. finish();
  53. }
  54.  
  55. setContentView(R.layout.activity_intro);
  56.  
  57. //init views
  58. mGetStartedBtn = findViewById(R.id.btn_getStarted);
  59. mNextButton = findViewById(R.id.btn_next);
  60. mTabIndicator = findViewById(R.id.tab_indicator);
  61. mBtnAnimation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.button_animation);
  62.  
  63. //fill list screen
  64. mScreenItemList = new ArrayList<>();
  65. mScreenItemList.add(new ScreenItem(getResources().getString(R.string.needElectrician), getResources().getString(R.string.demoText), R.drawable.electrician));
  66. mScreenItemList.add(new ScreenItem(getResources().getString(R.string.needPlumber), getResources().getString(R.string.demoText), R.drawable.plumber));
  67. mScreenItemList.add(new ScreenItem(getResources().getString(R.string.needBuilder), getResources().getString(R.string.demoText), R.drawable.construction));
  68.  
  69. mIntroViewPagerAdapter = new IntroViewPagerAdapter(this, mScreenItemList);
  70. //setup viewpager
  71. mViewPager = findViewById(R.id.intro_viewpager);
  72. mViewPager.setAdapter(mIntroViewPagerAdapter);
  73.  
  74. //setup tablayout with viewpager
  75. mTabIndicator.setupWithViewPager(mViewPager);
  76.  
  77. //next button
  78. mNextButton.setOnClickListener(v -> {
  79. position = mViewPager.getCurrentItem();
  80.  
  81. if (position < mScreenItemList.size()) {
  82. position++;
  83. mViewPager.setCurrentItem(position);
  84. }
  85.  
  86. //when we reacher last screen
  87. if (position == mScreenItemList.size() - 1) {
  88. //todo : show GETSTARTED button and hide the indicator also next button
  89. loadLastScreen();
  90. }
  91. });
  92.  
  93. //tab layout change listener
  94. mTabIndicator.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
  95. @Override
  96. public void onTabSelected(TabLayout.Tab tab) {
  97. if (tab.getPosition() == mScreenItemList.size() - 1) {
  98. loadLastScreen();
  99. } else {
  100. mNextButton.setVisibility(View.VISIBLE);
  101. mGetStartedBtn.setVisibility(View.INVISIBLE);
  102. mTabIndicator.setVisibility(View.VISIBLE);
  103. }
  104. }
  105.  
  106. @Override
  107. public void onTabUnselected(TabLayout.Tab tab) {
  108.  
  109. }
  110.  
  111. @Override
  112. public void onTabReselected(TabLayout.Tab tab) {
  113.  
  114. }
  115. });
  116.  
  117. //getstarted button clicked
  118. mGetStartedBtn.setOnClickListener(v -> {
  119. //open category activity
  120. startActivity(new Intent(IntroActivity.this, CategoriesActivity.class));
  121.  
  122. //we have to save a boolean value to storage so next time when the user run the app
  123. //we could know that he is already chaked the intro activity
  124. //use shared pref for that
  125. savePrefData();
  126. finish();
  127.  
  128.  
  129. });
  130.  
  131. }
  132.  
  133. private boolean restorePrefData() {
  134. SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences("mypref", MODE_PRIVATE);
  135. Boolean inIntroActivityOpenedBefore = sharedPreferences.getBoolean("isIntroOpened", false);
  136. return inIntroActivityOpenedBefore;
  137. }
  138.  
  139. private void savePrefData() {
  140. SharedPreferences sharedPreferences = getApplicationContext().getSharedPreferences("mypref", MODE_PRIVATE);
  141. SharedPreferences.Editor editor = sharedPreferences.edit();
  142. editor.putBoolean("isIntroOpened", true);
  143. editor.apply();
  144. }
  145.  
  146. //show GETSTARTED button and hide the indicator also next button
  147. private void loadLastScreen() {
  148.  
  149. mNextButton.setVisibility(View.INVISIBLE);
  150. mGetStartedBtn.setVisibility(View.VISIBLE);
  151. mTabIndicator.setVisibility(View.INVISIBLE);
  152.  
  153. //todo: add an animation to getstarted button
  154. mGetStartedBtn.setAnimation(mBtnAnimation);
  155.  
  156. }
  157. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement