/*
* Copyright (c) 2015 [1076559197@qq.com | tchen0707@gmail.com]
*
* Licensed under the Apache License, Version 2.0 (the "Licenseā);
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.github.obsessive.simplifyreader.ui.activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.github.obsessive.library.eventbus.EventCenter;
import com.github.obsessive.library.netstatus.NetUtils;
import com.github.obsessive.library.utils.CommonUtils;
import com.github.obsessive.simplifyreader.R;
import com.github.obsessive.simplifyreader.bean.VideosListEntity;
import com.github.obsessive.simplifyreader.bean.VideosListUserEntity;
import com.github.obsessive.simplifyreader.common.Constants;
import com.github.obsessive.simplifyreader.presenter.VideosDetailPresenter;
import com.github.obsessive.simplifyreader.presenter.impl.VideosDetailPresenterImpl;
import com.github.obsessive.simplifyreader.utils.ImageLoaderHelper;
import com.github.obsessive.simplifyreader.view.VideosDetailView;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.youku.player.base.BasePlayerActivity;
import com.youku.player.base.YoukuPlayer;
import com.youku.player.base.YoukuPlayerView;
import butterknife.ButterKnife;
import butterknife.InjectView;
import de.greenrobot.event.EventBus;
import me.gujun.android.taggroup.TagGroup;
public class PlayerActivity extends BasePlayerActivity implements VideosDetailView {
public static final String INTENT_VIDEO_EXTRAS = "INTENT_VIDEO_EXTRAS";
@InjectView(R.id.full_holder)
YoukuPlayerView mYoukuPlayerView;
@InjectView(R.id.player_back)
ImageButton mBackBtn;
@InjectView(R.id.player_title)
TextView mTitle;
@InjectView(R.id.player_title_bar)
LinearLayout mTitleBar;
@InjectView(R.id.player_view_count)
TextView mViewCount;
@InjectView(R.id.player_comment_count)
TextView mCommentCount;
@InjectView(R.id.player_favor_count)
TextView mFavorCount;
@InjectView(R.id.player_publish_time)
TextView mPublishTime;
@InjectView(R.id.player_user_name)
TextView mUserName;
@InjectView(R.id.player_user_avatar)
ImageView mUserAvatar;
@InjectView(R.id.player_tag_group)
TagGroup mTagGroup;
private String vid = "";
private YoukuPlayer youkuPlayer;
private VideosListEntity mExtras = null;
private VideosDetailPresenter mVideosDetailPresenter = null;
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
getIntentData(intent);
goPlay();
}
private void getIntentData(Intent intent) {
if (intent != null) {
mExtras = intent.getExtras().getParcelable(INTENT_VIDEO_EXTRAS);
if (null != mExtras) {
vid = mExtras.getId();
}
}
}
@Override
public void setPadHorizontalLayout() {
}
@Override
public void onInitializationSuccess(YoukuPlayer player) {
addPlugins();
youkuPlayer = player;
goPlay();
}
private void goPlay() {
youkuPlayer.playVideo(vid);
}
@Override
public void onFullscreenListener() {
mTitleBar.setVisibility(View.GONE);
}
@Override
public void onSmallscreenListener() {
mTitleBar.setVisibility(View.VISIBLE);
}
@Override
protected void onResume() {
super.onResume();
EventBus.getDefault().post(new EventCenter(Constants.EVENT_STOP_PLAY_MUSIC));
}
@Override
protected void getBundleExtras(Bundle extras) {
}
@Override
protected int getContentViewLayoutID() {
return R.layout.activity_player;
}
@Override
protected void onEventComming(EventCenter eventCenter) {
}
@Override
protected View getLoadingTargetView() {
return ButterKnife.findById(this, R.id.player_loading_target_view);
}
@Override
protected void initViewsAndEvents() {
getIntentData(getIntent());
mYoukuPlayerView.initialize(this);
mBackBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
if (null == mExtras) {
return;
}
if (!CommonUtils.isEmpty(mExtras.getTitle())) {
mTitle.setText(mExtras.getTitle());
}
mViewCount.setText(getResources().getString(R.string.player_view_count) + mExtras.getView_count());
mCommentCount.setText(getResources().getString(R.string.player_comment_count) + mExtras.getComment_count());
mFavorCount.setText(getResources().getString(R.string.player_favor_count) + mExtras.getFavorite_count());
mPublishTime.setText(getResources().getString(R.string.player_publish) + mExtras.getPublished());
String tagAll = mExtras.getTags();
String[] tags = tagAll.split(",");
if (null != tags && tags.length != 0) {
mTagGroup.setTags(tags);
}
mVideosDetailPresenter = new VideosDetailPresenterImpl(this);
mVideosDetailPresenter.loadVideoUser(TAG_LOG, mExtras.getUser().getId());
}
@Override
protected void onNetworkConnected(NetUtils.NetType type) {
}
@Override
protected void onNetworkDisConnected() {
}
@Override
protected boolean isApplyStatusBarTranslucency() {
return false;
}
@Override
protected boolean isBindEventBusHere() {
return false;
}
@Override
protected void onPause() {
super.onPause();
EventBus.getDefault().post(new EventCenter(Constants.EVENT_START_PLAY_MUSIC));
}
@Override
public void loadUser(VideosListUserEntity entity) {
if (!CommonUtils.isEmpty(entity.getName())) {
mUserName.setText(entity.getName());
}
if (!CommonUtils.isEmpty(entity.getAvatar_large())) {
ImageLoader.getInstance().displayImage(entity.getAvatar_large(), mUserAvatar,
ImageLoaderHelper.getInstance(PlayerActivity.this).getDisplayOptions(100));
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
overridePendingTransition(R.anim.right_in,R.anim.right_out);
super.onCreate(savedInstanceState);
}
@Override
public void finish() {
super.finish();
overridePendingTransition(R.anim.right_in, R.anim.right_out);
}
@Override
public void showLoading(String msg) {
toggleShowLoading(true, msg);
}
@Override
public void hideLoading() {
toggleShowLoading(false, null);
}
@Override
public void showError(String msg) {
toggleShowError(true, msg, null);
}
@Override
public void showException(String msg) {
}
@Override
public void showNetError() {
}
}