package com.android.yzd.memo.mvp.presenter.impl; import android.content.Context; import android.content.Intent; import android.os.Bundle; import com.android.yzd.memo.mvp.model.Constants; import com.android.yzd.memo.R; import com.android.yzd.memo.databinding.ActivityCreateLockBinding; import com.android.yzd.memo.mvp.model.bean.LockBean; import com.android.yzd.memo.mvp.presenter.ActivityPresenter; import com.android.yzd.memo.mvp.ui.activity.IndexActivity; import com.android.yzd.memo.utils.LockPatternUtils; import com.android.yzd.memo.widget.LockPatternView; import com.android.yzd.memo.utils.SPUtils; import com.android.yzd.memo.utils.ShortLockPatternUtils; import com.android.yzd.memo.mvp.ui.view.CreateLockAView; import java.util.List; /** * Created by Clearlove on 16/1/14. */ public class CreateLockActivityImpl implements ActivityPresenter { private static final String CREATE_LOCK_SUCCESS = "CREATE_LOCK_SUCCESS"; private final Context mContext; private final ActivityCreateLockBinding mBinding; private LockBean lockBeanText; private final CreateLockAView mCreateLockAView; private boolean isFinishOnce = false; private int createMode; public CreateLockActivityImpl(Context context, CreateLockAView view,ActivityCreateLockBinding binding) { mContext = context; mCreateLockAView = view; mBinding = binding; } @Override public void onCreate(Bundle savedInstanceState) { lockBeanText = new LockBean(mContext.getString(R.string.create_activity_warn)); mBinding.setLockWarn(lockBeanText); mCreateLockAView.initLockPatternView(); } @Override public void getIntent(Intent intent) { createMode = intent.getIntExtra("CREATE_MODE", Constants.CREATE_MODE); } @Override public void onResume() { } @Override public void onStart() { } @Override public void onPause() { } @Override public void onStop() { } @Override public void onDestroy() { } public void fingerPress() { lockBeanText.setWarn(mContext.getString(R.string.finger_press)); mBinding.setLockWarn(lockBeanText); } public void fingerFirstUpError() { lockBeanText.setWarn(mContext.getString(R.string.finger_up_first_error)); mBinding.setLockWarn(lockBeanText); } public void fingerFirstUpSuccess() { lockBeanText.setWarn(mContext.getString(R.string.finger_up_first_success)); mBinding.setLockWarn(lockBeanText); } public void fingerSecondUpError() { lockBeanText.setWarn(mContext.getString(R.string.finger_up_second_error)); mBinding.setLockWarn(lockBeanText); } public void fingerSecondUpSucess() { lockBeanText.setWarn(mContext.getString(R.string.finger_up_second_success)); mBinding.setLockWarn(lockBeanText); } public void check(List<LockPatternView.Cell> pattern) { if (pattern == null) return; if (pattern.size() < LockPatternUtils.MIN_PATTERN_REGISTER_FAIL) { if (!isFinishOnce) { fingerFirstUpError(); } else { fingerSecondUpError(); } mCreateLockAView.lockDisplayError(); } else { if (!isFinishOnce) { fingerFirstUpSuccess(); LockPatternUtils instances = LockPatternUtils.getInstances(mContext); ShortLockPatternUtils shortLockPatternUtils = ShortLockPatternUtils.getInstances(mContext); if (createMode == Constants.CREATE_GESTURE) { instances.saveLockPattern(pattern); } else if (createMode == Constants.UPDATE_GESTURE) { shortLockPatternUtils.saveLockPattern(pattern); } mCreateLockAView.clearPattern(); isFinishOnce = true; } else { LockPatternUtils instances = LockPatternUtils.getInstances(mContext); ShortLockPatternUtils shortLockPatternUtils = ShortLockPatternUtils.getInstances(mContext); if (createMode == Constants.CREATE_GESTURE) { if (instances.checkPattern(pattern)) { fingerSecondUpSucess(); SPUtils.put(mContext, CREATE_LOCK_SUCCESS, true); mCreateLockAView.readyGoThenKill(IndexActivity.class); } else { fingerSecondUpError(); mCreateLockAView.lockDisplayError(); } isFinishOnce = false; } else if (createMode == Constants.UPDATE_GESTURE) { if (shortLockPatternUtils.checkPattern(pattern)) { instances.saveLockPattern(pattern); fingerSecondUpSucess(); SPUtils.put(mContext, CREATE_LOCK_SUCCESS, true); mCreateLockAView.setResults(1); mCreateLockAView.kill(); } else { fingerSecondUpError(); mCreateLockAView.lockDisplayError(); } isFinishOnce = false; } } } } public void onBack() { if (createMode == Constants.UPDATE_GESTURE) { mCreateLockAView.setResults(0); } } }