diff --git a/.idea/misc.xml b/.idea/misc.xml index e4b03fa03..7d683009a 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -7,13 +7,13 @@ - + - + diff --git a/app/src/main/java/xyz/btcland/libretube/MainActivity.kt b/app/src/main/java/xyz/btcland/libretube/MainActivity.kt index 782b3b93b..8129aa353 100644 --- a/app/src/main/java/xyz/btcland/libretube/MainActivity.kt +++ b/app/src/main/java/xyz/btcland/libretube/MainActivity.kt @@ -6,6 +6,7 @@ import android.os.Bundle import android.view.Menu import android.view.MenuItem import android.widget.FrameLayout +import androidx.appcompat.widget.Toolbar import androidx.constraintlayout.motion.widget.MotionLayout import androidx.fragment.app.Fragment import androidx.navigation.Navigation @@ -17,36 +18,39 @@ import com.google.android.exoplayer2.ExoPlayer class MainActivity : AppCompatActivity() { lateinit var bottomNavigationView: BottomNavigationView + lateinit var toolbar: Toolbar override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + supportActionBar?.hide() + setContentView(R.layout.activity_main) bottomNavigationView = findViewById(R.id.bottomNav) val navController = findNavController(R.id.fragment) bottomNavigationView.setupWithNavController(navController) - } - override fun onOptionsItemSelected(item: MenuItem): Boolean = when (item.itemId){ - R.id.action_search -> { - val navController = findNavController(R.id.fragment) - navController.popBackStack() - navController.navigate(R.id.searchFragment) - //bottomNavigationView.clearFocus() - //val navController = findNavController(R.id.fragment) - //navController.navigate(R.id.searchFragment) - //navController.navigate(R.id.home2) - true - } - R.id.action_settings -> { + toolbar = findViewById(R.id.toolbar) + toolbar.setOnMenuItemClickListener{ + when (it.itemId){ + R.id.action_search -> { + val navController = findNavController(R.id.fragment) + navController.popBackStack() + navController.navigate(R.id.searchFragment) + //bottomNavigationView.clearFocus() + //val navController = findNavController(R.id.fragment) + //navController.navigate(R.id.searchFragment) + //navController.navigate(R.id.home2) + true + } + R.id.action_settings -> { - true - } - else -> { - super.onOptionsItemSelected(item) + true + } + } + false } } override fun onCreateOptionsMenu(menu: Menu?): Boolean { - menuInflater.inflate(R.menu.action_bar,menu) return true } diff --git a/app/src/main/java/xyz/btcland/libretube/PlayerFragment.kt b/app/src/main/java/xyz/btcland/libretube/PlayerFragment.kt index 5238831d7..4fa2129f6 100644 --- a/app/src/main/java/xyz/btcland/libretube/PlayerFragment.kt +++ b/app/src/main/java/xyz/btcland/libretube/PlayerFragment.kt @@ -46,11 +46,14 @@ import android.widget.TextView import android.graphics.drawable.Drawable import com.google.android.exoplayer2.util.Util import android.graphics.drawable.ColorDrawable +import android.os.Build +import android.text.Html import android.util.Log import androidx.appcompat.app.AlertDialog import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.text.PrecomputedTextCompat import androidx.lifecycle.lifecycleScope +import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.LinearLayoutManager import com.google.android.exoplayer2.Player @@ -60,6 +63,7 @@ import com.google.android.exoplayer2.util.RepeatModeUtil import com.google.android.exoplayer2.ui.TimeBar import com.google.android.exoplayer2.ui.TimeBar.OnScrubListener +import com.squareup.picasso.Picasso import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -68,6 +72,7 @@ import retrofit2.Retrofit import retrofit2.converter.jackson.JacksonConverterFactory import retrofit2.http.GET import retrofit2.http.Path +import xyz.btcland.libretube.adapters.TrendingAdapter import xyz.btcland.libretube.obj.PipedStream @@ -92,6 +97,7 @@ class PlayerFragment : Fragment() { private var isFullScreen = false private var whichQuality = 0 + private lateinit var relatedRecView: RecyclerView private lateinit var exoPlayerView: StyledPlayerView private lateinit var motionLayout: MotionLayout private lateinit var exoPlayer: ExoPlayer @@ -119,7 +125,7 @@ class PlayerFragment : Fragment() { val playerMotionLayout = view.findViewById(R.id.playerMotionLayout) motionLayout = playerMotionLayout exoPlayerView = view.findViewById(R.id.player) - view.findViewById(R.id.textTest).text = videoId + view.findViewById(R.id.player_description).text = videoId playerMotionLayout.addTransitionListener(object: MotionLayout.TransitionListener { override fun onTransitionStarted( motionLayout: MotionLayout?, @@ -147,13 +153,11 @@ class PlayerFragment : Fragment() { view.findViewById(R.id.close_imageButton).visibility =View.GONE view.findViewById(R.id.quality_text).visibility =View.GONE mainMotionLayout.progress = 1.toFloat() - mainActivity.supportActionBar?.show() }else if(currentId==sId){ view.findViewById(R.id.quality_select).visibility =View.VISIBLE view.findViewById(R.id.close_imageButton).visibility =View.VISIBLE view.findViewById(R.id.quality_text).visibility =View.VISIBLE mainMotionLayout.progress = 0.toFloat() - mainActivity.supportActionBar?.hide() } } @@ -223,6 +227,9 @@ class PlayerFragment : Fragment() { } } + relatedRecView = view.findViewById(R.id.player_recView) + relatedRecView.layoutManager = GridLayoutManager(view.context, resources.getInteger(R.integer.grid_items)) + } @@ -230,7 +237,6 @@ class PlayerFragment : Fragment() { override fun onStop() { super.onStop() try { - (activity as MainActivity).supportActionBar?.show() exoPlayer.stop() }catch (e: Exception){} @@ -366,6 +372,17 @@ class PlayerFragment : Fragment() { } } }) + relatedRecView.adapter = TrendingAdapter(response.relatedStreams!!) + view.findViewById(R.id.player_description).text = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + Html.fromHtml(response.description, Html.FROM_HTML_MODE_COMPACT) + } else { + Html.fromHtml(response.description) + } + view.findViewById(R.id.player_sub).text = response.views.videoViews() + " views • "+response.uploadDate + view.findViewById(R.id.textLike).text = response.likes.videoViews() + val channelImage = view.findViewById(R.id.player_channelImage) + Picasso.get().load(response.uploaderAvatar).into(channelImage) + view.findViewById(R.id.player_channelName).text=response.uploader } } diff --git a/app/src/main/java/xyz/btcland/libretube/obj/Streams.kt b/app/src/main/java/xyz/btcland/libretube/obj/Streams.kt index 3c754d867..2b8f76471 100644 --- a/app/src/main/java/xyz/btcland/libretube/obj/Streams.kt +++ b/app/src/main/java/xyz/btcland/libretube/obj/Streams.kt @@ -15,8 +15,8 @@ data class Streams( val lbryId: String?, val uploaderVerified: Boolean?, val duration: Int?, - val views: Int?, - val likes: Int?, + val views: Long?, + val likes: Long?, val dislikes: Int?, val audioStreams: List?, val videoStreams: List?, diff --git a/app/src/main/res/drawable/ic_download.xml b/app/src/main/res/drawable/ic_download.xml new file mode 100644 index 000000000..5cf9f5d19 --- /dev/null +++ b/app/src/main/res/drawable/ic_download.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_like.xml b/app/src/main/res/drawable/ic_like.xml new file mode 100644 index 000000000..6a39a3934 --- /dev/null +++ b/app/src/main/res/drawable/ic_like.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_save.xml b/app/src/main/res/drawable/ic_save.xml new file mode 100644 index 000000000..5c30d1cf7 --- /dev/null +++ b/app/src/main/res/drawable/ic_save.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/drawable/ic_share.xml b/app/src/main/res/drawable/ic_share.xml new file mode 100644 index 000000000..2f13bb3e2 --- /dev/null +++ b/app/src/main/res/drawable/ic_share.xml @@ -0,0 +1,10 @@ + + + diff --git a/app/src/main/res/layout-land/fragment_player.xml b/app/src/main/res/layout-land/fragment_player.xml deleted file mode 100644 index 9265bfb81..000000000 --- a/app/src/main/res/layout-land/fragment_player.xml +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index fd0287e15..5b30d853e 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -9,6 +9,17 @@ android:id="@+id/mainMotionLayout" > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +