package com.imofan.android.develop.sns;



import com.imofan.android.develop.sns.activity.MFSnsOAuthActivity;
import com.imofan.android.develop.sns.activity.MFSnsSelectPlatformActivity;
import com.imofan.android.develop.sns.activity.MFSnsUploadNewActivity;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;

/**
 * 提供开发平台授权认证及分享的服务类
 */
public class MFSnsService {
    /**
     * 新浪微博开放平台
     */
    public final static int PLATFORM_SINA_WEIBO = 1;
    /**
     * 腾讯微博开放平台
     */
    public final static int PLATFORM_QQ_WEIBO = 2;
    /**
     * QQ空间
     */
    public final static int PLATFORM_QQ_QZONE = 3;
    
    /***
     * 
     */
    public final static int PLATFORM_RENREN = 4;
    /**
     * 用于开放平台用户授权的方法
     * 
     * @param context
     *            当前context对象
     * @param platform
     *            希望进行授权的开放平台
     * @param authListener
     *            授权情况监听器
     */
    public static void auth(Context context, int platform,
            MFSnsAuthListener authListener) {
        Intent intent = new Intent(context, MFSnsOAuthActivity.class);
        intent.putExtra("platform", platform);
        MFSnsOAuthActivity.setAuthListener(authListener);
        context.startActivity(intent);
    }

    /**
     * 用于开放平台内容分享的方法
     * 
     * @param context
     *            上下文环境
     * @param platform
     *            希望进行内容分享的开放平台
     * @param content
     *            希望分享的内容
     * @param shareListener
     *            分享情况监听器
     */
    public static void share(Context context, int platform,
            MFSnsShareContent content, MFSnsShareListener shareListener) {
        // 检测相关平台是否登录
        if (MFSnsUtil.isAuthorized(context, platform)) {
            Intent intent = new Intent(context, MFSnsUploadNewActivity.class);
            intent.putExtra("platform", platform);
            intent.putExtra("content", content);
            MFSnsUploadNewActivity.setShareListener(shareListener);
            context.startActivity(intent);
            
        } else {
            final int platf = platform;
            final MFSnsShareContent cont = content;
            final MFSnsShareListener listener = shareListener;
            MFSnsAuthListener authListener = new MFSnsAuthListener() {
                @Override
                public void onSucceeded(Context context, MFSnsUser openUser) {
                    ((Activity) context).finish();
                    // 去分享确认页面
                    Intent intent = new Intent(context,
                    		MFSnsUploadNewActivity.class);
                    intent.putExtra("platform", platf);
                    intent.putExtra("content", cont);
                    MFSnsUploadNewActivity.setShareListener(listener);
                    context.startActivity(intent);
                }
                @Override
                public void onFail(Context context, String errMessage) {
                	
                }
            };
            auth(context, platform, authListener);
        }
    }
    /**
     * 用于开放平台内容分享的方法
     * 
     * @param context
     *            上下文环境
     * @param platform
     *            希望进行内容分享的开放平台
     * @param content
     *            希望分享的内容
     * @param shareListener
     *            分享情况监听器
     */
    public static void share(Context context,
        MFSnsShareContent content, MFSnsShareListener shareListener) {
        // 检测相关平台是否登录
        Intent intent = new Intent(context, MFSnsSelectPlatformActivity.class);
        intent.putExtra("content", content);
        MFSnsSelectPlatformActivity.setShareListener(shareListener);
        context.startActivity(intent);
        ((Activity) context).overridePendingTransition(MFSnsConfig.getIdByReflection(context, "anim", "bottom_fade_in"), MFSnsConfig.getIdByReflection(context, "anim", "imofan_current_out"));
            
       
    }
}
