package com.weikou.beibeivideo.ui.common;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
import android.content.Context;
|
import android.content.Intent;
|
import android.content.SharedPreferences;
|
import android.content.pm.ActivityInfo;
|
import android.os.Build;
|
import android.os.Bundle;
|
import android.support.v4.widget.SwipeRefreshLayout;
|
import android.view.View;
|
import android.view.View.OnClickListener;
|
import android.widget.AdapterView;
|
import android.widget.AdapterView.OnItemClickListener;
|
import android.widget.LinearLayout.LayoutParams;
|
import android.widget.FrameLayout;
|
import android.widget.GridView;
|
import android.widget.ListView;
|
import android.widget.ProgressBar;
|
import android.widget.TextView;
|
|
import com.google.gson.FieldNamingPolicy;
|
import com.google.gson.Gson;
|
import com.google.gson.GsonBuilder;
|
import com.google.gson.reflect.TypeToken;
|
import com.lcjian.library.util.RefreshLayout;
|
import com.lcjian.library.util.common.DimenUtils;
|
import com.lcjian.library.util.common.StringUtils;
|
import com.weikou.beibeivideo.R;
|
import com.umeng.analytics.MobclickAgent;
|
import com.weikou.beibeivideo.BasicTextHttpResponseHandler;
|
import com.weikou.beibeivideo.BeibeiVideoAPI;
|
import com.weikou.beibeivideo.entity.VideoInfo;
|
import com.weikou.beibeivideo.ui.BaseActivity;
|
import com.weikou.beibeivideo.ui.media.VideoDetailActivity;
|
import com.weikou.beibeivideo.ui.media.VideoDetailActivity2;
|
|
public class MVideosActivity extends BaseActivity implements OnClickListener {
|
|
private TextView tv_top_bar_left;
|
private TextView tv_top_bar_middle;
|
|
private RefreshLayout rl_video;
|
|
private ListView lv_video;
|
|
private GridVideoAdapter mGridVideoAdapter;
|
|
private List<VideoInfo> mVideoInfos;
|
|
private int mCurrentPage = 1;
|
|
private String id;
|
|
private boolean isPush = false;
|
|
private String type = "";
|
|
private FrameLayout fl_download_failure;// 加载失败显示,点击重新加载
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);// 锁定竖屏
|
setContentView(R.layout.mvideos_activity);
|
initStatusBar();
|
|
if (getIntent().getSerializableExtra("home_type") == null) {
|
id = getIntent().getStringExtra("id");
|
getIntent().getStringExtra("title");
|
} else {
|
type = getIntent().getStringExtra("home_type");
|
}
|
|
isPush = getIntent().getBooleanExtra("isPush", false);
|
if (!StringUtils.isEmpty(getIntent().getStringExtra("push"))) {
|
isPush = true;
|
}
|
rl_video = (RefreshLayout) findViewById(R.id.rl_walfare);
|
fl_download_failure = (FrameLayout) findViewById(R.id.fl_videosfragment_download_failure);
|
fl_download_failure.setOnClickListener(this);
|
|
tv_top_bar_left = (TextView) findViewById(R.id.tv_top_bar_left);
|
tv_top_bar_middle = (TextView) findViewById(R.id.tv_top_bar_middle);
|
tv_top_bar_left.setText("返回");
|
tv_top_bar_middle.setText(getIntent().getStringExtra("title"));
|
tv_top_bar_left.setOnClickListener(this);
|
|
lv_video = (ListView) findViewById(R.id.lv_video);
|
View view = new View(this);
|
lv_video.addHeaderView(view);
|
ProgressBar pb = new ProgressBar(this);
|
rl_video.setFooter(pb);
|
mVideoInfos = new ArrayList<VideoInfo>();
|
mGridVideoAdapter = new GridVideoAdapter(mVideoInfos, getApplicationContext());
|
int padding = DimenUtils.dipToPixels(8, this);
|
lv_video.setPadding(padding, padding, padding, padding);
|
lv_video.setAdapter(mGridVideoAdapter);
|
rl_video.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
@Override
|
public void onRefresh() {
|
if (isPush) {
|
getVideoList();
|
} else {
|
mCurrentPage = 1;
|
getMoreVideo();
|
}
|
}
|
});
|
rl_video.setOnLoadListener(new RefreshLayout.OnLoadListener() {
|
@Override
|
public void onLoad() {
|
if (isPush) {
|
getVideoList();
|
} else {
|
mCurrentPage++;
|
getMoreVideo();
|
}
|
}
|
});
|
lv_video.setOnItemClickListener(new OnItemClickListener() {
|
|
@Override
|
public void onItemClick(AdapterView<?> parent, View view,
|
int position, long id) {
|
VideoInfo videoInfo = (VideoInfo) parent
|
.getItemAtPosition(position);
|
Intent intent = new Intent(MVideosActivity.this,
|
VideoDetailActivity2.class);
|
intent.putExtra("video_info", videoInfo);
|
startActivity(intent);
|
}
|
});
|
lv_video.postDelayed(new Runnable() {
|
|
@Override
|
public void run() {
|
if (isPush) {
|
getVideoList();
|
} else {
|
mCurrentPage = 1;
|
getMoreVideo();
|
}
|
}
|
}, 200);
|
}
|
|
@Override
|
public void onResume() {
|
super.onResume();
|
MobclickAgent.onPageStart("内部福利页");
|
}
|
|
@Override
|
public void onPause() {
|
super.onPause();
|
MobclickAgent.onPageEnd("内部福利页");
|
}
|
|
private void getVideoList() {
|
SharedPreferences preferences = getSharedPreferences("user",
|
Context.MODE_PRIVATE);
|
String uid = preferences.getString("uid", "");
|
BeibeiVideoAPI.getMVideoList(this, uid, id,
|
new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode,
|
Header[] headers, JSONObject jsonObject)
|
throws Exception {
|
if (jsonObject.getBoolean("IsPost")) {
|
mVideoInfos.clear();
|
Gson gson = new GsonBuilder().setFieldNamingPolicy(
|
FieldNamingPolicy.UPPER_CAMEL_CASE)
|
.create();
|
List<VideoInfo> videoInfos = gson.fromJson(
|
jsonObject.getJSONObject("Data")
|
.getJSONArray("data").toString(),
|
new TypeToken<List<VideoInfo>>() {
|
}.getType());
|
mVideoInfos.addAll(videoInfos);
|
mGridVideoAdapter.notifyDataSetChanged();
|
}
|
}
|
|
@Override
|
public void onFinish() {
|
rl_video.setRefreshing(false);
|
rl_video.setLoading(false);
|
}
|
});
|
}
|
|
private void getMoreVideo() {
|
SharedPreferences preferences = getSharedPreferences("user",
|
Context.MODE_PRIVATE);
|
String uid = preferences.getString("uid", "");
|
BeibeiVideoAPI.getMoreVideo(this, uid, type, mCurrentPage + "",
|
new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode,
|
Header[] headers, JSONObject jsonObject)
|
throws Exception {
|
if (jsonObject.getBoolean("IsPost")) {
|
fl_download_failure.setVisibility(View.GONE);
|
lv_video.setVisibility(View.VISIBLE);
|
|
Gson gson = new GsonBuilder().setFieldNamingPolicy(
|
FieldNamingPolicy.UPPER_CAMEL_CASE)
|
.create();
|
List<VideoInfo> videoInfos = gson.fromJson(
|
jsonObject.getJSONObject("Data")
|
.getJSONArray("data").toString(),
|
new TypeToken<List<VideoInfo>>() {
|
}.getType());
|
if (mCurrentPage == 1) {
|
mVideoInfos.clear();
|
}
|
mVideoInfos.addAll(videoInfos);
|
mGridVideoAdapter.notifyDataSetChanged();
|
} else {
|
fl_download_failure.setVisibility(View.VISIBLE);
|
lv_video.setVisibility(View.GONE);
|
}
|
}
|
|
@Override
|
public void onSuccess(int statusCode, Header[] headers, String responseString) {
|
super.onSuccess(statusCode, headers, responseString);
|
}
|
|
@Override
|
public void onFinish() {
|
rl_video.setRefreshing(false);
|
rl_video.setLoading(false);
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers,
|
String responseString, Throwable throwable) {
|
super.onFailure(statusCode, headers, responseString,
|
throwable);
|
fl_download_failure.setVisibility(View.VISIBLE);
|
lv_video.setVisibility(View.GONE);
|
}
|
});
|
}
|
|
@Override
|
public void onClick(View v) {
|
switch (v.getId()) {
|
case R.id.tv_top_bar_left: {
|
finish();
|
}
|
break;
|
case R.id.fl_videosfragment_download_failure:
|
if (isPush) {
|
getVideoList();
|
} else {
|
mCurrentPage = 1;
|
getMoreVideo();
|
}
|
break;
|
default:
|
break;
|
}
|
}
|
}
|