package com.weikou.beibeivideo.ui.mine;
|
|
import android.app.AlertDialog;
|
import android.content.Context;
|
import android.content.DialogInterface;
|
import android.content.Intent;
|
import android.content.SharedPreferences;
|
import android.content.SharedPreferences.Editor;
|
import android.content.pm.PackageInfo;
|
import android.content.pm.PackageManager.NameNotFoundException;
|
import android.os.Build;
|
import android.os.Bundle;
|
import android.text.SpannableStringBuilder;
|
import android.text.Spanned;
|
import android.text.style.TextAppearanceSpan;
|
import android.view.View;
|
import android.view.View.OnClickListener;
|
import android.widget.Button;
|
import android.widget.CheckBox;
|
import android.widget.CompoundButton;
|
import android.widget.CompoundButton.OnCheckedChangeListener;
|
import android.widget.LinearLayout.LayoutParams;
|
import android.widget.RelativeLayout;
|
import android.widget.TextView;
|
import android.widget.Toast;
|
|
import com.bumptech.glide.Glide;
|
import com.lcjian.library.util.common.StringUtils;
|
import com.nostra13.universalimageloader.core.ImageLoader;
|
import com.umeng.analytics.MobclickAgent;
|
import com.umeng.socialize.UMAuthListener;
|
import com.umeng.socialize.UMShareAPI;
|
import com.umeng.socialize.bean.SHARE_MEDIA;
|
import com.weikou.beibeivideo.R;
|
import com.weikou.beibeivideo.entity.SDCardEntity;
|
import com.weikou.beibeivideo.ui.BaseActivity;
|
import com.weikou.beibeivideo.ui.main.MineFragment;
|
import com.weikou.beibeivideo.util.BeibeiConstant;
|
import com.weikou.beibeivideo.util.SDCardUtil;
|
import com.weikou.beibeivideo.util.UserUtil;
|
import com.weikou.beibeivideo.util.XGPush;
|
import com.weikou.beibeivideo.util.ui.TopStatusSettings;
|
import com.weikou.beibeivideo.widget.BadgeView;
|
import com.yeshi.appupdate.AppUpdate;
|
|
import java.util.Map;
|
|
public class SettingsActivity extends BaseActivity implements OnClickListener,
|
OnCheckedChangeListener {
|
|
private TextView tv_top_bar_left;
|
private TextView tv_top_bar_middle;
|
private TextView tv_version_name;// 版本号
|
|
private CheckBox chb_only_wifi_download;
|
private RelativeLayout rl_clear_cache;
|
private RelativeLayout rl_about_us;
|
private RelativeLayout rl_check_update;// 检查更新
|
private RelativeLayout rl_disclaimer;
|
private RelativeLayout rl_user_agreement;//用户协议
|
private RelativeLayout rl_privacy_policy;//隐私条款
|
|
private Button btn_exit;// 离开按钮
|
private View view_sdcard;
|
private TextView tv_mobile;
|
private TextView tv_sdcard;
|
private CheckBox cb_mobile;
|
private CheckBox cb_sdcard;
|
|
private void chageSize(TextView tv, int start, int end) {
|
SpannableStringBuilder spanBuilder = new SpannableStringBuilder(tv
|
.getText().toString());
|
|
spanBuilder.setSpan(new TextAppearanceSpan(null, 0, getResources()
|
.getDimensionPixelSize(R.dimen.alphabet_size), null, null),
|
start, end, Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
|
tv.setText(spanBuilder);
|
}
|
|
/**
|
* 初始化内存显示
|
*/
|
private void initStorageView() {
|
tv_mobile.setText("总量:"
|
+ SDCardUtil.getSotrageSize(SDCardUtil
|
.getTotalExternalMemorySize() / (1024 * 1024))
|
+ " 可用:"
|
+ SDCardUtil.getSotrageSize(SDCardUtil
|
.getAvailableExternalMemorySize() / (1024 * 1024)));
|
SDCardEntity entity = SDCardUtil.getSDCardPath(this);
|
if (entity == null) {// 没有外部存储卡
|
view_sdcard.setVisibility(View.GONE);
|
cb_mobile.setVisibility(View.GONE);
|
} else {
|
tv_sdcard.setText("总量:"
|
+ SDCardUtil.getSotrageSize(entity.getTotalSize()
|
/ (1024 * 1024))
|
+ " 可用:"
|
+ SDCardUtil.getSotrageSize(entity.getAvailableSize()
|
/ (1024 * 1024)));
|
view_sdcard.setVisibility(View.VISIBLE);
|
cb_mobile.setVisibility(View.VISIBLE);
|
if (SDCardUtil.getDeaultStorage(this) == SDCardUtil.STORAGE_SDCARD) {
|
cb_sdcard.setChecked(true);
|
cb_mobile.setChecked(false);
|
} else {
|
cb_sdcard.setChecked(false);
|
cb_mobile.setChecked(true);
|
}
|
}
|
}
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
setContentView(R.layout.settings_activity);
|
|
view_sdcard = findViewById(R.id.rl_storage_sdcard);
|
tv_mobile = findViewById(R.id.tv_storage_mobile);
|
tv_sdcard = findViewById(R.id.tv_storage_sdcard);
|
cb_mobile = findViewById(R.id.cb_storage_mobile);
|
cb_sdcard = findViewById(R.id.cb_storage_sdcard);
|
cb_mobile.setOnCheckedChangeListener(this);
|
cb_sdcard.setOnCheckedChangeListener(this);
|
|
tv_top_bar_left = findViewById(R.id.tv_top_bar_left);
|
tv_top_bar_middle = findViewById(R.id.tv_top_bar_middle);
|
tv_top_bar_middle.setText("设置");
|
|
tv_top_bar_left.setOnClickListener(this);
|
|
chb_only_wifi_download = findViewById(R.id.chb_only_wifi_download);
|
rl_clear_cache = findViewById(R.id.rl_clear_cache);
|
rl_disclaimer = findViewById(R.id.rl_disclaimer);
|
rl_about_us = findViewById(R.id.rl_about_us);
|
rl_check_update = findViewById(R.id.rl_check_update);
|
rl_user_agreement = findViewById(R.id.rl_user_agreement);
|
rl_privacy_policy = findViewById(R.id.rl_privacy_policy);
|
rl_check_update = findViewById(R.id.rl_check_update);
|
tv_version_name = findViewById(R.id.tv_version_name);
|
btn_exit = findViewById(R.id.setting_btn_exit);
|
|
btn_exit.setOnClickListener(this);
|
rl_clear_cache.setOnClickListener(this);
|
rl_disclaimer.setOnClickListener(this);
|
rl_about_us.setOnClickListener(this);
|
rl_check_update.setOnClickListener(this);
|
rl_user_agreement.setOnClickListener(this);
|
rl_privacy_policy.setOnClickListener(this);
|
|
TopStatusSettings.setStatusViewAndDeepColor(this);
|
|
final SharedPreferences settings = getSharedPreferences("settings",
|
Context.MODE_PRIVATE);
|
chb_only_wifi_download.setChecked(settings.getBoolean(
|
"only_wifi_download", true));
|
chb_only_wifi_download
|
.setOnCheckedChangeListener(new OnCheckedChangeListener() {
|
@Override
|
public void onCheckedChanged(CompoundButton buttonView,
|
boolean isChecked) {
|
settings.edit()
|
.putBoolean("only_wifi_download", isChecked)
|
.commit();
|
}
|
});
|
initStorageView();
|
tv_version_name.setText("版本号:" + getVersionName(this));
|
// 离开按钮是否显示
|
if (StringUtils.isEmpty(getSharedPreferences("user",
|
Context.MODE_PRIVATE).getString("LoginUid", ""))) {// 如果为空字符
|
btn_exit.setVisibility(View.GONE);
|
}
|
}
|
|
/***
|
* 获取版本号
|
*/
|
public static String getVersionName(Context context) {
|
try {
|
PackageInfo pi = context.getPackageManager().getPackageInfo(
|
context.getPackageName(), 0);
|
return pi.versionName;
|
} catch (NameNotFoundException e) {
|
e.printStackTrace();
|
return "";
|
}
|
}
|
|
@Override
|
public void onResume() {
|
super.onResume();
|
BadgeView mBadge = new BadgeView(this, tv_version_name);
|
mBadge.setBackgroundResource(R.drawable.ic_red_dot);
|
mBadge.setTextSize(1);
|
mBadge.setText("");
|
SharedPreferences preferences = this.getSharedPreferences("update",
|
Context.MODE_PRIVATE);
|
boolean mStatus = preferences.getBoolean("status", false);
|
if (mStatus) {
|
mBadge.show();
|
} else {
|
mBadge.hide();
|
}
|
}
|
|
@Override
|
public void onPause() {
|
super.onPause();
|
AppUpdate.destoryAppUpdate();
|
}
|
|
@Override
|
public void onClick(View v) {
|
switch (v.getId()) {
|
case R.id.setting_btn_exit:// 点击离开
|
if (isFinishing())
|
return;
|
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
builder.setMessage("确定要退出登录吗?")
|
.setNegativeButton("取消", null)
|
.setPositiveButton("确定",
|
new DialogInterface.OnClickListener() {
|
@Override
|
public void onClick(DialogInterface dialog,
|
int which) {
|
if (UMShareAPI.get(SettingsActivity.this).isAuthorize(SettingsActivity.this, SHARE_MEDIA.QQ))
|
UMShareAPI.get(SettingsActivity.this).deleteOauth(SettingsActivity.this, SHARE_MEDIA.QQ, authListener);
|
UserUtil.logout(getApplicationContext());
|
MineFragment.isLogin = false;// 改为未登录状态
|
XGPush.unRegisterPush(SettingsActivity.this);
|
finish();
|
}
|
});
|
builder.create().show();
|
break;
|
case R.id.rl_check_update:// 点击检查更新c81e728d9d4c2f636f067f89cc14862c
|
initialer.run();
|
break;
|
case R.id.tv_top_bar_left: {
|
finish();
|
}
|
break;
|
case R.id.rl_clear_cache: {
|
if (isFinishing())
|
return;
|
AlertDialog.Builder builder2 = new AlertDialog.Builder(this);
|
builder2.setMessage("确定清空图片缓存?")
|
.setNegativeButton("取消", null)
|
.setPositiveButton("确定",
|
new DialogInterface.OnClickListener() {
|
@Override
|
public void onClick(DialogInterface dialog,
|
int which) {
|
new Thread(new Runnable() {
|
@Override
|
public void run() {
|
Glide.get(SettingsActivity.this)
|
.clearDiskCache();
|
}
|
}).start();
|
ImageLoader.getInstance().clearDiskCache();
|
Toast.makeText(SettingsActivity.this,
|
"缓存已清空", Toast.LENGTH_SHORT).show();
|
}
|
});
|
builder2.create().show();
|
}
|
break;
|
case R.id.rl_disclaimer: {
|
Intent intent = new Intent(this, BrowserActivity.class);
|
intent.putExtra("url", BeibeiConstant.HOST + "/BuWan/"
|
+ "api_disclaimer.jsp?package=" + getPackageName());
|
startActivity(intent);
|
}
|
break;
|
case R.id.rl_user_agreement: {//用户协议
|
Intent intent = new Intent(this, BrowserActivity.class);
|
intent.putExtra("url", BeibeiConstant.USER_AGREEMENT);
|
startActivity(intent);
|
}
|
break;
|
case R.id.rl_privacy_policy: {//隐私条款
|
Intent intent = new Intent(this, BrowserActivity.class);
|
intent.putExtra("url", BeibeiConstant.PRIVACY_POLICY);
|
startActivity(intent);
|
}
|
break;
|
case R.id.rl_about_us: {
|
Intent intent = new Intent(this, BrowserActivity.class);
|
intent.putExtra("url", BeibeiConstant.ABOUT_US);
|
startActivity(intent);
|
}
|
break;
|
default:
|
break;
|
}
|
}
|
|
private Runnable initialer = new Runnable() {
|
|
@Override
|
public void run() {
|
AppUpdate.setAppUpdateKey(BeibeiConstant.UPDATE_ID);
|
AppUpdate.setAppUpdateActivity(SettingsActivity.this, true);
|
AppUpdate.initAppUpdate();
|
}
|
};
|
|
|
@Override
|
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
if (buttonView.getId() == R.id.cb_storage_mobile) {
|
if (isChecked) {
|
SDCardUtil.setDeaultStorage(this, SDCardUtil.STORAGE_MOBILE);
|
cb_sdcard.setChecked(false);
|
}
|
} else {
|
if (isChecked) {
|
SDCardUtil.setDeaultStorage(this, SDCardUtil.STORAGE_SDCARD);
|
cb_mobile.setChecked(false);
|
}
|
}
|
|
}
|
|
@Override
|
protected void onDestroy() {
|
super.onDestroy();
|
AppUpdate.destoryAppUpdate();
|
}
|
|
|
UMAuthListener authListener = new UMAuthListener() {
|
@Override
|
public void onStart(SHARE_MEDIA platform) {
|
}
|
|
@Override
|
public void onComplete(SHARE_MEDIA platform, int action, final Map<String, String> data) {
|
// Toast.makeText(SettingsActivity.this, "退出登录成功", Toast.LENGTH_LONG).show();
|
}
|
|
@Override
|
public void onError(SHARE_MEDIA platform, int action, Throwable t) {
|
Toast.makeText(SettingsActivity.this, "退出登录失败", Toast.LENGTH_LONG).show();
|
}
|
|
@Override
|
public void onCancel(SHARE_MEDIA platform, int action) {
|
Toast.makeText(SettingsActivity.this, "退出登录取消", Toast.LENGTH_LONG).show();
|
}
|
};
|
}
|