package com.withiter.quhao.activity; import java.io.IOException; import java.util.HashMap; import java.util.Map; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.app.Dialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.v4.app.Fragment; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.Toast; import cn.sharesdk.framework.Platform; import cn.sharesdk.framework.PlatformActionListener; import cn.sharesdk.framework.ShareSDK; import cn.sharesdk.onekeyshare.OnekeyShare; import com.nostra13.universalimageloader.core.ImageLoader; import com.withiter.quhao.QHClientApplication; import com.withiter.quhao.R; import com.withiter.quhao.task.MoreVersionCheckTask; import com.withiter.quhao.util.ActivityUtil; import com.withiter.quhao.util.StringUtils; import com.withiter.quhao.util.tool.FileUtil; import com.withiter.quhao.util.tool.ImageUtil; import com.withiter.quhao.util.tool.ParseJson; import com.withiter.quhao.util.tool.ProgressDialogUtil; import com.withiter.quhao.util.tool.QuhaoConstant; import com.withiter.quhao.util.tool.SharedprefUtil; import com.withiter.quhao.vo.AppVersionVO; public class MoreFragment extends Fragment implements OnClickListener{ private LinearLayout aboutUs; private LinearLayout opinion; private LinearLayout version; private LinearLayout moreShare; private LinearLayout help; private LinearLayout moreShareAuth; private LinearLayout cleanPicture; private LinearLayout imageShow; private ImageView imageView; private Platform sina; private View contentView; private final int UNLOCK_CLICK = 1000; private boolean isClick; private ProgressDialogUtil progressDialogUtil; private String shareImagePath; protected Handler unlockHandler = new Handler() { public void handleMessage(Message msg) { if (msg.what == UNLOCK_CLICK) { isClick = false; } } }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) { if (!ActivityUtil.isNetWorkAvailable(getActivity())) { Toast.makeText(getActivity(), R.string.network_error_info, Toast.LENGTH_SHORT).show(); } shareImagePath = FileUtil.saveLogo(getActivity()); if(contentView != null) { ViewGroup vg = (ViewGroup) contentView.getParent(); vg.removeView(contentView); return contentView; } contentView = inflater.inflate(R.layout.more_fragment_layout, container,false); version = (LinearLayout) contentView.findViewById(R.id.more_version); opinion = (LinearLayout) contentView.findViewById(R.id.more_opinion); moreShare = (LinearLayout) contentView.findViewById(R.id.more_share); help = (LinearLayout) contentView.findViewById(R.id.more_help); aboutUs = (LinearLayout) contentView.findViewById(R.id.more_aboutus); moreShareAuth = (LinearLayout) contentView.findViewById(R.id.more_share_auth); cleanPicture = (LinearLayout) contentView.findViewById(R.id.more_settings_cleanpicture); imageShow = (LinearLayout) contentView.findViewById(R.id.more_settings_imageshow); imageView = (ImageView) contentView.findViewById(R.id.more_settings_image); String isLoadImg = SharedprefUtil.get(getActivity(), QuhaoConstant.IS_LOAD_IMG, "false"); if ("true".equals(isLoadImg)) { QHClientApplication.getInstance().canLoadImg = true; imageView.setImageResource(R.drawable.checkbox_on); } else { QHClientApplication.getInstance().canLoadImg = false; imageView.setImageResource(R.drawable.checkbox_off); } cleanPicture.setOnClickListener(this); imageShow.setOnClickListener(this); version.setOnClickListener(this); opinion.setOnClickListener(this); moreShare.setOnClickListener(this); help.setOnClickListener(this); aboutUs.setOnClickListener(this); moreShareAuth.setOnClickListener(this); return contentView; } protected Handler toastHandler = new Handler() { public void handleMessage(Message msg) { if (msg.what == UNLOCK_CLICK) { Map<String, Object> toastParams = (Map<String, Object>) msg.obj; Toast.makeText((Context)toastParams.get("activity"), Integer.parseInt(String.valueOf(toastParams.get("text"))), Integer.parseInt(String.valueOf(toastParams.get("toastLength")))).show(); } } }; @Override public void onResume() { ShareSDK.initSDK(this.getActivity()); sina = ShareSDK.getPlatform(getActivity(), "SinaWeibo"); sina.SSOSetting(true); super.onResume(); } @Override public void onDestroy() { ShareSDK.stopSDK(getActivity()); super.onDestroy(); } @Override public void onClick(View v) { if (isClick) { return; } isClick = true; progressDialogUtil = new ProgressDialogUtil(getActivity(), R.string.empty, R.string.querying, false); switch (v.getId()) { case R.id.more_aboutus:// 关于我们 unlockHandler.sendEmptyMessageDelayed(UNLOCK_CLICK, 1000); Intent intent1 = new Intent(getActivity(), AboutUsActivity.class); startActivity(intent1); break; case R.id.more_opinion:// 反馈 unlockHandler.sendEmptyMessageDelayed(UNLOCK_CLICK, 1000); Intent intent2 = new Intent(getActivity(), OpinionActivity.class); startActivity(intent2); break; case R.id.more_help:// 帮助 unlockHandler.sendEmptyMessageDelayed(UNLOCK_CLICK, 1000); Intent intent3 = new Intent(getActivity(), HelpActivity.class); startActivity(intent3); break; case R.id.more_version:// 版本检测 progressDialogUtil.showProgress(); progressDialogUtil.closeProgress(); if(!ActivityUtil.isNetWorkAvailable(getActivity())) { Toast.makeText(getActivity(), R.string.network_error_info, Toast.LENGTH_SHORT).show(); unlockHandler.sendEmptyMessageDelayed(UNLOCK_CLICK, 1000); return; } final String currentVersion = ActivityUtil.getVersionName(getActivity()); String url = "app/appCode"; final MoreVersionCheckTask task = new MoreVersionCheckTask(R.string.waitting, getActivity(), url); task.execute(new Runnable() { @Override public void run() { String result = task.result; final AppVersionVO avo = ParseJson.convertToAppVersionVO(result); if (avo == null) { Builder dialog = new AlertDialog.Builder(getActivity()); dialog.setTitle("温馨提示").setMessage("网络情况不是很好哟").setPositiveButton("确定", null); dialog.show(); unlockHandler.sendEmptyMessageDelayed(UNLOCK_CLICK, 1000); return; } if (currentVersion.equals(avo.android)) { Builder dialog = new AlertDialog.Builder(getActivity()); dialog.setTitle("温馨提示").setMessage("APP已经是最新版").setPositiveButton("确定", null); dialog.show(); unlockHandler.sendEmptyMessageDelayed(UNLOCK_CLICK, 1000); return; } if (currentVersion.compareTo(avo.android) < 0) { unlockHandler.sendEmptyMessageDelayed(UNLOCK_CLICK, 1000); Dialog dialog = new AlertDialog.Builder(getActivity()).setTitle("软件更新").setMessage("软件有更新,建议更新到最新版本") // 设置内容 .setPositiveButton("更新",// 设置确定按钮 new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); Uri uri = Uri.parse("http://www.quhao.la/"); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); } }).setNegativeButton("暂不更新", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { // 点击"取消"按钮之后退出程序 // getActivity().finish(); } }).create();// 创建 // 显示对话框 dialog.show(); } unlockHandler.sendEmptyMessageDelayed(UNLOCK_CLICK, 1000); } },new Runnable() { @Override public void run() { Builder dialog = new AlertDialog.Builder(getActivity()); dialog.setTitle("温馨提示").setMessage("网络情况不是很好哟").setPositiveButton("确定", null); dialog.show(); unlockHandler.sendEmptyMessageDelayed(UNLOCK_CLICK, 1000); } }); break; case R.id.more_share:// 分享给好友 // 显示分享界面 unlockHandler.sendEmptyMessageDelayed(UNLOCK_CLICK, 1000); showShare(false, null); break; case R.id.more_share_auth: unlockHandler.sendEmptyMessageDelayed(UNLOCK_CLICK, 1000); ShareSDK.initSDK(this.getActivity()); sina = ShareSDK.getPlatform(getActivity(), "SinaWeibo"); sina.SSOSetting(true); if (sina == null) { return; } if (sina.isValid()) { Dialog dialog = new AlertDialog.Builder(getActivity()).setMessage("亲,确定要取消授权吗?") // 设置内容 .setPositiveButton("是",// 设置确定按钮 new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); sina.removeAccount(); } }).setNegativeButton("否", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { // 点击"取消"按钮之后退出程序 dialog.dismiss(); } }).create();// 创建 // 显示对话框 dialog.show(); return; } sina.setPlatformActionListener(new PlatformActionListener() { @Override public void onError(Platform arg0, int arg1, Throwable arg2) { } @Override public void onComplete(Platform arg0, int arg1, HashMap<String, Object> arg2) { // sinaHandler.sendEmptyMessage(200); } @Override public void onCancel(Platform arg0, int arg1) { } }); sina.showUser(null); break; case R.id.more_settings_cleanpicture: new CleanPicTask().execute(); ImageLoader.getInstance().clearDiskCache(); ImageLoader.getInstance().clearMemoryCache(); break; case R.id.more_settings_imageshow: progressDialogUtil = new ProgressDialogUtil(getActivity(), R.string.empty, R.string.deleting, false); progressDialogUtil.showProgress(); String isLoadImg1 = SharedprefUtil.get(getActivity(), QuhaoConstant.IS_LOAD_IMG, "false"); if ("true".equals(isLoadImg1)) { imageView.setImageResource(R.drawable.checkbox_off); isLoadImg1 = "false"; QHClientApplication.getInstance().canLoadImg = false; } else { imageView.setImageResource(R.drawable.checkbox_on); isLoadImg1 = "true"; QHClientApplication.getInstance().canLoadImg = true; } SharedprefUtil.put(getActivity(), QuhaoConstant.IS_LOAD_IMG, isLoadImg1); progressDialogUtil.closeProgress(); unlockHandler.sendEmptyMessageDelayed(UNLOCK_CLICK, 1000); break; default: unlockHandler.sendEmptyMessageDelayed(UNLOCK_CLICK, 1000); break; } } // 使用快捷分享完成分享(请务必仔细阅读位于SDK解压目录下Docs文件夹中OnekeyShare类的JavaDoc) /**ShareSDK集成方法有两种</br> * 1、第一种是引用方式,例如引用onekeyshare项目,onekeyshare项目再引用mainlibs库</br> * 2、第二种是把onekeyshare和mainlibs集成到项目中,本例子就是用第二种方式</br> * 请看“ShareSDK 使用说明文档”,SDK下载目录中 </br> * 或者看网络集成文档 http://wiki.sharesdk.cn/Android_%E5%BF%AB%E9%80%9F%E9%9B%86%E6%88%90%E6%8C%87%E5%8D%97 * 3、混淆时,把sample或者本例子的混淆代码copy过去,在proguard-project.txt文件中 * * * 平台配置信息有三种方式: * 1、在我们后台配置各个微博平台的key * 2、在代码中配置各个微博平台的key,http://sharesdk.cn/androidDoc/cn/sharesdk/framework/ShareSDK.html * 3、在配置文件中配置,本例子里面的assets/ShareSDK.conf, */ private void showShare(boolean silent, String platform) { final OnekeyShare oks = new OnekeyShare(); oks.setNotification(R.drawable.ic_launcher, getActivity().getString(R.string.app_name)); oks.setAddress(""); oks.setTitle("取号啦--让你排队不用等!"); oks.setUrl("http://www.quhao.la"); oks.setText("#取号啦# 发现个超牛逼的APP,再也不担心排多长的队了。我用手机直接拿号不用排队,还可以和一起排队的人扯淡聊天,快去体验全新的排队模式吧。@取号啦"); Log.e("wjzwjz", "share image path : " + shareImagePath); if (StringUtils.isNotNull(shareImagePath)) { oks.setImagePath(shareImagePath); } // oks.setImageUrl("http://www.quhao.la/public/images/home/site_iphone.png"); oks.setSilent(silent); if (platform != null) { oks.setPlatform(platform); } // 去除注释,可令编辑页面显示为Dialog模式 // oks.setDialogMode(); // 去除注释,在自动授权时可以禁用SSO方式 oks.disableSSOWhenAuthorize(); // 去除注释,则快捷分享的操作结果将通过OneKeyShareCallback回调 // oks.setCallback(new OneKeyShareCallback()); // oks.setShareContentCustomizeCallback(new ShareContentCustomizeDemo()); // 去除注释,演示在九宫格设置自定义的图标 // Bitmap logo = BitmapFactory.decodeResource(menu.getResources(), R.drawable.ic_launcher); // String label = menu.getResources().getString(R.string.app_name); // OnClickListener listener = new OnClickListener() { // public void onClick(View v) { // String text = "Customer Logo -- ShareSDK " + ShareSDK.getSDKVersionName(); // Toast.makeText(menu.getContext(), text, Toast.LENGTH_SHORT).show(); // oks.finish(); // } // }; // oks.setCustomerLogo(logo, label, listener); // 去除注释,则快捷分享九宫格中将隐藏新浪微博和腾讯微博 // oks.addHiddenPlatform(SinaWeibo.NAME); // oks.addHiddenPlatform(TencentWeibo.NAME); oks.show(getActivity()); } class CleanPicTask extends AsyncTask<Void, Void, Boolean> { ProgressDialogUtil progress; @Override protected void onPreExecute() { progress = new ProgressDialogUtil(getActivity(), R.string.empty, R.string.deleting, false); progress.showProgress(); } @Override protected Boolean doInBackground(Void... params) { try { ImageUtil.getInstance().cleanPictureCache(); } catch (IOException e) { e.printStackTrace(); return false; } return true; } @Override protected void onPostExecute(Boolean result) { progress.closeProgress(); unlockHandler.sendEmptyMessageDelayed(UNLOCK_CLICK, 1000); if (result) { Toast.makeText(getActivity(), "清除成功", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(getActivity(), "清除失败", Toast.LENGTH_SHORT).show(); } } } }