|
|
@@ -0,0 +1,591 @@
|
|
|
+package com.uas.appme.settings.activity;
|
|
|
+
|
|
|
+import android.annotation.TargetApi;
|
|
|
+import android.app.ActivityManager;
|
|
|
+import android.app.AlertDialog;
|
|
|
+import android.app.ProgressDialog;
|
|
|
+import android.content.DialogInterface;
|
|
|
+import android.content.Intent;
|
|
|
+import android.net.Uri;
|
|
|
+import android.os.AsyncTask;
|
|
|
+import android.os.Build;
|
|
|
+import android.os.Bundle;
|
|
|
+import android.text.TextUtils;
|
|
|
+import android.util.Log;
|
|
|
+import android.view.Gravity;
|
|
|
+import android.view.LayoutInflater;
|
|
|
+import android.view.Menu;
|
|
|
+import android.view.MenuItem;
|
|
|
+import android.view.View;
|
|
|
+import android.widget.Button;
|
|
|
+import android.widget.ImageView;
|
|
|
+import android.widget.LinearLayout;
|
|
|
+import android.widget.PopupWindow;
|
|
|
+import android.widget.RelativeLayout;
|
|
|
+import android.widget.TextView;
|
|
|
+import android.widget.Toast;
|
|
|
+
|
|
|
+import com.common.file.FileUtils;
|
|
|
+import com.common.preferences.PreferenceUtils;
|
|
|
+import com.common.system.DisplayUtil;
|
|
|
+import com.common.ui.ViewUtils;
|
|
|
+import com.core.app.AppConfig;
|
|
|
+import com.core.app.Constants;
|
|
|
+import com.core.app.MyApplication;
|
|
|
+import com.core.base.BaseActivity;
|
|
|
+import com.lidroid.xutils.view.annotation.ViewInject;
|
|
|
+import com.uas.appme.R;
|
|
|
+
|
|
|
+import java.io.File;
|
|
|
+
|
|
|
+
|
|
|
+/**
|
|
|
+ * 设置
|
|
|
+ */
|
|
|
+public class SettingActivity extends BaseActivity implements View.OnClickListener {
|
|
|
+
|
|
|
+ private Button mExitBtn;
|
|
|
+ private TextView mCacheTv;
|
|
|
+ @ViewInject(R.id.uas_website_tv)
|
|
|
+ private TextView uas_website_tv;
|
|
|
+
|
|
|
+
|
|
|
+ @ViewInject(R.id.tv_menu_setting)
|
|
|
+ private TextView tv_menu_setting;
|
|
|
+
|
|
|
+ @ViewInject(R.id.cb_task_reply)
|
|
|
+ private SwitchView cb_task_reply;
|
|
|
+
|
|
|
+ @ViewInject(R.id.uu_step_rl)
|
|
|
+ private RelativeLayout uu_step_rl;
|
|
|
+
|
|
|
+ @ViewInject(R.id.sign_in_rl)
|
|
|
+ private RelativeLayout sign_in_rl;
|
|
|
+ @ViewInject(R.id.sign_out_rl)
|
|
|
+ private RelativeLayout sign_out_rl;
|
|
|
+
|
|
|
+ @ViewInject(R.id.tv_signauto_new)
|
|
|
+ private TextView tv_signauto_new;
|
|
|
+ @ViewInject(R.id.tv_sign_new)
|
|
|
+ private TextView tv_sign_new;
|
|
|
+ @ViewInject(R.id.tv_language_new)
|
|
|
+ private TextView tv_language_new;
|
|
|
+ @ViewInject(R.id.tv_booking_new)
|
|
|
+ private TextView tv_booking_new;
|
|
|
+
|
|
|
+ @ViewInject(R.id.tv_help_new)
|
|
|
+ private TextView tv_help_new;
|
|
|
+
|
|
|
+
|
|
|
+ @ViewInject(R.id.language_us_rl)
|
|
|
+ private RelativeLayout language_us_rl;
|
|
|
+
|
|
|
+ @ViewInject(R.id.uu_step_im)
|
|
|
+ private ImageView uu_step_im;
|
|
|
+ @ViewInject(R.id.uu_step_reply)
|
|
|
+ private SwitchView uu_step_reply;
|
|
|
+
|
|
|
+ @ViewInject(R.id.rl_app_update)
|
|
|
+ private RelativeLayout rl_app_update;
|
|
|
+ @ViewInject(R.id.version_value)
|
|
|
+ private TextView version_value;
|
|
|
+ @ViewInject(R.id.close_push_rl)
|
|
|
+ private RelativeLayout close_push_rl;
|
|
|
+ @ViewInject(R.id.speech_recognition_rl)
|
|
|
+ private RelativeLayout speech_recognition_rl;
|
|
|
+ @ViewInject(R.id.new_step_rl)
|
|
|
+ private RelativeLayout new_step_rl;
|
|
|
+ @ViewInject(R.id.booking_set_rl)
|
|
|
+ private RelativeLayout booking_set_rl;
|
|
|
+
|
|
|
+ private ProgressDialog dialog;
|
|
|
+ private RelativeLayout share_rl;
|
|
|
+ private String newStep_service_name = "com.xzjmyk.pm.newpedo.service.StepService";
|
|
|
+
|
|
|
+ private PopupWindow setWindow = null;//
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onCreate(Bundle savedInstanceState) {
|
|
|
+ super.onCreate(savedInstanceState);
|
|
|
+ setContentView(R.layout.activity_setting);
|
|
|
+ ViewUtils.inject(this);
|
|
|
+ getSupportActionBar().setTitle(getString(R.string.user_setting));
|
|
|
+ initView();
|
|
|
+
|
|
|
+// ThreadPool.getThreadPool().addTask(new Runnable() {
|
|
|
+// @Override
|
|
|
+// public void run() {
|
|
|
+//
|
|
|
+// ContactsUtils.testAddContact();
|
|
|
+// }
|
|
|
+// });
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private void initView() {
|
|
|
+ new_step_rl.setOnClickListener(this);
|
|
|
+// new_step_rl.setVisibility(View.GONE);
|
|
|
+
|
|
|
+ dialog = new ProgressDialog(this);
|
|
|
+ dialog.setIndeterminate(true);
|
|
|
+ share_rl = (RelativeLayout) findViewById(R.id.share_rl);
|
|
|
+ mExitBtn = (Button) findViewById(R.id.exit_btn);
|
|
|
+ //share_rl.setVisibility(View.GONE);
|
|
|
+ int isPush = PreferenceUtils.getInt(MyApplication.getInstance(), MainActivity.BAIDU_PUSH);
|
|
|
+
|
|
|
+ if (isPush == -1) {//第一次进入没有配置
|
|
|
+ cb_task_reply.setChecked(true);
|
|
|
+ } else if (isPush == 0) {//选择不推送
|
|
|
+ cb_task_reply.setChecked(false);
|
|
|
+ } else { //选择推送
|
|
|
+ cb_task_reply.setChecked(true);
|
|
|
+ }
|
|
|
+ share_rl.setOnClickListener(this);
|
|
|
+ cb_task_reply.setOnCheckedChangeListener(new SwitchView.OnCheckedChangeListener() {
|
|
|
+ @Override
|
|
|
+ public void onCheckedChanged(View view, boolean isChecked) {
|
|
|
+ if (isChecked) {
|
|
|
+ PreferenceUtils.putInt(MainActivity.BAIDU_PUSH, 1);
|
|
|
+ PushManager.resumeWork(MyApplication.getInstance());
|
|
|
+ } else {
|
|
|
+ PushManager.stopWork(MyApplication.getInstance());
|
|
|
+ PreferenceUtils.putInt(MainActivity.BAIDU_PUSH, 0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ rl_app_update.setOnClickListener(this);
|
|
|
+ close_push_rl.setOnClickListener(this);
|
|
|
+ version_value.setText(CommonUtil.ApkVersionCode(this));
|
|
|
+ mExitBtn.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ showExitDialog();
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+ mCacheTv = (TextView) findViewById(R.id.cache_tv);
|
|
|
+ findViewById(R.id.clear_cache_rl).setOnClickListener(this);
|
|
|
+ findViewById(R.id.use_help_rl).setOnClickListener(this);
|
|
|
+ findViewById(R.id.about_us_rl).setOnClickListener(this);
|
|
|
+ long cacheSize = FileUtils.getFileSize(new File(MyApplication.getInstance().mAppDir));
|
|
|
+ mCacheTv.setText(FileUtils.formatFileSize(cacheSize));
|
|
|
+ uas_website_tv.setText(CommonUtil.getSharedPreferences(this, "erp_baseurl"));
|
|
|
+
|
|
|
+
|
|
|
+ //UU开关的 根据StepService是否开启显示状态
|
|
|
+ int isStep = PreferenceUtils.getInt(MyApplication.getInstance(), MainActivity.UU_STEP);
|
|
|
+ if (isServiceRunning(newStep_service_name) && (isStep == -1 || isStep == 1)) {
|
|
|
+ uu_step_reply.setChecked(true);
|
|
|
+ } else {
|
|
|
+ speech_recognition_rl.setVisibility(View.GONE);
|
|
|
+ uu_step_reply.setChecked(false);
|
|
|
+ }
|
|
|
+
|
|
|
+ uu_step_reply.setOnCheckedChangeListener(new SwitchView.OnCheckedChangeListener() {
|
|
|
+ @Override
|
|
|
+ public void onCheckedChanged(View view, boolean isChecked) {
|
|
|
+ tv_menu_setting.setVisibility(View.GONE);
|
|
|
+ CommonUtil.putSharedPreferencesBoolean(SettingActivity.this, Constants.NEW_UURUN, true);
|
|
|
+ if (isChecked) {
|
|
|
+ PreferenceUtils.putInt(MainActivity.UU_STEP, 1);
|
|
|
+// PushManager.resumeWork(MyApplication.getInstance());
|
|
|
+//
|
|
|
+ startActivity(new Intent(mContext, StepSplashActivity.class));
|
|
|
+ } else {
|
|
|
+// PushManager.stopWork(MyApplication.getInstance());
|
|
|
+ PreferenceUtils.putInt(MainActivity.UU_STEP, 0);
|
|
|
+// stopService(intent);
|
|
|
+ Toast.makeText(mContext, getString(R.string.set_close_step_notice1), Toast.LENGTH_LONG).show();
|
|
|
+ speech_recognition_rl.setVisibility(View.GONE);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ uu_step_rl.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ tv_menu_setting.setVisibility(View.GONE);
|
|
|
+ CommonUtil.putSharedPreferencesBoolean(SettingActivity.this, Constants.NEW_UURUN, true);
|
|
|
+ int last_isStep = PreferenceUtils.getInt(MyApplication.getInstance(), MainActivity.UU_STEP);
|
|
|
+ if (isServiceRunning(newStep_service_name) && last_isStep == 1) {
|
|
|
+ startActivity(new Intent(mContext, NewStepActivity.class));
|
|
|
+ } else {
|
|
|
+ Toast.makeText(mContext, getString(R.string.set_close_step_notice2), Toast.LENGTH_SHORT).show();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ new_step_rl.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ tv_menu_setting.setVisibility(View.GONE);
|
|
|
+ CommonUtil.putSharedPreferencesBoolean(SettingActivity.this, Constants.NEW_UURUN, true);
|
|
|
+ startActivity(new Intent(mContext, NewStepActivity.class));
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ booking_set_rl.setOnClickListener(this);
|
|
|
+
|
|
|
+ tv_menu_setting.setVisibility(CommonUtil.getSharedPreferencesBoolean(this, Constants.NEW_UURUN, false) ? View.GONE : View.VISIBLE);
|
|
|
+ tv_signauto_new.setVisibility(CommonUtil.getSharedPreferencesBoolean(this, Constants.SET_SIGN_AUTO, false) ? View.GONE : View.VISIBLE);
|
|
|
+ tv_sign_new.setVisibility(CommonUtil.getSharedPreferencesBoolean(this, Constants.SET_SIGN_IN, false) ? View.GONE : View.VISIBLE);
|
|
|
+ tv_language_new.setVisibility(CommonUtil.getSharedPreferencesBoolean(this, Constants.SET_SIGN_LANGUAGE, false) ? View.GONE : View.VISIBLE);
|
|
|
+ tv_booking_new.setVisibility(CommonUtil.getSharedPreferencesBoolean(this, Constants.SET_BOOKING_TIME, false) ? View.GONE : View.VISIBLE);
|
|
|
+ tv_help_new.setVisibility(CommonUtil.getSharedPreferencesBoolean(this, Constants.SET_CALL, false) ? View.GONE : View.VISIBLE);
|
|
|
+
|
|
|
+ speech_recognition_rl.setOnClickListener(this);
|
|
|
+ sign_in_rl.setOnClickListener(this);
|
|
|
+ sign_out_rl.setOnClickListener(this);
|
|
|
+ language_us_rl.setOnClickListener(this);
|
|
|
+
|
|
|
+ if (ApiUtils.getApiModel() instanceof ApiPlatform) {
|
|
|
+ language_us_rl.setVisibility(View.GONE);
|
|
|
+ } else {
|
|
|
+ language_us_rl.setVisibility(View.VISIBLE);
|
|
|
+ }
|
|
|
+ UserRoleUtils.checkUserRole(this,getRootView());
|
|
|
+ }
|
|
|
+
|
|
|
+ private boolean isServiceRunning(String servicename) { // 判断某个服务是否已经运行
|
|
|
+ ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
|
|
|
+ for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
|
|
|
+ if (servicename.equals(service.service.getClassName())) {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean onCreateOptionsMenu(Menu menu) {
|
|
|
+ return super.onCreateOptionsMenu(menu);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean onOptionsItemSelected(MenuItem item) {
|
|
|
+ if (item.getItemId() == android.R.id.home) {
|
|
|
+ startActivity(new Intent(mContext, MainActivity.class));
|
|
|
+ }
|
|
|
+ return super.onOptionsItemSelected(item);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onBackPressed() {
|
|
|
+ startActivity(new Intent(mContext, MainActivity.class));
|
|
|
+ super.onBackPressed();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void showExitDialog() {
|
|
|
+ new AlertDialog.Builder(mContext).setTitle(R.string.app_name).setMessage(R.string.exit_tips).setNegativeButton(R.string.common_cancel, null)
|
|
|
+ .setPositiveButton(R.string.common_sure, new DialogInterface.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(DialogInterface dialog, int which) {
|
|
|
+ UserSp.getInstance(mContext).clearUserInfo();
|
|
|
+ ViewUtil.clearAccount(mContext);
|
|
|
+ LoginHelper.broadcastLogout(mContext);
|
|
|
+ SettingActivity.this.finish();
|
|
|
+ String nowtime = TimeUtils.f_long_2_str(System.currentTimeMillis());
|
|
|
+ String saved_time = PreferenceUtils.getString(MyApplication.getInstance(), TimeStatisticsActivity.Login_Exit);
|
|
|
+ if (!TextUtils.isEmpty(saved_time)) {
|
|
|
+ PreferenceUtils.putString(TimeStatisticsActivity.Login_Exit, saved_time + "," + nowtime);
|
|
|
+ } else {
|
|
|
+ PreferenceUtils.putString(TimeStatisticsActivity.Login_Exit, nowtime);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }).create().show();
|
|
|
+ }
|
|
|
+
|
|
|
+ private void save(String login_exit_time) throws Exception {
|
|
|
+ InAndExitTimeEntity bean = new InAndExitTimeEntity();
|
|
|
+ bean.setLoginin_time(login_exit_time);
|
|
|
+ InAndExitTimeDao.getInstance().insert(bean);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ switch (v.getId()) {
|
|
|
+ case R.id.booking_set_rl:
|
|
|
+ startActivity(new Intent(this, BookingSetActivity.class));
|
|
|
+ CommonUtil.setSharedPreferences(this, Constants.SET_BOOKING_TIME, true);
|
|
|
+ tv_booking_new.setVisibility(View.GONE);
|
|
|
+ break;
|
|
|
+ case R.id.language_us_rl:
|
|
|
+ startActivity(new Intent(this, SelectLanguageActivity.class));
|
|
|
+ CommonUtil.setSharedPreferences(this, Constants.SET_SIGN_LANGUAGE, true);
|
|
|
+ tv_language_new.setVisibility(View.GONE);
|
|
|
+ break;
|
|
|
+ case R.id.sign_in_rl:
|
|
|
+ showPopupWindow();
|
|
|
+ CommonUtil.setSharedPreferences(this, Constants.SET_SIGN_IN, true);
|
|
|
+ tv_sign_new.setVisibility(View.GONE);
|
|
|
+ break;
|
|
|
+ case R.id.sign_out_rl:
|
|
|
+ Intent intent = new Intent(mContext, MissionSetActivity.class);
|
|
|
+ intent.putExtra(AppConfig.IS_ADMIN, PreferenceUtils.getBoolean(AppConfig.IS_ADMIN, false));
|
|
|
+ startActivity(intent);
|
|
|
+ CommonUtil.setSharedPreferences(this, Constants.SET_SIGN_AUTO, true);
|
|
|
+ tv_signauto_new.setVisibility(View.GONE);
|
|
|
+ break;
|
|
|
+ case R.id.speech_recognition_rl:
|
|
|
+ startActivity(new Intent(mContext, SpeechrecognitionActivity.class));
|
|
|
+ break;
|
|
|
+ case R.id.close_push_rl:
|
|
|
+ break;
|
|
|
+ case R.id.clear_cache_rl:
|
|
|
+ showclearDialog();
|
|
|
+ break;
|
|
|
+ case R.id.use_help_rl: {
|
|
|
+ CommonUtil.setSharedPreferences(this, Constants.SET_CALL, true);
|
|
|
+ tv_help_new.setVisibility(View.GONE);
|
|
|
+ intent = new Intent(mContext, FeedbackActivity.class);
|
|
|
+ intent.putExtra("type", 1);
|
|
|
+ intent.putExtra(WebViewActivity.EXTRA_URL, mConfig.help_url);
|
|
|
+ intent.putExtra(WebViewActivity.EXTRA_TITLE, getString(R.string.use_help));
|
|
|
+ startActivity(intent);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case R.id.about_us_rl:// 关于我们
|
|
|
+ startActivity(new Intent(mContext, AboutActivity.class));
|
|
|
+
|
|
|
+ break;
|
|
|
+ case R.id.share_rl:
|
|
|
+ share();
|
|
|
+ break;
|
|
|
+ case R.id.rl_app_update:
|
|
|
+ dialog.setMessage(getString(R.string.set_check_update_wait));
|
|
|
+ dialog.show();
|
|
|
+ BDAutoUpdateSDK.uiUpdateAction(this, new UICheckUpdateCallback() {
|
|
|
+ @Override
|
|
|
+ public void onCheckComplete() {
|
|
|
+ BDAutoUpdateSDK.cpUpdateCheck(SettingActivity.this,
|
|
|
+ new CPCheckUpdateCallback() {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onCheckUpdateCallback(
|
|
|
+ AppUpdateInfo info,
|
|
|
+ AppUpdateInfoForInstall infoForInstall) {
|
|
|
+ if (infoForInstall != null
|
|
|
+ && !TextUtils
|
|
|
+ .isEmpty(infoForInstall
|
|
|
+ .getInstallPath())) {
|
|
|
+ } else if (info != null) {
|
|
|
+ } else {
|
|
|
+ ViewUtil.ShowMessageTitle(
|
|
|
+ SettingActivity.this,
|
|
|
+ getString(R.string.set_isnewVersion));
|
|
|
+ }
|
|
|
+ dialog.dismiss();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ break;
|
|
|
+ case R.id.super_setting_tv:
|
|
|
+ startActivityForResult(new Intent(mContext, SignSeniorSettingActivity.class), 0x12);
|
|
|
+ closePopupWindow();
|
|
|
+ break;
|
|
|
+ case R.id.work_setting_tv:
|
|
|
+ intent = new Intent(mContext, FlightsActivity.class);
|
|
|
+ startActivityForResult(intent, 0x12);
|
|
|
+ closePopupWindow();
|
|
|
+ break;
|
|
|
+ case R.id.office_addr_setting_tv:
|
|
|
+ startActivityForResult(new Intent(mContext, OfficeAddressSettingsActivity.class), 0x12);
|
|
|
+ closePopupWindow();
|
|
|
+ break;
|
|
|
+ case R.id.my_rule_setting_tv:
|
|
|
+ intent = new Intent(mContext, MyRuleSetActivity.class);
|
|
|
+// presenter.showMyRele(intent, adapter.getModels());
|
|
|
+ startActivity(intent);
|
|
|
+ closePopupWindow();
|
|
|
+ break;
|
|
|
+ case R.id.cancel_tv:
|
|
|
+ closePopupWindow();
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void share() {
|
|
|
+ shareSingleImage();
|
|
|
+ }
|
|
|
+
|
|
|
+ //分享单张图片
|
|
|
+ public void shareSingleImage() {
|
|
|
+ Uri imageUri = Uri.parse("android.resource://" + getApplicationContext().getPackageName() + "/" + R.drawable.ic_uu_scan_code);
|
|
|
+ Intent shareIntent = new Intent();
|
|
|
+ shareIntent.setAction(Intent.ACTION_SEND);
|
|
|
+ shareIntent.putExtra(Intent.EXTRA_STREAM, imageUri);
|
|
|
+ shareIntent.setType("image/*");
|
|
|
+ startActivity(Intent.createChooser(shareIntent, getString(R.string.set_share_to)));
|
|
|
+ }
|
|
|
+
|
|
|
+ //确认是否清空本地缓存
|
|
|
+ private void showclearDialog() {
|
|
|
+ new AlertDialog
|
|
|
+ .Builder(mContext)
|
|
|
+ .setTitle(getString(R.string.common_notice))
|
|
|
+ .setMessage(getString(R.string.cache_msg))
|
|
|
+ .setNegativeButton(getString(R.string.common_cancel), null)
|
|
|
+ .setPositiveButton(getString(R.string.common_sure), new DialogInterface.OnClickListener() {
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onClick(DialogInterface dialog, int which) {
|
|
|
+ clearCache();
|
|
|
+ Log.i("clearCache", "clearCache");
|
|
|
+ }
|
|
|
+ }).create().show();
|
|
|
+ }
|
|
|
+
|
|
|
+ @TargetApi(Build.VERSION_CODES.HONEYCOMB)
|
|
|
+ private void clearCache() {
|
|
|
+ String filePath = MyApplication.getInstance().mAppDir;
|
|
|
+ //删除文件
|
|
|
+ VideoFileDao.getInstance().deleteAllVideoFile(
|
|
|
+ VideoFileDao.getInstance().getVideoFiles(
|
|
|
+ MyApplication.getInstance().mLoginUser.getUserId()));
|
|
|
+ if (Build.VERSION.SDK_INT >= 11)
|
|
|
+ new ClearCacheAsyncTaska(filePath).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, true);
|
|
|
+ else
|
|
|
+ new ClearCacheAsyncTaska(filePath).execute(true);
|
|
|
+ }
|
|
|
+
|
|
|
+ private class ClearCacheAsyncTaska extends AsyncTask<Boolean, String, Integer> {
|
|
|
+ private File rootFile;
|
|
|
+ private ProgressDialog progressDialog;
|
|
|
+ private int filesNumber = 0;
|
|
|
+ private boolean canceled = false;
|
|
|
+
|
|
|
+ public ClearCacheAsyncTaska(String filePath) {
|
|
|
+ this.rootFile = new File(filePath);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onPreExecute() {
|
|
|
+ filesNumber = FileUtils.getFolderSubFilesNumber(rootFile);
|
|
|
+ progressDialog = new ProgressDialog(mContext);
|
|
|
+ progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
|
|
|
+ progressDialog.setIndeterminate(false);
|
|
|
+ progressDialog.setCancelable(false);
|
|
|
+ progressDialog.setMessage(getString(R.string.deleteing));
|
|
|
+ progressDialog.setMax(filesNumber);
|
|
|
+ progressDialog.setProgress(0);
|
|
|
+ // 设置取消按钮
|
|
|
+ progressDialog.setButton(DialogInterface.BUTTON_NEGATIVE, getString(R.string.cancel), new DialogInterface.OnClickListener() {
|
|
|
+ public void onClick(DialogInterface dialog, int i) {
|
|
|
+ canceled = true;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ progressDialog.show();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 返回true代表删除完成,false表示取消了删除
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ protected Integer doInBackground(Boolean... params) {
|
|
|
+ if (filesNumber == 0) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ Log.i("gongpengming", "doInBackground");
|
|
|
+ boolean deleteSubFolder = params[0];// 是否删除已清空的子文件夹
|
|
|
+ return deleteFolder(rootFile, true, deleteSubFolder, 0);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onProgressUpdate(String... values) {
|
|
|
+ super.onProgressUpdate(values);
|
|
|
+ // String filePath = values[0];
|
|
|
+ int progress = Integer.parseInt(values[1]);
|
|
|
+ // progressDialog.setMessage(filePath);
|
|
|
+ progressDialog.setProgress(progress);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected void onPostExecute(Integer result) {
|
|
|
+ super.onPostExecute(result);
|
|
|
+ progressDialog.dismiss();
|
|
|
+ if (!canceled && result == filesNumber) {
|
|
|
+ ToastUtil.showToast(mContext, R.string.clear_completed);
|
|
|
+ }
|
|
|
+ long cacheSize = FileUtils.getFileSize(rootFile);
|
|
|
+ mCacheTv.setText(FileUtils.formatFileSize(cacheSize));
|
|
|
+ }
|
|
|
+
|
|
|
+ private long notifyTime = 0;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 是否删除完毕
|
|
|
+ *
|
|
|
+ * @param file
|
|
|
+ * @param deleteSubFolder
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private int deleteFolder(File file, boolean rootFolder, boolean deleteSubFolder, int progress) {
|
|
|
+ if (file == null || !file.exists() || !file.isDirectory()) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ File flist[] = file.listFiles();
|
|
|
+ for (File subFile : flist) {
|
|
|
+ if (canceled) {
|
|
|
+ return progress;
|
|
|
+ }
|
|
|
+ if (subFile.isFile()) {
|
|
|
+ subFile.delete();
|
|
|
+ progress++;
|
|
|
+ long current = System.currentTimeMillis();
|
|
|
+ if (current - notifyTime > 200) {// 200毫秒更新一次界面
|
|
|
+ notifyTime = current;
|
|
|
+ publishProgress(subFile.getAbsolutePath(), String.valueOf(progress));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ progress = deleteFolder(subFile, false, deleteSubFolder, progress);
|
|
|
+ if (deleteSubFolder) {
|
|
|
+ subFile.delete();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return progress;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void showPopupWindow() {
|
|
|
+ if (setWindow == null) initPopupWindow();
|
|
|
+ setWindow.showAtLocation(getWindow().getDecorView().
|
|
|
+ findViewById(android.R.id.content), Gravity.BOTTOM, 0, 0);
|
|
|
+ DisplayUtil.backgroundAlpha(this, 0.4f);
|
|
|
+ }
|
|
|
+
|
|
|
+ private void initPopupWindow() {
|
|
|
+ View viewContext = LayoutInflater.from(mContext).inflate(R.layout.pop_work_activity, null);
|
|
|
+ if (!PreferenceUtils.getBoolean(AppConfig.IS_ADMIN, false)) {
|
|
|
+ viewContext.findViewById(R.id.super_setting_tv).setVisibility(View.GONE);
|
|
|
+ viewContext.findViewById(R.id.work_setting_tv).setVisibility(View.GONE);
|
|
|
+ viewContext.findViewById(R.id.office_addr_setting_tv).setVisibility(View.GONE);
|
|
|
+ } else {
|
|
|
+ viewContext.findViewById(R.id.super_setting_tv).setOnClickListener(this);
|
|
|
+ viewContext.findViewById(R.id.work_setting_tv).setOnClickListener(this);
|
|
|
+ viewContext.findViewById(R.id.office_addr_setting_tv).setOnClickListener(this);
|
|
|
+ }
|
|
|
+ viewContext.findViewById(R.id.my_rule_setting_tv).setOnClickListener(this);
|
|
|
+ viewContext.findViewById(R.id.cancel_tv).setOnClickListener(this);
|
|
|
+ setWindow = new PopupWindow(viewContext,
|
|
|
+ LinearLayout.LayoutParams.MATCH_PARENT,
|
|
|
+ LinearLayout.LayoutParams.WRAP_CONTENT, true);
|
|
|
+ setWindow.setAnimationStyle(R.style.MenuAnimationFade);
|
|
|
+ setWindow.setBackgroundDrawable(mContext.getResources().getDrawable(R.drawable.bg_popuwin));
|
|
|
+ setWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
|
|
|
+ @Override
|
|
|
+ public void onDismiss() {
|
|
|
+ closePopupWindow();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ private void closePopupWindow() {
|
|
|
+ if (setWindow != null)
|
|
|
+ setWindow.dismiss();
|
|
|
+ DisplayUtil.backgroundAlpha(this, 1f);
|
|
|
+ }
|
|
|
+}
|