package com.android.yzd.memo.mvp.ui.fragment; import android.content.Intent; import android.os.Bundle; import android.preference.Preference; import android.preference.PreferenceFragment; import android.preference.PreferenceScreen; import android.support.design.widget.Snackbar; import android.support.v4.app.Fragment; import android.support.v7.app.AlertDialog; import android.view.LayoutInflater; import android.widget.GridView; import com.android.yzd.memo.R; import com.android.yzd.memo.mvp.presenter.impl.SettingFImpl; import com.android.yzd.memo.mvp.ui.activity.SettingActivity; import com.android.yzd.memo.mvp.ui.adapter.ColorListAdapter; import com.android.yzd.memo.utils.SPUtils; import com.android.yzd.memo.mvp.ui.view.SettingAView; import com.jenzz.materialpreference.SwitchPreference; import java.util.Arrays; import java.util.List; /** * A simple {@link Fragment} subclass. */ public class SettingFragment extends PreferenceFragment implements SettingAView{ private static final String PREFERENCE_NAME = "Memo.setting"; private SettingFImpl settingFImpl; private SwitchPreference openGesture; private SwitchPreference openShow; public SettingFragment() { super(); } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.setting_preference_xml); getPreferenceManager().setSharedPreferencesName(PREFERENCE_NAME); settingFImpl = new SettingFImpl(getActivity(), this); settingFImpl.onFirstUserVisible(); } @Override public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) { settingFImpl.onPreferenceTreeClick(preferenceScreen, preference); return super.onPreferenceTreeClick(preferenceScreen, preference); } @Override public void showChangeThemeDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); builder.setTitle("更换主题"); Integer[] res = new Integer[]{R.drawable.red_round, R.drawable.brown_round, R.drawable.blue_round, R.drawable.blue_grey_round, R.drawable.yellow_round, R.drawable.deep_purple_round, R.drawable.pink_round, R.drawable.green_round}; List<Integer> list = Arrays.asList(res); ColorListAdapter adapter = new ColorListAdapter(getActivity(), list); int value = (int) SPUtils.get(getActivity(), getActivity().getResources().getString(R.string.change_theme_key), 1); adapter.setCheckItem(value); GridView gridView = (GridView) LayoutInflater.from(getActivity()).inflate(R.layout.colors_panel_layout, null); gridView.setStretchMode(GridView.STRETCH_COLUMN_WIDTH); gridView.setCacheColorHint(0); gridView.setAdapter(adapter); builder.setView(gridView); final AlertDialog dialog = builder.show(); gridView.setOnItemClickListener((parent, view, position, id) -> { dialog.dismiss(); settingFImpl.onThemeChoose(position); }); } @Override public void findView() { openGesture = (SwitchPreference) findPreference("开启手势密码"); openShow = (SwitchPreference) findPreference("首页密码可见"); } @Override public void initState(boolean isOpen) { openGesture.setChecked(isOpen); } @Override public void initOpenShow(boolean isOpen) { openShow.setChecked(isOpen); } @Override public void reCreate() { SettingActivity activity = (SettingActivity) getActivity(); activity.reload(false); } @Override public void readyGo(Class clazz, Intent intent) { startActivityForResult(intent, 0); } @Override public void go2(Class clazz, Bundle bundle) { Intent intent = new Intent(getActivity(), clazz); if (bundle != null) { intent.putExtras(bundle); } startActivity(intent); } @Override public void showSnackBar(String msg) { Snackbar.make(getView(), msg, Snackbar.LENGTH_SHORT).show(); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == 1) { showSnackBar("修改成功"); } else if (resultCode == 0) { showSnackBar("放弃修改"); } } }