package com.pan.simplepicture.view.activity; import android.content.Intent; import android.os.Bundle; import android.text.Editable; import android.text.TextUtils; import android.text.TextWatcher; import android.view.Gravity; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; import com.avos.avoscloud.AVObject; import com.pan.simplepicture.ConstantValue; import com.pan.simplepicture.R; import com.pan.simplepicture.inter.OnShareListener; import com.pan.simplepicture.presenter.BasePresenter; import com.pan.simplepicture.presenter.PlayPresenter; import com.pan.simplepicture.presenter.SettingPresenter; import com.pan.simplepicture.utils.AppUtils; import com.pan.simplepicture.utils.ContextUtils; import com.pan.simplepicture.utils.FrecsoUtils; import com.pan.simplepicture.utils.ScreenUtils; import com.pan.simplepicture.utils.SharedPreferencesUtils; import com.pan.simplepicture.utils.UserManager; import com.pan.simplepicture.view.impl.ISettingView; import com.pan.simplepicture.widget.AlertDialog; import com.pan.simplepicture.widget.CustomDialog; import com.pan.simplepicture.widget.ShareView; import com.pan.simplepicture.widget.ToggleButton; import com.umeng.socialize.ShareAction; import com.umeng.socialize.UMShareAPI; import com.umeng.socialize.bean.SHARE_MEDIA; import java.util.HashMap; import java.util.Map; import butterknife.Bind; import butterknife.ButterKnife; import butterknife.OnClick; import de.greenrobot.event.EventBus; /** * 设置 * * @author pan */ public class SettingActivity extends BaseActivity implements ISettingView, ToggleButton.OnToggleChanged { @Override protected boolean isSetStatusBar() { return true; } @Override public void setActionBar() { //set the back arrow in the toolbar getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeButtonEnabled(false); } @OnClick({R.id.clear_cache, R.id.feedback, R.id.remmend_firend, R.id.assess, R.id.logout}) public void click(View arg0) { switch (arg0.getId()) { case R.id.clear_cache: // 清除缓存 new AlertDialog(SettingActivity.this).builder().setTitle("清除缓存") .setMsg("清除缓存后使用的流量可能会额外增加,确定清除?") .setPositiveButton("确认", new OnClickListener() { @Override public void onClick(View v) { FrecsoUtils.clear(); } }).setNegativeButton("取消", new OnClickListener() { @Override public void onClick(View v) { } }).show(); break; case R.id.feedback: // 反馈意见 showCommentDialog(); break; case R.id.remmend_firend: ShareView shareView = new ShareView(this); shareView.setOnShareListener(new OnShareListener() { @Override public void onShareData(ShareAction action) { action.withTitle("黑丝会") .withText("对比黑丝的儒雅,沉淀。我更喜欢淡白的牛仔,清新,自然。给人愉悦的享受,如风的温暖,如花的清香。") .withTargetUrl("http://www.sesefa.com/").share(); } @Override public void onShareSuccess(SHARE_MEDIA platform) { } @Override public void onShareFailed(SHARE_MEDIA platform) { } @Override public void onCancle() { if (shareDialog != null && shareDialog.isShowing()) shareDialog.dismiss(); } @Override public void onShareCancle(SHARE_MEDIA platform) { } }); LinearLayout.LayoutParams layoutParam = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT); shareView.setLayoutParams(layoutParam); shareDialog = new CustomDialog(this, shareView, ScreenUtils.getInstance(this).getWidth() - ContextUtils.dip2px(this, 20), ContextUtils.dip2px(this, 420), Gravity.CENTER); shareDialog.show(); break; case R.id.assess: // 赏个好评 AppUtils.goMarket(SettingActivity.this); break; case R.id.logout: if (UserManager.getInstance().isLogin()) { // 退出登录 new AlertDialog(SettingActivity.this).builder() .setTitle("退出当前账号").setMsg("退出当前帐号可能会导致一些功能无法使用,确定退出?") .setPositiveButton("确认退出", new OnClickListener() { @Override public void onClick(View v) { UserManager.getInstance().logout(); logout.setText("登录"); EventBus.getDefault().post("remove"); } }).setNegativeButton("取消", new OnClickListener() { @Override public void onClick(View v) { } }).show(); } else { Toast.makeText(SettingActivity.this, "please login first in Home-Page !", Toast.LENGTH_LONG).show(); } break; default: break; } } private CustomDialog shareDialog; private void showCommentDialog() { View view = ContextUtils.inflate(this, R.layout.send_comment_dialog); final EditText et_content = ButterKnife.findById(view, R.id.et_content); et_content.setHint("朋友,你的意见,将会让我们把产品做得更好。"); final TextView tv_title = ButterKnife.findById(view, R.id.tv_title); tv_title.setText("意见反馈"); final TextView tv_length = ButterKnife.findById(view, R.id.tv_length); final Button comment_button = ButterKnife.findById(view, R.id.comment_button); comment_button.setOnClickListener(new OnClickListener() { @Override public void onClick(View view) { String content = et_content.getText().toString().trim(); if (TextUtils.isEmpty(content)) { Toast.makeText(SettingActivity.this, "please input your feedback first !", Toast.LENGTH_LONG).show(); return; } Map<String, String> params = new HashMap<String, String>(); params.put("class", "Feedback"); params.put("content", content); ((SettingPresenter) mPresenter).sendFeedback(params); if (dialog != null && dialog.isShowing()) { dialog.dismiss(); dialog = null; } } }); et_content.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { if (charSequence == null) { tv_length.setText("0/70"); } else { tv_length.setText(charSequence.toString().length() + "/70"); } } @Override public void afterTextChanged(Editable editable) { } }); dialog = new CustomDialog(this, view, ScreenUtils.getInstance(this).getWidth() - ContextUtils.dip2px(this, 20), ContextUtils.dip2px(this, 280), Gravity.CENTER); dialog.show(); } private CustomDialog dialog; @Bind(R.id.prompt__not_wifi) public ToggleButton prompt__not_wifi; @Bind(R.id.auto_play) public ToggleButton auto_play; @Bind(R.id.logout) public Button logout; @Override public int getToolBarId() { return R.id.toolbar; } @Override public int getContentLayout() { return R.layout.activity_setting; } @Override public BasePresenter getPresenter() { return new SettingPresenter(); } @Override public void bindView(Bundle savedInstanceState) { boolean auto = SharedPreferencesUtils.getBoolean(this, "auto_play", false); auto_play.setChecked(auto); boolean wifi = SharedPreferencesUtils.getBoolean(this, "prompt__not_wifi", true); prompt__not_wifi.setChecked(wifi); if (UserManager.getInstance().isLogin()) { logout.setText("注销"); } else { logout.setText("登录"); } auto_play.setOnToggleChanged(this); prompt__not_wifi.setOnToggleChanged(this); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data); } @Override public void onToggle(ToggleButton toggleButton, boolean on) { SharedPreferencesUtils.setBoolean(this, (String) toggleButton.getTag(), on); } @Override public void feedback(boolean isSuccess) { if (isSuccess) { Toast.makeText(this, "感谢您给我们的反馈!", Toast.LENGTH_LONG).show(); } else { Toast.makeText(this, "对不起,您的反馈没有发送成功!", Toast.LENGTH_LONG).show(); } } }