diff --git a/.idea/misc.xml b/.idea/misc.xml
index 2f040ead..faf84286 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -83,8 +83,12 @@
+
+
+
+
diff --git a/app/src/main/java/com/kl3jvi/animity/data/model/ui_models/AnimeMetaModel.kt b/app/src/main/java/com/kl3jvi/animity/data/model/ui_models/AnimeMetaModel.kt
index 0cb4d29e..5b12205e 100644
--- a/app/src/main/java/com/kl3jvi/animity/data/model/ui_models/AnimeMetaModel.kt
+++ b/app/src/main/java/com/kl3jvi/animity/data/model/ui_models/AnimeMetaModel.kt
@@ -4,7 +4,7 @@ import android.os.Parcelable
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
-import com.kl3jvi.animity.ui.adapters.testAdapter.HomeRecyclerViewItem
+import com.kl3jvi.animity.ui.adapters.homeAdapter.HomeRecyclerViewItem
import kotlinx.parcelize.Parcelize
@Parcelize
diff --git a/app/src/main/java/com/kl3jvi/animity/data/paging/SearchPagingSource.kt b/app/src/main/java/com/kl3jvi/animity/data/paging/SearchPagingSource.kt
index 5df43869..9a792f51 100644
--- a/app/src/main/java/com/kl3jvi/animity/data/paging/SearchPagingSource.kt
+++ b/app/src/main/java/com/kl3jvi/animity/data/paging/SearchPagingSource.kt
@@ -6,7 +6,7 @@ import com.kl3jvi.animity.data.model.ui_models.AnimeMetaModel
import com.kl3jvi.animity.data.network.anime_service.AnimeApiClient
import com.kl3jvi.animity.utils.Constants
import com.kl3jvi.animity.utils.Constants.Companion.STARTING_PAGE_INDEX
-import com.kl3jvi.animity.utils.Constants.Companion.getHeader
+import com.kl3jvi.animity.utils.Constants.Companion.getNetworkHeader
import com.kl3jvi.animity.utils.parser.HtmlParser
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
@@ -27,7 +27,7 @@ class SearchPagingSource(
val searchList = withContext(Dispatchers.IO) {
HtmlParser.parseMovie(
animeService.fetchSearchData(
- header = getHeader(),
+ header = getNetworkHeader(),
keyword = query,
page = page
).string(),
diff --git a/app/src/main/java/com/kl3jvi/animity/data/repository/fragment_repositories/HomeRepositoryImpl.kt b/app/src/main/java/com/kl3jvi/animity/data/repository/fragment_repositories/HomeRepositoryImpl.kt
index 83cf2530..0b18211f 100644
--- a/app/src/main/java/com/kl3jvi/animity/data/repository/fragment_repositories/HomeRepositoryImpl.kt
+++ b/app/src/main/java/com/kl3jvi/animity/data/repository/fragment_repositories/HomeRepositoryImpl.kt
@@ -3,7 +3,7 @@ package com.kl3jvi.animity.data.repository.fragment_repositories
import com.kl3jvi.animity.data.model.ui_models.toAnime
import com.kl3jvi.animity.data.network.anime_service.AnimeApiClient
import com.kl3jvi.animity.domain.repositories.fragment_repositories.HomeRepository
-import com.kl3jvi.animity.ui.adapters.testAdapter.HomeRecyclerViewItem
+import com.kl3jvi.animity.ui.adapters.homeAdapter.HomeRecyclerViewItem
import com.kl3jvi.animity.utils.Constants.Companion.TYPE_MOVIE
import com.kl3jvi.animity.utils.Constants.Companion.TYPE_NEW_SEASON
import com.kl3jvi.animity.utils.Constants.Companion.TYPE_POPULAR_ANIME
diff --git a/app/src/main/java/com/kl3jvi/animity/data/repository/fragment_repositories/SearchRepositoryImpl.kt b/app/src/main/java/com/kl3jvi/animity/data/repository/fragment_repositories/SearchRepositoryImpl.kt
index cf978076..e7d69191 100644
--- a/app/src/main/java/com/kl3jvi/animity/data/repository/fragment_repositories/SearchRepositoryImpl.kt
+++ b/app/src/main/java/com/kl3jvi/animity/data/repository/fragment_repositories/SearchRepositoryImpl.kt
@@ -21,7 +21,6 @@ class SearchRepositoryImpl @Inject constructor(
) : SearchRepository {
override fun fetchSearchData(
- header: Map,
keyword: String,
): Flow> {
return Pager(
diff --git a/app/src/main/java/com/kl3jvi/animity/domain/repositories/fragment_repositories/HomeRepository.kt b/app/src/main/java/com/kl3jvi/animity/domain/repositories/fragment_repositories/HomeRepository.kt
index 501ce4ee..3c06f35b 100644
--- a/app/src/main/java/com/kl3jvi/animity/domain/repositories/fragment_repositories/HomeRepository.kt
+++ b/app/src/main/java/com/kl3jvi/animity/domain/repositories/fragment_repositories/HomeRepository.kt
@@ -1,7 +1,6 @@
package com.kl3jvi.animity.domain.repositories.fragment_repositories
-import com.kl3jvi.animity.data.model.ui_models.AnimeMetaModel
-import com.kl3jvi.animity.ui.adapters.testAdapter.HomeRecyclerViewItem
+import com.kl3jvi.animity.ui.adapters.homeAdapter.HomeRecyclerViewItem
import com.kl3jvi.animity.utils.parser.HtmlParser
interface HomeRepository {
diff --git a/app/src/main/java/com/kl3jvi/animity/domain/repositories/fragment_repositories/SearchRepository.kt b/app/src/main/java/com/kl3jvi/animity/domain/repositories/fragment_repositories/SearchRepository.kt
index aff7695f..f95047f9 100644
--- a/app/src/main/java/com/kl3jvi/animity/domain/repositories/fragment_repositories/SearchRepository.kt
+++ b/app/src/main/java/com/kl3jvi/animity/domain/repositories/fragment_repositories/SearchRepository.kt
@@ -6,7 +6,6 @@ import kotlinx.coroutines.flow.Flow
interface SearchRepository {
fun fetchSearchData(
- header: Map,
keyword: String,
): Flow>
}
\ No newline at end of file
diff --git a/app/src/main/java/com/kl3jvi/animity/domain/use_cases/GetAnimeDetailsUseCase.kt b/app/src/main/java/com/kl3jvi/animity/domain/use_cases/GetAnimeDetailsUseCase.kt
index 45132ba4..0cfe88d2 100644
--- a/app/src/main/java/com/kl3jvi/animity/domain/use_cases/GetAnimeDetailsUseCase.kt
+++ b/app/src/main/java/com/kl3jvi/animity/domain/use_cases/GetAnimeDetailsUseCase.kt
@@ -7,6 +7,7 @@ import com.kl3jvi.animity.data.repository.fragment_repositories.DetailsRepositor
import com.kl3jvi.animity.persistence.AnimeRepository
import com.kl3jvi.animity.persistence.EpisodeDao
import com.kl3jvi.animity.utils.Constants
+import com.kl3jvi.animity.utils.Constants.Companion.getNetworkHeader
import com.kl3jvi.animity.utils.Resource
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.flow.Flow
@@ -27,7 +28,7 @@ class GetAnimeDetailsUseCase @Inject constructor(
fun fetchAnimeInfo(url: String): Flow> = flow {
try {
emit(Resource.Loading())
- val response = detailsRepository.fetchAnimeInfo(Constants.getHeader(), url)
+ val response = detailsRepository.fetchAnimeInfo(getNetworkHeader(), url)
emit(
Resource.Success(
data = response
@@ -56,7 +57,7 @@ class GetAnimeDetailsUseCase @Inject constructor(
try {
emit(Resource.Loading())
val response = detailsRepository.fetchEpisodeList(
- header = Constants.getHeader(),
+ header = getNetworkHeader(),
id = id ?: "",
endEpisode = endEpisode ?: "0",
alias = alias ?: ""
diff --git a/app/src/main/java/com/kl3jvi/animity/domain/use_cases/GetAnimesUseCase.kt b/app/src/main/java/com/kl3jvi/animity/domain/use_cases/GetAnimesUseCase.kt
index bfce80a8..2a5fb257 100644
--- a/app/src/main/java/com/kl3jvi/animity/domain/use_cases/GetAnimesUseCase.kt
+++ b/app/src/main/java/com/kl3jvi/animity/domain/use_cases/GetAnimesUseCase.kt
@@ -1,8 +1,9 @@
package com.kl3jvi.animity.domain.use_cases
import com.kl3jvi.animity.data.repository.fragment_repositories.HomeRepositoryImpl
-import com.kl3jvi.animity.ui.adapters.testAdapter.HomeRecyclerViewItem
+import com.kl3jvi.animity.ui.adapters.homeAdapter.HomeRecyclerViewItem
import com.kl3jvi.animity.utils.Constants
+import com.kl3jvi.animity.utils.Constants.Companion.getNetworkHeader
import com.kl3jvi.animity.utils.Resource
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.async
@@ -25,17 +26,17 @@ class GetAnimesUseCase @Inject constructor(
val recentSubDubDeferred = async {
homeRepository.fetchRecentSubOrDub(
- Constants.getHeader(),
+ getNetworkHeader(),
1,
Constants.TYPE_RECENT_DUB
)
}
val newSeasonDeferred =
- async { homeRepository.fetchNewSeason(Constants.getHeader(), 1) }
+ async { homeRepository.fetchNewSeason(getNetworkHeader(), 1) }
val moviesDeferred =
- async { homeRepository.fetchMovies(Constants.getHeader(), 1) }
+ async { homeRepository.fetchMovies(getNetworkHeader(), 1) }
val popularDeferred =
- async { homeRepository.fetchPopularFromAjax(Constants.getHeader(), 1) }
+ async { homeRepository.fetchPopularFromAjax(getNetworkHeader(), 1) }
val recentSub = recentSubDubDeferred.await()
val newSeason = newSeasonDeferred.await()
diff --git a/app/src/main/java/com/kl3jvi/animity/domain/use_cases/GetEpisodeInfoUseCase.kt b/app/src/main/java/com/kl3jvi/animity/domain/use_cases/GetEpisodeInfoUseCase.kt
index b5bdadc2..ef4b659a 100644
--- a/app/src/main/java/com/kl3jvi/animity/domain/use_cases/GetEpisodeInfoUseCase.kt
+++ b/app/src/main/java/com/kl3jvi/animity/domain/use_cases/GetEpisodeInfoUseCase.kt
@@ -1,7 +1,7 @@
package com.kl3jvi.animity.domain.use_cases
+import android.util.Log
import com.kl3jvi.animity.data.repository.activity_repositories.PlayerRepositoryImpl
-import com.kl3jvi.animity.utils.Constants
import com.kl3jvi.animity.utils.Constants.Companion.REFERER
import com.kl3jvi.animity.utils.Constants.Companion.getNetworkHeader
import com.kl3jvi.animity.utils.Resource
@@ -20,28 +20,31 @@ class GetEpisodeInfoUseCase @Inject constructor(
operator fun invoke(url: String) = flow {
emit(Resource.Loading())
try {
- val response = playerRepository.fetchEpisodeMediaUrl(Constants.getHeader(), url)
+ val response = playerRepository.fetchEpisodeMediaUrl(getNetworkHeader(), url)
emit(Resource.Success(data = response))
} catch (e: Exception) {
emit(Resource.Error("Oops an error occurred, try again!"))
}
}.flowOn(ioDispatcher)
-//
+
+ //
fun fetchM3U8(url: String?) = flow {
emit(Resource.Loading())
try {
val response = playerRepository.fetchM3u8Url(getNetworkHeader(), url ?: "")
+ Log.e("response", response.toString())
emit(Resource.Success(data = response.last()))
} catch (e: Exception) {
e.printStackTrace()
emit(Resource.Error("Couldn't find a Stream for this Anime"))
}
}.flowOn(ioDispatcher)
-//
+
+ //
fun fetchEncryptedAjaxUrl(url: String?) = flow {
emit(Resource.Loading())
try {
- val response = playerRepository.fetchEncryptedAjaxUrl(Constants.getHeader(), url ?: "")
+ val response = playerRepository.fetchEncryptedAjaxUrl(getNetworkHeader(), url ?: "")
val streamUrl = "${REFERER}encrypt-ajax.php?${response}"
emit(Resource.Success(data = streamUrl))
} catch (e: Exception) {
diff --git a/app/src/main/java/com/kl3jvi/animity/domain/use_cases/GetSearchResultUseCase.kt b/app/src/main/java/com/kl3jvi/animity/domain/use_cases/GetSearchResultUseCase.kt
index fc8b7552..8c309e73 100644
--- a/app/src/main/java/com/kl3jvi/animity/domain/use_cases/GetSearchResultUseCase.kt
+++ b/app/src/main/java/com/kl3jvi/animity/domain/use_cases/GetSearchResultUseCase.kt
@@ -3,7 +3,6 @@ package com.kl3jvi.animity.domain.use_cases
import androidx.paging.PagingData
import com.kl3jvi.animity.data.model.ui_models.AnimeMetaModel
import com.kl3jvi.animity.data.repository.fragment_repositories.SearchRepositoryImpl
-import com.kl3jvi.animity.utils.Constants
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flowOn
@@ -17,9 +16,6 @@ class GetSearchResultUseCase @Inject constructor(
) {
operator fun invoke(searchQuery: String): Flow> {
- return searchRepository.fetchSearchData(
- Constants.getHeader(),
- searchQuery
- ).flowOn(ioDispatcher)
+ return searchRepository.fetchSearchData(searchQuery).flowOn(ioDispatcher)
}
}
diff --git a/app/src/main/java/com/kl3jvi/animity/ui/activities/login/LoginActivity.kt b/app/src/main/java/com/kl3jvi/animity/ui/activities/login/LoginActivity.kt
index 87826e08..1cd46414 100644
--- a/app/src/main/java/com/kl3jvi/animity/ui/activities/login/LoginActivity.kt
+++ b/app/src/main/java/com/kl3jvi/animity/ui/activities/login/LoginActivity.kt
@@ -79,8 +79,8 @@ class LoginActivity : BindingActivity(R.layout.activity_lo
.appendPath("v2")
.appendPath("oauth")
.appendPath("authorize")
- .appendQueryParameter("client_id", ANILIST_ID)
- .appendQueryParameter("redirect_uri", REDIRECT_URI)
+ .appendQueryParameter("client_id", anilistid)
+ .appendQueryParameter("redirect_uri", redirecturi)
.appendQueryParameter("response_type", "code")
.build()
}
@@ -88,16 +88,16 @@ class LoginActivity : BindingActivity(R.layout.activity_lo
override fun onHandleAuthIntent(intent: Intent?) {
if (intent != null && intent.data != null) {
val uri = intent.data
- if (uri.toString().startsWith(REDIRECT_URI)) {
+ if (uri.toString().startsWith(redirecturi)) {
val authorizationToken = uri?.getQueryParameter("code")
Log.e("AUTH TOKEN", authorizationToken.toString())
if (!authorizationToken.isNullOrEmpty()) {
collectFlow(
viewModel.getAccessToken(
grantType = AUTH_GRANT_TYPE,
- clientId = ANILIST_ID.toInt(),
- clientSecret = ANILIST_SECRET,
- redirectUri = REDIRECT_URI,
+ clientId = anilistid.toInt(),
+ clientSecret = anilistsecret,
+ redirectUri = redirecturi,
authorizationToken = authorizationToken
)
) { state ->
diff --git a/app/src/main/java/com/kl3jvi/animity/ui/activities/player/PlayerViewModel.kt b/app/src/main/java/com/kl3jvi/animity/ui/activities/player/PlayerViewModel.kt
index 219ee906..f65f8468 100644
--- a/app/src/main/java/com/kl3jvi/animity/ui/activities/player/PlayerViewModel.kt
+++ b/app/src/main/java/com/kl3jvi/animity/ui/activities/player/PlayerViewModel.kt
@@ -58,7 +58,7 @@ class PlayerViewModel @Inject constructor(
fun getPlaybackPosition(episodeUrl: String): LiveData {
viewModelScope.launch(ioDispatcher) {
if (episodeDao.isEpisodeOnDatabase(episodeUrl)) {
- _playBackPosition.value = episodeDao.getEpisodeContent(episodeUrl).watchedDuration
+ _playBackPosition.postValue(episodeDao.getEpisodeContent(episodeUrl).watchedDuration)
}
}
return _playBackPosition
diff --git a/app/src/main/java/com/kl3jvi/animity/ui/adapters/testAdapter/HomeRecyclerViewAdapter.kt b/app/src/main/java/com/kl3jvi/animity/ui/adapters/homeAdapter/HomeRecyclerViewAdapter.kt
similarity index 98%
rename from app/src/main/java/com/kl3jvi/animity/ui/adapters/testAdapter/HomeRecyclerViewAdapter.kt
rename to app/src/main/java/com/kl3jvi/animity/ui/adapters/homeAdapter/HomeRecyclerViewAdapter.kt
index 3a008bf5..31421e20 100644
--- a/app/src/main/java/com/kl3jvi/animity/ui/adapters/testAdapter/HomeRecyclerViewAdapter.kt
+++ b/app/src/main/java/com/kl3jvi/animity/ui/adapters/homeAdapter/HomeRecyclerViewAdapter.kt
@@ -1,4 +1,4 @@
-package com.kl3jvi.animity.ui.adapters.testAdapter
+package com.kl3jvi.animity.ui.adapters.homeAdapter
import android.view.LayoutInflater
import android.view.ViewGroup
diff --git a/app/src/main/java/com/kl3jvi/animity/ui/adapters/testAdapter/HomeRecyclerViewHolder.kt b/app/src/main/java/com/kl3jvi/animity/ui/adapters/homeAdapter/HomeRecyclerViewHolder.kt
similarity index 98%
rename from app/src/main/java/com/kl3jvi/animity/ui/adapters/testAdapter/HomeRecyclerViewHolder.kt
rename to app/src/main/java/com/kl3jvi/animity/ui/adapters/homeAdapter/HomeRecyclerViewHolder.kt
index 0d404440..94585eba 100644
--- a/app/src/main/java/com/kl3jvi/animity/ui/adapters/testAdapter/HomeRecyclerViewHolder.kt
+++ b/app/src/main/java/com/kl3jvi/animity/ui/adapters/homeAdapter/HomeRecyclerViewHolder.kt
@@ -1,4 +1,4 @@
-package com.kl3jvi.animity.ui.adapters.testAdapter
+package com.kl3jvi.animity.ui.adapters.homeAdapter
import android.graphics.Color
import android.view.View
diff --git a/app/src/main/java/com/kl3jvi/animity/ui/adapters/testAdapter/HomeRecyclerViewItem.kt b/app/src/main/java/com/kl3jvi/animity/ui/adapters/homeAdapter/HomeRecyclerViewItem.kt
similarity index 94%
rename from app/src/main/java/com/kl3jvi/animity/ui/adapters/testAdapter/HomeRecyclerViewItem.kt
rename to app/src/main/java/com/kl3jvi/animity/ui/adapters/homeAdapter/HomeRecyclerViewItem.kt
index bb2dc5f3..88a9a23e 100644
--- a/app/src/main/java/com/kl3jvi/animity/ui/adapters/testAdapter/HomeRecyclerViewItem.kt
+++ b/app/src/main/java/com/kl3jvi/animity/ui/adapters/homeAdapter/HomeRecyclerViewItem.kt
@@ -1,4 +1,4 @@
-package com.kl3jvi.animity.ui.adapters.testAdapter
+package com.kl3jvi.animity.ui.adapters.homeAdapter
import com.kl3jvi.animity.data.model.ui_models.AnimeMetaModel
import com.kl3jvi.animity.data.model.ui_models.GenreModel
diff --git a/app/src/main/java/com/kl3jvi/animity/ui/fragments/home/HomeFragment.kt b/app/src/main/java/com/kl3jvi/animity/ui/fragments/home/HomeFragment.kt
index ea5301a0..e1573d14 100644
--- a/app/src/main/java/com/kl3jvi/animity/ui/fragments/home/HomeFragment.kt
+++ b/app/src/main/java/com/kl3jvi/animity/ui/fragments/home/HomeFragment.kt
@@ -8,7 +8,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
import com.kl3jvi.animity.R
import com.kl3jvi.animity.databinding.FragmentHomeBinding
import com.kl3jvi.animity.ui.activities.main.MainActivity
-import com.kl3jvi.animity.ui.adapters.testAdapter.HomeRecyclerViewAdapter
+import com.kl3jvi.animity.ui.adapters.homeAdapter.HomeRecyclerViewAdapter
import com.kl3jvi.animity.ui.base.viewBinding
import com.kl3jvi.animity.utils.NetworkUtils.isConnectedToInternet
import com.kl3jvi.animity.utils.Resource
diff --git a/app/src/main/java/com/kl3jvi/animity/ui/fragments/home/HomeViewModel.kt b/app/src/main/java/com/kl3jvi/animity/ui/fragments/home/HomeViewModel.kt
index ec530a1a..70e8380c 100644
--- a/app/src/main/java/com/kl3jvi/animity/ui/fragments/home/HomeViewModel.kt
+++ b/app/src/main/java/com/kl3jvi/animity/ui/fragments/home/HomeViewModel.kt
@@ -5,7 +5,7 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.kl3jvi.animity.domain.use_cases.GetAnimesUseCase
-import com.kl3jvi.animity.ui.adapters.testAdapter.HomeRecyclerViewItem
+import com.kl3jvi.animity.ui.adapters.homeAdapter.HomeRecyclerViewItem
import com.kl3jvi.animity.utils.Resource
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.CoroutineDispatcher
diff --git a/app/src/main/java/com/kl3jvi/animity/ui/fragments/profile/ProfileFragment.kt b/app/src/main/java/com/kl3jvi/animity/ui/fragments/profile/ProfileFragment.kt
index 45cb15dd..bc76e676 100644
--- a/app/src/main/java/com/kl3jvi/animity/ui/fragments/profile/ProfileFragment.kt
+++ b/app/src/main/java/com/kl3jvi/animity/ui/fragments/profile/ProfileFragment.kt
@@ -5,9 +5,6 @@ import android.view.*
import android.widget.AdapterView
import android.widget.ArrayAdapter
import androidx.fragment.app.viewModels
-import androidx.recyclerview.widget.LinearLayoutManager
-import androidx.recyclerview.widget.RecyclerView
-import coil.load
import com.apollographql.apollo3.api.ApolloResponse
import com.kl3jvi.animity.AnimeListCollectionQuery
import com.kl3jvi.animity.R
@@ -17,7 +14,6 @@ import com.kl3jvi.animity.databinding.FragmentProfileGuestBinding
import com.kl3jvi.animity.ui.activities.login.LoginActivity
import com.kl3jvi.animity.ui.activities.main.MainActivity
import com.kl3jvi.animity.ui.base.BaseFragment
-import com.kl3jvi.animity.utils.Constants.Companion.DEFAULT_COVER
import com.kl3jvi.animity.utils.NetworkUtils.isConnectedToInternet
import com.kl3jvi.animity.utils.hide
import com.kl3jvi.animity.utils.launchActivity
@@ -64,18 +60,18 @@ class ProfileFragment : BaseFragment()
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
- binding.spinner.onItemSelectedListener = this
+// binding.spinner.onItemSelectedListener = this
}
private fun getProfileData() {
observeLiveData(viewModel.profileData, viewLifecycleOwner) {
- binding.bgImage.load(
- if (it.data?.user?.bannerImage.isNullOrEmpty())
- DEFAULT_COVER
- else
- it.data?.user?.bannerImage
- )
+// binding.bgImage.load(
+// if (it.data?.user?.bannerImage.isNullOrEmpty())
+// DEFAULT_COVER
+// else
+// it.data?.user?.bannerImage
+// )
binding.userData = it.data
}
}
@@ -84,11 +80,11 @@ class ProfileFragment : BaseFragment()
observeLiveData(viewModel.animeList, viewLifecycleOwner) { animeCollectionResponse ->
binding.animeData = animeCollectionResponse.data
animeCollectionResponseGlobal = animeCollectionResponse
- val animeRecyclerView = binding.watchedAnime
- animeRecyclerView.layoutManager = LinearLayoutManager(
- requireContext(),
- RecyclerView.HORIZONTAL, false
- )
+// val animeRecyclerView = binding.watchedAnime
+// animeRecyclerView.layoutManager = LinearLayoutManager(
+// requireContext(),
+// RecyclerView.HORIZONTAL, false
+// )
animeCollectionResponse.data?.media?.lists?.toList()?.let { addSpinnerItems(it) }
@@ -115,7 +111,7 @@ class ProfileFragment : BaseFragment()
private fun addSpinnerItems(passedArray: List) {
val list = passedArray.map { it?.name }
- val spinner = binding.spinner
+// val spinner = binding.spinner
val spinnerArrayAdapter: ArrayAdapter =
ArrayAdapter(
requireContext(), R.layout.spinner_item,
@@ -123,7 +119,7 @@ class ProfileFragment : BaseFragment()
list
) //selected item will look like a spinner set from XML
spinnerArrayAdapter.setDropDownViewResource(R.layout.spinner_item)
- spinner.adapter = spinnerArrayAdapter
+// spinner.adapter = spinnerArrayAdapter
}
@@ -166,11 +162,11 @@ class ProfileFragment : BaseFragment()
private fun handleNetworkChanges() {
requireActivity().isConnectedToInternet(viewLifecycleOwner) { isConnected ->
if (!isGuestLogin() && isConnected) {
- binding.hasInternet.show()
+// binding.hasInternet.show()
binding.noInternet.hide()
} else {
binding.noInternet.show()
- binding.hasInternet.hide()
+// binding.hasInternet.hide()
}
}
}
diff --git a/app/src/main/java/com/kl3jvi/animity/utils/Constants.kt b/app/src/main/java/com/kl3jvi/animity/utils/Constants.kt
index 232aadcb..72c4cb9d 100644
--- a/app/src/main/java/com/kl3jvi/animity/utils/Constants.kt
+++ b/app/src/main/java/com/kl3jvi/animity/utils/Constants.kt
@@ -20,7 +20,7 @@ class Constants {
const val AUTH_URL = "https://anilist.co/api/v2/oauth/token"
// Base URLS
- const val BASE_URL = "https://gogoanime.fi"
+ const val BASE_URL = "https://gogoanime.gg"
const val ANILIST_API_URL = "https://graphql.anilist.co"
const val EPISODE_LOAD_URL = "https://ajax.gogocdn.net/ajax/load-list-episode"
@@ -31,8 +31,7 @@ class Constants {
const val TERMS_AND_PRIVACY_LINK = "https://anilist.co/terms"
const val SIGNUP_URL = "https://anilist.co/signup"
- const val DEFAULT_COVER =
- "https://s4.anilist.co/file/anilistcdn/user/banner/n189170-XTnyb5J5KRai.jpg"
+ const val DEFAULT_COVER = "https://bit.ly/3p6DE28"
// Model Type
@@ -54,13 +53,18 @@ class Constants {
private const val ORIGIN = "https://streamani.io"
const val REFERER = "https://streamani.io/"
- fun getHeader(): Map {
- return mapOf(
- "referer" to REFERER,
- "origin" to ORIGIN,
- "user-agent" to USER_AGENT
- )
- }
+ // fun getHeader(): Map {
+// return mapOf(
+// "referer" to REFERER,
+// "origin" to ORIGIN,
+// "user-agent" to USER_AGENT
+// )
+// }
+
+ //Gogoanime Secrets
+ const val GogoSecretkey = "25716538522938396164662278833288"
+ const val GogoSecretIV = "1285672985238393"
+ val GogoPadding = byteArrayOf(0x8, 0xe, 0x3, 0x8, 0x9, 0x3, 0x4, 0x9)
fun getSafeString(string: String?) = string.toString()
@@ -91,7 +95,7 @@ class Constants {
"sec-fetch-user" to "?1",
"sec-fetch-mode" to "navigate",
"sec-fetch-dest" to "video"
- ) + getHeader() // Adds the headers from the provider, e.g Authorization
+ ) + getNetworkHeader() // Adds the headers from the provider, e.g Authorization
setDefaultRequestProperties(headers)
}
}
diff --git a/app/src/main/java/com/kl3jvi/animity/utils/Resource.kt b/app/src/main/java/com/kl3jvi/animity/utils/Resource.kt
index 29f17930..bc23e798 100644
--- a/app/src/main/java/com/kl3jvi/animity/utils/Resource.kt
+++ b/app/src/main/java/com/kl3jvi/animity/utils/Resource.kt
@@ -1,7 +1,5 @@
package com.kl3jvi.animity.utils
-import com.kl3jvi.animity.ui.adapters.testAdapter.HomeRecyclerViewItem
-
sealed class Resource(val data: T? = null, val message: String? = null) {
class Success(data: T?) : Resource(data)
class Error(message: String?) : Resource(null, message)
diff --git a/app/src/main/java/com/kl3jvi/animity/utils/parser/HtmlParser.kt b/app/src/main/java/com/kl3jvi/animity/utils/parser/HtmlParser.kt
index 63bb4480..f58ee174 100644
--- a/app/src/main/java/com/kl3jvi/animity/utils/parser/HtmlParser.kt
+++ b/app/src/main/java/com/kl3jvi/animity/utils/parser/HtmlParser.kt
@@ -1,13 +1,11 @@
package com.kl3jvi.animity.utils.parser
import android.os.Build
-import android.util.Log
import com.kl3jvi.animity.data.model.ui_models.*
-import org.apache.commons.lang3.RandomStringUtils
+import com.kl3jvi.animity.utils.Constants
import org.json.JSONObject
import org.jsoup.Jsoup
import org.jsoup.select.Elements
-import java.net.URLDecoder
import java.util.*
import javax.crypto.Cipher
import javax.crypto.spec.IvParameterSpec
@@ -18,6 +16,7 @@ import javax.crypto.spec.SecretKeySpec
*/
object HtmlParser {
+
fun parseRecentSubOrDub(response: String, typeValue: Int): ArrayList {
val animeMetaModelList: ArrayList = ArrayList()
val document = Jsoup.parse(response)
@@ -26,7 +25,6 @@ object HtmlParser {
lists?.forEach { anime ->
val animeInfo = anime.getElementsByClass("name").first().select("a")
val title = animeInfo.attr("title")
- Log.e("HASHED FROM PARSER", title.lowercase(Locale.getDefault()).hashCode().toString())
val episodeUrl = animeInfo.attr("href")
val episodeNumber = anime.getElementsByClass("episode").first().text()
val animeImageInfo = anime.selectFirst("a")
@@ -214,7 +212,7 @@ object HtmlParser {
private fun decryptAES(encrypted: String, key: String, iv: String): String {
val ix = IvParameterSpec(iv.toByteArray())
- val cipher = Cipher.getInstance("AES/CBC/PKCS5Padding")
+ val cipher = Cipher.getInstance("AES/CBC/NoPadding")
val secretKey = SecretKeySpec(key.toByteArray(Charsets.UTF_8), "AES")
cipher.init(Cipher.DECRYPT_MODE, secretKey, ix)
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
@@ -233,14 +231,15 @@ object HtmlParser {
private fun encryptAes(text: String, key: String, iv: String): String {
val ix = IvParameterSpec(iv.toByteArray())
- val cipher = Cipher.getInstance("AES/CBC/PKCS5Padding")
+ val cipher = Cipher.getInstance("AES/CBC/NoPadding")
val secretKey = SecretKeySpec(key.toByteArray(), "AES")
cipher.init(Cipher.ENCRYPT_MODE, secretKey, ix)
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
- Base64.getEncoder().encodeToString(cipher.doFinal(text.toByteArray()))
+ Base64.getEncoder()
+ .encodeToString(cipher.doFinal(text.toByteArray() + Constants.GogoPadding))
} else {
android.util.Base64.encodeToString(
- cipher.doFinal(text.toByteArray()),
+ cipher.doFinal(text.toByteArray() + Constants.GogoPadding),
android.util.Base64.DEFAULT
)
}
@@ -249,36 +248,20 @@ object HtmlParser {
fun parseEncryptAjax(response: String): String {
val document = Jsoup.parse(response)
- val value6 = document.getElementsByAttributeValue("data-name", "ts").attr("data-value")
- val value5 = document.getElementsByAttributeValue("name", "crypto").attr("content")
- val value1 = decryptAES(
- document.getElementsByAttributeValue("data-name", "crypto").attr("data-value"),
- URLDecoder.decode(value6 + value6, Charsets.UTF_8.name()),
- URLDecoder.decode(value6, Charsets.UTF_8.name())
- )
- val value4 = decryptAES(
- value5,
- URLDecoder.decode(value1, Charsets.UTF_8.name()),
- URLDecoder.decode(value6, Charsets.UTF_8.name())
- )
- val value2 = RandomStringUtils.randomAlphanumeric(16)
- val value3 = URLDecoder.decode(value4, Charsets.UTF_8.name()).toString()
- val encrypted = encryptAes(
- value4.removeRange(value4.indexOf("&"), value4.length),
- URLDecoder.decode(value1, Charsets.UTF_8.name()),
- URLDecoder.decode(value2, Charsets.UTF_8.name())
- )
- return "id=" + encrypted + "&time=" + "00" + value2 + "00" + value3.substring(
- value3.indexOf(
- "&"
- )
- )
+ val value2 = document.select("script[data-name='crypto']").attr("data-value")
+ val decryptkey =
+ decryptAES(value2, Constants.GogoSecretkey, Constants.GogoSecretIV).replaceAfter(
+ "&",
+ ""
+ ).removeSuffix("&")
+ val encrypted = encryptAes(decryptkey, Constants.GogoSecretkey, Constants.GogoSecretIV)
+ return "id=$encrypted"
}
fun parseMediaUrl(response: String): EpisodeInfo {
val mediaUrl: String?
val document = Jsoup.parse(response)
- val info = document?.getElementsByClass("vidcdn")?.first()?.select("a")
+ val info = document?.getElementsByClass("anime")?.first()?.select("a")
mediaUrl = info?.attr("data-video").toString()
val nextEpisodeUrl =
document.getElementsByClass("anime_video_body_episodes_r")?.select("a")?.first()
@@ -297,8 +280,14 @@ object HtmlParser {
fun parseEncryptedUrls(response: String): ArrayList {
val urls: ArrayList = ArrayList()
var i = 0
- val res = JSONObject(response).getJSONArray("source")
- Log.e("resu,", res.toString())
+ var crackit = JSONObject(response).getString("data")
+ crackit = decryptAES(
+ crackit,
+ Constants.GogoSecretkey,
+ Constants.GogoSecretIV
+ ).replace("""o"
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ app:layout_constraintTop_toTopOf="parent"
+ tools:listitem="@layout/item_profile_card" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_profile_card.xml b/app/src/main/res/layout/item_profile_card.xml
new file mode 100644
index 00000000..09dc9fa2
--- /dev/null
+++ b/app/src/main/res/layout/item_profile_card.xml
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/item_profile_header.xml b/app/src/main/res/layout/item_profile_header.xml
new file mode 100644
index 00000000..82919a4f
--- /dev/null
+++ b/app/src/main/res/layout/item_profile_header.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_today_selection.xml b/app/src/main/res/layout/item_today_selection.xml
index a1fe095f..7dae3a62 100644
--- a/app/src/main/res/layout/item_today_selection.xml
+++ b/app/src/main/res/layout/item_today_selection.xml
@@ -6,7 +6,7 @@
+ type="com.kl3jvi.animity.ui.adapters.homeAdapter.HomeRecyclerViewItem.Anime" />
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index c9464e33..a20e6848 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -13,4 +13,5 @@
20dp
5dp
10dp
+ 32dp
\ No newline at end of file
diff --git a/app/src/main/res/values/integers.xml b/app/src/main/res/values/integers.xml
index 418a2980..60b0fa3f 100644
--- a/app/src/main/res/values/integers.xml
+++ b/app/src/main/res/values/integers.xml
@@ -1,4 +1,4 @@
- 300
+ 200
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 5f351cfc..3b23d219 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -82,5 +82,6 @@
shared_anime_image
Player Settings
Donate Creator
+ Connecting, Please Wait!
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index 8862128f..d166fb6b 100644
--- a/build.gradle
+++ b/build.gradle
@@ -8,14 +8,14 @@ buildscript {
jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:7.1.1'
+ classpath 'com.android.tools.build:gradle:7.1.2'
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10'
classpath "com.google.dagger:hilt-android-gradle-plugin:2.40.5"
classpath 'com.google.gms:google-services:4.3.10'
classpath 'com.google.firebase:firebase-crashlytics-gradle:2.8.1'
// classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:0.13.4'
- def nav_version = "2.3.5"
+ def nav_version = '2.4.1'
classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"