Merge pull request #60 from tom5079/Pupil-25

Pupil-25 Add option to download jpg instead of webp files
This commit is contained in:
Pupil
2020-01-22 11:08:49 +09:00
committed by GitHub
9 changed files with 42 additions and 22 deletions

View File

@@ -19,7 +19,6 @@
package xyz.quaver.pupil.ui.dialog package xyz.quaver.pupil.ui.dialog
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.AlertDialog
import android.content.Context import android.content.Context
import android.os.Bundle import android.os.Bundle
import android.text.Editable import android.text.Editable
@@ -27,6 +26,7 @@ import android.text.TextWatcher
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.widget.ArrayAdapter import android.widget.ArrayAdapter
import androidx.appcompat.app.AlertDialog
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
import kotlinx.android.synthetic.main.dialog_default_query.view.* import kotlinx.android.synthetic.main.dialog_default_query.view.*
import xyz.quaver.pupil.R import xyz.quaver.pupil.R

View File

@@ -137,6 +137,8 @@ class SettingsFragment :
onPositiveButtonClickListener = { newTags -> onPositiveButtonClickListener = { newTags ->
sharedPreferences.edit().putString("default_query", newTags.toString()).apply() sharedPreferences.edit().putString("default_query", newTags.toString()).apply()
summary = newTags.toString() summary = newTags.toString()
dismiss() //This sucks
// TODO: make dialog dissmiss itself :P
} }
}.show() }.show()
} }

View File

