Skip to content

Commit

Permalink
Merge pull request #160 from TeamAmaze/feature
Browse files Browse the repository at this point in the history
rework preloader; fixes in viewers background; junk file analysis fix; fixes in video player
  • Loading branch information
VishalNehra committed Dec 31, 2023
2 parents b4a0df4 + b536b0f commit c0fa2d5
Show file tree
Hide file tree
Showing 37 changed files with 387 additions and 171 deletions.
45 changes: 45 additions & 0 deletions .github/workflows/android-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Android Build CI

on:
push:
branches:
- '*'
- '!master'
- '!release/*'
concurrency:
group: build-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
check_spotless:
name: Check spotless
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Set up JDK 11
uses: actions/setup-java@v3
with:
distribution: "temurin"
java-version: 11
- name: Check formatting using spotless
uses: gradle/gradle-build-action@v2.4.2
with:
arguments: spotlessCheck
build:
name: Build debug
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Set up JDK 11
uses: actions/setup-java@v3
with:
distribution: "temurin"
java-version: 11
- name: Build with Gradle
uses: gradle/gradle-build-action@v2.4.2
with:
arguments: assembledebug --stacktrace
env:
TZ: UTC
2 changes: 1 addition & 1 deletion .github/workflows/android-main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
- name: Build with Gradle
uses: gradle/gradle-build-action@v2.4.2
with:
arguments: assembledebug
arguments: assembledebug --stacktrace
env:
TZ: UTC
- name: Publish on Telegram
Expand Down
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ buildscript {
ext {
jacocoVersion = "0.8.7"
androidXLifecycleVersion = "2.3.1"
glideVersion = '4.11.0'
glideVersion = '4.16.0'
fragment_version = "1.3.6"
roomVersion = "2.4.0"
billing_version = "6.0.1"
Expand Down Expand Up @@ -287,7 +287,7 @@ dependencies {
api "com.caverock:androidsvg:1.4"
implementation 'com.burhanrashid52:photoeditor:2.0.0'
implementation 'com.github.CanHub:Android-Image-Cropper:4.3.1'
api 'com.github.TeamAmaze:mupdf-android-viewer:1.0.26'
api 'com.github.TeamAmaze:mupdf-android-viewer:1.0.27'
implementation "androidx.documentfile:documentfile:1.0.1"
implementation 'id.zelory:compressor:3.0.1'
implementation('com.github.AbedElazizShe:LightCompressor:1.3.1') {
Expand Down
9 changes: 2 additions & 7 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,6 @@
android:theme="@style/Theme.AmazeFileUtilities"
android:screenOrientation="portrait"
tools:ignore="LockedOrientationActivity"
android:launchMode="singleInstance"
>
<nav-graph android:value="@navigation/mobile_navigation" />
<intent-filter>
Expand Down Expand Up @@ -96,7 +95,6 @@
android:name=".image_viewer.ImageViewerActivity"
android:label="@string/image_viewer"
android:theme="@style/Theme.AmazeFileUtilities.FullScreen.Dark"
android:launchMode="singleInstance"
android:exported="true"
>
<intent-filter
Expand All @@ -114,7 +112,6 @@
android:name=".image_viewer.editor.EditImageActivity"
android:label="@string/image_editor"
android:theme="@style/Theme.AmazeFileUtilities.FullScreen.Dark"
android:launchMode="singleInstance"
android:exported="true"
>
<intent-filter
Expand Down Expand Up @@ -161,7 +158,6 @@
android:label="@string/video_player"
android:supportsPictureInPicture="true"
android:resizeableActivity="true"
android:launchMode="singleInstance"
android:taskAffinity="com.amaze.fileutilitiespip"
android:theme="@style/Theme.AmazeFileUtilities.FullScreen.Dark"
android:exported="true">
Expand Down Expand Up @@ -198,7 +194,7 @@
android:exported="true"
android:label="@string/docx_viewer"
android:theme="@style/Theme.AmazeFileUtilities"
android:launchMode="singleInstance">
>
<intent-filter
android:label="@string/docx_viewer"
tools:ignore="AppLinkUrlError">
Expand All @@ -214,7 +210,7 @@
android:name=".home_page.ui.options.AboutActivity"
android:exported="true"
android:theme="@style/Custom.Dialog.Dark"
android:launchMode="singleInstance">
>
</activity>

<activity android:name="com.amaze.fileutilities.crash_report.ErrorActivity"
Expand All @@ -229,7 +225,6 @@
android:theme="@style/Theme.AmazeFileUtilities.Dark"
android:configChanges=""
android:label="@string/settings"
android:launchMode="singleInstance"
android:exported="true"
/>
<activity
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -261,7 +261,7 @@ interface IAudioPlayerInterfaceHandler : OnPlaybackInfoUpdate, LifecycleOwner {
override fun onLoadFailed(
e: GlideException?,
model: Any?,
target: Target<Drawable>?,
target: Target<Drawable>,
isFirstResource: Boolean
): Boolean {
// do nothing
Expand All @@ -274,15 +274,15 @@ interface IAudioPlayerInterfaceHandler : OnPlaybackInfoUpdate, LifecycleOwner {
}

override fun onResourceReady(
resource: Drawable?,
model: Any?,
resource: Drawable,
model: Any,
target: Target<Drawable>?,
dataSource: DataSource?,
dataSource: DataSource,
isFirstResource: Boolean
): Boolean {
getContextWeakRef().get()?.let {
context ->
resource?.let {
resource.let {
getAudioPlayerHandlerViewModel().getPaletteColor(
it,
context.getColor(R.color.navy_blue_alt_3)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ package com.amaze.fileutilities.home_page.ui.analyse

import android.content.Intent
import android.content.SharedPreferences
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.os.Handler
Expand Down Expand Up @@ -482,6 +483,7 @@ class AnalyseFragment : AbstractMediaFileInfoOperationsFragment() {
if (!isUsageStatsPermissionGranted()) {
unusedAppsPreview.loadRequireElevatedPermission({
val intent = Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS)
intent.data = Uri.parse("package:${requireActivity().packageName}")
startActivity(intent)
}, {
reloadFragment()
Expand All @@ -508,12 +510,14 @@ class AnalyseFragment : AbstractMediaFileInfoOperationsFragment() {
if (!isUsageStatsPermissionGranted()) {
mostUsedAppsPreview.loadRequireElevatedPermission({
val intent = Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS)
intent.data = Uri.parse("package:${requireActivity().packageName}")
startActivity(intent)
}, {
reloadFragment()
})
leastUsedAppsPreview.loadRequireElevatedPermission({
val intent = Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS)
intent.data = Uri.parse("package:${requireActivity().packageName}")
startActivity(intent)
}, {
reloadFragment()
Expand Down Expand Up @@ -556,6 +560,7 @@ class AnalyseFragment : AbstractMediaFileInfoOperationsFragment() {
) {
networkIntensiveAppsPreview.loadRequireElevatedPermission({
val intent = Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS)
intent.data = Uri.parse("package:${requireActivity().packageName}")
startActivity(intent)
}, {
reloadFragment()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ import java.lang.ref.WeakReference
class ReviewAnalysisAdapter(
val context: Context,
val analysisType: Int?,
private val preloader: MediaAdapterPreloader,
private val preloader: MediaAdapterPreloader<MediaFileInfo>,
private val mediaFileInfoList: MutableList<MediaFileInfo>,
toggleCheckCallback: (
checkedSize: Int,
Expand All @@ -55,10 +55,10 @@ class ReviewAnalysisAdapter(
value.clear()
for (i in mediaFileInfoList.indices) {
value.add(ListItem(mediaFileInfo = mediaFileInfoList[i]))
preloader.addItem(mediaFileInfoList[i].path)
preloader.addItem(mediaFileInfoList[i])
}
if (mediaFileInfoList.size != 0) {
preloader.addItem("")
preloader.addItem(null)
value.add(ListItem(EMPTY_LAST_ITEM))
}
field = value
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,8 @@ class ReviewImagesFragment : ItemsActionBarFragment() {
private lateinit var viewModel: AnalyseViewModel
private var gridLayoutManager: GridLayoutManager? = GridLayoutManager(context, 3)
private var mediaFileAdapter: ReviewAnalysisAdapter? = null
private var preloader: MediaAdapterPreloader? = null
private var recyclerViewPreloader: RecyclerViewPreloader<String>? = null
private var preloader: MediaAdapterPreloader<MediaFileInfo>? = null
private var recyclerViewPreloader: RecyclerViewPreloader<MediaFileInfo>? = null
private val MAX_PRELOAD = 50
private var analysisType: Int? = null

Expand Down Expand Up @@ -146,9 +146,10 @@ class ReviewImagesFragment : ItemsActionBarFragment() {
// set list adapter
preloader = MediaAdapterPreloader(
requireContext(),
R.drawable.ic_outline_insert_drive_file_32
R.drawable.ic_outline_insert_drive_file_32,
true
)
val sizeProvider = ViewPreloadSizeProvider<String>()
val sizeProvider = ViewPreloadSizeProvider<MediaFileInfo>()
recyclerViewPreloader = RecyclerViewPreloader(
Glide.with(requireActivity()),
preloader!!,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,10 @@ abstract class AbstractMediaInfoListFragment :
private var gridLayoutManager: GridLayoutManager? = null
private val MAX_PRELOAD = 100
private var log: Logger = LoggerFactory.getLogger(AbstractMediaInfoListFragment::class.java)
private var mediaPreloader: MediaAdapterPreloader<MediaFileInfo>? = null

override fun onDestroyView() {
getMediaAdapterPreloader().clear()
mediaPreloader?.clear()
super.onDestroyView()
}

Expand Down Expand Up @@ -83,7 +84,7 @@ abstract class AbstractMediaInfoListFragment :
abstract fun getFileStorageSummaryAndMediaFileInfoPair():
Pair<FilesViewModel.StorageSummary, List<MediaFileInfo>?>?

abstract fun getMediaAdapterPreloader(): MediaAdapterPreloader
abstract fun getMediaAdapterPreloader(isGrid: Boolean): MediaAdapterPreloader<MediaFileInfo>

abstract fun getRecyclerView(): RecyclerView

Expand Down Expand Up @@ -116,21 +117,22 @@ abstract class AbstractMediaInfoListFragment :
storageSummary.totalUsedSpace!!
)
// set list adapter
val sizeProvider = ViewPreloadSizeProvider<String>()
val recyclerViewPreloader = RecyclerViewPreloader(
Glide.with(requireActivity()),
getMediaAdapterPreloader(),
sizeProvider,
MAX_PRELOAD
)
val sizeProvider = ViewPreloadSizeProvider<MediaFileInfo>()
val isList = requireContext()
.getAppCommonSharedPreferences().getBoolean(
"${getMediaListType()}_${PreferencesConstants.KEY_MEDIA_LIST_TYPE}",
PreferencesConstants.DEFAULT_MEDIA_LIST_TYPE
)
mediaPreloader = getMediaAdapterPreloader(!isList)
val recyclerViewPreloader = RecyclerViewPreloader(
Glide.with(requireActivity()),
mediaPreloader!!,
sizeProvider,
MAX_PRELOAD
)
mediaFileAdapter = MediaFileAdapter(
requireActivity(),
getMediaAdapterPreloader(),
mediaPreloader!!,
this@AbstractMediaInfoListFragment, !isList,
MediaFileListSorter.SortingPreference.newInstance(
requireContext()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,8 @@ class AudiosListFragment : AbstractMediaInfoListFragment(), IAudioPlayerInterfac
Pair<FilesViewModel.StorageSummary, List<MediaFileInfo>?>? = null

private lateinit var audioPlaybackServiceConnection: AudioPlaybackServiceConnection
private var filesPreloader: MediaAdapterPreloader? = null
private var playlistsPreloader: MediaAdapterPreloader? = null
private var filesPreloader: MediaAdapterPreloader<MediaFileInfo>? = null
private var playlistsPreloader: MediaAdapterPreloader<MediaFileInfo>? = null
private var isWaveformProcessing = false
private var lastPaletteColor: Int = 0
private var lastLyrics: String? = null
Expand Down Expand Up @@ -368,7 +368,7 @@ class AudiosListFragment : AbstractMediaInfoListFragment(), IAudioPlayerInterfac
}
}

override fun getMediaAdapterPreloader(): MediaAdapterPreloader {
override fun getMediaAdapterPreloader(isGrid: Boolean): MediaAdapterPreloader<MediaFileInfo> {
val sharedPrefs = requireContext().getAppCommonSharedPreferences()
val groupByPref = sharedPrefs.getInt(
MediaFileListSorter.SortingPreference.getGroupByKey(MediaFileAdapter.MEDIA_TYPE_AUDIO),
Expand All @@ -378,15 +378,17 @@ class AudiosListFragment : AbstractMediaInfoListFragment(), IAudioPlayerInterfac
if (filesPreloader == null) {
filesPreloader = MediaAdapterPreloader(
requireContext(),
R.drawable.ic_outline_audio_file_32
R.drawable.ic_outline_audio_file_32,
isGrid
)
}
return filesPreloader!!
} else {
if (playlistsPreloader == null) {
playlistsPreloader = MediaAdapterPreloader(
requireContext(),
R.drawable.ic_outline_audio_file_32
R.drawable.ic_outline_audio_file_32,
isGrid
)
}
return playlistsPreloader!!
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ class DocumentsListFragment : AbstractMediaInfoListFragment() {
// This property is only valid between onCreateView and
// onDestroyView.
private val binding get() = _binding!!
private var preloader: MediaAdapterPreloader? = null
private var preloader: MediaAdapterPreloader<MediaFileInfo>? = null

override fun onCreateView(
inflater: LayoutInflater,
Expand Down Expand Up @@ -79,11 +79,12 @@ class DocumentsListFragment : AbstractMediaInfoListFragment() {
fileStorageSummaryAndMediaFileInfo else null
}

override fun getMediaAdapterPreloader(): MediaAdapterPreloader {
override fun getMediaAdapterPreloader(isGrid: Boolean): MediaAdapterPreloader<MediaFileInfo> {
if (preloader == null) {
preloader = MediaAdapterPreloader(
requireContext(),
R.drawable.ic_outline_insert_drive_file_32
R.drawable.ic_outline_insert_drive_file_32,
isGrid
)
}
return preloader!!
Expand Down

0 comments on commit c0fa2d5

Please sign in to comment.