package com.aiyou; import com.aiyou.bbs.BBSLoginActivity; import com.aiyou.utils.ActivityFunc; import com.aiyou.utils.AiYouManager; import com.aiyou.utils.SwitchManager; import com.aiyou.utils.filecache.ClearCacheTask; import com.aiyou.utils.filecache.ClearCacheTask.ClearCacheListener; import com.aiyou.view.CustomDialog; import com.aiyou.view.SwitchPreferences; import external.otherview.ActivitySplitAnimationUtil; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.os.Build; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import android.view.View.OnClickListener; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.FrameLayout; import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast; /** * 设置Activity * * @author sollian */ public class SetActivity extends BaseActivity implements SwitchPreferences.OnPrefChangeListener, OnItemSelectedListener { private SwitchManager mSwitchMgr; // 关于 private FrameLayout mAboutFLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (ActivitySplitAnimationUtil.canPlay() && Build.VERSION.SDK_INT >= 14) { // 中心打开动画 ActivitySplitAnimationUtil.prepareAnimation(this); ActivitySplitAnimationUtil.animate(this, 1000); } setContentView(R.layout.activity_set); init(); } @SuppressWarnings("deprecation") private void init() { mSwitchMgr = SwitchManager.getInstance(getBaseContext()); /** * 设置 */ FrameLayout frameLayout = (FrameLayout) findViewById(R.id.activity_set_fl); // 设置背景 Bitmap bmp = getIntent() .getParcelableExtra(ActivityFunc.KEY_BACKGROUND); if (null != bmp) { Drawable drawable = new BitmapDrawable(bmp); frameLayout.setBackgroundDrawable(drawable); } else { if (mSwitchMgr.isNightModeEnabled()) { frameLayout.setBackgroundColor(getResources().getColor( R.color.bbs_background_night)); } else { frameLayout.setBackgroundColor(getResources().getColor( R.color.bbs_background_day)); } } /* 控件 */ SwitchPreferences mFacePref = (SwitchPreferences) findViewById(R.id.face_pref); SwitchPreferences mLargeImgPref = (SwitchPreferences) findViewById(R.id.large_image_pref); SwitchPreferences mSimpleModePref = (SwitchPreferences) findViewById(R.id.simple_mode_pref); SwitchPreferences mShakeSharePref = (SwitchPreferences) findViewById(R.id.shake_share_pref); SwitchPreferences mUpdatePref = (SwitchPreferences) findViewById(R.id.update_pref); mFacePref.setChecked(mSwitchMgr.isFaceEnabled()); mLargeImgPref.setChecked(mSwitchMgr.isLargeImageEnabled()); mSimpleModePref.setChecked(mSwitchMgr.isSimpleModeEnabled()); mShakeSharePref.setChecked(mSwitchMgr.isShakeShareEnabled()); mUpdatePref.setChecked(mSwitchMgr.getUpdateOnlyWifi()); mFacePref.setOnPrefChangeListener(this); mLargeImgPref.setOnPrefChangeListener(this); mSimpleModePref.setOnPrefChangeListener(this); mShakeSharePref.setOnPrefChangeListener(this); mUpdatePref.setOnPrefChangeListener(this); Spinner mSpinner = (Spinner) findViewById(R.id.spinner); mSpinner.setSelection(mSwitchMgr.getSwipeOut()); mSpinner.setOnItemSelectedListener(this); /** * 关于 */ mAboutFLayout = (FrameLayout) findViewById(R.id.activity_set_fl_about); TextView mAboutTV = (TextView) findViewById(R.id.activity_set_tv_about); mAboutTV.setText(getString(R.string.other_about, AiYouManager .getInstance(getApplicationContext()).getAppName(), AiYouManager.getInstance(getApplicationContext()) .getAppVersionName())); } public void onClick(View v) { int nId = v.getId(); if (R.id.activity_set_ll_account == nId) { // 账号设置 ActivityFunc.startActivity(this, BBSLoginActivity.class, null, false); } else if (R.id.activity_set_tv_clear_cache == nId) { // 清空缓存 clearCache(); } else if (R.id.activity_set_tv_advice == nId) { // 意见或建议 // writeAdavice(); mFeedbackAgent.startFeedbackActivity(); } else if (R.id.activity_set_tv_set_about == nId) { // 关于 showAbout(true); } else if (R.id.activity_set_tv_help == nId) { // 帮助 Intent intent = new Intent(SetActivity.this, HelpActivity.class); ActivityFunc.startActivity(this, intent); } else if (R.id.activity_set_fl_about == nId) { // 关闭查看关于 showAbout(false); } } /** * 提意见或建议 */ // private void writeAdavice() { // if // (BBSManager.GUEST.equals(BBSManager.getInstance(getBaseContext()).getUserId())) // { // Toast.makeText(getBaseContext(), "请先登录", Toast.LENGTH_SHORT) // .show(); // return; // } // Intent intent = new Intent(SetActivity.this, BBSWriteActivity.class); // intent.putExtra(BBSWriteActivity.MAIL_TO, AiYouManager.AUTHOR); // ActivityFunc.startActivity(this, intent); // } /** * 打开|关闭 关于窗口 * * @param flag */ @SuppressWarnings("deprecation") private void showAbout(boolean flag) { if (flag) { Drawable drawable; if (!mSwitchMgr.isSimpleModeEnabled() && (drawable = AiYouManager.getBlurBg(SetActivity.this)) != null) { mAboutFLayout.setBackgroundDrawable(drawable); } else { if (mSwitchMgr.isNightModeEnabled()) { mAboutFLayout.setBackgroundColor(getResources().getColor( R.color.bbs_background_night)); } else { mAboutFLayout.setBackgroundColor(getResources().getColor( R.color.bbs_background_day)); } } mAboutFLayout.setVisibility(View.VISIBLE); } else { mAboutFLayout.setVisibility(View.GONE); } } /** * 清理缓存 */ private void clearCache() { final CustomDialog dialog = new CustomDialog(this); dialog.setMessage("确定清空缓存吗?").setCancelButton(null) .setOKButton(new OnClickListener() { @Override public void onClick(View v) { dialog.startProgress(); // 清理缓存 ClearCacheTask task = new ClearCacheTask( new ClearCacheListener() { @Override public void onStartClear() { dialog.setMessage("正在准备……"); } @Override public void onProgressUpdate(String progress) { dialog.setMessage(progress); } @Override public void onEndClear(int fileCount) { dialog.dismiss(); Toast.makeText(getBaseContext(), "共清理" + fileCount + "个文件", Toast.LENGTH_SHORT).show(); } }); task.execute(); } }).show(); } @Override public void onPrefChanged(SwitchPreferences pref, boolean isChecked) { pref.setEnabled(false); int nId = pref.getId(); if (R.id.face_pref == nId) { // 设置用户头像是是否显示 if (isChecked) { mSwitchMgr.enableFace(true); } else { mSwitchMgr.enableFace(false); } } else if (R.id.large_image_pref == nId) { // 设置高清缩略图是否打开 if (isChecked) { mSwitchMgr.enableLargeImage(true); } else { mSwitchMgr.enableLargeImage(false); } } else if (R.id.simple_mode_pref == nId) { // 是否开启简约模式 if (isChecked) { mSwitchMgr.enableSimpleMode(true); } else { mSwitchMgr.enableSimpleMode(false); } } else if (R.id.shake_share_pref == nId) { // 是否开启摇一摇分享 if (isChecked) { mSwitchMgr.enableShakeShare(true); } else { mSwitchMgr.enableShakeShare(false); } } else if (R.id.update_pref == nId) { // 仅wifi下更新 if (isChecked) { mSwitchMgr.setUpdateOnlyWifi(true); } else { mSwitchMgr.setUpdateOnlyWifi(false); } } pref.setEnabled(true); } public void selfFinish(View view) { if (Build.VERSION.SDK_INT >= 14) { ActivitySplitAnimationUtil.finish(this); } else { scrollToFinishActivity(); } } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // 按下键盘上返回按钮 if (keyCode == KeyEvent.KEYCODE_BACK) { selfFinish(null); return true; } return super.onKeyDown(keyCode, event); } @Override protected void onDestroy() { super.onDestroy(); ActivitySplitAnimationUtil.cancel(); System.gc(); } @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { mSwitchMgr.setSwipeOut(position); initSwipeOut(); } @Override public void onNothingSelected(AdapterView<?> parent) { } }