package com.android.yzd.memo.mvp.presenter.impl; import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceScreen; import android.text.TextUtils; import com.android.yzd.memo.mvp.model.Constants; import com.android.yzd.memo.R; import com.android.yzd.memo.mvp.model.evenbus.EventCenter; import com.android.yzd.memo.mvp.presenter.FragmentPresenter; import com.android.yzd.memo.mvp.ui.activity.CreateLockActivity; import com.android.yzd.memo.mvp.ui.activity.FeedBackActivity; import com.android.yzd.memo.utils.SPUtils; import com.android.yzd.memo.mvp.ui.view.SettingAView; import com.umeng.fb.FeedbackAgent; import com.umeng.fb.fragment.FeedbackFragment; import com.umeng.update.UmengUpdateAgent; import com.umeng.update.UmengUpdateListener; import com.umeng.update.UpdateResponse; import com.umeng.update.UpdateStatus; import org.greenrobot.eventbus.EventBus; /** * Created by yezhidong on 2016/1/27. */ public class SettingFImpl implements FragmentPresenter{ private final Context mContext; private final SettingAView settingAView; private Boolean isOpen; private boolean isOpenShow; public SettingFImpl(Context context, SettingAView view) { mContext = context; settingAView = view; } @Override public void onFirstUserVisible() { settingAView.findView(); isOpen = (Boolean) SPUtils.get(mContext, Constants.SETTING.OPEN_GESTURE, true); isOpenShow = (Boolean) SPUtils.get(mContext, Constants.SETTING.OPEN_PASS_WORD_SHOW, true); settingAView.initState(isOpen); settingAView.initOpenShow(isOpenShow); } @Override public void onUserVisible() { } @Override public void onUserInvisible() { } public void onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { String key = preference.getKey(); if (TextUtils.equals(key, "开启手势密码")) { isOpen = !isOpen; SPUtils.put(mContext, Constants.SETTING.OPEN_GESTURE, isOpen); } else if (TextUtils.equals(key, "首页密码可见")) { isOpenShow = !isOpenShow; SPUtils.put(mContext, Constants.SETTING.OPEN_PASS_WORD_SHOW, isOpenShow); EventBus.getDefault().post(new EventCenter(Constants.EVEN_BUS.CHANGE_PASS_WORD_SHOW)); }else if (TextUtils.equals(key, "修改手势密码")) { Intent intent = new Intent(mContext, CreateLockActivity.class); intent.putExtra("CREATE_MODE", Constants.UPDATE_GESTURE); settingAView.readyGo(CreateLockActivity.class,intent); } else if (TextUtils.equals(key, "更换主题")) { settingAView.showChangeThemeDialog(); } else if (TextUtils.equals(key, "意见反馈")) { FeedbackAgent mFeedbackAgent = new FeedbackAgent(mContext); mFeedbackAgent.sync(); mFeedbackAgent.closeFeedbackPush(); mFeedbackAgent.closeAudioFeedback(); mFeedbackAgent.setWelcomeInfo("感谢反馈意见,我会尽快回复~~"); Bundle bundle = new Bundle(); bundle.putString(FeedbackFragment.BUNDLE_KEY_CONVERSATION_ID, mFeedbackAgent.getDefaultConversation().getId()); settingAView.go2(FeedBackActivity.class, bundle); } else if (TextUtils.equals(key, "给应用点赞~")) { giveFavor(); } else if (TextUtils.equals(key, "检测更新")) { UmengUpdateAgent.forceUpdate(mContext); UmengUpdateAgent.setUpdateListener(new UmengUpdateListener() { @Override public void onUpdateReturned(int updateStatus, UpdateResponse updateResponse) { switch (updateStatus) { case UpdateStatus.Yes: // has update UmengUpdateAgent.showUpdateDialog(mContext, updateResponse); break; case UpdateStatus.No: // has no update settingAView.showSnackBar("当前为最新版本~~"); break; case UpdateStatus.NoneWifi: // none wifi settingAView.showSnackBar("没有wifi连接, 只在wifi下更新"); break; case UpdateStatus.Timeout: // time out settingAView.showSnackBar("连接超时"); break; } } }); } } public void onThemeChoose(int position) { SPUtils.put(mContext, mContext.getResources().getString(R.string.change_theme_key), position); EventBus.getDefault().post(new EventCenter(Constants.EVEN_BUS.CHANGE_THEME)); settingAView.reCreate(); } private void giveFavor(){ try{ Uri uri = Uri.parse("market://details?id="+ mContext.getPackageName()); Intent intent = new Intent(Intent.ACTION_VIEW, uri); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); mContext.startActivity(intent); }catch(ActivityNotFoundException e){ e.printStackTrace(); } } }