Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2019
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.26 KB | None | 0 0
  1. package com.app.youtubers;
  2.  
  3. import android.app.Activity;
  4. import android.content.Intent;
  5. import android.os.Bundle;
  6. import android.support.v7.app.AppCompatActivity;
  7. import android.support.v7.widget.Toolbar;
  8. import android.text.Html;
  9. import android.view.Menu;
  10. import android.view.MenuItem;
  11. import android.view.View;
  12. import android.widget.TextView;
  13.  
  14. import com.app.youtubers.data.Constant;
  15. import com.app.youtubers.fragment.FragmentVideoPlayer;
  16. import com.app.youtubers.model.Video;
  17. import com.app.youtubers.room.AppDatabase;
  18. import com.app.youtubers.room.DAO;
  19. import com.app.youtubers.room.table.EntityFavorite;
  20. import com.app.youtubers.room.table.EntityWatched;
  21. import com.app.youtubers.utils.Tools;
  22. import com.google.android.youtube.player.YouTubeApiServiceUtil;
  23. import com.google.android.youtube.player.YouTubeInitializationResult;
  24.  
  25. public class ActivityVideoDetail extends AppCompatActivity {
  26.  
  27. private static final String EXTRA_OBJECT = "key.EXTRA_OBJECT";
  28.  
  29. // activity transition
  30. public static void navigate(Activity activity, Video obj) {
  31. Intent i = new Intent(activity, ActivityVideoDetail.class);
  32. i.putExtra(EXTRA_OBJECT, obj);
  33. activity.startActivity(i);
  34. }
  35.  
  36. private Video video;
  37. private Toolbar toolbar;
  38. private DAO database;
  39. private MenuItem favIcon;
  40.  
  41. @Override
  42. protected void onCreate(Bundle savedInstanceState) {
  43. super.onCreate(savedInstanceState);
  44. setContentView(R.layout.activity_video_detail);
  45.  
  46. video = (Video) getIntent().getSerializableExtra(EXTRA_OBJECT);
  47. database = AppDatabase.getDb(this).getDAO();
  48.  
  49. TextView tvDesc = (TextView) findViewById(R.id.tv_detail_desc);
  50. if (video.snippet.description == null || video.snippet.description.equals("")) {
  51. tvDesc.setText(getString(R.string.no_desc_video));
  52. } else {
  53. tvDesc.setText(Html.fromHtml(video.snippet.description));
  54. }
  55.  
  56. ((TextView) findViewById(R.id.tv_title)).setText(Html.fromHtml(video.snippet.title));
  57. setupToolbar(R.id.toolbar);
  58.  
  59. tvDesc.setFocusable(false);
  60. ((View) findViewById(R.id.lyt_content)).requestFocus();
  61.  
  62. prepareYoutube();
  63. }
  64.  
  65. private void prepareYoutube() {
  66. final YouTubeInitializationResult result = YouTubeApiServiceUtil.isYouTubeApiServiceAvailable(this);
  67.  
  68. if (result != YouTubeInitializationResult.SUCCESS) {
  69. result.getErrorDialog(this, 0).show();
  70. return;
  71. }
  72.  
  73. final FragmentVideoPlayer fragment = (FragmentVideoPlayer) getSupportFragmentManager().findFragmentById(R.id.fragment_youtube);
  74. fragment.setVideoId(video.contentDetails.videoId);
  75. fragment.setOnVideoPlayListener(new FragmentVideoPlayer.OnVideoPlayListener() {
  76. @Override
  77. public void onPlaying(String videoId) {
  78. if (database.countWatched(videoId) > 0) return;
  79. database.insertWatched(new EntityWatched(videoId, System.currentTimeMillis()));
  80. }
  81. });
  82. }
  83.  
  84. public void setupToolbar(int toolbarId) {
  85. toolbar = (Toolbar) findViewById(toolbarId);
  86. setSupportActionBar(toolbar);
  87. getSupportActionBar().setTitle(null);
  88. getSupportActionBar().setDisplayHomeAsUpEnabled(true);
  89. Tools.setSystemBarColor(this);
  90. }
  91.  
  92. @Override
  93. public boolean onSupportNavigateUp() {
  94. finish();
  95. return super.onSupportNavigateUp();
  96. }
  97.  
  98. @Override
  99. public boolean onCreateOptionsMenu(Menu menu) {
  100. getMenuInflater().inflate(R.menu.menu_activity_video_detail, menu);
  101. favIcon = menu.findItem(R.id.save);
  102. if (isFav())
  103. favIcon.setIcon(R.drawable.ic_bookmark);
  104. else
  105. favIcon.setIcon(R.drawable.ic_bookmark_border);
  106. return true;
  107. }
  108.  
  109. @Override
  110. public boolean onOptionsItemSelected(MenuItem item) {
  111. switch (item.getItemId()) {
  112. case R.id.share:
  113. shareVideo();
  114. break;
  115. case R.id.save:
  116. if (isFav()) {
  117. deleteVideo();
  118. } else {
  119. saveVideo();
  120. }
  121. break;
  122. }
  123.  
  124. return super.onOptionsItemSelected(item);
  125. }
  126.  
  127. private void shareVideo() {
  128. Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
  129. sharingIntent.setType("text/plain");
  130. sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, video.snippet.title + " " + Constant.YOUTUBE_URL + video.contentDetails.videoId);
  131. startActivity(Intent.createChooser(sharingIntent, ""));
  132. }
  133.  
  134. private boolean isFav() {
  135. boolean isFav = false;
  136. for (EntityFavorite dt : database.getAllFavorite()) {
  137. if (dt.getVideoId().equals(video.contentDetails.videoId)) {
  138. isFav = true;
  139. }
  140. }
  141. return isFav;
  142. }
  143.  
  144. private void saveVideo() {
  145. database.insertFavorite(EntityFavorite.getEntity(video));
  146. favIcon.setIcon(R.drawable.ic_bookmark);
  147. }
  148.  
  149. private void deleteVideo() {
  150. database.deleteFavorite(video.contentDetails.videoId);
  151. favIcon.setIcon(R.drawable.ic_bookmark_border);
  152. }
  153.  
  154. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement