Skip to content

Commit

Permalink
重构代码,减少了静态引用
Browse files Browse the repository at this point in the history
【在不保留活动下,未安装客户端】
全部通过!

【在不保留活动下,安装了客户端】
剩余:微博登录

【在不保留活动下,安装了客户端,客户端未登录】
全部通过!

【关闭不保留活动时】
全部通过!
  • Loading branch information
kale committed Mar 30, 2016
1 parent 590e9fa commit b4291a7
Show file tree
Hide file tree
Showing 36 changed files with 1,106 additions and 1,208 deletions.
9 changes: 0 additions & 9 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,6 @@
android:label="@string/app_name"
android:theme="@style/AppTheme"
>
<activity
android:name=".MainActivity"
android:label="@string/app_name"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity
android:name="com.tencent.tauth.AuthActivity"
Expand Down
222 changes: 135 additions & 87 deletions app/src/main/java/com/liulishuo/engzo/MainActivity.java
Original file line number Diff line number Diff line change
@@ -1,26 +1,34 @@
package com.liulishuo.engzo;

import com.liulishuo.share.LoginManager;
import com.liulishuo.share.ShareBlock;
import com.liulishuo.share.base.share.ShareStateListener;
import com.liulishuo.share.base.shareContent.ShareContent;
import com.liulishuo.share.base.shareContent.ShareContentPic;
import com.liulishuo.share.base.shareContent.ShareContentText;
import com.liulishuo.share.base.shareContent.ShareContentWebpage;
import com.liulishuo.share.qq.QQLoginManager;
import com.liulishuo.share.qq.QQShareManager;
import com.liulishuo.share.weibo.WeiboLoginManager;
import com.liulishuo.share.weibo.WeiboShareManager;
import com.liulishuo.share.weixin.WeiXinLoginManager;
import com.liulishuo.share.weixin.WeiXinShareManager;
import com.liulishuo.share.ShareManager;
import com.liulishuo.share.UserInfoListener;
import com.liulishuo.share.model.AuthUserInfo;
import com.liulishuo.share.model.shareContent.ShareContent;
import com.liulishuo.share.model.shareContent.ShareContentPic;
import com.liulishuo.share.model.shareContent.ShareContentText;
import com.liulishuo.share.model.shareContent.ShareContentWebpage;
import com.liulishuo.share.type.LoginType;
import com.liulishuo.share.type.ShareType;

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;

import java.io.IOException;
import java.net.HttpURLConnection;
import java.net.URL;

/**
* 步骤:
Expand All @@ -30,48 +38,53 @@
*/
public class MainActivity extends AppCompatActivity {

public static final String TAG = "MainActivity";
public static final String URL = "https://www.zhihu.com/question/22913650";

private MyLoginListener mLoginListener;
public static final String TITLE = "标题";

private ShareStateListener mShareListener = new MyShareListener(this);
public static final String MSG = "描述信息";

private Bitmap mBitmap;
private MyLoginListener mLoginListener;

private ShareManager.ShareStateListener mShareListener = new MyShareListener(this);

private ShareContent mShareContent;

private TextView mTextView;

private ImageView mImageView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Drawable drawable = getResources().getDrawable(R.drawable.kale);
mBitmap = ((BitmapDrawable) drawable).getBitmap();
final Bitmap mBitmap = ((BitmapDrawable) getResources().getDrawable(R.drawable.kale)).getBitmap();

WeiboLoginManager.isWeiBoInstalled(this);
WeiboShareManager.isWeiBoInstalled(this);
LoginManager.isWeiBoInstalled(this);
ShareManager.isWeiBoInstalled(this);

WeiXinLoginManager.isWeiXinInstalled(this);
WeiXinShareManager.isWeiXinInstalled(this);
LoginManager.isWeiXinInstalled(this);
ShareManager.isWeiXinInstalled(this);

ShareBlock.getInstance()
.initAppName("TestAppName")
.initSharePicFile(getApplication())
.initQQ(OAuthConstant.QQ_APPID, OAuthConstant.QQ_SCOPE)
.initWeiXin(OAuthConstant.WECHAT_APPID, OAuthConstant.WECHAT_SECRET)
.initWeibo(OAuthConstant.WEIBO_APPID, OAuthConstant.WEIBO_REDIRECT_URL, OAuthConstant.WEIBO_SCOPE);
.initWeiXin(OAuthConstant.WEIXIN_APPID, OAuthConstant.WEIXIN_SECRET)
.initWeiBo(OAuthConstant.WEIBO_APPID, OAuthConstant.WEIBO_REDIRECT_URL, OAuthConstant.WEIBO_SCOPE);

RadioGroup shareType = (RadioGroup) findViewById(R.id.share_type_rg);
shareType.check(R.id.rich_text);

mShareContent = new ShareContentWebpage("title", "hello world!,进入:http://www.baidu.com", "http://www.baidu.com", mBitmap);
mShareContent = new ShareContentWebpage(TITLE, MSG, URL, mBitmap);

shareType.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.rich_text:
mShareContent = new ShareContentWebpage("title", "hello world!", "http://www.baidu.com", mBitmap);
mShareContent = new ShareContentWebpage(TITLE, MSG, URL, mBitmap);
break;
case R.id.only_image:
mShareContent = new ShareContentPic(mBitmap);
Expand All @@ -82,79 +95,114 @@ public void onCheckedChanged(RadioGroup group, int checkedId) {
}
}
});
mTextView = (TextView) findViewById(R.id.userinfo_tv);
mImageView = (ImageView) findViewById(R.id.user_img_iv);

