package com.ljp.laucher.itemcontent;
import java.util.LinkedList;
import java.util.List;
import weibo4android.Comment;
import weibo4android.Paging;
import weibo4android.Status;
import weibo4android.Weibo;
import weibo4android.WeiboException;
import weibo4android.http.AccessToken;
import weibo4android.http.RequestToken;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.preference.PreferenceManager;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager.LayoutParams;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.FrameLayout;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.adview.AdViewInterface;
import com.adview.AdViewLayout;
import com.ljp.laucher.R;
import com.ljp.laucher.itemcontent.imageview.ImageViewActivity;
import com.ljp.laucher.itemcontent.usercomment.UserCommentActivity;
import com.ljp.laucher.itemcontent.userforward.UserForwardActivity;
import com.ljp.laucher.myview.PullToRefreshListView;
import com.ljp.laucher.myview.PullToRefreshListView.OnChangeStateListener;
import com.ljp.laucher.usercenter.UserLoginActivity;
import com.ljp.laucher.util.Configure;
import com.ljp.laucher.util.HttpClients;
import com.ljp.laucher.util.ImgAsync_Weibo;
import com.ljp.laucher.util.ImgAsync_Weibo.ImageCallback_DW;
import com.ljp.laucher.util.IntentData;
import com.ljp.laucher.util.MathOperation;
import com.ljp.laucher.util.OAuthConstantBean;
import com.ljp.laucher.util.ToastAndDialog;
public class WeiboDetailActivity extends Activity implements OnClickListener, OnPageChangeListener, OnItemClickListener, OnChangeStateListener, AdViewInterface{
List<Status> statuses,moreStatuses;boolean isBackAddOccur=false;private boolean[] isLoading,isAnimationShowed;
ViewPager viewpager;ImageButton btn_back;ProgressBar loading_pb;
LinearLayout[] linear_btns=new LinearLayout[5];int[] linear_ids={R.id.d_refresh,R.id.d_comment,R.id.d_forward,R.id.d_collect,R.id.d_more};
LinkedList<View> view_List;ViewpageAdater adapter;
ImgAsync_Weibo asyncImageLoader_Weibo;
private Weibo sysWeibo;private String username;
ProgressBar loadPb;ProgressDialog progressDialog;boolean isLoadingMore=false;
SharedPreferences sp_skin;boolean skin_id;
boolean filterWeibo=true,LoadImgOrNot = false;
private int intentTo=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
sp_skin = getSharedPreferences("skin", MODE_PRIVATE);Configure.inits(WeiboDetailActivity.this);
skin_id = sp_skin.getBoolean("id", true);
// =***************是否下载图片**************
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this);
String isLoadImgS = settings.getString("isload_pic", "1");
if (isLoadImgS.equals("2")|| (isLoadImgS.equals("1") && HttpClients.isWiFiActive(WeiboDetailActivity.this)))
LoadImgOrNot = true;
// =***************是否过滤转发的微博**************
filterWeibo = settings.getBoolean("checkbox_filterweibo", false);
// =*****************************
if(!LoadImgOrNot){
Toast.makeText(WeiboDetailActivity.this, "默认WIFI下下载图片,请到设置里面设置", 3000).show();
}
setContentView(skin_id?R.layout.layout_weibo_detail2:R.layout.layout_weibo_detail);
initData();
initWidght();
loadPb.setVisibility(0);viewpager.setVisibility(8);
new Thread(){
public void run(){
try {
statuses =sysWeibo.getUserTimeline(username,0,filterWeibo?1:0,new Paging());
} catch (Exception e) {
e.printStackTrace();
}
Message msg = UIHandler.obtainMessage();
UIHandler.sendMessage(msg);
}
}.start();
// 应用Id 应用密码 广告请求间隔(s)设置测试模式[false为发布模式]
// AdManager.init(this,"409a91b1004fb647", "79adf6968f4dd7aa", 30, false);
LinearLayout ad_linear = (LinearLayout) findViewById(R.id.detail_adview);
AdViewLayout adViewLayout = new AdViewLayout(this, "SDK20122324460254wedw9ona4thve2i");
adViewLayout.setAdViewInterface(this);
LayoutParams params = new LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT,
FrameLayout.LayoutParams.WRAP_CONTENT);
params.gravity=Gravity.BOTTOM;
ad_linear.addView(adViewLayout, params);
ad_linear.invalidate();
}
public void initData(){
sysWeibo = Configure.getExtendWeibos();
username = getIntent().getStringExtra("username");
asyncImageLoader_Weibo = new ImgAsync_Weibo();
}
public void initWidght(){
if(skin_id){
LinearLayout li_bg = (LinearLayout) findViewById(R.id.weibo_detail);
li_bg.setBackgroundResource(Configure.images[getSharedPreferences("mysetup", 0).getInt("bg_id", 0)]);
}
btn_back =(ImageButton) findViewById(R.id.detail_back);btn_back.setOnClickListener(this);
viewpager = (ViewPager) findViewById(R.id.detail_viewpager);
loadPb =(ProgressBar) findViewById(R.id.detail_progress);
view_List = new LinkedList<View>();
for(int i=0;i<5;i++){
linear_btns[i]=(LinearLayout) findViewById(linear_ids[i]);
linear_btns[i].setOnClickListener(this);
}
TextView title = (TextView) findViewById(R.id.today_title);
title.setText(username);
}
Handler UIHandler = new Handler(){
public void handleMessage(Message msg) {
if(statuses==null || statuses.size()==0){
ToastAndDialog.Toast(WeiboDetailActivity.this, "网络有点不稳定哦", 3000);
loadPb.setVisibility(8);return;
}
for (int i = 0; i <statuses.size(); i++)
view_List.add(addView(statuses.get(i), WeiboDetailActivity.this));
Configure.DetailWeiboImages = new Bitmap[view_List.size()+1];
isLoading = new boolean[view_List.size()];isAnimationShowed= new boolean[view_List.size()];
loadPb.setVisibility(8);viewpager.setVisibility(0);
adapter = new ViewpageAdater(view_List);
viewpager.setAdapter(adapter);
viewpager.setOnPageChangeListener(WeiboDetailActivity.this);
viewpager.setDuration(555);
loadContentImg(0,1);
}
};
public View addView(Status td, Context context) {
View view= LayoutInflater.from(context).inflate(
skin_id?R.layout.layout_weibo_detail_content2:R.layout.layout_weibo_detail_content, null);
TextView content = (TextView) view.findViewById(R.id.detail_content);
TextView user_name = (TextView) view.findViewById(R.id.user_name);
TextView time = (TextView) view.findViewById(R.id.detail_ptime);
if(getSharedPreferences("mysetup", 0).getInt("bg_id", 0)==1)content.setTextColor(0xff0bc814);
/* if(getSharedPreferences("mysetup", 0).getInt("bg_id", 0)==0)content.setTextColor(0xff000000);
if(getSharedPreferences("mysetup", 0).getInt("bg_id", 0)==2)content.setTextColor(0xffc9c9c9);
if(getSharedPreferences("mysetup", 0).getInt("bg_id", 0)==3)content.setTextColor(0xffc9c9c9);
if(getSharedPreferences("mysetup", 0).getInt("bg_id", 0)==4)content.setTextColor(0xff000000);*/
content.setText(" "+td.getText());
content.setAutoLinkMask(0);
user_name.setText(td.getUser().getName());
time.setText(" :"+MathOperation.getDateDifferFromNow(td.getCreatedAt()));
return view;
}
@Override
public void onPageScrollStateChanged(int arg0) {}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {}
@Override
public void onPageSelected(final int position) {
// TODO Auto-generated method stub
Configure._position = position;
if(LoadImgOrNot){
if(position ==0){loadContentImg(0,1);}
else if(position ==view_List.size()-1){loadContentImg(position,position-1);}
else{loadContentImg(position-1,position,position+1);}
recyleBitmap(position-3,position+3);
}
else {
String content_url = null;Status status = statuses.get(position<statuses.size()?position:statuses.size()-1);
if (status.getRetweeted_status() == null) {
content_url = status.getBmiddle_pic();
} else {
content_url = status.getRetweeted_status()
.getBmiddle_pic();
}
if(content_url!=null && !content_url.equals("")&&Configure.DetailWeiboImages[position<Configure.DetailWeiboImages.length?position:Configure.DetailWeiboImages.length-1] ==null){
view_List.get(position<view_List.size()?position:view_List.size()-1).findViewById(R.id.detail_progress).setVisibility(0);
view_List.get(position<view_List.size()?position:view_List.size()-1).findViewById(R.id.detail_progress).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
loadContentImg(position);
}
});
}
}
if(!isLoadingMore&& position>statuses.size()-3&& HttpClients.isConnect(WeiboDetailActivity.this)){
moreLoad();
}
}
public void moreLoad(){
isLoadingMore = true;
progressDialog = ProgressDialog.show(WeiboDetailActivity.this, "请稍等片刻...",
"小夜正在努力的为您载入更多", true, true);
new Thread() {
public void run() {
Message msg = moreJokeHandler.obtainMessage();
moreStatuses = null;
try {
moreStatuses =sysWeibo.getUserTimeline(username,0,filterWeibo?1:0,new Paging(1,20,1,statuses.get(statuses.size()-1).getId()-1));
} catch (Exception e) {
e.printStackTrace();
}
if(moreStatuses!=null&&moreStatuses.size()>0){
for(int i=0;i<moreStatuses.size();i++){
statuses.add(moreStatuses.get(i));
}
}
moreJokeHandler.sendMessage(msg);
}
}.start();
}
private Handler moreJokeHandler = new Handler() {
public void handleMessage(Message msg) {
progressDialog.dismiss();
if(moreStatuses==null||moreStatuses.size()==0){
ToastAndDialog.Toast(WeiboDetailActivity.this, "请再等等。", 3000);
return;
}
for(int i=0;i<moreStatuses.size();i++){
view_List.add(addView(moreStatuses.get(i), WeiboDetailActivity.this));
}
isLoading = MathOperation.addToArray(isLoading, moreStatuses.size());
isAnimationShowed = MathOperation.addToArray(isAnimationShowed, view_List.size());
Configure.DetailWeiboImages = MathOperation.addToArray(Configure.DetailWeiboImages,moreStatuses.size());
if(moreStatuses.size()==0)ToastAndDialog.Toast(WeiboDetailActivity.this, "抱歉,已经没有更多资源了", 3000);
else ToastAndDialog.Toast(WeiboDetailActivity.this, "已经为您载入"+moreStatuses.size()+"条新数据", 3000);
adapter.notifyDataSetChanged();
if(moreStatuses.size()>15)
isLoadingMore = false;
}
};
public void recyleBitmap(int... positions) {
for(int position: positions){
if(view_List!=null&&Configure.DetailWeiboImages!=null
&&position>=0&&position<view_List.size()&&Configure.DetailWeiboImages[position<Configure.DetailWeiboImages.length?position:Configure.DetailWeiboImages.length-1]!=null){
ImageView imageview = (ImageView) view_List.get(
position<view_List.size()?position:view_List.size()-1).findViewById(
R.id.detail_image);
imageview.setImageBitmap(null);
Configure.DetailWeiboImages[position<Configure.DetailWeiboImages.length?position:Configure.DetailWeiboImages.length-1].recycle();
Configure.DetailWeiboImages[position<Configure.DetailWeiboImages.length?position:Configure.DetailWeiboImages.length-1]=null;
}
}
System.gc();
}
public void loadContentImg(int... positions) {
for (final int position : positions) {
if (isLoading[position<isLoading.length?position:isLoading.length-1])
continue;
isLoading[position<isLoading.length?position:isLoading.length-1] = true;
Status status = statuses.get(position<statuses.size()?position:statuses.size()-1);
String content_url = null;
if (status.getRetweeted_status() == null) {
content_url = status.getBmiddle_pic();
} else {
content_url = status.getRetweeted_status()
.getBmiddle_pic();
}
if(content_url==null || content_url.equals(""))
continue;
final ImageView content_img = (ImageView) view_List.get(position<view_List.size()?position:view_List.size()-1)
.findViewById(R.id.detail_image);
content_img.setOnClickListener(WeiboDetailActivity.this);
if (Configure.DetailWeiboImages[position<Configure.DetailWeiboImages.length?position:Configure.DetailWeiboImages.length-1]!=null) {
content_img.setImageBitmap(Configure.DetailWeiboImages[position]);
if(content_url.endsWith("gif")){
content_img.setBackgroundResource(R.drawable.isgif);//11111111111111数组中有图片资源,直接用
}else{
content_img.setBackgroundResource(R.drawable.image_bg);//11111111111111数组中有图片资源,直接用
}
isLoading[position<isLoading.length?position:isLoading.length-1] = false;
continue;
}
if(!isAnimationShowed[position<isAnimationShowed.length?position:isAnimationShowed.length-1]){
Button btn = (Button) view_List.get(position<view_List.size()?position:view_List.size()-1).findViewById(R.id.detail_progress);
btn.setVisibility(0);btn.setBackgroundDrawable(null);btn.setText("正在载入图片");
}
loading_pb= (ProgressBar) view_List.get(position<view_List.size()?position:view_List.size()-1).findViewById(R.id.image_loading);
loading_pb.setVisibility(0);
asyncImageLoader_Weibo.loadDrawable(WeiboDetailActivity.this,content_url, new ImageCallback_DW() {
public void imageLoaded(Bitmap imageDrawable,
String imageUrls) {//22222222222222网络或者本地文件下载
if(position>Configure._position-2 && position<Configure._position+2){
((ImageView) view_List.get(position<view_List.size()?position:view_List.size()-1).findViewById(R.id.detail_image)).setImageBitmap(imageDrawable);
((ImageView) view_List.get(position<view_List.size()?position:view_List.size()-1).findViewById(R.id.detail_image)).setBackgroundResource(R.drawable.image_bg);
if(imageUrls.endsWith("gif")){
((ImageView) view_List.get(position<view_List.size()?position:view_List.size()-1).findViewById(R.id.detail_image)).setBackgroundResource(R.drawable.isgif);//11111111111111数组中有图片资源,直接用
}else{
((ImageView) view_List.get(position<view_List.size()?position:view_List.size()-1).findViewById(R.id.detail_image)).setBackgroundResource(R.drawable.image_bg);//11111111111111数组中有图片资源,直接用
}
if(!isAnimationShowed[position<isAnimationShowed.length?position:isAnimationShowed.length-1]){
isAnimationShowed[position<isAnimationShowed.length?position:isAnimationShowed.length-1] = true;
}
}
view_List.get(position<view_List.size()?position:view_List.size()-1).findViewById(R.id.image_loading).setVisibility(8);
view_List.get(position<view_List.size()?position:view_List.size()-1).findViewById(R.id.detail_progress).setVisibility(8);
isLoading[position<isLoading.length?position:isLoading.length-1] = false;
}
},position,loading_pb);
}
}
public void Comment(String c_id){
if (Configure.N_USER_KEY == null) {
intentTo=2;
intentToLogin();
} else {
Intent intent = new Intent();
intent.setClass(WeiboDetailActivity.this, UserCommentActivity.class);
intent.putExtra("w_id", statuses.get(Configure._position).getId()+"");
intent.putExtra("c_id", c_id);
startActivity(intent);
}
}
public void Forward() {
if (Configure.N_USER_KEY == null) {
intentTo=0;intentToLogin();
} else {
intentToForward();
}
}
public void Collect(){
if (Configure.N_USER_KEY == null) {
intentTo=1;intentToLogin();
}else{
progressDialog = ProgressDialog.show(WeiboDetailActivity.this, "请稍等片刻...",
"小夜正在努力的为您与服务端通信", true, true);
new Thread(){
public void run(){
Status status=null;
try {
status = Configure.getUserWeibo(WeiboDetailActivity.this).createFavorite(statuses.get(Configure._position).getId());
} catch (WeiboException e) {
status=null;
}
Message msg = colHandler.obtainMessage();
msg.obj = status;
colHandler.sendMessage(msg);
}
}.start();
}
}
private Handler colHandler = new Handler() {
public void handleMessage(Message msg) {
progressDialog.dismiss();
if(msg.obj !=null && ((Status) msg.obj).getId()>0)
ToastAndDialog.Toast(WeiboDetailActivity.this, "已经帮您收藏好了。", 3000);
else
ToastAndDialog.Toast(WeiboDetailActivity.this, "网络通讯出现了一点小问题噢。", 3000);
}
};
// 退出
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
if(view_List!=null && view_List.size()>0)
recyleBitmap(Configure._position-2,Configure._position-1,Configure._position,Configure._position+1,Configure._position+2);
finish();
overridePendingTransition(R.anim.anim_fromleft_toup6, R.anim.anim_down_toright6);
return false;
}
return false;
}
private PopupWindow m_popupWindow;List<Comment> comments ;
private ListView p_listview;Comments_Pop_ListAdapter popadapter;
private PullToRefreshListView p_contain;
private RelativeLayout p_list_footer,p_loading;private TextView p_more;
private TextView p_mRefreshViewLastUpdated;
private long p_sinceId,p_maxId;private List<Comment> p_refreshComments,p_moreComments = null;
private Handler commentHandler = new Handler() {
public void handleMessage(Message msg) {
progressDialog.dismiss();
if(comments !=null&&comments.size()>0){
LayoutInflater lay = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout v = (LinearLayout) lay.inflate(
R.layout.poplist_category, null);
p_contain = (PullToRefreshListView) v.findViewById(R.id.container);
p_listview = p_contain.getList();
p_list_footer = (RelativeLayout) LayoutInflater.from(WeiboDetailActivity.this).inflate(
R.layout.listitem_weibolist_footer, null);
p_more = (TextView) p_list_footer.findViewById(R.id.more);
p_loading = (RelativeLayout) p_list_footer.findViewById(R.id.loading);
p_listview.addFooterView(p_list_footer);
p_mRefreshViewLastUpdated = (TextView) v.findViewById(R.id.pull_to_refresh_time);
p_mRefreshViewLastUpdated.setText("更新于:12-13 11:00");
p_listview.setDivider(null);p_listview.setOnItemClickListener(WeiboDetailActivity.this);
p_loading.setOnClickListener(WeiboDetailActivity.this);p_more.setOnClickListener(WeiboDetailActivity.this);
p_contain.setOnChangeStateListener(WeiboDetailActivity.this);
p_listview.setDivider(null);
p_sinceId = comments.get(0).getId();p_maxId = comments.get(comments.size()-1).getId();
popadapter = new Comments_Pop_ListAdapter(
WeiboDetailActivity.this, comments);
p_listview.setAdapter(popadapter);
m_popupWindow = new PopupWindow(v, LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT,true);
m_popupWindow.setBackgroundDrawable(new BitmapDrawable());
m_popupWindow.setAnimationStyle(R.style.mypopwindow_anim_style);
m_popupWindow.showAtLocation(btn_back,
Gravity.CENTER, 0, 0);
}
else{
Comment("");
}
}
};
Handler moreCommentsHandler = new Handler(){
public void handleMessage(Message msg) {
if(p_moreComments==null||p_moreComments.size()==0){
Toast.makeText(WeiboDetailActivity.this, "请再等等。", 1000).show();
p_more.setVisibility(View.GONE);
p_loading.setVisibility(View.GONE);
}
else{
Toast.makeText(WeiboDetailActivity.this, "已经为您载入"+p_moreComments.size()+"条新数据", 1000).show();
for(int i=0;i<p_moreComments.size();i++)
comments.add(p_moreComments.get(i));
popadapter.notifyDataSetChanged();
p_maxId = comments.get(comments.size()-1).getId();
p_more.setVisibility(View.VISIBLE);
p_loading.setVisibility(View.GONE);
}
isLoadingMore = false;
}
};
Handler RefreshHandler = new Handler(){
public void handleMessage(Message msg) {
p_contain.onRefreshComplete();
if(p_refreshComments==null||p_refreshComments.size()==0){
Toast.makeText(WeiboDetailActivity.this, "请再等等。", 1000).show();
}
else{
Toast.makeText(WeiboDetailActivity.this, "已经为您载入"+p_refreshComments.size()+"条新数据", 1000).show();
for(int i=p_refreshComments.size()-1;i>=0;i--)
comments.add(0, p_refreshComments.get(i));
popadapter.notifyDataSetChanged();
p_sinceId = comments.get(0).getId();
}
}
};
public void RefreshComments(){
new Thread(){
public void run(){
p_refreshComments = null;
try {
p_refreshComments = sysWeibo.getComments(statuses.get(Configure._position).getId()+"",new Paging(p_sinceId));
} catch (Exception e) {
e.printStackTrace();
}
Message msg = RefreshHandler.obtainMessage();
RefreshHandler.sendMessageDelayed(msg,1000);
}
}.start();
}
public void LoadingMoreComments(){
isLoadingMore = true;
p_more.setVisibility(View.GONE);
p_loading.setVisibility(View.VISIBLE);
new Thread(){
public void run(){
p_moreComments =null;
try {
p_moreComments = sysWeibo.getComments(statuses.get(Configure._position).getId()+"",new Paging(1,20,1,p_maxId-1));
} catch (WeiboException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Message msg =moreCommentsHandler.obtainMessage();
moreCommentsHandler.sendMessageDelayed(msg,1000);
}
}.start();
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch(v.getId()){
case R.id.detail_back:
if(view_List!=null && view_List.size()>0)
recyleBitmap(Configure._position-2,Configure._position-1,Configure._position,Configure._position+1,Configure._position+2);
finish();
overridePendingTransition(R.anim.anim_fromleft_toup6, R.anim.anim_down_toright6);
break;
case R.id.d_refresh:
if(statuses!=null){
((ImageView) view_List.get(Configure._position).findViewById(R.id.detail_image)).setImageBitmap(null);
((ImageView) view_List.get(Configure._position).findViewById(R.id.detail_image)).setBackgroundDrawable(null);
loadContentImg(Configure._position);
}
break;
case R.id.d_comment:
if(statuses!=null){
progressDialog = ProgressDialog.show(WeiboDetailActivity.this, "请稍等片刻...",
"小夜正在努力的为您载入评论", true, true);
new Thread(){
public void run(){
comments =null;int loadingPosition = Configure._position;
try {
comments = sysWeibo.getComments(statuses.get(Configure._position).getId()+"");
} catch (WeiboException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(loadingPosition == Configure._position){
Message msg = commentHandler.obtainMessage();
commentHandler.sendMessage(msg);
}
}
}.start();
}
break;
case R.id.d_forward:
if(statuses!=null){
Forward();
}
break;
case R.id.d_collect:
if(statuses!=null){
Collect();
}
break;
case R.id.d_more:
viewpager.setCurrentItem(Configure._position+1);
break;
case R.id.detail_image:
if(Configure.DetailWeiboImages[Configure._position] !=null){
Intent intent = new Intent(WeiboDetailActivity.this,
ImageViewActivity.class);
String content_url = null;
if (statuses.get(Configure._position).getRetweeted_status() == null) {
content_url = statuses.get(Configure._position).getBmiddle_pic();
} else {
content_url = statuses.get(Configure._position).getRetweeted_status()
.getBmiddle_pic();
}
intent.putExtra("imgUrl",content_url);IntentData.PicFrom=0;
startActivity(intent);
//overridePendingTransition(R.anim.popshow_anim, R.anim.pophidden_anim);
}
break;
case R.id.more:
if(!isLoadingMore && HttpClients.isConnect(WeiboDetailActivity.this))
LoadingMoreComments();
break;
case R.id.loading:
break;
}
}
public void intentToLogin(){
progressDialog = ProgressDialog.show(WeiboDetailActivity.this,
"请稍等片刻...", "马上为您准备登录", true, true);
new Thread() {
public void run() {
System.setProperty("weibo4j.oauth.consumerKey",
Weibo.CONSUMER_KEY);
System.setProperty("weibo4j.oauth.consumerSecret",
Weibo.CONSUMER_SECRET);
String authUrl =null;
Weibo weibo = new Weibo();
RequestToken requestToken;
try {
requestToken = weibo
.getOAuthRequestToken("life://DetailActivity");
OAuthConstantBean.getInstance()
.setRequestToken(requestToken);
authUrl = requestToken
.getAuthenticationURL()
+ "&display=mobile";
} catch (WeiboException e) {
e.printStackTrace();
}
Message msg = loginHandler.obtainMessage();
msg.obj=authUrl;
loginHandler.sendMessage(msg);
}
}.start();
}
Handler loginHandler = new Handler() {
public void handleMessage(Message msg) {
progressDialog.dismiss();
Intent intent = new Intent();
Bundle bundle = new Bundle();
bundle.putString("url",(String) msg.obj);
intent.putExtras(bundle);
intent.setClass(WeiboDetailActivity.this,
UserLoginActivity.class);
startActivity(intent);
}
};
public void intentToForward(){
String content_url = null;
if (statuses.get(Configure._position).getRetweeted_status() == null) {
content_url = statuses.get(Configure._position).getBmiddle_pic();
} else {
content_url = statuses.get(Configure._position).getRetweeted_status()
.getBmiddle_pic();
}
Intent intent = new Intent();
intent.putExtra("text", statuses.get(Configure._position).getText());
intent.putExtra("image",content_url);
intent.putExtra("position", Configure._position);
intent.setClass(WeiboDetailActivity.this, UserForwardActivity.class);
startActivity(intent);
}
@Override
protected void onNewIntent(final Intent intent) {
progressDialog = ProgressDialog.show(WeiboDetailActivity.this,
"请稍等片刻...", "授权验证中,马上为您跳转", true, true);
new Thread() {
public void run() {
try {
Uri uri = intent.getData();
if (uri == null) {
return;
}
Weibo weibo = OAuthConstantBean.getInstance().getWeibo();
RequestToken requestToken = OAuthConstantBean.getInstance()
.getRequestToken();
String nulls = uri.getQueryParameter("oauth_verifier");
if (nulls != null) {
AccessToken accessToken = requestToken
.getAccessToken(nulls);
weibo.setToken(accessToken.getToken(),
accessToken.getTokenSecret());
List<weibo4android.Status> statuses = null;
statuses = weibo.getUserTimeline();
if (statuses.size() != 0) {
SharedPreferences refreshtime = getSharedPreferences(
"sp_users", 0);
refreshtime.edit().putLong("UserId",accessToken.getUserId()).commit();
refreshtime.edit().putString("UserName",statuses.get(0).getUser().getName()).commit();
refreshtime.edit().putString("Token", accessToken.getToken()).commit();
refreshtime.edit().putString("TokenSecret",accessToken.getTokenSecret()).commit();
Configure.setUserWeibo(accessToken.getUserId(),statuses.get(0).getUser().getName(),accessToken.getToken(),accessToken.getTokenSecret());
} else {
Toast.makeText(getApplicationContext(), "授权失败,请重试",
Toast.LENGTH_LONG).show();
}
}
} catch (WeiboException e) {
// TODO: handle exception
e.printStackTrace();
}
Message msg = ForwardHandler.obtainMessage();
ForwardHandler.sendMessage(msg);
}
}.start();
}
Handler ForwardHandler = new Handler() {
public void handleMessage(Message msg) {
progressDialog.dismiss();
if(intentTo==0) Forward();
else if(intentTo==1) Collect();
else if(intentTo==2) Comment("");
}
};
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
}
@Override
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}
@Override
public void onChangeState(PullToRefreshListView container, int state) {
// TODO Auto-generated method stub
switch (state) {
case PullToRefreshListView.STATE_LOADING:
RefreshComments();
break;
}
}
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
// TODO Auto-generated method stub
new AlertDialog.Builder(WeiboDetailActivity.this)
.setMessage("请选择您的操作")
.setIcon(android.R.drawable.ic_dialog_info)
.setPositiveButton("评论该微博",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Comment("");
}
})
.setNegativeButton("回复该评论",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
Comment(comments.get(Configure._position).getId()+"");
}
})
.create().show();
}
@Override
public void onClickAd() {
// TODO Auto-generated method stub
}
@Override
public void onDisplayAd() {
// TODO Auto-generated method stub
}
}