/**
*
*/
package com.photoshare.service.share.views;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.photoshare.exception.NetworkError;
import com.photoshare.fragments.BaseFragment;
import com.photoshare.service.share.ShareBean;
import com.photoshare.service.share.ShareType;
import com.photoshare.service.share.SinaWeiboToken;
import com.photoshare.tabHost.R;
import com.renren.api.connect.android.Renren;
import com.renren.api.connect.android.Util;
import com.renren.api.connect.android.exception.RenrenAuthError;
import com.renren.api.connect.android.view.RenrenAuthListener;
import com.weibo.sdk.android.Oauth2AccessToken;
import com.weibo.sdk.android.Weibo;
import com.weibo.sdk.android.WeiboAuthListener;
import com.weibo.sdk.android.WeiboDialogError;
import com.weibo.sdk.android.WeiboException;
import com.weibo.sdk.android.sso.SsoHandler;
import com.weibo.sdk.android.util.Utility;
/**
* @author Aron
*
*/
public class SharePreferencesFragment extends BaseFragment {
private SharePreferencesView view;
private String leftBtnText = "";
private String rightBtnText = "";
private String titlebarText = "";
private int leftBtnVisibility = View.VISIBLE;
private int rightBtnVisibility = View.GONE;
private Renren mRenren;
private Weibo mWeibo;
private SinaWeiboToken wToken;
private SsoHandler mSsoHandler;
public static SharePreferencesFragment newInstance(int fragmentViewId) {
SharePreferencesFragment ss = new SharePreferencesFragment();
ss.setFragmentViewId(fragmentViewId);
return ss;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
initViews();
}
/**
*
*/
private void initViews() {
leftBtnText = getPreferencesText();
titlebarText = getShareText();
initTitleBar(leftBtnText, rightBtnText, titlebarText,
leftBtnVisibility, rightBtnVisibility);
view = new SharePreferencesView(getActivity().findViewById(
R.id.sharingPreferenceId), getActivity());
view.registerListener(listener);
view.applyView();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.sharing_preference_layout, container,
false);
}
private String getShareText() {
return getString(R.string.share);
}
private String getPreferencesText() {
return getString(R.string.preferences);
}
private SharePreferencesView.OnAsyncItemClickListener listener = new SharePreferencesView.OnAsyncItemClickListener() {
public void AsyncShareSettings(View view, ShareBean info) {
ShareType type = info.getmShareType();
switch (type) {
case NULL:
break;
case RenRen:
mRenren = new Renren(type.getApiKey(), type.getSecretKey(),
type.getAppId(), getActivity());
mRenren.init(getActivity());
mRenren.authorize(getActivity(), new RenrenAuthListenerImpl());
break;
case SinaWeibo:
mWeibo = Weibo.getInstance(type.getApiKey(),
ShareBean.KEY_SINA_WEIBO_REDIRECT_URL);
try {
Class sso = Class
.forName("com.weibo.sdk.android.sso.SsoHandler");
mSsoHandler = new SsoHandler(getActivity(), mWeibo);
mSsoHandler.authorize(new SinaWeiboAuthListener());
} catch (ClassNotFoundException e) {
mWeibo.authorize(getActivity(), new SinaWeiboAuthListener());
}
SinaWeiboToken.readAccessToken(getActivity());
if (SinaWeiboToken.isSeesionValid()) {
Weibo.isWifi = Utility.isWifi(getActivity());
try {
Class.forName("com.weibo.sdk.android.api.WeiboAPI");
} catch (ClassNotFoundException e) {
mExceptionHandler.obtainMessage(
NetworkError.ERROR_SINA_WEIBO_AUTHORIZE)
.sendToTarget();
}
} else {
// mSsoHandler = new SsoHandler(getActivity(), mWeibo);
// mSsoHandler.authorize(mWeiboAuthListener);
}
break;
case TxWeibo:
break;
default:
break;
}
if (info != null && info.isValid()) {
} else {
}
}
};
class RenrenAuthListenerImpl implements RenrenAuthListener {
public void onComplete(Bundle values) {
Util.logger("complete");
}
public void onRenrenAuthError(RenrenAuthError renrenAuthError) {
Util.logger("AuthError");
mExceptionHandler
.obtainMessage(NetworkError.ERROR_RENREN_AUTHORIZE)
.sendToTarget();
}
public void onCancelLogin() {
Util.logger("cancle");
mExceptionHandler
.obtainMessage(NetworkError.ERROR_RENREN_AUTHORIZE)
.sendToTarget();
}
public void onCancelAuth(Bundle values) {
Util.logger("AuthCancle");
mExceptionHandler
.obtainMessage(NetworkError.ERROR_RENREN_AUTHORIZE)
.sendToTarget();
}
};
class SinaWeiboAuthListener implements WeiboAuthListener {
public void onWeiboException(WeiboException arg0) {
mExceptionHandler.obtainMessage(
NetworkError.ERROR_SINA_WEIBO_AUTHORIZE).sendToTarget();
}
public void onError(WeiboDialogError arg0) {
mExceptionHandler.obtainMessage(
NetworkError.ERROR_SINA_WEIBO_AUTHORIZE).sendToTarget();
}
public void onComplete(Bundle values) {
String token = values.getString("access_token");
String expires_in = values.getString("expires_in");
Oauth2AccessToken wToken = SinaWeiboToken.createToken(token,
expires_in);
if (wToken.isSessionValid()) {
try {
Class.forName("com.weibo.sdk.android.api.WeiboAPI");
} catch (ClassNotFoundException e) {
mExceptionHandler
.obtainMessage(NetworkError.ERROR_SINA_WEIBO_AUTHORIZE);
}
SinaWeiboToken.keepAccessToken(getActivity(), wToken);
}
}
public void onCancel() {
mExceptionHandler.obtainMessage(
NetworkError.ERROR_SINA_WEIBO_AUTHORIZE).sendToTarget();
}
};
/*
* (non-Javadoc)
*
* @see com.photoshare.fragments.BaseFragment#OnRightBtnClicked()
*/
@Override
protected void onRightBtnClicked() {
}
/*
* (non-Javadoc)
*
* @see com.photoshare.fragments.BaseFragment#OnLeftBtnClicked()
*/
@Override
protected void onLeftBtnClicked() {
backward(null);
}
private String getPreferenceSettingsFragment() {
return getString(R.string.fpreferenceSettingsFragment);
}
@Override
protected void onLoginSuccess() {
// TODO Auto-generated method stub
}
}