@@ -166,6 +166,8 @@ class GalleryDownloader(
fun start() { fun start() {
downloadJob = CoroutineScope(Dispatchers.Default).launch { downloadJob = CoroutineScope(Dispatchers.Default).launch {
val reader = reader!!.await() ?: return@launch val reader = reader!!.await() ?: return@launch
val lowQuality = PreferenceManager.getDefaultSharedPreferences(this@GalleryDownloader)
.getBoolean("low_quality", false)
notificationBuilder.setContentTitle(reader.title) notificationBuilder.setContentTitle(reader.title)
@@ -177,15 +179,15 @@ class GalleryDownloader(
.setProgress(reader.galleryInfo.size, 0, false) .setProgress(reader.galleryInfo.size, 0, false)
.setContentText("0/${reader.galleryInfo.size}") .setContentText("0/${reader.galleryInfo.size}")
reader.galleryInfo.chunked(4).forEachIndexed { chunkIndex, chunked -> reader.galleryInfo.chunked(4).forEachIndexed { chunkIndex, chunk ->
chunked.mapIndexed { i, galleryInfo -> chunk.mapIndexed { i, galleryInfo ->
val index = chunkIndex*4+i val index = chunkIndex*4+i
async(Dispatchers.IO) { async(Dispatchers.IO) {
val url = when(useHiyobi) { val url = when(useHiyobi) {
true -> createImgList(galleryID, reader)[index].path true -> createImgList(galleryID, reader, lowQuality)[index].path
false -> when { false -> when {
(!galleryInfo.hash.isNullOrBlank()) and (galleryInfo.haswebp == 1) -> (!galleryInfo.hash.isNullOrBlank()) && (galleryInfo.haswebp == 1) && lowQuality ->
urlFromUrlFromHash(galleryID, galleryInfo, "webp") urlFromUrlFromHash(galleryID, galleryInfo, "webp")
else -> else ->
urlFromUrlFromHash(galleryID, galleryInfo) urlFromUrlFromHash(galleryID, galleryInfo)

View File

@@ -19,7 +19,6 @@
<ImageView <ImageView
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/nav_header_height" android:layout_height="@dimen/nav_header_height"
android:background="@drawable/side_nav_bar" android:background="@drawable/side_nav_bar"

View File

@@ -118,4 +118,6 @@
<string name="update_download_completed_description">ここをクリックしてアップデートを行えます</string> <string name="update_download_completed_description">ここをクリックしてアップデートを行えます</string>
<string name="settings_beta">ベータチャンネルでアップデートを受信</string> <string name="settings_beta">ベータチャンネルでアップデートを受信</string>
<string name="settings_app_version_description">v%s</string> <string name="settings_app_version_description">v%s</string>
<string name="settings_low_quality">低解像度イメージ</string>
<string name="settings_low_quality_summary">ロード速度とデータ使用料を改善するため低解像度イメージをロード</string>
</resources> </resources>

View File

@@ -118,4 +118,6 @@
<string name="update_download_completed_description">여기를 클릭해서 업데이트를 진행할 수 있습니다</string> <string name="update_download_completed_description">여기를 클릭해서 업데이트를 진행할 수 있습니다</string>
<string name="settings_beta">베타 채널에서 업데이트</string> <string name="settings_beta">베타 채널에서 업데이트</string>
<string name="settings_app_version_description">v%s</string> <string name="settings_app_version_description">v%s</string>
<string name="settings_low_quality">저해상도 이미지</string>
<string name="settings_low_quality_summary">로드 속도와 데이터 사용량을 줄이기 위해 저해상도 이미지를 로드</string>
</resources> </resources>

View File

@@ -140,6 +140,8 @@
<string name="settings_dl_location_removable">Removable Storage</string> <string name="settings_dl_location_removable">Removable Storage</string>
<string name="settings_dl_location_internal">Internal Storage</string> <string name="settings_dl_location_internal">Internal Storage</string>
<string name="settings_dl_location_available">%s available</string> <string name="settings_dl_location_available">%s available</string>
<string name="settings_low_quality">Low quality images</string>
<string name="settings_low_quality_summary">Load low quality images to improve load speed and data usage</string>
<!-- SETTINGS/APP LOCK --> <!-- SETTINGS/APP LOCK -->

View File

@@ -3,12 +3,12 @@
xmlns:app="http://schemas.android.com/apk/res-auto"> xmlns:app="http://schemas.android.com/apk/res-auto">
<Preference <Preference
app:title="@string/settings_app_version_title" app:key="app_version"
app:key="app_version"/> app:title="@string/settings_app_version_title"/>
<SwitchPreferenceCompat <SwitchPreferenceCompat
app:title="@string/settings_beta" app:key="beta"
app:key="beta"/> app:title="@string/settings_beta"/>
<PreferenceCategory <PreferenceCategory
app:title="@string/settings_search_title"> app:title="@string/settings_search_title">
@@ -32,20 +32,25 @@
app:title="@string/settings_storage"> app:title="@string/settings_storage">
<Preference <Preference
app:title="@string/settings_clear_cache" app:key="delete_cache"
app:key="delete_cache"/> app:title="@string/settings_clear_cache"/>
<Preference <Preference
app:title="@string/settings_clear_downloads" app:key="delete_downloads"
app:key="delete_downloads"/> app:title="@string/settings_clear_downloads"/>
<Preference <Preference
app:title="@string/settings_clear_history" app:key="clear_history"
app:key="clear_history"/> app:title="@string/settings_clear_history"/>
<Preference <Preference
app:title="@string/settings_dl_location" app:key="dl_location"
app:key="dl_location"/> app:title="@string/settings_dl_location"/>
<SwitchPreferenceCompat
app:key="dl_low_quality"
app:title="@string/settings_low_quality"
app:summary="@string/settings_low_quality_summary"/>
</PreferenceCategory> </PreferenceCategory>
@@ -53,8 +58,8 @@
app:title="@string/settings_app_lock"> app:title="@string/settings_app_lock">
<Preference <Preference
app:title="@string/settings_app_lock_type" app:key="app_lock"
app:key="app_lock"/> app:title="@string/settings_app_lock_type"/>
</PreferenceCategory> </PreferenceCategory>

View File

@@ -79,5 +79,11 @@ fun getReader(galleryID: Int) : Reader {
return Reader(Reader.Code.HIYOBI, title, galleryInfo) return Reader(Reader.Code.HIYOBI, title, galleryInfo)
} }
fun createImgList(galleryID: Int, reader: Reader) = fun createImgList(galleryID: Int, reader: Reader, lowQuality: Boolean = false) =
if (lowQuality)
reader.galleryInfo.map {
val name = it.name.replace(Regex("/.[^/.]+$"), "") + ".jpg"
Images("$protocol//$hiyobi/data/$galleryID/$name.jpg", galleryID, it.name)
}
else
reader.galleryInfo.map { Images("$protocol//$hiyobi/data/$galleryID/${it.name}", galleryID, it.name) } reader.galleryInfo.map { Images("$protocol//$hiyobi/data/$galleryID/${it.name}", galleryID, it.name) }