package com.anthony.app.module.videolist;
import android.content.pm.ActivityInfo;
import android.content.res.Configuration;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.text.TextUtils;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.anthony.app.R;
import com.anthony.app.dagger.DaggerActivity;
import com.anthony.app.dagger.component.ActivityComponent;
import com.anthony.library.base.AbsBaseFragment;
import com.anthony.library.data.RxBus;
import com.anthony.library.data.event.VideoOrientationChangeEvent;
import butterknife.BindView;
import butterknife.OnClick;
import rx.functions.Action1;
/**
* Created by Anthony on 2016/10/19.
* Class Note:
* video list activity
* currently load data from local "raw://video_list_data"
*/
public class VideoListActivity extends DaggerActivity {
@BindView(R.id.iv_title_left)
ImageView ivTitleLeft;
@BindView(R.id.tv_title_center)
TextView tvTitleCenter;
@BindView(R.id.layout_content)
FrameLayout layoutContent;
@BindView(R.id.titleLayout)
RelativeLayout titleLayout;
public static String URL = "url";
public static String NAME = "name";
private String mUrl = "";
private String mName = "";
@Override
protected int getContentViewID() {
return R.layout.prj_title_content;
}
@Override
protected void initViewsAndEvents(Bundle savedInstanceState) {
if (getIntent().getExtras() != null) {
mUrl = getIntent().getExtras().getString(URL);
mName = getIntent().getExtras().getString(NAME);
}
mUrl = "raw://video_list_data";//load local data for testing
tvTitleCenter.setText("Video List");
Fragment fragment = new NewsVideoFragment();
Bundle bundle = fragment.getArguments();
bundle = bundle == null ? new Bundle() : bundle;
if (!TextUtils.isEmpty(mUrl))
bundle.putString(AbsBaseFragment.EXTRA_URL, mUrl);
if (!TextUtils.isEmpty(mName)) {
// bundle.putString();
}
fragment.setArguments(bundle);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.add(R.id.layout_content, fragment).commit();
//监听屏幕方向变化,显示或隐藏底部Tab导航栏,方便全屏播放
RxBus.getDefault().toObserverable(VideoOrientationChangeEvent.class)
.subscribe(new Action1<VideoOrientationChangeEvent>() {
@Override
public void call(VideoOrientationChangeEvent event) {
if (event.newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
titleLayout.setVisibility(View.VISIBLE);
}
if (event.newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
titleLayout.setVisibility(View.GONE);
}
}
}, new Action1<Throwable>() {
@Override
public void call(Throwable throwable) {
throwable.printStackTrace();
}
});
}
@Override
protected void injectDagger(ActivityComponent activityComponent) {
activityComponent.inject(this);
}
@OnClick(R.id.iv_title_left)
public void onClick() {
this.finish();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
RxBus.getDefault().post(new VideoOrientationChangeEvent(newConfig));
}
@Override
public void onBackPressed() {
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
return;
}
super.onBackPressed();
}
}