Skip to content

Commit

Permalink
Major Commit - 0.9.6
Browse files Browse the repository at this point in the history
 - Updated A{I to Support New Release Format
 - Updated dependencies
 - Minor Bug Fixes
  • Loading branch information
Sher1234 committed Jan 5, 2021
1 parent 27ba7b8 commit 8d74da5
Show file tree
Hide file tree
Showing 21 changed files with 168 additions and 93 deletions.
2 changes: 1 addition & 1 deletion .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ an!me implements number of open source projects listed bellow:

#### Release Updates
```
Streamlined to WebsiteAPI changes for batches, Updated Dependencies Major Commit - Jan 05, 2021
Migrated to SubsPlease [Full Support], Updated Dependencies & UI Major Commit - Nov 30, 2020
Minor UI Tweaks, Fixed Release View (Horrible), Updated Dependencies Major Commit - June 28, 2020
Minor UI Tweaks, Enabled MAL Anime (Search & View) | Beta Major Commit - June 24, 2020
Expand Down
36 changes: 18 additions & 18 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,10 @@ android {
defaultConfig {
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
applicationId = "info.horriblesubs.sher"
versionName = "1.0.0-alpha0"
versionName = "1.0.0-alpha1"
targetSdkVersion(30)
minSdkVersion(21)
versionCode = 95
versionCode = 96

buildConfigField("String", "BUILD_TIME", "\"$buildTime\"")
}
Expand Down Expand Up @@ -84,40 +84,40 @@ dependencies {
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.2")

//kotlin
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.20")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.21")

//androidx.lifecycle
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.0-beta01")
implementation("androidx.lifecycle:lifecycle-common-java8:2.3.0-beta01")
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.3.0-beta01")
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.0-rc01")
implementation("androidx.lifecycle:lifecycle-common-java8:2.3.0-rc01")
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.3.0-rc01")
implementation("androidx.lifecycle:lifecycle-extensions:2.2.0")

//androidx.*
implementation("androidx.recyclerview:recyclerview-selection:1.1.0-rc03")
implementation("androidx.constraintlayout:constraintlayout:2.0.4")
implementation("androidx.recyclerview:recyclerview:1.2.0-alpha06")
implementation("androidx.recyclerview:recyclerview:1.2.0-beta01")
implementation("androidx.annotation:annotation:1.2.0-alpha01")
implementation("androidx.viewpager2:viewpager2:1.1.0-alpha01")
implementation("androidx.appcompat:appcompat:1.3.0-alpha02")
implementation("androidx.core:core-ktx:1.5.0-alpha05")

//androidx.room
implementation("androidx.room:room-runtime:2.3.0-alpha03")
implementation("androidx.room:room-guava:2.3.0-alpha03")
implementation("androidx.room:room-ktx:2.3.0-alpha03")
kapt("androidx.room:room-compiler:2.3.0-alpha03")
implementation("androidx.room:room-runtime:2.3.0-alpha04")
implementation("androidx.room:room-guava:2.3.0-alpha04")
implementation("androidx.room:room-ktx:2.3.0-alpha04")
kapt("androidx.room:room-compiler:2.3.0-alpha04")

//com.google.android.material
implementation("com.google.android.material:material:1.3.0-alpha03")
implementation("com.google.android.material:material:1.3.0-beta01")

//com.google.firebase
implementation("com.google.firebase:firebase-analytics:18.0.0")
implementation("com.google.firebase:firebase-messaging:21.0.0")
implementation("com.google.firebase:firebase-messaging:21.0.1")
implementation("com.google.firebase:firebase-core:18.0.0")

//com.google.android
implementation("com.google.android.gms:play-services-ads:19.5.0")
implementation("com.google.android.play:core:1.8.3")
implementation("com.google.android.gms:play-services-ads:19.6.0")
implementation("com.google.android.play:core:1.9.0")

//bumptech.glide
implementation("com.github.bumptech.glide:glide:4.11.0")
Expand All @@ -134,9 +134,9 @@ dependencies {
implementation("com.squareup.retrofit2:converter-gson:2.9.0")

//androidx.paging
implementation("androidx.paging:paging-guava:3.0.0-alpha09")
implementation("androidx.paging:paging-runtime-ktx:3.0.0-alpha09")
testImplementation("androidx.paging:paging-common-ktx:3.0.0-alpha09")
implementation("androidx.paging:paging-guava:3.0.0-alpha11")
implementation("androidx.paging:paging-runtime-ktx:3.0.0-alpha11")
testImplementation("androidx.paging:paging-common-ktx:3.0.0-alpha11")

// implementation("pl.droidsonroids.gif:android-gif-drawable:1.2.20")

Expand Down
Binary file modified app/release/app-release.aab
Binary file not shown.
Binary file modified app/release/app-release.apk
Binary file not shown.
9 changes: 5 additions & 4 deletions app/release/output-metadata.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"version": 2,
"version": 3,
"artifactType": {
"type": "APK",
"kind": "Directory"
Expand All @@ -10,9 +10,10 @@
{
"type": "SINGLE",
"filters": [],
"versionCode": 95,
"versionName": "1.0.0-alpha0",
"versionCode": 96,
"versionName": "1.0.0-alpha1",
"outputFile": "app-release.apk"
}
]
],
"elementType": "File"
}
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import info.horriblesubs.sher.data.RepositoryResult
import info.horriblesubs.sher.data.cache.*
import info.horriblesubs.sher.data.subsplease.SubsPleaseCache.FileType
import info.horriblesubs.sher.data.subsplease.api.getShowDetail
import info.horriblesubs.sher.data.subsplease.api.model.ItemRelease
import info.horriblesubs.sher.data.subsplease.api.model.ItemReleasePage
import info.horriblesubs.sher.data.subsplease.api.model.ItemShow
import info.horriblesubs.sher.data.subsplease.api.timezone
import kotlinx.coroutines.*
Expand All @@ -20,10 +20,10 @@ import java.time.format.DateTimeFormatter

class ShowRepository {

private val rReleases = SubsPleaseCache<LinkedHashMap<String, ItemRelease>>(FileType(FileType.SHOW))
private val rReleases = SubsPleaseCache<ItemReleasePage>(FileType(FileType.SHOW))
private val rDetail = SubsPleaseCache<ItemShow>(FileType(FileType.SHOW))

val liveResourceReleases = MutableLiveData<RepositoryResult<LinkedHashMap<String, ItemRelease>>>()
val liveResourceReleases = MutableLiveData<RepositoryResult<ItemReleasePage>>()
val liveResourceDetail = MutableLiveData<RepositoryResult<ItemShow>>()
val liveResourceReleasesTime = MutableLiveData<ZonedDateTime>()
val liveResourceDetailTime = MutableLiveData<ZonedDateTime>()
Expand Down Expand Up @@ -208,6 +208,6 @@ class ShowRepository {
class ShowResult(time: String?, t: ItemShow?):
RepoResut<ItemShow>(time ?: "", t)

class ReleaseResult(time: String?, t: LinkedHashMap<String, ItemRelease>?):
RepoResut<LinkedHashMap<String, ItemRelease>>(time ?: "", t)
class ReleaseResult(time: String?, t: ItemReleasePage?):
RepoResut<ItemReleasePage>(time ?: "", t)
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ interface SubsPleaseApi {
suspend fun getShowReleases(
@Query(value = "tz") timezone: String,
@Query(value = "sid") sid: String
): LinkedHashMap<String, ItemRelease>?
): ItemReleasePage?

@GET("api/?f=schedule")
suspend fun getSchedule(@Query(value = "tz") timezone: String): ItemSchedule?
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package info.horriblesubs.sher.data.subsplease.api.model

data class ItemReleasePage(
var episode: LinkedHashMap<String, ItemRelease>? = null,
var batch: LinkedHashMap<String, ItemRelease>? = null
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
package info.horriblesubs.sher.libs.preference.prefs

import info.horriblesubs.sher.App
import info.horriblesubs.sher.libs.preference.model.BasePreference
import java.io.File

object AppCachePreference: BasePreference<String>() {

override val key: String get() = "app_cache"
override val type: Int get() = DEFAULT
override val defaultValue = "0"
override var value = "0"
get() {
var size = 0F
size += getDirSize(App.get().externalCacheDir)
size += getDirSize(App.get().cacheDir)
val float = ((size /1024)/1024)
return "$float"
}

init {
summaryProvider = object : TextProvider<String> {
override fun provideText(preference: BasePreference<String>): String =
"Tap to clear ${(preference as AppCachePreference).value}MB of application cache."
}
title = "Reset Application Cache"
}

private fun getDirSize(dir: File?): Float {
var size = 0F
dir?.listFiles()?.forEach {
size += if (it != null && it.isDirectory) getDirSize(it)
else if (it != null && it.isFile) it.length().toFloat()
else 0F
}
return size
}

fun deleteCache() = try {
deleteDir(App.get().externalCacheDir)
deleteDir(App.get().cacheDir)
true
} catch (e: Exception) {
e.printStackTrace()
false
}

private fun deleteDir(dir: File?) {
when {
dir?.isDirectory == true -> {
(dir.list() ?: arrayOf()).forEach {
deleteDir(File(dir, it))
}
dir.delete()
}
dir?.isFile == true -> dir.delete()
}
}


override fun migrate() {
deleteCache()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ object BuildDatePreference: BasePreference<String>() {
val time = ZonedDateTime.of(LocalDateTime.parse(value), ZoneOffset.UTC)
.withZoneSameInstant(ZoneId.systemDefault())
summaryProvider = object: TextProvider<String> {
override fun provideText(preference: BasePreference<String>): String? {
override fun provideText(preference: BasePreference<String>): String {
return (if (TimeLeftPreference.value) getRelativeTime(ZonedDateTime.now(), time)
else TimeFormatPreference.format(time)) ?: value
}
Expand Down
13 changes: 5 additions & 8 deletions app/src/main/java/info/horriblesubs/sher/ui/a/ScreenA.kt
Original file line number Diff line number Diff line change
Expand Up @@ -77,13 +77,10 @@ class ScreenA: AppCompatActivity(), InstallStateUpdatedListener {

private fun onPlayStoreUpdateCheck() {
manager.registerListener(this)
manager.appUpdateInfo?.addOnCompleteListener {
if (it?.isSuccessful == true) {
if (it.result?.updateAvailability() == UPDATE_AVAILABLE &&
it.result?.isUpdateTypeAllowed(FLEXIBLE) == true)
manager.startUpdateFlowForResult(it.result, FLEXIBLE, this, UPDATE_CHECK)
else message.value = "Starting..."
} else message.value = "Starting..."
manager.appUpdateInfo.addOnCompleteListener {
if (it.isSuccessful && it.result.updateAvailability() == UPDATE_AVAILABLE && it.result.isUpdateTypeAllowed(FLEXIBLE))
manager.startUpdateFlowForResult(it.result, FLEXIBLE, this, UPDATE_CHECK)
else message.value = "Starting..."
}
}

Expand Down Expand Up @@ -123,7 +120,7 @@ class ScreenA: AppCompatActivity(), InstallStateUpdatedListener {
message.value = "Checking for update..."
}

override fun onStateUpdate(state: InstallState?) = when (state?.installStatus()) {
override fun onStateUpdate(state: InstallState) = when (state.installStatus()) {
InstallStatus.DOWNLOADED -> {
AlertDialog.Builder(this).apply {
title = "Update App"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,8 @@ class SettingsFragment: Fragment(), OnPreferenceChangeListener {
ThemePreference, MarkedPreference,
GroupTitlePreference("Others"),
PrivacyPolicyPreference, GithubPreference,
BuildDatePreference, VersionPreference
BuildDatePreference, VersionPreference,
AppCachePreference
)
}

Expand All @@ -71,10 +72,15 @@ class SettingsFragment: Fragment(), OnPreferenceChangeListener {
context?.toast("Fixing notification id...")
}
}
is AppCachePreference -> {
context.toast("Deleting ${preference.value} B of cache...")
preference.deleteCache()
}
is ThemePreference -> {
AppCompatDelegate.setDefaultNightMode(preference.value)
context?.toast(preference.summary ?: "")
}
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import android.os.Bundle
import android.view.View
import info.horriblesubs.sher.R
import info.horriblesubs.sher.data.subsplease.api.model.ItemRelease
import info.horriblesubs.sher.data.subsplease.api.model.ItemReleasePage
import info.horriblesubs.sher.functions.getRelativeTime
import info.horriblesubs.sher.libs.preference.prefs.TimeFormatPreference
import info.horriblesubs.sher.libs.preference.prefs.TimeLeftPreference
Expand All @@ -27,7 +28,7 @@ class NewReleaseFragment: BaseFragment(), OnItemClickListener<ItemRelease> {
super.onViewCreated(view, savedInstanceState)
view.recyclerView?.setGridLayoutAdapter(adapter, 4)
model.episodes.observe(viewLifecycleOwner) {
it?.value?.let { list -> onResetView(episodes = list) }
onResetView(episodes = getMap(it?.value))
}
model.episodesTime.observe(viewLifecycleOwner) {
view.lastUpdatedText?.text = (if (TimeLeftPreference.value)
Expand All @@ -36,8 +37,15 @@ class NewReleaseFragment: BaseFragment(), OnItemClickListener<ItemRelease> {
}
}

private fun getMap(page: ItemReleasePage?): LinkedHashMap<String, ItemRelease> {
val map = LinkedHashMap<String, ItemRelease>()
page?.batch?.let { map.putAll(it) }
page?.episode?.let { map.putAll(it) }
return map
}

private fun onResetView(
episodes: HashMap<String, ItemRelease> = model.episodes.value?.value ?: hashMapOf()
episodes: LinkedHashMap<String, ItemRelease> = getMap(model.episodes.value?.value)
) = if (episodes.isNotEmpty()) setAdapter(episodes) else {
view?.recyclerView?.gone
view?.textView?.visible
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,8 @@ class ExternalLinksFragment: BaseFragment(), OnItemClickListener<String> {
when (position) {
0 -> SearchAnimeActivity.startSearchAnimeActivity(context, t)
else -> {
val url = t
if (!url.isNullOrBlank())
startBrowser(context, url)
if (!t.isNullOrBlank())
startBrowser(context, t)
}
}
}
Expand Down
Loading

0 comments on commit 8d74da5

Please sign in to comment.