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"
>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 10dd84224..6f091c2ab 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -5,4 +5,7 @@
Choose Quality:
Search
SUBSCRIBE
+ Share
+ Download
+ Save
\ No newline at end of file