| 
					
				 | 
			
			
				@@ -0,0 +1,154 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+package com.cooleshow.student.ui.splash; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import android.content.Context; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import android.graphics.Point; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import android.os.Bundle; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import android.util.Log; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import android.view.LayoutInflater; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import android.view.MotionEvent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import android.view.View; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import android.view.WindowManager; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import android.widget.TextView; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import androidx.annotation.Nullable; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import androidx.viewpager.widget.ViewPager; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.alibaba.android.arouter.facade.annotation.Route; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.alibaba.android.arouter.launcher.ARouter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.cooleshow.base.common.ConstantKey; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.cooleshow.base.router.RouterPath; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.cooleshow.base.ui.activity.BaseMVPActivity; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.cooleshow.base.utils.SPUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.cooleshow.base.widgets.MyViewPage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.cooleshow.student.R; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.cooleshow.student.adapter.ViewPagerAdapter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.cooleshow.student.databinding.ActivityGuideBinding; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.cooleshow.student.presenter.splash.GuidePresenter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.cooleshow.usercenter.helper.UserHelper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.ArrayList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import io.rong.imkit.utils.StatusBarUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 创建日期:2022/5/24 17:53 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * @author Ryan 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 类说明: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@Route(path = RouterPath.SplashCenter.SPLASH_GUIDE) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+public class GuideActivity extends BaseMVPActivity<ActivityGuideBinding, GuidePresenter> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private List<View> views; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private MyViewPage vp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private ViewPagerAdapter vpAdapter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private TextView tv_go; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    protected void initView() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        LayoutInflater inflater = LayoutInflater.from(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        views = new ArrayList<View>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        views.add(inflater.inflate(R.layout.guide_one, null)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        views.add(inflater.inflate(R.layout.guide_two, null)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        views.add(inflater.inflate(R.layout.guide_thre, null)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        vpAdapter = new ViewPagerAdapter(views, this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        vp = findViewById(R.id.viewPager); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        vp.setAdapter(vpAdapter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        tv_go = views.get(2).findViewById(R.id.tv_go); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        tv_go.setOnClickListener(new View.OnClickListener() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            public void onClick(View view) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                goAction(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                finish(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    protected void onCreate(@Nullable Bundle savedInstanceState) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        super.onCreate(savedInstanceState); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        StatusBarUtil.setStatusBarDarkTheme(this, true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private void goAction(){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SPUtils.getInstance().put(ConstantKey.IS_FIRST_LAUNCH, true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (UserHelper.isLogin()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            jumpMain(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            jumpLogin(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private void jumpLogin() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ARouter.getInstance().build(RouterPath.UserCenter.PATH_VERIFY_LOGIN).navigation(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private void jumpMain() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ARouter.getInstance().build(RouterPath.APPCenter.PATH_HOME).navigation(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    protected ActivityGuideBinding getLayoutView() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return ActivityGuideBinding.inflate(getLayoutInflater()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    protected GuidePresenter createPresenter() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return new GuidePresenter(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private int currentItem = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * 滑动进入主界面 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private void addListener() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            public void onPageSelected(int position) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                currentItem = position; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Log.i("Guide", "监听改变" + position); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            public void onPageScrollStateChanged(int state) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        vp.setOnTouchListener(new View.OnTouchListener() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            float startX; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            float startY; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            float endX; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            float endY; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            public boolean onTouch(View v, MotionEvent event) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                switch (event.getAction()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    case MotionEvent.ACTION_DOWN: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        startX = event.getX(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        startY = event.getY(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    case MotionEvent.ACTION_UP: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        endX = event.getX(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        endY = event.getY(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        WindowManager windowManager = (WindowManager) getApplicationContext().getSystemService(Context.WINDOW_SERVICE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //获取屏幕的宽度 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        Point size = new Point(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        windowManager.getDefaultDisplay().getSize(size); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        int width = size.x; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        //首先要确定的是,是否到了最后一页,然后判断是否向左滑动,并且滑动距离是否符合,我这里的判断距离是屏幕宽度的4分之一(这里可以适当控制) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (currentItem == (views.size() - 1) && startX - endX > 0 && startX - endX >= (width / 4)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            Log.e("kasdkfhsjss", "=======页面跳转====="); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            jumpMain(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            overridePendingTransition(R.anim.slide_in_right, R.anim.slide_in_left); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |