Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -87,13 +87,13 @@ android {

dependencies {
//For local developments of arklib-android:
//def arklibVersion = '999'
def arklibVersion = '0.2.6'
def arklibVersion = '999'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just to not forget

//def arklibVersion = '0.3.1'

releaseImplementation "space.taran:arklib:$arklibVersion"
debugImplementation "space.taran:arklib-debug:$arklibVersion"
implementation("dev.arkbuilders:components:0.0.3") {
exclude group: "space.taran", module: "arklib"
releaseImplementation "dev.arkbuilders:arklib:$arklibVersion"
debugImplementation "dev.arkbuilders:arklib-debug:$arklibVersion"
implementation("dev.arkbuilders:components:0.0.5") {
exclude group: "dev.arkbuilders", module: "arklib"
}

//// For local development, you can inject local AAR dependency:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package dev.arkbuilders.navigator.data

import dev.arkbuilders.arklib.ArkFiles
import dev.arkbuilders.arklib.arkFolder
import dev.arkbuilders.navigator.data.preferences.PreferenceKey
import dev.arkbuilders.navigator.data.preferences.Preferences
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import space.taran.arkfilepicker.folders.FoldersRepo
import space.taran.arklib.ArkFiles
import space.taran.arklib.arkFolder
import dev.arkbuilders.navigator.data.preferences.PreferenceKey
import dev.arkbuilders.navigator.data.preferences.Preferences
import java.nio.file.Path
import java.time.OffsetDateTime
import java.time.ZoneOffset
Expand All @@ -33,8 +33,8 @@ class StorageBackup @Inject constructor(
private val today: String = keepDates[0]

private val foldersToIgnore = listOf(
ArkFiles.PREVIEWS_FOLDER,
ArkFiles.THUMBNAILS_FOLDER
ArkFiles.PREVIEWS_STORAGE_FOLDER,
ArkFiles.THUMBNAILS_STORAGE_FOLDER
)
private val filesToIgnore = listOf<String>()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.joinAll
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import space.taran.arklib.domain.stats.StatsEvent
import space.taran.arklib.domain.tags.Tag
import dev.arkbuilders.arklib.data.stats.StatsEvent
import dev.arkbuilders.arklib.user.tags.Tag

class AggregatedStatsStorage(val shards: List<StatsStorage>) : StatsStorage {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.joinAll
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import space.taran.arklib.arkFolder
import space.taran.arklib.arkStats
import space.taran.arklib.domain.index.RootIndex
import space.taran.arklib.domain.stats.StatsEvent
import space.taran.arklib.domain.tags.RootTagsStorage
import dev.arkbuilders.arklib.arkFolder
import dev.arkbuilders.arklib.arkStats
import dev.arkbuilders.arklib.data.index.RootIndex
import dev.arkbuilders.arklib.data.stats.StatsEvent
import dev.arkbuilders.arklib.user.tags.RootTagsStorage
import dev.arkbuilders.navigator.data.preferences.PreferenceKey
import dev.arkbuilders.navigator.data.preferences.Preferences
import dev.arkbuilders.navigator.data.stats.category.StatsCategoryStorage
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package dev.arkbuilders.navigator.data.stats

import space.taran.arklib.domain.stats.StatsEvent
import space.taran.arklib.domain.tags.Tag
import dev.arkbuilders.arklib.data.stats.StatsEvent
import dev.arkbuilders.arklib.user.tags.Tag

interface StatsStorage {
suspend fun init()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package dev.arkbuilders.navigator.data.stats

import kotlinx.coroutines.flow.SharedFlow
import space.taran.arklib.domain.index.ResourceIndex
import space.taran.arklib.domain.index.RootIndex
import space.taran.arklib.domain.stats.StatsEvent
import space.taran.arklib.domain.tags.RootTagsStorage
import space.taran.arklib.domain.tags.TagsStorageRepo
import dev.arkbuilders.arklib.data.index.ResourceIndex
import dev.arkbuilders.arklib.data.index.RootIndex
import dev.arkbuilders.arklib.data.stats.StatsEvent
import dev.arkbuilders.arklib.user.tags.RootTagsStorage
import dev.arkbuilders.arklib.user.tags.TagsStorageRepo
import dev.arkbuilders.navigator.data.preferences.Preferences
import java.nio.file.Path

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ import kotlinx.coroutines.flow.debounce
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.launch
import space.taran.arklib.arkFolder
import space.taran.arklib.arkStats
import space.taran.arklib.domain.stats.StatsEvent
import dev.arkbuilders.arklib.arkFolder
import dev.arkbuilders.arklib.arkStats
import dev.arkbuilders.arklib.data.stats.StatsEvent
import timber.log.Timber
import java.nio.file.Path

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.decodeFromStream
import space.taran.arklib.domain.index.ResourceIndex
import space.taran.arklib.domain.stats.StatsEvent
import space.taran.arklib.domain.tags.TagStorage
import space.taran.arklib.domain.tags.Tag
import dev.arkbuilders.arklib.data.index.ResourceIndex
import dev.arkbuilders.arklib.data.stats.StatsEvent
import dev.arkbuilders.arklib.user.tags.TagStorage
import dev.arkbuilders.arklib.user.tags.Tag
import timber.log.Timber
import java.nio.file.Path
import kotlin.io.path.exists
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.decodeFromStream
import space.taran.arklib.domain.stats.StatsEvent
import space.taran.arklib.domain.tags.Tag
import dev.arkbuilders.arklib.data.stats.StatsEvent
import dev.arkbuilders.arklib.user.tags.Tag
import timber.log.Timber
import java.nio.file.Path
import kotlin.io.path.inputStream
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.decodeFromStream
import space.taran.arklib.domain.stats.StatsEvent
import space.taran.arklib.domain.tags.Tag
import dev.arkbuilders.arklib.data.stats.StatsEvent
import dev.arkbuilders.arklib.user.tags.Tag
import timber.log.Timber
import java.nio.file.Path
import kotlin.io.path.inputStream
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import kotlinx.serialization.Serializable
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.decodeFromStream
import space.taran.arklib.domain.stats.StatsEvent
import space.taran.arklib.domain.tags.Tag
import dev.arkbuilders.arklib.data.stats.StatsEvent
import dev.arkbuilders.arklib.user.tags.Tag
import timber.log.Timber
import java.nio.file.Path
import kotlin.io.path.inputStream
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.MutableSharedFlow
import space.taran.arkfilepicker.folders.FoldersRepo
import space.taran.arklib.domain.Message
import space.taran.arklib.domain.index.ResourceIndexRepo
import space.taran.arklib.domain.meta.MetadataProcessorRepo
import space.taran.arklib.domain.preview.PreviewProcessorRepo
import space.taran.arklib.domain.score.ScoreStorageRepo
import space.taran.arklib.domain.stats.StatsEvent
import space.taran.arklib.domain.tags.TagsStorageRepo
import dev.arkbuilders.arklib.data.Message
import dev.arkbuilders.arklib.data.index.ResourceIndexRepo
import dev.arkbuilders.arklib.data.meta.MetadataProcessorRepo
import dev.arkbuilders.arklib.data.preview.PreviewProcessorRepo
import dev.arkbuilders.arklib.user.score.ScoreStorageRepo
import dev.arkbuilders.arklib.data.stats.StatsEvent
import dev.arkbuilders.arklib.user.tags.TagsStorageRepo
import dev.arkbuilders.navigator.data.preferences.Preferences
import dev.arkbuilders.navigator.data.stats.StatsStorageRepo
import dev.arkbuilders.navigator.data.utils.LogTags.MAIN
Expand Down
Original file line number Diff line number Diff line change
@@ -1,54 +1,57 @@
package dev.arkbuilders.navigator.domain

import androidx.recyclerview.widget.DiffUtil
import dev.arkbuilders.arklib.ResourceId
import dev.arkbuilders.navigator.presentation.screen.gallery.GalleryPresenter
import dev.arkbuilders.navigator.presentation.screen.resources.adapter.ResourceDiffUtilCallback
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.cancel
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import moxy.presenterScope
import java.nio.file.Path
import javax.inject.Inject

class HandleGalleryExternalChangesUseCase @Inject constructor() {
operator fun invoke(
resourcePath: Path,
oldId: ResourceId,
presenter: GalleryPresenter
) = with(presenter) {
presenterScope.launch {
withContext(Dispatchers.Main) {
viewState.setProgressVisibility(true, "Changes detected, indexing")
}

index.updateAll()
val update = index.updateOne(resourcePath, oldId)
val newId = update.added.keys.firstOrNull()

withContext(Dispatchers.Main) {
viewState.notifyResourcesChanged()
}

presenterScope.launch {
metadataStorage.busy.collect { busy ->
if (!busy)
cancel()
}
}.join()
newId?.let {
presenterScope.launch {
metadataStorage.busy.collect { busy ->
if (!busy)
cancel()
}
}.join()
}

val newResourceIds = presenter.resourcesIds.toMutableList()
newResourceIds.apply {
val oldIdIndex = indexOf(oldId)
removeAt(oldIdIndex)
newId?.let { add(oldIdIndex, newId) }
}
presenter.resourcesIds = newResourceIds

val newItems = provideGalleryItems()
if (newItems.isEmpty()) {
galleryItems = provideGalleryItems().toMutableList()
if (galleryItems.isEmpty()) {
onBackClick()
return@launch
}

diffResult = DiffUtil.calculateDiff(
ResourceDiffUtilCallback(
galleryItems.map { it.resource.id },
newItems.map { it.resource.id }
)
)

galleryItems = newItems.toMutableList()

withContext(Dispatchers.Main) {
viewState.updatePagerAdapterWithDiff()
viewState.notifyCurrentItemChanged()
viewState.setProgressVisibility(false)
}
Expand Down
13 changes: 3 additions & 10 deletions app/src/main/java/dev/arkbuilders/navigator/presentation/App.kt
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
package dev.arkbuilders.navigator.presentation

import android.app.Application
import android.os.StrictMode
import dev.arkbuilders.arklib.initArkLib
import dev.arkbuilders.arklib.initRustLogger
import dev.arkbuilders.navigator.BuildConfig
import dev.arkbuilders.navigator.R
import dev.arkbuilders.navigator.data.preferences.PreferenceKey
import dev.arkbuilders.navigator.di.AppComponent
import dev.arkbuilders.navigator.di.DaggerAppComponent
import dev.arkbuilders.navigator.data.preferences.PreferenceKey
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
Expand All @@ -16,8 +17,6 @@ import org.acra.data.StringFormat
import org.acra.ktx.initAcra
import org.acra.sender.HttpSender
import space.taran.arkfilepicker.folders.FoldersRepo
import space.taran.arklib.initArkLib
import space.taran.arklib.initRustLogger
import timber.log.Timber

class App : Application() {
Expand All @@ -29,12 +28,6 @@ class App : Application() {
lateinit var appComponent: AppComponent
private set

init {
if (BuildConfig.DEBUG) {
StrictMode.enableDefaults()
}
}

override fun onCreate() {
super.onCreate()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ import android.view.WindowManager
import org.apache.commons.io.FileUtils
import dev.arkbuilders.navigator.R
import dev.arkbuilders.navigator.databinding.DialogResourceInfoBinding
import space.taran.arklib.domain.index.Resource
import space.taran.arklib.domain.meta.Metadata
import dev.arkbuilders.arklib.data.index.Resource
import dev.arkbuilders.arklib.data.meta.Metadata
import dev.arkbuilders.navigator.presentation.utils.extra.ExtraLoader
import java.nio.file.Path
import kotlin.io.path.absolutePathString
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,16 @@ import kotlinx.coroutines.launch
import moxy.MvpAppCompatDialogFragment
import moxy.ktx.moxyPresenter
import space.taran.arkfilepicker.folders.RootAndFav
import space.taran.arklib.ResourceId
import space.taran.arklib.domain.index.ResourceIndex
import space.taran.arklib.domain.tags.TagStorage
import dev.arkbuilders.arklib.ResourceId
import dev.arkbuilders.arklib.data.index.ResourceIndex
import dev.arkbuilders.arklib.user.tags.TagStorage
import dev.arkbuilders.navigator.R
import dev.arkbuilders.navigator.databinding.DialogEditTagsBinding
import dev.arkbuilders.navigator.data.stats.StatsStorage
import dev.arkbuilders.navigator.presentation.App
import dev.arkbuilders.navigator.presentation.dialog.tagssort.TagsSortDialogFragment
import space.taran.arklib.domain.tags.Tag
import space.taran.arklib.domain.tags.Tags
import dev.arkbuilders.arklib.user.tags.Tag
import dev.arkbuilders.arklib.user.tags.Tags
import dev.arkbuilders.navigator.presentation.utils.placeCursorToEnd
import dev.arkbuilders.navigator.presentation.utils.showKeyboard

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@ import kotlinx.coroutines.launch
import moxy.MvpPresenter
import moxy.presenterScope
import space.taran.arkfilepicker.folders.RootAndFav
import space.taran.arklib.ResourceId
import space.taran.arklib.domain.index.ResourceIndex
import space.taran.arklib.domain.index.ResourceIndexRepo
import space.taran.arklib.domain.stats.StatsEvent
import space.taran.arklib.domain.tags.Tag
import space.taran.arklib.domain.tags.TagStorage
import space.taran.arklib.domain.tags.TagUtils
import space.taran.arklib.domain.tags.TagsStorageRepo
import dev.arkbuilders.arklib.ResourceId
import dev.arkbuilders.arklib.data.index.ResourceIndex
import dev.arkbuilders.arklib.data.index.ResourceIndexRepo
import dev.arkbuilders.arklib.data.stats.StatsEvent
import dev.arkbuilders.arklib.user.tags.Tag
import dev.arkbuilders.arklib.user.tags.TagStorage
import dev.arkbuilders.arklib.user.tags.TagUtils
import dev.arkbuilders.arklib.user.tags.TagsStorageRepo
import javax.inject.Inject

sealed class EditTagsAction {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import moxy.MvpView
import moxy.viewstate.strategy.AddToEndSingleStrategy
import moxy.viewstate.strategy.SkipStrategy
import moxy.viewstate.strategy.StateStrategyType
import space.taran.arklib.domain.tags.Tag
import space.taran.arklib.domain.tags.Tags
import dev.arkbuilders.arklib.user.tags.Tag
import dev.arkbuilders.arklib.user.tags.Tags

@StateStrategyType(AddToEndSingleStrategy::class)
interface EditTagsDialogView : MvpView {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import moxy.MvpPresenter
import moxy.presenterScope
import space.taran.arklib.arkFolder
import dev.arkbuilders.arklib.arkFolder
import dev.arkbuilders.navigator.data.utils.LogTags
import dev.arkbuilders.navigator.data.utils.listDevices
import java.nio.file.Path
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ package dev.arkbuilders.navigator.presentation.navigation

import ru.terrakok.cicerone.android.support.SupportAppScreen
import space.taran.arkfilepicker.folders.RootAndFav
import space.taran.arklib.ResourceId
import dev.arkbuilders.arklib.ResourceId
import dev.arkbuilders.navigator.presentation.screen.folders.FoldersFragment
import dev.arkbuilders.navigator.presentation.screen.gallery.GalleryFragment
import dev.arkbuilders.navigator.presentation.screen.resources.ResourcesFragment
import dev.arkbuilders.navigator.presentation.screen.settings.SettingsFragment
import space.taran.arklib.domain.tags.Tag
import dev.arkbuilders.arklib.user.tags.Tag

class Screens {
class FoldersScreen : SupportAppScreen() {
Expand Down
Loading