Skip to content

Commit 525f428

Browse files
Add ExoPlayer and AllAnimeSource
1 parent e21a04b commit 525f428

File tree

15 files changed

+269
-180
lines changed

15 files changed

+269
-180
lines changed

.idea/misc.xml

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/src/main/graphql/Query.graphql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ query SearchAnimeQuery(
66
) {
77
page:Page (page: $page, perPage: 50) {
88
media (
9+
isAdult:false,
910
search: $search,
1011
type: ANIME,
1112
sort: $sortType
@@ -21,6 +22,7 @@ query SearchAnimeQuery(
2122
query CharacterDataByID($id:Int){
2223
Character(id:$id ) {
2324
id
25+
2426
age
2527
gender
2628
description

app/src/main/java/com/azamovhudstc/graphqlanilist/ui/activity/PlayerActivity.kt

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import com.azamovhudstc.graphqlanilist.ui.adapter.CustomAdapter
3838
import com.azamovhudstc.graphqlanilist.utils.hideSystemBars
3939
import com.azamovhudstc.graphqlanilist.utils.widgets.DoubleTapPlayerView
4040
import com.azamovhudstc.graphqlanilist.viewmodel.PlayerViewModel
41+
import com.bumptech.glide.Glide
4142
import com.google.android.exoplayer2.PlaybackParameters
4243
import com.google.android.exoplayer2.ui.AspectRatioFrameLayout
4344
import com.google.android.exoplayer2.ui.CaptionStyleCompat
@@ -82,6 +83,7 @@ class PlayerActivity : AppCompatActivity() {
8283
private lateinit var videoEpTextView: TextView
8384
private lateinit var exoPip: ImageButton
8485
private lateinit var exoSpeed: ImageButton
86+
private lateinit var exoProgress: ExtendedTimeBar
8587
private lateinit var exoLock: ImageButton
8688
private var isInit: Boolean = false
8789
private var isTV: Boolean = false
@@ -143,11 +145,12 @@ class PlayerActivity : AppCompatActivity() {
143145
exoVolume = findViewById(R.id.exo_volume)
144146
exoBrightnessCont = findViewById(R.id.exo_brightness_cont)
145147
exoVolumeCont = findViewById(R.id.exo_volume_cont)
148+
exoProgress = findViewById(R.id.exo_progress)
146149
updateEpisodeName()
147150
playerView.keepScreenOn = true
148151
playerView.player = model.player
149152
playerView.subtitleView?.visibility = View.VISIBLE
150-
playerView.findViewById<DefaultTimeBar>(R.id.exo_progress).setKeyTimeIncrement(10000)
153+
playerView.findViewById<ExtendedTimeBar>(R.id.exo_progress).setKeyTimeIncrement(10000)
151154
prepareButtons()
152155

153156
initSubStyle()
@@ -260,11 +263,11 @@ class PlayerActivity : AppCompatActivity() {
260263

261264

262265
val subStyle = CaptionStyleCompat(
263-
primaryColor,
264-
subBackground,
265-
subWindow,
266+
Color.RED,
267+
Color.GREEN,
268+
Color.RED,
266269
outline,
267-
secondaryColor,
270+
Color.RED,
268271
font
269272
)
270273
playerView.subtitleView?.setStyle(subStyle)
@@ -463,8 +466,11 @@ class PlayerActivity : AppCompatActivity() {
463466

464467

465468
exoPlay.setOnClickListener {
466-
if (model.player.isPlaying) pauseVideo()
467-
else playVideo()
469+
if (isInit){
470+
if (model.player.isPlaying) pauseVideo()
471+
else playVideo()
472+
473+
}
468474
}
469475
nextEpBtn.setOnClickListener {
470476
setNewEpisode(1)
@@ -473,13 +479,16 @@ class PlayerActivity : AppCompatActivity() {
473479
setNewEpisode(-1)
474480
}
475481

482+
476483
// Back Button
477484
playerView.findViewById<ImageButton>(R.id.exo_back).apply {
478485
setOnClickListener {
479486
model.player.release()
480487
finish()
481488
}
482489
}
490+
handleController()
491+
483492
}
484493

485494

@@ -557,7 +566,9 @@ class PlayerActivity : AppCompatActivity() {
557566
exoTopControllers.visibility = View.INVISIBLE
558567
exoMiddleControllers.visibility = View.INVISIBLE
559568
exoBottomControllers.visibility = View.INVISIBLE
569+
exoProgress.setForceDisabled(true)
560570
} else {
571+
exoProgress.setForceDisabled(false)
561572
exoTopControllers.visibility = View.VISIBLE
562573
exoMiddleControllers.visibility = View.VISIBLE
563574
exoBottomControllers.visibility = View.VISIBLE

app/src/main/java/com/azamovhudstc/graphqlanilist/ui/screens/HomeScreen.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ package com.azamovhudstc.graphqlanilist.ui.screens
33
import android.os.Bundle
44
import android.view.View
55
import androidx.appcompat.widget.SearchView
6+
import androidx.core.view.ViewCompat
7+
import androidx.core.view.WindowCompat
68
import androidx.core.view.isVisible
79
import androidx.fragment.app.Fragment
810
import androidx.fragment.app.viewModels
@@ -12,6 +14,8 @@ import com.azamovhudstc.graphqlanilist.type.SortType
1214
import com.azamovhudstc.graphqlanilist.ui.screens.controller.PagingSearchController
1315
import com.azamovhudstc.graphqlanilist.utils.collectLatest
1416
import com.azamovhudstc.graphqlanilist.utils.dismissKeyboard
17+
import com.azamovhudstc.graphqlanilist.utils.slideStart
18+
import com.azamovhudstc.graphqlanilist.utils.slideUp
1519
import com.azamovhudstc.graphqlanilist.viewmodel.SearchViewModel
1620
import dagger.hilt.android.AndroidEntryPoint
1721

@@ -26,6 +30,11 @@ class HomeScreen : Fragment(R.layout.home_screen) {
2630
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
2731
super.onViewCreated(view, savedInstanceState)
2832
_binding = HomeScreenBinding.bind(view)
33+
val window = requireActivity().window
34+
WindowCompat.setDecorFitsSystemWindows(window, true)
35+
binding.frameLayout.slideUp(700,0)
36+
binding.toolbar.slideUp(700,0)
37+
binding.searchRecycler.slideUp(700,0)
2938
pagingController = PagingSearchController()
3039
val list = ArrayList<SortType>()
3140
list.add(SortType.TRENDING)

app/src/main/java/com/azamovhudstc/graphqlanilist/ui/screens/character/CharacterScreen.kt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import com.bumptech.glide.Glide
2828
import com.bumptech.glide.load.engine.DiskCacheStrategy
2929
import com.bumptech.glide.load.model.GlideUrl
3030
import com.bumptech.glide.request.RequestOptions
31+
import com.draggable.library.extension.ImageViewerHelper
3132
import com.flaviofaria.kenburnsview.RandomTransitionGenerator
3233
import com.google.android.material.appbar.AppBarLayout
3334
import dagger.hilt.android.AndroidEntryPoint
@@ -113,6 +114,14 @@ class CharacterScreen : Fragment(), AppBarLayout.OnOffsetChangedListener {
113114
.into(banner)
114115
banner.setTransitionGenerator(generator)
115116
binding.characterCoverImage.loadImage(coverImage)
117+
binding.characterCover.setOnClickListener {
118+
ImageViewerHelper.showSimpleImage(
119+
requireContext(),
120+
ImageViewerHelper.ImageInfo(coverImage.toString()),
121+
binding.characterCover,
122+
showDownLoadBtn = false
123+
)
124+
}
116125
binding.characterTitle.text = characterName
117126
if (character.media?.edges != null) {
118127
val mediaAdaptor = CharacterItemAdapter(character.media.edges)
@@ -145,7 +154,8 @@ class CharacterScreen : Fragment(), AppBarLayout.OnOffsetChangedListener {
145154
findNavController().navigate(
146155
R.id.detailScreen,
147156
bundle,
148-
NavOptions.Builder().setPopUpTo(R.id.characterScreen, true).build()
157+
NavOptions.Builder().setPopUpTo(R.id.characterScreen, true)
158+
.build()
149159
)
150160
}
151161
binding.characterRecyclerView.adapter = concatAdaptor

app/src/main/java/com/azamovhudstc/graphqlanilist/ui/screens/controller/PagingSearchController.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
package com.azamovhudstc.graphqlanilist.ui.screens.controller
22

33
import android.os.Bundle
4+
import androidx.navigation.NavOptions
45
import androidx.navigation.findNavController
56
import com.airbnb.epoxy.EpoxyModel
67
import com.airbnb.epoxy.paging3.PagingDataEpoxyController
78
import com.azamovhudstc.graphqlanilist.R
89
import com.azamovhudstc.graphqlanilist.RvLayoutBindingModel_
910
import com.azamovhudstc.graphqlanilist.VerticalLayoutBindingModel_
1011
import com.azamovhudstc.graphqlanilist.data.model.ui_models.AniListMedia
12+
import com.azamovhudstc.graphqlanilist.utils.animationTransaction
1113
import com.azamovhudstc.graphqlanilist.utils.logError
1214
import kotlinx.coroutines.ObsoleteCoroutinesApi
1315

@@ -30,7 +32,8 @@ class PagingSearchController() :
3032
item?.let {
3133
val bundle = Bundle()
3234
bundle.putSerializable("data", it)
33-
view.findNavController().navigate(R.id.detailScreen,bundle)
35+
view.findNavController().navigate(R.id.detailScreen,bundle,animationTransaction().build() )
36+
3437
}
3538
} catch (e: Exception) {
3639
logError(e)

0 commit comments

Comments
 (0)