mLoginListener = new MyLoginListener(this, 0, ((TextView) findViewById(R.id.userinfo_tv)));

///////////////////////////// QQ ///////////////////////////////

// QQ登录
findViewById(R.id.login_qq_btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mLoginListener.setType(MyLoginListener.QQ);
new QQLoginManager().login(MainActivity.this, mLoginListener);
}
});

findViewById(R.id.share_qq_friend_btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new QQShareManager().share(MainActivity.this, mShareContent, ShareBlock.QQ_FRIEND, mShareListener);
}
});

findViewById(R.id.share_qZone_btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new QQShareManager().share(MainActivity.this, mShareContent, ShareBlock.QQ_ZONE, mShareListener);
}
});
mLoginListener = new MyLoginListener();
}

///////////////////////////// weixin ///////////////////////////////
public void onClick(View v) {
switch (v.getId()) {
case R.id.QQ登录:
mLoginListener.setType(LoginType.QQ);
LoginManager.login(this, mLoginListener, LoginType.QQ);
break;
case R.id.微信登录:
mLoginListener.setType(LoginType.WEIXIN);
LoginManager.login(this, mLoginListener, LoginType.WEIXIN);
break;
case R.id.微博登录:
mLoginListener.setType(LoginType.WEIBO);
LoginManager.login(this, mLoginListener, LoginType.WEIBO);
break;

case R.id.分享给QQ好友:
ShareManager.share(this, mShareContent, ShareType.QQ_FRIEND, mShareListener);
break;
case R.id.分享到QQ空间:
ShareManager.share(this, mShareContent, ShareType.QQ_ZONE, mShareListener);
break;
case R.id.分享给微信好友:
ShareManager.share(this, mShareContent, ShareType.WEIXIN_FRIEND, mShareListener);
break;
case R.id.分享到微信朋友圈:
ShareManager.share(this, mShareContent, ShareType.WEIXIN_FRIEND_ZONE, mShareListener);
break;
case R.id.分享到微博:
ShareManager.share(this, mShareContent, ShareType.WEIBO_TIME_LINE, mShareListener);
break;
}
}

// 微信登录
findViewById(R.id.login_wechat_btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mLoginListener.setType(MyLoginListener.WEIXIN);
new WeiXinLoginManager().login(MainActivity.this, mLoginListener);
}
});
private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
mImageView.setImageBitmap((Bitmap) msg.obj);
}
};

// 微信分享到回话
findViewById(R.id.share_wechat_btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new WeiXinShareManager().share(MainActivity.this, mShareContent, ShareBlock.WEIXIN_FRIEND, mShareListener);
}
});
public class MyLoginListener implements LoginManager.LoginListener {

// 微信分享到朋友圈
findViewById(R.id.share_friends_btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new WeiXinShareManager().share(MainActivity.this, mShareContent, ShareBlock.WEIXIN_FRIEND_ZONE, mShareListener);
}
});
public static final String TAG = "LoginListener";

///////////////////////////// Weibo ///////////////////////////////
private LoginType mType;

findViewById(R.id.login_weibo_btn).setOnClickListener(new View.OnClickListener() {
private UserInfoListener mUserInfoListener = new UserInfoListener() {
@Override
public void onClick(View view) {
mLoginListener.setType(MyLoginListener.WEIBO);
new WeiboLoginManager().login(MainActivity.this, mLoginListener);
public void onSuccess(final AuthUserInfo userInfo) {
String str = " nickname = " + userInfo.nickName
+ "\n sex = " + userInfo.sex
+ "\n id = " + userInfo.userId;
mTextView.setText(str);

new Thread(new Runnable() {
@Override
public void run() {
try {
HttpURLConnection conn = (HttpURLConnection) new URL(userInfo.headImgUrl).openConnection();
Bitmap bmp = BitmapFactory.decodeStream(conn.getInputStream());
Message msg = new Message();
msg.obj = bmp;
mHandler.sendMessage(msg);
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
}
});

findViewById(R.id.share_weibo_btn).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new WeiboShareManager().share(MainActivity.this, mShareContent, ShareBlock.WEIBO_TIME_LINE, mShareListener);
public void onError(String msg) {
mTextView.setText(" 出错了!\n" + msg);
}
});

};

public void setType(LoginType type) {
mType = type;
}

@Override
public void onSuccess(String accessToken, String userId, long expiresIn, String data) {
Log.d(TAG, "accessToken = " + accessToken);
Log.d(TAG, "uid = " + userId);
Log.d(TAG, "expires_in = " + expiresIn);
Log.d(TAG, "登录成功");
Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show();

LoginManager.getUserInfo(accessToken, userId, mUserInfoListener, mType);
}

@Override
public void onError(String msg) {
Toast.makeText(getApplicationContext(), "登录失败,失败信息:" + msg, Toast.LENGTH_SHORT).show();
}

@Override
public void onCancel() {
Log.d(TAG, "取消登录");
Toast.makeText(getApplicationContext(), "取消登录", Toast.LENGTH_SHORT).show();
}
}

}

Loading

0 comments on commit b4291a7

Please sign in to comment.