package com.mugua.mgvideo.ui.category;
|
|
import android.content.Context;
|
import android.content.SharedPreferences;
|
import android.content.pm.ActivityInfo;
|
import android.os.Bundle;
|
import android.view.View;
|
import android.view.View.OnClickListener;
|
import android.widget.FrameLayout;
|
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.mugua.mgvideo.MGVideoAPI;
|
import com.mugua.mgvideo.R;
|
import com.mugua.mgvideo.ui.common.VideosFragment;
|
import com.mugua.mgvideo.util.VideoTypeUtil;
|
import com.viewpagerindicator.MTabPageIndicator;
|
import com.yeshi.base.entity.video.VideoType;
|
import com.yeshi.base.utils.http.BasicTextHttpResponseHandler;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.FragmentActivity;
|
import androidx.fragment.app.FragmentManager;
|
import androidx.fragment.app.FragmentPagerAdapter;
|
import androidx.viewpager.widget.ViewPager;
|
|
public class MVideosActivity extends FragmentActivity implements
|
OnClickListener {
|
private VideoType mVideoType;
|
|
private List<VideoType> mVideoInfos;
|
|
private TextView tv_top_bar_left;
|
|
private TextView tv_top_bar_middle;
|
/*
|
* viewpager定义
|
*/
|
GoogleMusicAdapter adapter;
|
ViewPager pager;
|
MTabPageIndicator indicator;
|
|
private FrameLayout fl_mvideos_download_failure;
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);// 锁定竖屏
|
setContentView(R.layout.mvideo_activity);
|
|
mVideoInfos = new ArrayList<VideoType>();
|
mVideoType = (VideoType) getIntent().getSerializableExtra("video_type");
|
pager = (ViewPager) findViewById(R.id.pager);
|
|
fl_mvideos_download_failure = (FrameLayout) findViewById(R.id.fl_mvideosfragment_download_failure);
|
fl_mvideos_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(VideoTypeUtil.getVideoRootName(mVideoType));
|
tv_top_bar_left.setOnClickListener(this);
|
getVideoList();
|
}
|
|
class GoogleMusicAdapter extends FragmentPagerAdapter {
|
|
public GoogleMusicAdapter(FragmentManager fm) {
|
super(fm);
|
}
|
|
@Override
|
public Fragment getItem(int position) {
|
return VideosFragment.newInstance(mVideoInfos.get(position));
|
}
|
|
@Override
|
public CharSequence getPageTitle(int position) {
|
return mVideoInfos.get(position % mVideoInfos.size()).getName();
|
}
|
|
@Override
|
public int getCount() {
|
return mVideoInfos.size();
|
}
|
}
|
|
private void getVideoList() {
|
String id = mVideoType.getParent() == null ? mVideoType.getId()
|
: mVideoType.getParent().getId();
|
SharedPreferences preferences = getSharedPreferences("user",
|
Context.MODE_PRIVATE);
|
String uid = preferences.getString("uid", "");
|
MGVideoAPI.getFirstChildType(this, id, uid,
|
new BasicTextHttpResponseHandler() {
|
|
@Override
|
public void onSuccessPerfect(int statusCode,
|
Header[] headers, JSONObject jsonObject)
|
throws Exception {
|
if (jsonObject.getBoolean("IsPost")) {
|
fl_mvideos_download_failure
|
.setVisibility(View.GONE);
|
findViewById(R.id.fl_indicator).setVisibility(
|
View.VISIBLE);
|
findViewById(R.id.pager)
|
.setVisibility(View.VISIBLE);
|
|
Gson gson = new GsonBuilder().setFieldNamingPolicy(
|
FieldNamingPolicy.UPPER_CAMEL_CASE)
|
.create();
|
List<VideoType> videoType = gson.fromJson(
|
jsonObject.getJSONObject("Data")
|
.getJSONArray("data").toString(),
|
new TypeToken<List<VideoType>>() {
|
}.getType());
|
mVideoInfos.addAll(videoType);
|
pager.post(new Runnable() {
|
|
@Override
|
public void run() {
|
adapter = new GoogleMusicAdapter(
|
getSupportFragmentManager());
|
pager.setAdapter(adapter);
|
|
indicator = new MTabPageIndicator(
|
MVideosActivity.this);
|
if (mVideoType.getParent() == null)
|
indicator.setViewPager(pager, 0);
|
else {
|
for (int i = 0; i < mVideoInfos.size(); i++) {
|
if (mVideoInfos
|
.get(i)
|
.getId()
|
.equalsIgnoreCase(
|
mVideoType.getId()))
|
indicator
|
.setViewPager(pager, i);
|
}
|
}
|
((FrameLayout) findViewById(R.id.fl_indicator))
|
.addView(indicator);
|
|
}
|
});
|
|
} else {
|
fl_mvideos_download_failure
|
.setVisibility(View.VISIBLE);
|
findViewById(R.id.fl_indicator).setVisibility(
|
View.GONE);
|
findViewById(R.id.pager).setVisibility(View.GONE);
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers,
|
String responseString, Throwable throwable) {
|
super.onFailure(statusCode, headers, responseString,
|
throwable);
|
fl_mvideos_download_failure.setVisibility(View.VISIBLE);
|
findViewById(R.id.fl_indicator)
|
.setVisibility(View.GONE);
|
findViewById(R.id.pager).setVisibility(View.GONE);
|
}
|
|
});
|
}
|
|
@Override
|
protected void onResume() {
|
super.onResume();
|
}
|
|
@Override
|
protected void onPause() {
|
super.onPause();
|
}
|
|
@Override
|
public void onClick(View v) {
|
switch (v.getId()) {
|
case R.id.tv_top_bar_left: {
|
finish();
|
}
|
break;
|
case R.id.fl_mvideosfragment_download_failure:
|
getVideoList();
|
break;
|
default:
|
break;
|
}
|
}
|
|
}
|