apcro / leafpicrevived Goto Github PK
View Code? Open in Web Editor NEWLeafPic Revived - an updated version of LeafPic, a full-featured gallery app for Android.
License: GNU General Public License v3.0
LeafPic Revived - an updated version of LeafPic, a full-featured gallery app for Android.
License: GNU General Public License v3.0
Make it possible to disable pull to refresh. Refreshing a gallery app is not something that is done frequently, however, I do very frequently trigger the pull to refresh by accident.
This is a minor suggestion, but in my opinion it would be a nice feature if you give the possibility to tag a pic with a) location metadata and b) rating metadata (from 1 to 5 stars, I mean).
Thanks
I recently started using leafpic and the first feature I am missing after switching is being able to switch between pictures in a folder if I open a picture from a file manager app. I tried a couple file managers and they behave the same.
the bug is back, see https://gitlab.com/search?project_id=6890364&repository_ref=&scope=issues&search=TransactionTooLargeException&snippets=
The app freezes and I see similar Exception in logcat:
Exception in new application when starting activity com.alienpants.leafpicrevived/.activities.SingleMediaActivity android.os.TransactionTooLargeException: data parcel size 793856 bytes
Build version: v0.8.1
Build date: 1980-01-01 00:00:00
Current date: 2019-10-02 22:12:20
Device: Samsung SM-G930F
Stack trace:
java.lang.NoClassDefFoundError: Failed resolution of: Ljava/awt/Point;
at com.drew.metadata.mp4.boxes.TrackHeaderBox.a()
at com.drew.metadata.mp4.Mp4BoxHandler.d()
at com.drew.metadata.mp4.Mp4BoxHandler.a()
at com.drew.imaging.mp4.Mp4Reader.a()
at com.drew.imaging.mp4.Mp4Reader.a()
at com.drew.imaging.mp4.Mp4Reader.a()
at com.drew.imaging.mp4.Mp4Reader.a()
at com.drew.imaging.mp4.Mp4MetadataReader.a()
at com.drew.imaging.ImageMetadataReader.a()
at com.drew.imaging.ImageMetadataReader.a()
at com.drew.imaging.ImageMetadataReader.a()
at com.alienpants.leafpicrevived.data.metadata.MetaDataItem.b()
at com.alienpants.leafpicrevived.data.metadata.MetaDataItem.<init>()
at com.alienpants.leafpicrevived.data.metadata.MetaDataItem.a()
at com.alienpants.leafpicrevived.data.metadata.MetadataHelper.a()
at com.alienpants.leafpicrevived.util.AlertDialogsHelper.a()
at com.alienpants.leafpicrevived.activities.SingleMediaActivity.onOptionsItemSelected()
at android.app.Activity.onMenuItemSelected(Activity.java:3208)
at androidx.fragment.app.FragmentActivity.onMenuItemSelected()
at androidx.appcompat.app.AppCompatActivity.onMenuItemSelected()
at androidx.appcompat.view.WindowCallbackWrapper.onMenuItemSelected()
at androidx.appcompat.view.WindowCallbackWrapper.onMenuItemSelected()
at androidx.appcompat.app.ToolbarActionBar$2.onMenuItemClick()
at androidx.appcompat.widget.Toolbar$1.onMenuItemClick()
at androidx.appcompat.widget.ActionMenuView$MenuBuilderCallback.a()
at androidx.appcompat.view.menu.MenuBuilder.a()
at androidx.appcompat.view.menu.MenuItemImpl.g()
at androidx.appcompat.view.menu.MenuBuilder.a()
at androidx.appcompat.view.menu.MenuPopup.onItemClick()
at android.widget.AdapterView.performItemClick(AdapterView.java:310)
at android.widget.AbsListView.performItemClick(AbsListView.java:1164)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:3139)
at android.widget.AbsListView$3.run(AbsListView.java:4054)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6186)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
Caused by: java.lang.ClassNotFoundException: Didn't find class "java.awt.Point" on path: DexPathList[[zip file "/data/app/com.alienpants.leafpicrevived-1/base.apk"],nativeLibraryDirectories=[/data/app/com.alienpants.leafpicrevived-1/lib/arm64, /data/app/com.alienpants.leafpicrevived-1/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
... 40 more
It also display the video thumbnail as a picture when looking it by sliding the medias. Despite being a panorama video (and thumbnail) it crop and zoom at the height of my phone the thumbnail when viewing it in portrait mode.
The crash in itself appended when you try to click on the video to view it from the gallery view (It doesn't work when trying to click on it during the slides).
I could not figure how to play a video untill i found the trigger was invisible.
p.s the screenshot was talen with "show layout bounds" turned on
Modify the App so that images and videos when deleted are moved to a Rubbish Bin instead of being immediately deleted, so they can be recovered if deleted by accident.
I noticed today I couldn't find the WhatsApp folder in this app but I could in the stock gallery app. Turns out whatsapp has changed where it stores its media files. Its now in /storage/emulated/0/Android/media/com.whatsapp/WhatsApp (I'm on Android 10)
This change apparently happened recently somewhere in April. Also apparently the new location considerably slower to access (XDA).
Automatically update galleries after an image is deleted.
It appears to be missing, or simply not implemented. Might it be hidden? Or Are there plans to implement it?
Check this out: https://gitlab.com/fdroid/fdroiddata/-/blob/master/metadata/com.alienpants.leafpicrevived.yml
I'll fix the tag pickup so that F-Droid can update the app.
This just requires that your tag names remain consistent. Please keep them preceded by a "v" from now on. Thanks.
(Also, another thing. I noticed you seemed to skip the iconics bump and this, was there something that broke? Also I could've easily redone the pull request to remove the leafpic to app commit that you didn't want, because the implementation commit is massive and hard to read (instead of 9 relatively easy-to-read commits that all had their own distinct purpose. Just a gripe of mine.))
See: mikepenz/Android-Iconics#470 and mikepenz/Android-Iconics#480
There is an issue with Iconics and Android 10 based on a breaking change in Android 10, which prevents updating Iconics to the latest version and has some knock-on effects.
To resolve, replace all the custom layout inflators (from Liz) with native inflators. Or possibly update Liz to support Android 10 properly.
Stack trace:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.alienpants.leafpic/com.alienpants.leafpic.activities.SingleMediaActivity}: android.view.InflateException: Binary XML file line #22: Binary XML file line #19: Error inflating class TextView
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2798)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2876)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1609)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6606)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Caused by: android.view.InflateException: Binary XML file line #22: Binary XML file line #19: Error inflating class TextView
Caused by: android.view.InflateException: Binary XML file line #19: Error inflating class TextView
Caused by: java.lang.RuntimeException: A 'Iconics.init(context)' has to happen first. Call from your application. Usually this happens via an 'IconicsDrawable' usage.
at com.mikepenz.iconics.Iconics.a(Unknown Source:329)
at com.mikepenz.iconics.Iconics.a(Unknown Source:5)
at com.mikepenz.iconics.Iconics.a(Unknown Source:2)
at com.mikepenz.iconics.Iconics.a(Unknown Source:5)
at com.mikepenz.iconics.Iconics$BuilderView.a(Unknown Source:87)
at com.mikepenz.iconics.utils.IconicsExtensionsKt.a(Unknown Source:22)
at com.mikepenz.iconics.utils.IconicsExtensionsKt.a(Unknown Source:6)
at com.mikepenz.iconics.context.IconicsFactory.b(Unknown Source:41)
at com.mikepenz.iconics.context.IconicsFactory.a(Unknown Source:30)
at com.mikepenz.iconics.context.InternalLayoutInflater$WrapperFactory2.onCreateView(Unknown Source:21)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:772)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:866)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
at android.view.LayoutInflater.parseInclude(LayoutInflater.java:995)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:859)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
at com.mikepenz.iconics.context.InternalLayoutInflater.inflate(Unknown Source:8)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
at androidx.appcompat.app.AppCompatDelegateImpl.c(Unknown Source:23)
at androidx.appcompat.app.AppCompatActivity.setContentView(Unknown Source:4)
at com.alienpants.leafpic.activities.SingleMediaActivity.onCreate(Unknown Source:6)
at android.app.Activity.performCreate(Activity.java:7203)
at android.app.Activity.performCreate(Activity.java:7194)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1215)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2751)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2876)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1609)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6606)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
When I to the "Manage your folder" option, them "White list" , and finally the cross , it gets darker with a line in the bottom
Log
`Build version: v0.8.2
Build date: 1979-11-30 05:30:00
Current date: 2020-08-31 23:05:32
Device: Xiaomi Redmi Note 4
Stack trace:
android.view.InflateException: Binary XML file line #2 in com.alienpants.leafpicrevived:layout/dialog_advanced_sharing: Binary XML file line #2 in com.alienpants.leafpicrevived:layout/dialog_advanced_sharing: Error inflating class android.support.v7.widget.CardView
Caused by: android.view.InflateException: Binary XML file line #2 in com.alienpants.leafpicrevived:layout/dialog_advanced_sharing: Error inflating class android.support.v7.widget.CardView
Caused by: java.lang.ClassNotFoundException: android.support.v7.widget.CardView
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:454)
at android.view.LayoutInflater.createView(LayoutInflater.java:815)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1006)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:961)
at android.view.LayoutInflater.inflate(LayoutInflater.java:659)
at com.mikepenz.iconics.context.InternalLayoutInflater.inflate(Unknown Source:8)
at android.view.LayoutInflater.inflate(LayoutInflater.java:534)
at android.view.LayoutInflater.inflate(LayoutInflater.java:481)
at com.alienpants.leafpicrevived.util.AlertDialogsHelper.a(Unknown Source:22)
at com.alienpants.leafpicrevived.activities.SingleMediaActivity.onOptionsItemSelected(Unknown Source:716)
at android.app.Activity.onMenuItemSelected(Activity.java:4155)
at androidx.fragment.app.FragmentActivity.onMenuItemSelected(Unknown Source:0)
at androidx.appcompat.app.AppCompatActivity.onMenuItemSelected(Unknown Source:0)
at androidx.appcompat.view.WindowCallbackWrapper.onMenuItemSelected(Unknown Source:2)
at androidx.appcompat.view.WindowCallbackWrapper.onMenuItemSelected(Unknown Source:2)
at androidx.appcompat.app.ToolbarActionBar$2.onMenuItemClick(Unknown Source:5)
at androidx.appcompat.widget.Toolbar$1.onMenuItemClick(Unknown Source:6)
at androidx.appcompat.widget.ActionMenuView$MenuBuilderCallback.a(Unknown Source:6)
at androidx.appcompat.view.menu.MenuBuilder.a(Unknown Source:4)
at androidx.appcompat.view.menu.MenuItemImpl.g(Unknown Source:14)
at androidx.appcompat.view.menu.MenuBuilder.a(Unknown Source:12)
at androidx.appcompat.view.menu.MenuPopup.onItemClick(Unknown Source:27)
at android.widget.AdapterView.performItemClick(AdapterView.java:330)
at android.widget.AbsListView.performItemClick(AbsListView.java:1190)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:3198)
at android.widget.AbsListView$3.run(AbsListView.java:4116)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:491)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:940)
Caused by: java.lang.ClassNotFoundException: android.support.v7.widget.CardView
... 34 more
`
Hi,
I just found Leafpic revived and it works great: it's fast and beautiful.
One thing I'm missing though is enlarging images with pinch to zoom gesture.
Would thay be something in scope of Leafpic?
In other galleries I can select multiple photos and videos and hit some sort of "details" button that will tell me things like number of elements and total size. This is quite useful if you're trying to free up space in the phone.
Hi @apcro
I found this app: https://play.google.com/store/apps/details?id=com.miniapps.photoalbum on the Google Play Store. This guy just took your source code, added IAP in it and put it on the Store, without warning this is free software...
As you are the owner of the source code, feel free to open a request to google here to remove this copy from the Store, if it's your wish ;)
Don't forget to tell Google that:
I wander that a so nice app is without a so simple feature: zoom an image (pinching out). Why not?
using version 0.8.7
when having small images leafpic won't allow to zoom into the picture any more.
E.g. i have device with 2400x1800 resolution. I created a sample picture with 400x400 with a 100x100 checkerboard pattern. In leafpic revived i can not zoom in any more so always having all 4 squares visible. In old leafpic i was able to zoom in to have only one square (100px) filling the width of my screen.
I hope this is not by intention - at least i sometime like to zoom in also on smaller images.
Or is there another setting (tried with and without sub-scaling-image view).
Thanks a lot for your work!
Hi and thanks for the awesome project
I have a crash when using this feature, device is pixel XL running Android 10.
steps open any image, click the menu, click on Advanced sharing, app will crash.
If you need more information or want me to test some fix on me device I am happy to help.
https://ibb.co/605jsZd
Build version: v0.8.2
Build date: 1979-11-30 03:00:00
Current date: 2019-12-25 23:30:25
Device: Google Pixel XL
Stack trace:
android.view.InflateException: Binary XML file line #2 in com.alienpants.leafpicrevived:layout/dialog_advanced_sharing: Binary XML file line #2 in com.alienpants.leafpicrevived:layout/dialog_advanced_sharing: Error inflating class android.support.v7.widget.CardView
Caused by: android.view.InflateException: Binary XML file line #2 in com.alienpants.leafpicrevived:layout/dialog_advanced_sharing: Error inflating class android.support.v7.widget.CardView
Caused by: java.lang.ClassNotFoundException: android.support.v7.widget.CardView
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:454)
at android.view.LayoutInflater.createView(LayoutInflater.java:815)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1006)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:961)
at android.view.LayoutInflater.inflate(LayoutInflater.java:659)
at com.mikepenz.iconics.context.InternalLayoutInflater.inflate(Unknown Source:8)
at android.view.LayoutInflater.inflate(LayoutInflater.java:534)
at android.view.LayoutInflater.inflate(LayoutInflater.java:481)
at com.alienpants.leafpicrevived.util.AlertDialogsHelper.a(Unknown Source:22)
at com.alienpants.leafpicrevived.activities.SingleMediaActivity.onOptionsItemSelected(Unknown Source:716)
at android.app.Activity.onMenuItemSelected(Activity.java:4137)
at androidx.fragment.app.FragmentActivity.onMenuItemSelected(Unknown Source:0)
at androidx.appcompat.app.AppCompatActivity.onMenuItemSelected(Unknown Source:0)
at androidx.appcompat.view.WindowCallbackWrapper.onMenuItemSelected(Unknown Source:2)
at androidx.appcompat.view.WindowCallbackWrapper.onMenuItemSelected(Unknown Source:2)
at androidx.appcompat.app.ToolbarActionBar$2.onMenuItemClick(Unknown Source:5)
at androidx.appcompat.widget.Toolbar$1.onMenuItemClick(Unknown Source:6)
at androidx.appcompat.widget.ActionMenuView$MenuBuilderCallback.a(Unknown Source:6)
at androidx.appcompat.view.menu.MenuBuilder.a(Unknown Source:4)
at androidx.appcompat.view.menu.MenuItemImpl.g(Unknown Source:14)
at androidx.appcompat.view.menu.MenuBuilder.a(Unknown Source:12)
at androidx.appcompat.view.menu.MenuPopup.onItemClick(Unknown Source:27)
at android.widget.AdapterView.performItemClick(AdapterView.java:330)
at android.widget.AbsListView.performItemClick(AbsListView.java:1190)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:3198)
at android.widget.AbsListView$3.run(AbsListView.java:4116)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7356)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
Caused by: java.lang.ClassNotFoundException: android.support.v7.widget.CardView
... 34 more
when you have time, it would be a nice feature as well the possibility to modify the (exif/xmp) metadata of imagee (as in Photo Manager, i.g.).
Thank you!
Version 0.8.7.
For both descending and ascending, I noticed pictures of various dates towards the top, some I took almost a year ago. I have since moved the pictures, but can try to replicate the problem and provide screenshots if needed. Using a Samsung Note 10+ with the latest android updates.
Please update the Fdroid version (The Fdroid version hasn't been updated for two years; they still have that bug where the play button on videos is invisible).
If it is too much work to handle Fdroid please add the apk files to the Github releases to make the updates accessible for everyone who doesn't use the Google Play Store.
Build version: v0.8.2
Build date: 1979-11-30 00:00:00
Current date: 2019-12-31 23:15:31
Device: HUAWEI STK-LX1
Stack trace:
java.lang.NoClassDefFoundError: Failed resolution of: Ljava/awt/Point;
at com.drew.metadata.mp4.boxes.TrackHeaderBox.addMetadata(TrackHeaderBox.java:77)
at com.drew.metadata.mp4.Mp4BoxHandler.processTrackHeader(Mp4BoxHandler.java:116)
at com.drew.metadata.mp4.Mp4BoxHandler.processBox(Mp4BoxHandler.java:86)
at com.drew.imaging.mp4.Mp4Reader.processBoxes(Mp4Reader.java:58)
at com.drew.imaging.mp4.Mp4Reader.processBoxes(Mp4Reader.java:56)
at com.drew.imaging.mp4.Mp4Reader.processBoxes(Mp4Reader.java:56)
at com.drew.imaging.mp4.Mp4Reader.extract(Mp4Reader.java:42)
at com.drew.imaging.mp4.Mp4MetadataReader.readMetadata(Mp4MetadataReader.java:57)
at com.drew.imaging.ImageMetadataReader.readMetadata(ImageMetadataReader.java:178)
at com.drew.imaging.ImageMetadataReader.readMetadata(ImageMetadataReader.java:125)
at com.drew.imaging.ImageMetadataReader.readMetadata(ImageMetadataReader.java:104)
at com.alienpants.leafpicrevived.data.metadata.MetaDataItem.load(MetaDataItem.java:76)
at com.alienpants.leafpicrevived.data.metadata.MetaDataItem.(MetaDataItem.java:49)
at com.alienpants.leafpicrevived.data.metadata.MetaDataItem.getMetadata(MetaDataItem.java:45)
at com.alienpants.leafpicrevived.data.metadata.MetadataHelper.getMainDetails(MetadataHelper.java:34)
at com.alienpants.leafpicrevived.util.AlertDialogsHelper.getDetailsDialog(AlertDialogsHelper.java:228)
at com.alienpants.leafpicrevived.activities.SingleMediaActivity.onOptionsItemSelected(SingleMediaActivity.java:659)
at android.app.Activity.onMenuItemSelected(Activity.java:3742)
at androidx.fragment.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:384)
at androidx.appcompat.app.AppCompatActivity.onMenuItemSelected(AppCompatActivity.java:219)
at androidx.appcompat.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:109)
at androidx.appcompat.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:109)
at androidx.appcompat.app.ToolbarActionBar$2.onMenuItemClick(ToolbarActionBar.java:64)
at androidx.appcompat.widget.Toolbar$1.onMenuItemClick(Toolbar.java:207)
at androidx.appcompat.widget.ActionMenuView$MenuBuilderCallback.onMenuItemSelected(ActionMenuView.java:781)
at androidx.appcompat.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:840)
at androidx.appcompat.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:158)
at androidx.appcompat.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:991)
at androidx.appcompat.view.menu.MenuPopup.onItemClick(MenuPopup.java:128)
at android.widget.AdapterView.performItemClick(AdapterView.java:321)
at android.widget.AbsListView.performItemClick(AbsListView.java:1234)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:3234)
at android.widget.AbsListView$3.run(AbsListView.java:4210)
at android.os.Handler.handleCallback(Handler.java:907)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:216)
at android.app.ActivityThread.main(ActivityThread.java:7625)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
Caused by: java.lang.ClassNotFoundException: Didn't find class "java.awt.Point" on path: DexPathList[[zip file "/data/app/com.alienpants.leafpicrevived.debug-xL53ju0Omz7OGSwSEdReSw==/base.apk"],nativeLibraryDirectories=[/data/app/com.alienpants.leafpicrevived.debug-xL53ju0Omz7OGSwSEdReSw==/lib/arm64, /data/app/com.alienpants.leafpicrevived.debug-xL53ju0Omz7OGSwSEdReSw==/base.apk!/lib/arm64-v8a, /system/lib64, /product/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
... 40 more
Hello,
It'd be nice if we can change the font sizes of the folder names and media count. I use 4 columns and the words takes up quite a bit of space.
e.g. from Simple Gallery, which is easier to read the words since they take up less space. Simple Gallery doesn't actually have a setting to change font size.
My font size on my phone is on the smallest if that matters.
Alternatively, just makes the font smaller in general for those. This is in regards to Compact View & Flat View.
public static String[] getProjection() {
return new String[]{
MediaStore.Files.FileColumns.PARENT,
MediaStore.Images.Media.BUCKET_DISPLAY_NAME,
"count(*)",
MediaStore.Images.Media.DATA,
"max(" + MediaStore.Images.Media.DATE_MODIFIED + ")"
};
}
that code above no longer work on android Q, please fix it
it only shows when targetsdkVersion 29 compileSdkVersion 29, not on targetsdkVersion 28 and compileSdkVersion 28
When you install Leafpic Revived for the first time, and open an image from your files, of course Android prompts you which app you'd like to use to open it with. There are two new entries:
Which is an interesting tool, for sure, but it should probably be named differently if at all possible.
Apparent changes in the way Android API level 29 (Q) handles SQLite query generation and execution is causing issues when the source is compiled using this target.
By way of example:
2020-03-21 11:00:03.761 17691-17691/com.alienpants.leafpicrevived.debug W/System.err: android.database.sqlite.SQLiteException: near "group": syntax error (Sqlite code 1 SQLITE_ERROR): , while compiling: SELECT parent, bucket_display_name, count(*), _data, max(date_modified) FROM files WHERE ((is_pending=0) AND (is_trashed=0) AND (volume_name IN ( 'external_primary' ))) AND ((media_type=? or media_type=?) group by (parent) HAVING (_data NOT LIKE ? )) ORDER BY max(date_modified) DESC, (OS error - 2:No such file or directory)
This appears related to the issue noted (and a resolution provided) here: bilibili/boxing#154, as well as the discussion on this StackOverflow question.
It is likely the process of retrieving albums from the mobile device will need to be rewritten.
Make it possible to zoom in and out by double tapping and then immediately using a vertical gesture.
v0.8.2
Android 9
Selecting images, then choosing "Copy to" or "Move to" does not do anything.
Build version: v0.8.4
Build date: 1979-11-30 00:00:00
Current date: 2020-02-19 16:57:31
Device: HUAWEI STK-LX1
Stack trace:
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.io.File.getCanonicalPath()' on a null object reference
at androidx.core.content.FileProvider$SimplePathStrategy.getUriForFile(FileProvider.java:728)
at androidx.core.content.FileProvider.getUriForFile(FileProvider.java:418)
at com.alienpants.leafpicrevived.util.LegacyCompatFileProvider.getUri(LegacyCompatFileProvider.java:25)
at com.alienpants.leafpicrevived.activities.SingleMediaActivity.onOptionsItemSelected(SingleMediaActivity.java:563)
at android.app.Activity.onMenuItemSelected(Activity.java:3742)
at androidx.fragment.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:384)
at androidx.appcompat.app.AppCompatActivity.onMenuItemSelected(AppCompatActivity.java:219)
at androidx.appcompat.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:109)
at androidx.appcompat.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:109)
at androidx.appcompat.app.ToolbarActionBar$2.onMenuItemClick(ToolbarActionBar.java:64)
at androidx.appcompat.widget.Toolbar$1.onMenuItemClick(Toolbar.java:207)
at androidx.appcompat.widget.ActionMenuView$MenuBuilderCallback.onMenuItemSelected(ActionMenuView.java:781)
at androidx.appcompat.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:840)
at androidx.appcompat.view.menu.SubMenuBuilder.dispatchMenuItemSelected(SubMenuBuilder.java:90)
at androidx.appcompat.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:158)
at androidx.appcompat.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:991)
at androidx.appcompat.view.menu.MenuPopup.onItemClick(MenuPopup.java:128)
at android.widget.AdapterView.performItemClick(AdapterView.java:321)
at android.widget.AbsListView.performItemClick(AbsListView.java:1234)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:3234)
at android.widget.AbsListView$3.run(AbsListView.java:4210)
at android.os.Handler.handleCallback(Handler.java:907)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:216)
at android.app.ActivityThread.main(ActivityThread.java:7625)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
Could you please add one?
In my opinion, before deleting a photo, the app should ask for confirmation. Also because the delete button is very close to the share one.
Thanks
Steps:
Expected:
Actual:
Workaround:
Environment:
Build version: v0.8.3
Build date: 1979-11-30 00:00:00
Current date: 2020-01-07 08:52:41
Device: HUAWEI STK-LX1
Stack trace:
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.alienpants.leafpicrevived.debug-ooqxtXqxtFPKH343eLH5EQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.alienpants.leafpicrevived.debug-ooqxtXqxtFPKH343eLH5EQ==/lib/arm64, /data/app/com.alienpants.leafpicrevived.debug-ooqxtXqxtFPKH343eLH5EQ==/base.apk!/lib/arm64-v8a, /system/lib64, /product/lib64]]] couldn't find "libbypass.so"
at java.lang.Runtime.loadLibrary0(Runtime.java:1012)
at java.lang.System.loadLibrary(System.java:1672)
at in.uncod.android.bypass.Bypass.(Bypass.java:35)
at com.alienpants.leafpicrevived.util.AlertDialogsHelper.showChangelogDialog(AlertDialogsHelper.java:342)
at com.alienpants.leafpicrevived.about.AboutActivity.onChangelog(AboutActivity.java:144)
at com.alienpants.leafpicrevived.about.AboutActivity_ViewBinding$1.doClick(AboutActivity_ViewBinding.java:55)
at butterknife.internal.DebouncingOnClickListener.onClick(DebouncingOnClickListener.java:18)
at android.view.View.performClick(View.java:6659)
at android.view.View.performClickInternal(View.java:6631)
at android.view.View.access$3100(View.java:790)
at android.view.View$PerformClick.run(View.java:26187)
at android.os.Handler.handleCallback(Handler.java:907)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:216)
at android.app.ActivityThread.main(ActivityThread.java:7625)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
Please remove "parameters" entry from folders context menu, becouse it's not folder's entity but app's
Hi,
The current icon for LeafPic Revived looks pretty out-of-place on Samsung devices. See the attached screenshot with the app being displayed in multitasking view. At the top of the screen, you can see the icon which isn't symmetrical with the shape cropping that Samsung applies in their stock One UI icon pack. Is there any hope of this getting fixed?
Thanks in advance!
Hi, can you update the F-Droid version of the app? It's a couple of versions behind the one on Google Play.
The scrollbar is a different color than the accent color. It remains the default blue color and does not change with the accent color.
App Crash -> Crash Log
Build version: v0.8.5
Current date: 2020-02-29 04:00:45
Device: Samsung SM-G960F
Stack trace:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.alienpants.leafpicrevived/com.alienpants.leafpicrevived.about.AboutActivity}: android.view.InflateException: Binary XML file line #128 in com.alienpants.leafpicrevived:layout/activity_about: Binary XML file line #128 in com.alienpants.leafpicrevived:layout/activity_about: Error inflating class com.alienpants.leafpicrevived.about.AboutLink
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3448)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3595)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2147)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:237)
at android.app.ActivityThread.main(ActivityThread.java:7811)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1076)
Caused by: android.view.InflateException: Binary XML file line #128 in com.alienpants.leafpicrevived:layout/activity_about: Binary XML file line #128 in com.alienpants.leafpicrevived:layout/activity_about: Error inflating class com.alienpants.leafpicrevived.about.AboutLink
Caused by: android.view.InflateException: Binary XML file line #128 in com.alienpants.leafpicrevived:layout/activity_about: Error inflating class com.alienpants.leafpicrevived.about.AboutLink
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
at android.view.LayoutInflater.createView(LayoutInflater.java:854)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1006)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:961)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1123)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1126)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1126)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1126)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1126)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)
at android.view.LayoutInflater.inflate(LayoutInflater.java:682)
at com.mikepenz.iconics.context.InternalLayoutInflater.inflate(Unknown Source:8)
at android.view.LayoutInflater.inflate(LayoutInflater.java:534)
at android.view.LayoutInflater.inflate(LayoutInflater.java:481)
at androidx.appcompat.app.AppCompatDelegateImpl.c(Unknown Source:23)
at androidx.appcompat.app.AppCompatActivity.setContentView(Unknown Source:4)
at com.alienpants.leafpicrevived.about.AboutActivity.onCreate(Unknown Source:6)
at android.app.Activity.performCreate(Activity.java:7955)
at android.app.Activity.performCreate(Activity.java:7944)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1307)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3423)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3595)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2147)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:237)
at android.app.ActivityThread.main(ActivityThread.java:7811)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1076)
Caused by: android.view.InflateException: Binary XML file line #12 in com.alienpants.leafpicrevived:layout/view_about_link: Binary XML file line #12 in com.alienpants.leafpicrevived:layout/view_about_link: Error inflating class TextView
Caused by: android.view.InflateException: Binary XML file line #12 in com.alienpants.leafpicrevived:layout/view_about_link: Error inflating class TextView
Caused by: java.lang.RuntimeException: A 'Iconics.init(context)' has to happen first. Call from your application. Usually this happens via an 'IconicsDrawable' usage.
at com.mikepenz.iconics.Iconics.a(Unknown Source:329)
at com.mikepenz.iconics.Iconics.a(Unknown Source:5)
at com.mikepenz.iconics.Iconics.a(Unknown Source:2)
at com.mikepenz.iconics.Iconics.a(Unknown Source:5)
at com.mikepenz.iconics.Iconics$BuilderView.a(Unknown Source:87)
at com.mikepenz.iconics.utils.IconicsExtensionsKt.a(Unknown Source:22)
at com.mikepenz.iconics.utils.IconicsExtensionsKt.a(Unknown Source:6)
at com.mikepenz.iconics.context.IconicsFactory.b(Unknown Source:41)
at com.mikepenz.iconics.context.IconicsFactory.a(Unknown Source:30)
at com.mikepenz.iconics.context.InternalLayoutInflater$WrapperFactory2.onCreateView(Unknown Source:21)
at android.view.LayoutInflater.tryCreateView(LayoutInflater.java:1061)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:997)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:961)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1123)
at android.view.LayoutInflater.inflate(LayoutInflater.java:656)
at com.mikepenz.iconics.context.InternalLayoutInflater.inflate(Unknown Source:8)
at android.view.LayoutInflater.inflate(LayoutInflater.java:534)
at com.alienpants.leafpicrevived.about.AboutLink.a(Unknown Source:11)
at com.alienpants.leafpicrevived.about.AboutLink.(Unknown Source:3)
at com.alienpants.leafpicrevived.about.AboutLink.(Unknown Source:1)
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
at android.view.LayoutInflater.createView(LayoutInflater.java:854)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1006)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:961)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1123)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1126)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1126)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1126)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:1126)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:1084)
at android.view.LayoutInflater.inflate(LayoutInflater.java:682)
at com.mikepenz.iconics.context.InternalLayoutInflater.inflate(Unknown Source:8)
at android.view.LayoutInflater.inflate(LayoutInflater.java:534)
at android.view.LayoutInflater.inflate(LayoutInflater.java:481)
at androidx.appcompat.app.AppCompatDelegateImpl.c(Unknown Source:23)
at androidx.appcompat.app.AppCompatActivity.setContentView(Unknown Source:4)
at com.alienpants.leafpicrevived.about.AboutActivity.onCreate(Unknown Source:6)
at android.app.Activity.performCreate(Activity.java:7955)
at android.app.Activity.performCreate(Activity.java:7944)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1307)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3423)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3595)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2147)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:237)
at android.app.ActivityThread.main(ActivityThread.java:7811)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1076)
In the About screen, the top links to "Report bug", and to GitHub, point to two different repos. Also, probably you only really need the GitHub link, not the "Report bug" one too.
When launching the app there's a grey screen for ~0.5 seconds. Then there's a black screen for ~0.2s, after that the app closes again.
(When the app is opened for the first time I get asked to confirm access to the file system, right after confirming that the app crashes).
Found in v0.8.7 from Fdroid on Android 6.0 (API 23).
According to the Google Play Store comments more people experience crashes.
Hi,
I found there is a bug in dialog_progress.xml.
<ProgressBar android:id="@+id/progress_dialog_loading" android:layout_width="@dimen/progress_circle_width_height" android:layout_height="@dimen/progress_circle_width_height" android:layout_gravity="center_vertical" android:paddingRight="@dimen/sub_medium_spacing" android:indeterminateTint="@color/md_white_1000" />
You use android:indeterminateTint only to set the indeterminate color for ProgressBar. But it can cause a compatibility issue with showing color defined in colorAccent. To fix this issue, you can add android:indeterminateTintMode="src_in"
Hello dear maintainers,
I am using LeafPic Revived 0.8.2 from the f-droid repo, on Android 6.0.1.
Topic says it all: when I try to delete an image (clicking trashbin), I'm asked for confirmation, then this message appears:
<the_filename> Failed SAF
... with no effect.
Additional infos:
Thanks and good luck with further developments.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.