|
@@ -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;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+}
|