package com.emop.client; import android.app.ProgressDialog; import android.content.Intent; import android.content.SharedPreferences; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.View; import android.view.Window; import android.widget.ImageButton; import android.widget.TextView; import android.widget.Toast; import com.emop.client.io.FmeiClient; import com.emop.client.tasks.GetSinaUserInfoTask; import com.emop.client.tasks.UpgradeCheckTask; import com.taobao.top.android.TopAndroidClient; import com.weibo.net.Weibo; import com.weibo.sdk.android.sso.SsoHandler; public class SettingActivity extends BaseActivity { private PackageInfo curVersion = null; private FmeiClient client = null; private SsoHandler sinaSSO = null; private ProgressDialog loading = null; private boolean isLoginSina = false; private boolean isLoginTaobao = false; private boolean isLoginQQ = false; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.d(Constants.TAG_EMOP, "on create on tab view"); setContentView(R.layout.settings_view); loading = new ProgressDialog(this); loading.requestWindowFeature(Window.FEATURE_NO_TITLE); loading.setMessage("登录中..."); client = FmeiClient.getInstance(SettingActivity.this); TextView version = (TextView) findViewById(R.id.setting_verison_name); PackageManager packageManager = getPackageManager(); try { curVersion = packageManager.getPackageInfo(getPackageName(), 0); version.setText("当前版本是("+curVersion.versionName+")"); } catch (NameNotFoundException e) { e.printStackTrace(); } } protected void onResume (){ super.onResume(); if(!loading.isShowing()){ this.showSinaInfo(); //this.showTaobaoInfo(); this.showQQInfo(); } } public void doLoginFromSina(View v){ Log.d("tag", "doLoginFrom sina"); if(this.isLoginSina){ logoutRef(Constants.AUTH_REF_SINA); Weibo.getInstance().setAccessToken(null); }else { sinaSSO = new SsoHandler(this, sinaHandler); loading.show(); sinaSSO.authorize(); } } public void doLoginFromQQ(View v){ Log.d("tag", "doLoginFrom qq"); if(this.isLoginQQ){ logoutRef(Constants.AUTH_REF_QQ); }else { Intent intent = new Intent(); intent.setClass(this, QQLoginActivity.class); startActivity(intent); } } public void onFinish(View v){ finish(); } public void doLoginFromTaobao(View v){ Log.d("tag", "doLoginFrom taobao"); if(this.isLoginTaobao){ logoutRef(Constants.AUTH_REF_TAOBAO); }else { TopAndroidClient topClient = TopAndroidClient.getAndroidClientByAppKey(Constants.TAOBAO_APPID); if(topClient != null){ String authLink = topClient.getAuthorizeLink(); Intent intent = new Intent().setClass(this, WebViewActivity.class); Log.d(Constants.TAG_EMOP, "taobao auth link:" + authLink); intent.putExtra("http_url", authLink); intent.putExtra("title", "淘宝登陆"); intent.putExtra("taobaoLogin", true); startActivity(intent); }else { this.showToast("啊哦,网速不给力啊~"); } } } private void showSinaInfo(){ SharedPreferences settings = getSharedPreferences(Constants.PREFS_NAME, 0); String userId = settings.getString(Constants.PREFS_SINA_UID, ""); String name = null; TextView v = (TextView)this.findViewById(R.id.setting_sina_user); ImageButton btn = (ImageButton)this.findViewById(R.id.login_btn_sina); if(userId != null && userId.length() > 0){ name = settings.getString(Constants.PREFS_SINA_NICK, ""); v.setText("已绑定用户:" + name); isLoginSina = true; btn.setBackgroundResource(R.drawable.settings_logout_btn); }else { isLoginSina = false; v.setText("设置新浪微博登录"); btn.setBackgroundResource(R.drawable.settings_login_btn); } } private void showQQInfo(){ SharedPreferences settings = getSharedPreferences(Constants.PREFS_NAME, 0); String userId = settings.getString(Constants.PREFS_QQ_UID, ""); String name = null; TextView v = (TextView)this.findViewById(R.id.setting_qq_user); ImageButton btn = (ImageButton)this.findViewById(R.id.login_btn_qq); if(userId != null && userId.length() > 0){ name = settings.getString(Constants.PREFS_QQ_NICK, ""); v.setText("已绑定用户:" + name); isLoginQQ = true; btn.setBackgroundResource(R.drawable.settings_logout_btn); }else { isLoginQQ = false; v.setText("设置QQ账号登录"); btn.setBackgroundResource(R.drawable.settings_login_btn); } } /* private void showTaobaoInfo(){ SharedPreferences settings = getSharedPreferences(Constants.PREFS_NAME, 0); String userId = settings.getString(Constants.PREFS_TAOBAO_UID, ""); String name = null; // TextView v = (TextView)this.findViewById(R.id.setting_taobao_user); // ImageButton btn = (ImageButton)this.findViewById(R.id.login_btn_taobao); if(userId != null && userId.length() > 0){ name = settings.getString(Constants.PREFS_TAOBAO_NICK, ""); v.setText("已绑定用户:" + name); isLoginTaobao = true; btn.setBackgroundResource(R.drawable.settings_logout_btn); }else { isLoginTaobao = false; v.setText("设置淘宝账号登录"); btn.setBackgroundResource(R.drawable.settings_login_btn); } } */ public void onCheckUpgradeVersion(View v){ new UpgradeCheckTask(this, null, false).execute(this); } public void doLogout(View v){ client.logout(this); Toast.makeText(this, "已注销", Toast.LENGTH_SHORT); } private void logoutRef(String ref){ client.removeRefUser(this, ref); if(ref.equals(Constants.AUTH_REF_TAOBAO)){ // showTaobaoInfo(); }else if(ref.equals(Constants.AUTH_REF_SINA)){ showSinaInfo(); }else if(ref.equals(Constants.AUTH_REF_QQ)){ showQQInfo(); } } public void cleanupImageCache(View v){ client.appImgLoader.lowPirorTheadPool.execute(new Runnable(){ public void run(){ FmeiClient.getInstance(null).appImgLoader.cache.cleanUpDiskCache(); showToast("图片缓存清理成功."); } }); } public void onCloseVersionCheck(View v){ } public void onAppList(View v){ Intent intent = new Intent().setClass(this, WebViewActivity.class); intent.putExtra("http_url", "http://taodianhuo.sinaapp.com/app/app_list"); intent.putExtra("title", "手机应用推荐"); this.startActivity(intent); } public void onMessageList(View v){ Intent intent = new Intent().setClass(this, WebViewActivity.class); intent.putExtra("http_url", "http://taodianhuo.sinaapp.com/app/message_list"); intent.putExtra("title", "消息中心"); this.startActivity(intent); } public void onAboutMe(View v){ Intent intent = new Intent().setClass(this, AboutMeActivity.class); this.startActivity(intent); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if(sinaSSO != null){ sinaSSO.authorizeCallBack(requestCode, resultCode, data); } } private Handler sinaHandler = new Handler(){ public void handleMessage(final Message msg) { Log.d("emop", "message id:" + msg.what +", msg:" + msg.obj); String message = null; if(msg.obj != null){ message = msg.obj.toString(); if(message != null){ Toast.makeText(SettingActivity.this, message, Toast.LENGTH_LONG).show(); } } if(msg.what == GetSinaUserInfoTask.LOGIN_DONE){ loading.dismiss(); showSinaInfo(); }else if(msg.what == SsoHandler.START_WEB_LOGIN || msg.what == SsoHandler.SSO_LOGIN_ERROR){ loading.dismiss(); } } }; }