Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import androidx.appcompat.app.AppCompatActivity;
- import androidx.recyclerview.widget.LinearLayoutManager;
- import androidx.recyclerview.widget.RecyclerView;
- import android.content.res.Configuration;
- import android.media.MediaPlayer;
- import android.net.Uri;
- import android.os.Build;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.Gravity;
- import android.view.View;
- import android.webkit.WebView;
- import android.widget.FrameLayout;
- import android.widget.ImageView;
- import android.widget.MediaController;
- import android.widget.VideoView;
- import com.bumptech.glide.Glide;
- import com.devbrackets.android.exomedia.listener.OnCompletionListener;
- import com.devbrackets.android.exomedia.listener.OnPreparedListener;
- import com.example.tampilanandroidtv.adapter.OPODAdapter;
- import com.example.tampilanandroidtv.model.OPODDummy;
- import com.google.android.exoplayer2.DefaultLoadControl;
- import com.google.android.exoplayer2.DefaultRenderersFactory;
- import com.google.android.exoplayer2.ExoPlayerFactory;
- import com.google.android.exoplayer2.SimpleExoPlayer;
- import com.google.android.exoplayer2.source.ExtractorMediaSource;
- import com.google.android.exoplayer2.source.MediaSource;
- import com.google.android.exoplayer2.source.dash.DashMediaSource;
- import com.google.android.exoplayer2.source.dash.DefaultDashChunkSource;
- import com.google.android.exoplayer2.source.hls.HlsMediaSource;
- import com.google.android.exoplayer2.trackselection.DefaultTrackSelector;
- import com.google.android.exoplayer2.ui.PlayerView;
- import com.google.android.exoplayer2.upstream.DefaultDataSourceFactory;
- import com.google.android.exoplayer2.upstream.DefaultHttpDataSourceFactory;
- import com.google.android.exoplayer2.util.Util;
- import java.util.ArrayList;
- public class OnePhotoOneDescriptionActivity extends AppCompatActivity implements View.OnClickListener{
- private WebView webView;
- private ImageView imageViewBack, imageViewOpod, imageViewPre, imageViewNext;
- private VideoView videoView;
- private RecyclerView recyclerView;
- private LinearLayoutManager layoutManager;
- private OPODAdapter adapter;
- private ArrayList<OPODDummy> data = new ArrayList<>();
- private MediaController mediaController;
- private Uri uriVideo;
- private PlayerView mPlayerView;
- private com.devbrackets.android.exomedia.ui.widget.VideoView videoVieww;
- private SimpleExoPlayer simpleExoPlayer;
- private long mCurrentMillis;
- @Override
- public void onBackPressed() {
- super.onBackPressed();
- finish();
- overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right);
- }
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_one_photo_one_description);
- webView = findViewById(R.id.wv_opod);
- imageViewBack = findViewById(R.id.iv_back_opod);
- imageViewPre = findViewById(R.id.iv_pre_opod);
- imageViewNext = findViewById(R.id.iv_next_opod);
- recyclerView = findViewById(R.id.rv_opod);
- imageViewOpod = findViewById(R.id.iv_opod);
- videoView = findViewById(R.id.vv_opod);
- addData();
- setData();
- imageViewPre.setOnClickListener(this);
- imageViewNext.setOnClickListener(this);
- imageViewBack.setOnClickListener(this);
- if (data != null){
- if (data.get(0).getCondition().equals("photo")){
- dataPhoto(data.get(0).getImageResource(), data.get(0).getNameResource());
- }
- else {
- dataVideo(data.get(0).getUrlVideo(), data.get(0).getNameResource());
- }
- }
- }
- private void setData() {
- layoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false);
- adapter = new OPODAdapter(this, new OPODAdapter.OnItemClickListener() {
- @Override
- public void onItemClicked(OPODDummy opodDummy) {
- if (opodDummy.getCondition().equals("photo")){
- dataPhoto(opodDummy.getImageResource(), opodDummy.getNameResource());
- }
- else {
- dataVideo(opodDummy.getUrlVideo(), opodDummy.getNameResource());
- }
- }
- });
- adapter.updateData(data);
- recyclerView.setLayoutManager(layoutManager);
- recyclerView.setHasFixedSize(true);
- recyclerView.setAdapter(adapter);
- }
- private void dataVideo(String urlVideo, String nameResource) {
- imageViewOpod.setVisibility(View.INVISIBLE);
- videoView.setVisibility(View.VISIBLE);
- try {
- // Memulai MediaController
- mediaController = new MediaController(this);
- mediaController.setAnchorView(videoView);
- mediaController.setMediaPlayer(videoView);
- // Video URL
- String videoUrl = java.net.URLDecoder.decode(urlVideo, "UTF-8");
- uriVideo = Uri.parse(videoUrl);
- videoView.setMediaController(mediaController);
- videoView.setVideoURI(uriVideo);
- videoView.requestFocus();
- videoView.start();
- videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
- public void onPrepared(MediaPlayer mp) {
- mp.start();
- }
- });
- videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
- @Override
- public void onCompletion(MediaPlayer mp) {
- mp.reset();
- }
- });
- videoView.setOnErrorListener(new MediaPlayer.OnErrorListener() {
- @Override
- public boolean onError(MediaPlayer mp, int what, int extra) {
- Log.e("errornya", String.valueOf(extra));
- return true;
- }
- });
- } catch (Exception e) {
- Log.e("Error", e.getMessage());
- e.printStackTrace();
- }
- webView.loadData(
- "<html><body><p align=\"justify\">" + nameResource + "</p></body></html>", "text/html", "utf-8"
- );
- }
- private void dataPhoto(int imageResource, String nameResource) {
- imageViewOpod.setVisibility(View.VISIBLE);
- videoView.stopPlayback();
- videoView.setVisibility(View.INVISIBLE);
- Glide.with(this)
- .load(imageResource)
- .placeholder(R.drawable.ic_launcher_background)
- .into(imageViewOpod);
- webView.loadData(
- "<html><body><p align=\"justify\" style='font-size:11px'>" + nameResource + "</p></body></html>", "text/html", "utf-8"
- );
- }
- private void addData() {
- data.add(new OPODDummy(R.drawable.ic_arrow_forward_black_24dp, getString(R.string.testing_webview), "", "photo"));
- data.add(new OPODDummy(R.drawable.ic_restore_black_24dp, getString(R.string.testing_webvieww), "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4", "video"));
- data.add(new OPODDummy(R.drawable.ic_play_circle_filled_black_24dp, getString(R.string.testing_webview), "http://twit.cachefly.net/video/aaa/aaa0033/aaa0033_h264b_640x368_256.mp4", "video"));
- data.add(new OPODDummy(R.drawable.ic_arrow_back_black_24dp, getString(R.string.testing_webvieww), "https://s3.amazonaws.com/playbackacp.com/865/challenge/865-01-03.mp4", "video"));
- data.add(new OPODDummy(R.drawable.ic_arrow_forward_black_24dp, getString(R.string.testing_webview), "http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4", "video"));
- data.add(new OPODDummy(R.drawable.ic_remove_from_queue_black_24dp, getString(R.string.testing_webvieww), "", "video"));
- }
- @Override
- public void applyOverrideConfiguration(Configuration overrideConfiguration) {
- if (Build.VERSION.SDK_INT >= 21 && Build.VERSION.SDK_INT < 25) {
- overrideConfiguration.uiMode &= ~Configuration.UI_MODE_NIGHT_MASK;
- }
- super.applyOverrideConfiguration(overrideConfiguration);
- }
- @Override
- public void onClick(View v) {
- switch (v.getId()){
- case R.id.iv_pre_opod:
- recyclerView.getLayoutManager().scrollToPosition(layoutManager.findFirstVisibleItemPosition() - 1);
- break;
- case R.id.iv_next_opod:
- recyclerView.getLayoutManager().scrollToPosition(layoutManager.findLastVisibleItemPosition() + 1);
- break;
- case R.id.iv_back_opod:
- onBackPressed();
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement