Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fae958f6ef | ||
|
|
d8db89326f | ||
|
|
3804896788 | ||
|
|
4aedea7e15 | ||
|
|
ed89d76488 | ||
|
|
bbd43b51e3 | ||
|
|
a6a392c7bf | ||
|
|
08f92f9614 |
@@ -13,8 +13,9 @@ android {
|
||||
applicationId 'org.koitharu.kotatsu'
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 30
|
||||
versionCode 365
|
||||
versionName '1.1'
|
||||
versionCode 367
|
||||
versionName '1.1.2'
|
||||
generatedDensities = []
|
||||
|
||||
kapt {
|
||||
arguments {
|
||||
@@ -66,7 +67,7 @@ dependencies {
|
||||
|
||||
implementation 'androidx.core:core-ktx:1.5.0'
|
||||
implementation 'androidx.activity:activity-ktx:1.2.3'
|
||||
implementation 'androidx.fragment:fragment-ktx:1.3.4'
|
||||
implementation 'androidx.fragment:fragment-ktx:1.3.5'
|
||||
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.1'
|
||||
implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1'
|
||||
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.3.1'
|
||||
@@ -93,7 +94,7 @@ dependencies {
|
||||
implementation 'com.hannesdorfmann:adapterdelegates4-kotlin-dsl:4.3.0'
|
||||
implementation 'com.hannesdorfmann:adapterdelegates4-kotlin-dsl-viewbinding:4.3.0'
|
||||
|
||||
implementation 'io.insert-koin:koin-android:3.1.0'
|
||||
implementation 'io.insert-koin:koin-android:3.1.2'
|
||||
implementation 'io.coil-kt:coil-base:1.2.2'
|
||||
implementation 'com.davemorrissey.labs:subsampling-scale-image-view-androidx:3.10.0'
|
||||
implementation 'com.github.solkin:disk-lru-cache:1.2'
|
||||
@@ -102,5 +103,5 @@ dependencies {
|
||||
|
||||
testImplementation 'junit:junit:4.13.2'
|
||||
testImplementation 'org.json:json:20210307'
|
||||
testImplementation 'io.insert-koin:koin-test-junit4:3.1.0'
|
||||
testImplementation 'io.insert-koin:koin-test-junit4:3.1.2'
|
||||
}
|
||||
@@ -59,12 +59,12 @@ abstract class BaseActivity<B : ViewBinding> : AppCompatActivity(), OnApplyWindo
|
||||
this.binding = binding
|
||||
super.setContentView(binding.root)
|
||||
(binding.root.findViewById<View>(R.id.toolbar) as? Toolbar)?.let(this::setSupportActionBar)
|
||||
val params = (binding.root.findViewById<View>(R.id.toolbar) as? Toolbar)?.layoutParams as AppBarLayout.LayoutParams
|
||||
val params = (binding.root.findViewById<View>(R.id.toolbar) as? Toolbar)?.layoutParams as? AppBarLayout.LayoutParams
|
||||
ViewCompat.setOnApplyWindowInsetsListener(binding.root, this)
|
||||
if (get<AppSettings>().isToolbarHideWhenScrolling) {
|
||||
params.scrollFlags = SCROLL_FLAG_SCROLL or SCROLL_FLAG_ENTER_ALWAYS
|
||||
params?.scrollFlags = SCROLL_FLAG_SCROLL or SCROLL_FLAG_ENTER_ALWAYS
|
||||
} else {
|
||||
params.scrollFlags = SCROLL_FLAG_NO_SCROLL
|
||||
params?.scrollFlags = SCROLL_FLAG_NO_SCROLL
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -166,6 +166,7 @@ class AppSettings private constructor(private val prefs: SharedPreferences) :
|
||||
const val KEY_LOCAL_STORAGE = "local_storage"
|
||||
const val KEY_READER_SWITCHERS = "reader_switchers"
|
||||
const val KEY_TRACK_SOURCES = "track_sources"
|
||||
const val KEY_TRACK_WARNING = "track_warning"
|
||||
const val KEY_APP_UPDATE = "app_update"
|
||||
const val KEY_APP_UPDATE_AUTO = "app_update_auto"
|
||||
const val KEY_TRACKER_NOTIFICATIONS = "tracker_notifications"
|
||||
|
||||
@@ -220,7 +220,7 @@ class ReaderActivity : BaseFullscreenActivity<ActivityReaderBinding>(),
|
||||
}
|
||||
|
||||
override fun onGridTouch(area: Int) {
|
||||
controlDelegate.onGridTouch(area)
|
||||
controlDelegate.onGridTouch(area, binding.container)
|
||||
}
|
||||
|
||||
override fun onProcessTouch(rawX: Int, rawY: Int): Boolean {
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package org.koitharu.kotatsu.reader.ui
|
||||
|
||||
import android.view.KeyEvent
|
||||
import android.view.SoundEffectConstants
|
||||
import android.view.View
|
||||
import androidx.lifecycle.LifecycleCoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.flow.*
|
||||
@@ -30,18 +32,27 @@ class ReaderControlDelegate(
|
||||
}.launchIn(scope)
|
||||
}
|
||||
|
||||
fun onGridTouch(area: Int) {
|
||||
fun onGridTouch(area: Int, view: View) {
|
||||
when (area) {
|
||||
GridTouchHelper.AREA_CENTER -> {
|
||||
listener.toggleUiVisibility()
|
||||
view.playSoundEffect(SoundEffectConstants.CLICK)
|
||||
}
|
||||
GridTouchHelper.AREA_TOP -> if (isTapSwitchEnabled) {
|
||||
listener.switchPageBy(-1)
|
||||
view.playSoundEffect(SoundEffectConstants.NAVIGATION_UP)
|
||||
}
|
||||
GridTouchHelper.AREA_TOP,
|
||||
GridTouchHelper.AREA_LEFT -> if (isTapSwitchEnabled) {
|
||||
listener.switchPageBy(-1)
|
||||
view.playSoundEffect(SoundEffectConstants.NAVIGATION_LEFT)
|
||||
}
|
||||
GridTouchHelper.AREA_BOTTOM -> if (isTapSwitchEnabled) {
|
||||
listener.switchPageBy(1)
|
||||
view.playSoundEffect(SoundEffectConstants.NAVIGATION_DOWN)
|
||||
}
|
||||
GridTouchHelper.AREA_BOTTOM,
|
||||
GridTouchHelper.AREA_RIGHT -> if (isTapSwitchEnabled) {
|
||||
listener.switchPageBy(1)
|
||||
view.playSoundEffect(SoundEffectConstants.NAVIGATION_RIGHT)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,9 @@ import android.content.Intent
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.provider.Settings
|
||||
import android.text.style.URLSpan
|
||||
import androidx.core.text.buildSpannedString
|
||||
import androidx.core.text.inSpans
|
||||
import androidx.preference.MultiSelectListPreference
|
||||
import androidx.preference.Preference
|
||||
import org.koitharu.kotatsu.R
|
||||
@@ -19,6 +22,17 @@ class TrackerSettingsFragment : BasePreferenceFragment(R.string.new_chapters_che
|
||||
|
||||
findPreference<MultiSelectListPreference>(AppSettings.KEY_TRACK_SOURCES)
|
||||
?.summaryProvider = MultiSummaryProvider(R.string.dont_check)
|
||||
val warningPreference = findPreference<Preference>(AppSettings.KEY_TRACK_WARNING)
|
||||
if (warningPreference != null) {
|
||||
warningPreference.summary = buildSpannedString {
|
||||
append(getString(R.string.tracker_warning))
|
||||
append(" ")
|
||||
inSpans(URLSpan("https://dontkillmyapp.com/")) {
|
||||
append(getString(R.string.read_more))
|
||||
}
|
||||
}
|
||||
warningPreference
|
||||
}
|
||||
}
|
||||
|
||||
override fun onPreferenceTreeClick(preference: Preference?): Boolean {
|
||||
|
||||
@@ -1,27 +1,41 @@
|
||||
package org.koitharu.kotatsu.settings.backup
|
||||
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Toast
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.core.view.isVisible
|
||||
import org.koin.androidx.viewmodel.ext.android.viewModel
|
||||
import org.koitharu.kotatsu.R
|
||||
import org.koitharu.kotatsu.base.ui.AlertDialogFragment
|
||||
import org.koitharu.kotatsu.databinding.DialogProgressBinding
|
||||
import org.koitharu.kotatsu.utils.ShareHelper
|
||||
import org.koitharu.kotatsu.utils.ext.getDisplayMessage
|
||||
import org.koitharu.kotatsu.utils.progress.Progress
|
||||
import java.io.File
|
||||
import java.io.FileOutputStream
|
||||
|
||||
class BackupDialogFragment : AlertDialogFragment<DialogProgressBinding>() {
|
||||
|
||||
private val viewModel by viewModel<BackupViewModel>(mode = LazyThreadSafetyMode.NONE)
|
||||
|
||||
private var backup: File? = null
|
||||
private val saveFileContract =
|
||||
registerForActivityResult(ActivityResultContracts.CreateDocument()) { uri ->
|
||||
val file = backup
|
||||
if (uri != null && file != null) {
|
||||
saveBackup(file, uri)
|
||||
} else {
|
||||
dismiss()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onInflateView(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?
|
||||
container: ViewGroup?,
|
||||
) = DialogProgressBinding.inflate(inflater, container, false)
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
@@ -60,8 +74,22 @@ class BackupDialogFragment : AlertDialogFragment<DialogProgressBinding>() {
|
||||
}
|
||||
|
||||
private fun onBackupDone(file: File) {
|
||||
ShareHelper(context ?: return).shareBackup(file)
|
||||
dismiss()
|
||||
this.backup = file
|
||||
saveFileContract.launch(file.name)
|
||||
}
|
||||
|
||||
private fun saveBackup(file: File, output: Uri) {
|
||||
try {
|
||||
requireContext().contentResolver.openFileDescriptor(output, "w")?.use { fd ->
|
||||
FileOutputStream(fd.fileDescriptor).use {
|
||||
it.write(file.readBytes())
|
||||
}
|
||||
}
|
||||
Toast.makeText(requireContext(), R.string.backup_saved, Toast.LENGTH_LONG).show()
|
||||
dismiss()
|
||||
} catch (e: Exception) {
|
||||
onError(e)
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
package org.koitharu.kotatsu.settings.utils
|
||||
|
||||
import android.content.Context
|
||||
import android.text.method.LinkMovementMethod
|
||||
import android.util.AttributeSet
|
||||
import android.widget.TextView
|
||||
import androidx.preference.Preference
|
||||
import androidx.preference.PreferenceViewHolder
|
||||
|
||||
class LinksPreference @JvmOverloads constructor(
|
||||
context: Context?,
|
||||
attrs: AttributeSet? = null,
|
||||
defStyleAttr: Int = androidx.preference.R.attr.preferenceStyle,
|
||||
defStyleRes: Int = 0,
|
||||
) : Preference(context, attrs, defStyleAttr, defStyleRes) {
|
||||
|
||||
|
||||
override fun onBindViewHolder(holder: PreferenceViewHolder) {
|
||||
super.onBindViewHolder(holder)
|
||||
val summaryView = holder.findViewById(android.R.id.summary) as TextView
|
||||
summaryView.movementMethod = LinkMovementMethod.getInstance()
|
||||
}
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="?attr/colorControlNormal"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#000"
|
||||
android:pathData="M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9M12,4.5C17,4.5 21.27,7.61 23,12C21.27,16.39 17,19.5 12,19.5C7,19.5 2.73,16.39 1,12C2.73,7.61 7,4.5 12,4.5M3.18,12C4.83,15.36 8.24,17.5 12,17.5C15.76,17.5 19.17,15.36 20.82,12C19.17,8.64 15.76,6.5 12,6.5C8.24,6.5 4.83,8.64 3.18,12Z" />
|
||||
</vector>
|
||||
@@ -1,7 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:enterFadeDuration="@android:integer/config_mediumAnimTime"
|
||||
android:exitFadeDuration="@android:integer/config_mediumAnimTime">
|
||||
<item android:drawable="@drawable/ic_eye" android:state_checked="true" />
|
||||
<item android:drawable="@drawable/ic_eye_off" android:state_checked="false" />
|
||||
</selector>
|
||||
@@ -1,13 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<vector
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:tint="?attr/colorControlNormal"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#000"
|
||||
android:fillAlpha="0.3"
|
||||
android:pathData="M2,5.27L3.28,4L20,20.72L18.73,22L15.65,18.92C14.5,19.3 13.28,19.5 12,19.5C7,19.5 2.73,16.39 1,12C1.69,10.24 2.79,8.69 4.19,7.46L2,5.27M12,9A3,3 0 0,1 15,12C15,12.35 14.94,12.69 14.83,13L11,9.17C11.31,9.06 11.65,9 12,9M12,4.5C17,4.5 21.27,7.61 23,12C22.18,14.08 20.79,15.88 19,17.19L17.58,15.76C18.94,14.82 20.06,13.54 20.82,12C19.17,8.64 15.76,6.5 12,6.5C10.91,6.5 9.84,6.68 8.84,7L7.3,5.47C8.74,4.85 10.33,4.5 12,4.5M3.18,12C4.83,15.36 8.24,17.5 12,17.5C12.69,17.5 13.37,17.43 14,17.29L11.72,15C10.29,14.85 9.15,13.71 9,12.28L5.6,8.87C4.61,9.72 3.78,10.78 3.18,12Z" />
|
||||
</vector>
|
||||
@@ -1,17 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<TextView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?listPreferredItemHeightSmall"
|
||||
android:background="?selectableItemBackground"
|
||||
android:drawablePadding="20dp"
|
||||
android:gravity="center_vertical"
|
||||
android:paddingStart="?listPreferredItemPaddingStart"
|
||||
android:paddingEnd="?listPreferredItemPaddingEnd"
|
||||
android:textAppearance="?textAppearanceListItemSmall"
|
||||
android:textColor="?android:textColorPrimary"
|
||||
android:theme="@style/AppPopupTheme"
|
||||
tools:text="@tools:sample/full_names"
|
||||
app:drawableStartCompat="@drawable/ic_history" />
|
||||
3
app/src/main/res/raw/keep.xml
Normal file
3
app/src/main/res/raw/keep.xml
Normal file
@@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools"
|
||||
tools:keep="@drawable/ic_denied_large,@drawable/ic_alert_outline,@drawable/ic_error_large" />
|
||||
@@ -75,7 +75,6 @@
|
||||
<string name="webtoon">Манхва</string>
|
||||
<string name="read_mode">Рэжым чытання</string>
|
||||
<string name="grid_size">Памер табліцы</string>
|
||||
<string name="search_results_on_s">Вынікі пошуку па %s</string>
|
||||
<string name="search_on_s">Пошук па %s</string>
|
||||
<string name="delete_manga">Выдаліць мангу</string>
|
||||
<string name="reader_settings">Настаўленні чытання</string>
|
||||
@@ -96,7 +95,6 @@
|
||||
<string name="internal_storage">Унутраны назапашвальнік</string>
|
||||
<string name="external_storage">Знешняе сховішча</string>
|
||||
<string name="domain">Дамен</string>
|
||||
<string name="_default">Безумоўна</string>
|
||||
<string name="application_update">Правяраць абнаўленне прыкладання</string>
|
||||
<string name="app_update_available">Даступна абнаўленне прыкладання</string>
|
||||
<string name="show_notification_app_update">Паказваць апавяшчэнне пры наяўнасці новай версіі</string>
|
||||
|
||||
@@ -74,7 +74,6 @@
|
||||
<string name="webtoon">Webtoon</string>
|
||||
<string name="read_mode">Modo de lectura</string>
|
||||
<string name="grid_size">Tamaño de la cuadrícula</string>
|
||||
<string name="search_results_on_s">Resultados de búsqueda en %s</string>
|
||||
<string name="search_on_s">Buscar en %s</string>
|
||||
<string name="delete_manga">Borrar manga</string>
|
||||
<string name="text_delete_local_manga">¿Realmente quieres borrar \"%s\" del almacenamiento local de tu teléfono? \nEsta operación no se puede deshacer.</string>
|
||||
@@ -95,7 +94,6 @@
|
||||
<string name="internal_storage">Almacenamiento interno</string>
|
||||
<string name="external_storage">Almacenamiento externo</string>
|
||||
<string name="domain">Dominio</string>
|
||||
<string name="_default">Por defecto</string>
|
||||
<string name="application_update">Comprobar actualizaciones automáticamente</string>
|
||||
<string name="app_update_available">Una nueva versión de la aplicación está disponible</string>
|
||||
<string name="show_notification_app_update">Mostrar notificación si la actualización está disponible</string>
|
||||
|
||||
@@ -74,7 +74,6 @@
|
||||
<string name="webtoon">Манхва</string>
|
||||
<string name="read_mode">Режим чтения</string>
|
||||
<string name="grid_size">Размер таблицы</string>
|
||||
<string name="search_results_on_s">Результаты поиска по %s</string>
|
||||
<string name="search_on_s">Поиск по %s</string>
|
||||
<string name="delete_manga">Удалить мангу</string>
|
||||
<string name="text_delete_local_manga">Вы уверены, что хотите удалить \"%s\" с устройства? \nЭто действие нельзя будет отменить.</string>
|
||||
@@ -95,7 +94,6 @@
|
||||
<string name="internal_storage">Внутренний накопитель</string>
|
||||
<string name="external_storage">Внешнее хранилище</string>
|
||||
<string name="domain">Домен</string>
|
||||
<string name="_default">По умолчанию</string>
|
||||
<string name="application_update">Проверять обновление приложения</string>
|
||||
<string name="app_update_available">Доступно обновление приложения</string>
|
||||
<string name="show_notification_app_update">Показывать уведомление при наличии новой версии</string>
|
||||
@@ -211,4 +209,7 @@
|
||||
<string name="languages">Языки</string>
|
||||
<string name="welcome">Добро пожаловать</string>
|
||||
<string name="text_clear_search_history_prompt">Вы действительно хотите удалить все недавние поисковые запросы? Это действие не может быть отменено.</string>
|
||||
<string name="backup_saved">Резервная копия успешно сохранена</string>
|
||||
<string name="tracker_warning">Некоторые производители могут изменять поведение системы, нарушая работу фоновых задач.</string>
|
||||
<string name="read_more">Подробнее</string>
|
||||
</resources>
|
||||
@@ -75,7 +75,6 @@
|
||||
<string name="webtoon">Webtoon</string>
|
||||
<string name="read_mode">Read mode</string>
|
||||
<string name="grid_size">Grid size</string>
|
||||
<string name="search_results_on_s">Search results on %s</string>
|
||||
<string name="search_on_s">Search on %s</string>
|
||||
<string name="delete_manga">Delete manga</string>
|
||||
<string name="text_delete_local_manga">Do you really want to delete \"%s\" from your phone\'s local storage? \nThis operation cannot be undone.</string>
|
||||
@@ -96,7 +95,6 @@
|
||||
<string name="internal_storage">Internal storage</string>
|
||||
<string name="external_storage">External storage</string>
|
||||
<string name="domain">Domain</string>
|
||||
<string name="_default">Default</string>
|
||||
<string name="application_update">Check for updates automatically</string>
|
||||
<string name="app_update_available">Application update is available</string>
|
||||
<string name="show_notification_app_update">Show notification if update is available</string>
|
||||
@@ -213,4 +211,7 @@
|
||||
<string name="other">Other</string>
|
||||
<string name="languages">Languages</string>
|
||||
<string name="welcome">Welcome</string>
|
||||
<string name="backup_saved">Backup saved successfully</string>
|
||||
<string name="tracker_warning">Some manufacturers can change the system behavior, which may breaks background tasks.</string>
|
||||
<string name="read_more">Read more</string>
|
||||
</resources>
|
||||
@@ -16,7 +16,7 @@
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<Preference
|
||||
android:icon="@drawable/ic_info_outilne"
|
||||
android:icon="@drawable/ic_info_outline"
|
||||
android:persistent="false"
|
||||
android:selectable="false"
|
||||
android:summary="@string/backup_information"
|
||||
|
||||
@@ -24,4 +24,12 @@
|
||||
android:title="@string/notifications_settings"
|
||||
app:iconSpaceReserved="false" />
|
||||
|
||||
<org.koitharu.kotatsu.settings.utils.LinksPreference
|
||||
android:key="track_warning"
|
||||
android:icon="@drawable/ic_info_outline"
|
||||
android:persistent="false"
|
||||
android:selectable="false"
|
||||
android:summary="@string/tracker_warning"
|
||||
app:allowDividerAbove="true" />
|
||||
|
||||
</PreferenceScreen>
|
||||
@@ -5,7 +5,7 @@ buildscript {
|
||||
mavenCentral()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:4.1.3'
|
||||
classpath 'com.android.tools.build:gradle:4.2.2'
|
||||
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.0'
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
|
||||
6
gradle/wrapper/gradle-wrapper.properties
vendored
6
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,7 +1,7 @@
|
||||
#Mon Mar 29 19:25:53 EEST 2021
|
||||
#Sat Jul 03 12:50:59 EEST 2021
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.3-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-6.9-bin.zip
|
||||
distributionPath=wrapper/dists
|
||||
zipStorePath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
distributionSha256Sum=7faa7198769f872826c8ef4f1450f839ec27f0b4d5d1e51bade63667cbccd205
|
||||
distributionSha256Sum=765442b8069c6bee2ea70713861c027587591c6b1df2c857a23361512560894e
|
||||
|
||||
Reference in New Issue
Block a user