Giter Club home page Giter Club logo

opencomicreader's Introduction

Sketchpunk Labs

npm twitter twitter youtube Patreon Visitors

Bio :

A solo player born with the name Pedro but known to most of the world as VoR. You can describe me as :

  • ✨ IK Necromancer
  • 🎨 Wannabe 3D Modeler
  • 🔥 Javascript Developer
  • 🥒 Open Source Enthusiast
  • 🤪 Wakadoodle Extraordinar

Writing EBooks :

  • Learn WebGPU : Writing tutorials about learning WebGPU's API to create a basic renderer
  • IK Wonderland : Book about how to build a character animation system from scratch, skinning all the way to animating with inverse kinematics

Active Projects :

  • Ossos : Character animation library to create IK Rigs for use on the web
  • GLTF2 Parser : Library that focuses on piecemeal loading of GLTF content
  • Gizmos : Library to create gizmos/widgets/manipulators for use in Threejs prototyping
  • Threejs Starter : Starting project for prototyping things using threejs
  • Mapping & Terrains : Repo containing various prototypes on 3d mapping tiles & procedurally generated terrains
  • Irregular Grids : Repto containing prototypes related to irregular grids & procedurally generating content with them.
  • Game Physics : Prototyping basic ridgid body & collision detections
  • Baller XR : Creating an experience of driving fortnite's baller vehicle on a 3D map rendering of hyrule from zelda's breath of the wild game. All this to run in web VR on the Oculus Quest 2.

Projects in Hiatus :

  • Fungi RS : A version of Fungi built with Rust, WebGL and WebAssembly.

  • FunWithWebGL2 : Source for all my Youtube Tutorials related to building a game engine using WebGL.

  • Fungi : 3D Game engine built with WebGL & JavaScript, also includes IK Rigs Animation System

  • Ecs : Entity-Component-System framework being created to run the next version of Fungi.

  • Prop Panel : Collection of UI Web Components I created for use in my 3D Prototyping

  • Webbased Software Renderer : Learning to create a software renderer for 3d content using javascript

  • Oito : TypeScript Math Library geared toward 3D Prototyping.

    • Oito Curves : Extension that handles curves & splines
    • Oito Geometry : Extension that handles procedurally generated geometries
    • Oito Ray : Extension that handles various intersections & collisions.

Inactive Projects :

opencomicreader's People

Contributors

afterlifesol avatar cedricje avatar gtbx avatar maximeh avatar sketchpunk avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

opencomicreader's Issues

I want help to develop this app

I want help to develop this app.

But I use Android Studio. Can we migrate to Android Studio and use gradle as dependency solver?

What do you think of the idea?

I'm sorry for my bad english.

Return to last read comic button

Next to Sync button "return to last read" button could be placed. It could be just generic icon or show very small miniature of the cover. I found this in few e-book readers and comic book reads and the feature improves software usability greatly.

For people who like less clutter in their interface option in settings to turn this feature on/off could be added.

Full black background

Actually, when you read a comic, it uses the default android background that is a light gray gradient, and kind of annoy me since my phone uses amoled display.

Example: http://i.imgur.com/lIBnL6s.png (I resized the page in the propose to show the background)

Is it possible to use full black on the background like in the catalog? Or even better, an option to choose the background color?

Suggestion: Animated Transitions and Navigation

Thanks for this app, it is looking great and is certainly on my fast track to being my default reader. That said I hope a couple features will show up soon in future revisions:

  1. Animated Transition. It is a little jarring to slide my finger and the picture just changes. I personally do not think the animations need to be fancy just have the next or previous page slide in on a page turn.

  2. In-comic navigation. The main thing needed here is a way to move to the previous/next comic from within the comic (other programs do this by tapping the upper left or right corners). It would also be nice to preview and jump directly to page in a comic.

Anyway like I said I am excited to this comic reader come on the scene. It is off to a great start and I look forward to it get better.

Little piece of code to remove same colors borders

I have find this little piece of code that can helps to add a cropborders function:

public Bitmap cropBorderFromBitmap(Bitmap bmp) {

        //Convenience variables
  int width = bmp.getWidth();
  int height = bmp.getHeight();
  int[] pixels = new int[height * width];

 //Load the pixel data into the pixels array
bmp.getPixels(pixels, 0, width, 0, 0, width, height);

int length = pixels.length;

int borderColor = pixels[0];

//Locate the start of the border
int borderStart = 0;
for(int i = 0; i < length; i ++) {

    // 1. Compare the color of two pixels whether they differ
    // 2. Check whether the difference is significant    
    if(pixels[i] != borderColor && !sameColor(borderColor, pixels[i])) {
        Log.i(TAG,"Current Color: " + pixels[i]);                   
        borderStart = i;
        break;
    }
}

//Locate the end of the border
int borderEnd = 0;
for(int i = length - 1; i >= 0; i --) {
    if(pixels[i] != borderColor && !sameColor(borderColor, pixels[i])) {
        Log.i(TAG,"Current Color: " + pixels[i]);
        borderEnd = length - i;
        break;
    }
}

//Calculate the margins
int leftMargin = borderStart % width;
int rightMargin = borderEnd % width;
int topMargin = borderStart / width;
int bottomMargin = borderEnd / width;

//Create the new, cropped version of the Bitmap
bmp = Bitmap.createBitmap(bmp, leftMargin, topMargin, width - leftMargin - rightMargin, height - topMargin - bottomMargin);
return bmp;
}

private boolean sameColor(int color1, int color2){
// Split colors into RGB values

long r1 = (color1)&0xFF;
long g1 = (color1 >>8)&0xFF;
long b1 = (color1 >>16)&0xFF;

long r2 = (color2)&0xFF;
long g2 = (color2 >>8)&0xFF;
long b2 = (color2 >>16)&0xFF;

long dist = (r2 - r1) * (r2 - r1) + (g2 - g1) * (g2 - g1) + (b2 - b1) *(b2 - b1);

// Check vs. threshold 
return dist < 200;
}

Maybe someone with the knowledge can implement this and include differents levels of detection, like "medium", "strong", etc.

Source: http://stackoverflow.com/questions/12253739/how-to-remove-a-border-with-an-unknown-width-from-an-image

7z support

Please add support for picture archives compressed using the 7z archive format. Unlike the rar format and compressor, the 7z format and the 7zip compressor are open and supported by open source operating systems for both compression and decompression.

what in the world does "sync" mean?

I have a folder full of comics. I want them to stay there, I want to read them with OpenComicReader.

I couldn't find an "open" dialog. I thought I might try setting one of the "sync" folders to the place where the comics are and "sync" ing, but it asked "Are you sure you want sync the library?" which makes it sound like a destructive operation, which is definitely something I do not want.

There is no documentation. There is no indication as to what "sync"ing would do, how am I supposed to know if I want to do it? The Readme here on github is blank. What is the deal? Do I have to go read the source? It's Java, man, my Java is no good. It looks like it's just creating a database indexing the comics, so it's probably what I want to do, but man, should I have to read the source to know that?

Settings button doesn't work

The Settings button, located in the options menu, doesn't show the settings view if pressed.
This issue is related to the latest version, 0.2.0 beta, available through the Play Store.

Wrong covers in library view

I have one comic that, no matter what, will never display the cover in the file as the cover in library view - instead, it displays the third page in the comic (the eighth image in the archive).

The cover image in the .cbz archive (I switched from rar to zip - bug still occurs) is titled akira_1_c001.jpg. It is correctly ordered first in the archive and shows as such in desktop comic reader programs. But opencomicreader for some reason displays the fourth-and-fifth interior pages (one single splash page image, titled Akira_1_p004-p005.jpg) as the cover in library view. I haven't been able to find any rhyme or reason for the app's preference for this interior page as the cover. My other volumes of the same work have the same jpg filename syntax and the covers show up fine. The only thing I can thing of is that the app prefers large horizontal images as the cover - none of the other volumes have two-page color spreads in the first few pages. The cover image itself (and subsequent interior cover pages, credits, etc. including the first 3 pages of the comic itself have been shunted to the very end of the book in opencomicreader - again, no issues when viewing it in a desktop application).

A manual 'select X page as cover' setting would be welcome.

Next Wave of Enhancements - Series Name Centric

  • Add settings to customize how the series name are generated. Options would be use regular expressions or the parent folder name. Hopefully this will make things better for those folks
  • Look into the sync functionality and try to find ways to improve things.
  • A Special Menu to perform some maintenance functions
    --- Reset Series Names (used when changing the sync settings)
    --- Clear Cover Cache (deletes covers and any database settings, then tries to redo it all)
    --- Move App Reset button to this new menu
  • Add a Dialog to change the series name of multi-selected list items.
  • About Dialog Box. Would like to put the names of the contributors and a link back to the project in the app.

New page loading mode not working on Onyx Lynx T68

Commit 0fd6e13

Description: On line 86 of ComicLoader.java max texture size is determined as 0. Then in PageLoader.java newWidth and newHeight get set to 0, which throws and Exception on line 179. It's:
java.lang.IllegalArgumentException: width and height must be > 0

Also it later crashes the app with NullPointerException when exception handler calls bmp.recycle(), as it's null at this point.

It works correctly on some devices(for example Prestigio PAP4500), but doesn't work on Onyx Lynx T68.

Device: Onyx Lynx T68

OpenGL information gathered by https://play.google.com/store/apps/details?id=nl.svdree.glesinfo:
[EGL]

Vendor: Google Inc.
Version: 1.2 Android Driver 1.2.0
Extensions:
EGL_ANDROID_swap_rectangle
EGL_ANDROID_image_native_buffer
EGL_KHR_image_base
EGL_ANDROID_get_render_buffer

[OpenGL-ES 1.x]

Vendor: Android
Version: OpenGL ES-CM 1.0
Renderer: Android PixelFlinger 1.4
Max. lights: 8
Max. texture size: 4096
Max. texture units: 2
Subpixel bits: 4
Extensions:
GL_OES_byte_coordinates
GL_OES_fixed_point
GL_OES_single_precision
GL_OES_read_format
GL_OES_compressed_paletted_texture
GL_OES_draw_texture
GL_OES_matrix_get
GL_OES_query_matrix
GL_OES_EGL_image
GL_OES_compressed_ETC1_RGB8_texture
GL_ARB_texture_compression
GL_ARB_texture_non_power_of_two
GL_ANDROID_user_clip_plane
GL_ANDROID_vertex_buffer_object
GL_ANDROID_generate_mipmap

[OpenGL-ES 2.x]

Not supported

FC when opening .CBR in v0.3

Removed previous version (+data & cache) ; fresh install of v0.3.
Crash when opening a .CBR (e.g. through Ghost Commander file manager) :

I/ActivityManager(  446): Start proc com.sketchpunk.ocomicreader for activity com.sketchpunk.ocomicreader/.ViewActivity: pid=23843 uid=10175 gids={50175, 1028, 1015, 1023}
V/GhostCommanderActivity(21820): Stopping
D/dalvikvm(  122): GC_EXPLICIT freed 43K, 70% free 4344K/14352K, paused 8ms+3ms, total 60ms
D/dalvikvm(  122): GC_EXPLICIT freed <1K, 70% free 4344K/14352K, paused 3ms+3ms, total 41ms
D/dalvikvm(  122): GC_EXPLICIT freed <1K, 70% free 4344K/14352K, paused 3ms+2ms, total 44ms
W/AudioFlinger(  124): write blocked for 421 msecs, 613 delayed writes, thread 0x40f28008
D/dalvikvm(23843): JIT code cache reset in 0 ms (0 bytes 2/0)
D/dalvikvm(23843): GC_CONCURRENT freed 388K, 71% free 4404K/14752K, paused 3ms+1ms, total 36ms
I/System.out(23843): immersive mode
E/libEGL  (23843): call to OpenGL ES API with no current context (logged once per thread)
D/dalvikvm(23843): Trying to load lib /data/app-lib/com.sketchpunk.ocomicreader-1/libjniunrar.so 0x429c0ef0
D/dalvikvm(23843): Added shared lib /data/app-lib/com.sketchpunk.ocomicreader-1/libjniunrar.so 0x429c0ef0
D/dalvikvm(23843): GC_EXPLICIT freed 175K, 70% free 4512K/14752K, paused 4ms+4ms, total 46ms
D/OpenGLRenderer(23843): Enabling debug mode 0
I/System.out(23843): 0.0
I/System.out(23843): 1920.0
D/hwcomposer(  121): fb1 open!
D/hwcomposer(  121): fb1 realy close!
D/dalvikvm(23843): GC_FOR_ALLOC freed 101K, 69% free 4580K/14752K, paused 25ms, total 25ms
I/dalvikvm-heap(23843): Grow heap (frag case) to 15.140MB for 986977-byte allocation
D/dalvikvm(23843): GC_FOR_ALLOC freed 0K, 65% free 5544K/15716K, paused 18ms, total 18ms
I/System.out(23843): Bitmap is null
I/HK/LatinKeyboardBaseView(15203): closing org.pocketworkstation.pckeyboard.LatinKeyboardView{429cb4f0 V.ED.... ......ID 0,0-1200,460 #7f07000a app:id/LatinkeyboardBaseView}
D/dalvikvm(23843): GC_CONCURRENT freed 11K, 65% free 5548K/15716K, paused 5ms+3ms, total 34ms
D/dalvikvm(23843): WAIT_FOR_CONCURRENT_GC blocked 29ms
I/ActivityManager(  446): Displayed com.sketchpunk.ocomicreader/.ViewActivity: +1s118ms
D/dalvikvm(23843): GC_EXPLICIT freed 68K, 66% free 5486K/15716K, paused 4ms+6ms, total 53ms
I/System.out(23843): 2560
I/System.out(23843): 1969
I/System.out(23843): Test Scale 2147483647
D/dalvikvm(23843): GC_EXPLICIT freed 42K, 66% free 5485K/15736K, paused 2ms+2ms, total 25ms
I/System.out(23843): Error Rescaling Image for Display : width and height must be > 0
I/System.out(23843): Error Rescaling Image for Display : width and height must be > 0
W/dalvikvm(23843): threadid=12: thread exiting with uncaught exception (group=0x41bb6ba8)
E/AndroidRuntime(23843): FATAL EXCEPTION: AsyncTask #2
E/AndroidRuntime(23843): Process: com.sketchpunk.ocomicreader, PID: 23843
E/AndroidRuntime(23843): java.lang.RuntimeException: An error occured while executing doInBackground()
E/AndroidRuntime(23843):    at android.os.AsyncTask$3.done(AsyncTask.java:300)
E/AndroidRuntime(23843):    at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
E/AndroidRuntime(23843):    at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
E/AndroidRuntime(23843):    at java.util.concurrent.FutureTask.run(FutureTask.java:242)
E/AndroidRuntime(23843):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
E/AndroidRuntime(23843):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
E/AndroidRuntime(23843):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
E/AndroidRuntime(23843):    at java.lang.Thread.run(Thread.java:841)
E/AndroidRuntime(23843): Caused by: java.lang.NullPointerException
E/AndroidRuntime(23843):    at com.sketchpunk.ocomicreader.lib.PageLoader$LoadingTask.doInBackground(PageLoader.java:203)
E/AndroidRuntime(23843):    at com.sketchpunk.ocomicreader.lib.PageLoader$LoadingTask.doInBackground(PageLoader.java:1)
E/AndroidRuntime(23843):    at android.os.AsyncTask$2.call(AsyncTask.java:288)
E/AndroidRuntime(23843):    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
E/AndroidRuntime(23843):    ... 4 more
W/ActivityManager(  446):   Force finishing activity com.sketchpunk.ocomicreader/.ViewActivity
D/dalvikvm(  446): GC_FOR_ALLOC freed 3966K, 50% free 23606K/46868K, paused 115ms, total 115ms
D/hwcomposer(  121): fb1 open!
W/ActivityManager(  446): Duplicate finish request for ActivityRecord{429a0958 u0 android/com.android.internal.app.ResolverActivity t166 f}
I/GhostCommanderActivity(21820): Action: android.intent.action.MAIN

Support for unpacked comics

Most of my comics are in an unpacked form, so instead of packing them in to CBR or CBZ, it would be useful if Open Comic Reader would support those out of the box.

Next Wave of Enhancements - View Centric

Getting emails and issues requests about new features and whatnot for the next update. I'm pretty busy with work lately, so I won't get started till end of feb or some point in march. So here's a list and some notes of what I hope to accomplish for the next update. Lots of under the hood type of work is planned to make the over all app better.

  • Create a new ui using SurfaceView instead of View. Uses threading for drawing.
  • Redo Page caching using LruCache and DiskLruCache objects. This should help holding additional pages without getting out of memory errors.
  • Resize image to screen size when Out of memory exception happens. (CodeNotes: Depending on the device there are limits of how big an image is allowed to be. I have yet to find a way to determine the limit before doing any kind of work.)
  • Revisit gestures for better ways to handle swipe and pinch.
  • Instead of hold tap to get option menu, create a slide in menu that modern android apps are using. Maybe even be able to go straight to a page from the menu.
  • Add some transformation animations, make scaling and moving an image look smoother.
  • Look into how to slide in new page. Multi Page Painting as a way?
  • New Features
    -- View 2 Pages at the same time (CodeNotes : Paint 2 images as one? So when doing scaling or anything else its being done to one image as a whole)

    -- Disable Auto Rotation when viewing a page. Make it a setting plus something that can be toggled from the menu.

    -- Double Tap for Zoom in (Right now double tap resets view)

    -- When zoomed in, left/right taps will animate the image slide to the edge instead of moving to the next page. When tapping while at the edge will cause the page turn.

    -- When at the last page, next tap will launch the next comic. (CodeNotes : Move Library SQL into a function, when moving to the view activity pass the filter information and comic position in the recordset. When needing to get next/prev comic, using the filter info plus the sql function along with some paging functionality to get the next/prev comic on the list.)

Double tap / single tap zoom in / zoom out

Hello I'm a big fan of your app, that I downloaded this very morning, and I signed up to github just to gave you a feedback and à suggestion. I like that it's straightforward, good job ! I'm using a nexus 7 and 4 devices on kitkat. Pince to zoom is working fine, but some people are big fans of double tap to zoom in / zoom out. Actually it would be even greater to have the choice to do so using SINGLE tap or DOUBLE tap, around the center area of a page. For next/prev pages, the tap on the edges of the page would not be affected. Cheers

wrong covers in library view

In library view all my comics have random covers, while the filename it's ok, and open the comic as expected in filename but covers doesn't match.

Feature request: force orientation

It would be very helpful if users could turn off auto rotation and force either landscape or portrait orientation. I personally hate it when I'm reading a comic and the orientation changes simply because I tilted my tablet slightly.

Next part / Previous part of an image

I would like if it's possible to go next part of image on single tap if it's zoomed, like comicrack does instead of page change.
I also would like double tap to zoom in & out.

Thanks for the good work.

opencomicreader doesn't recognize .cbz archive

Hi there i found a minor bug in your App and also the Solution to it :)
If the Images inside the ".cbz" have the file.extension ".jpeg" instead of ".jpg" the Archive won't get recognized at all.

Most .cbz use .jpg by default but there are some minor ones that use ".jpeg" and won't get recognized therefore.

Work-Around for the ones effected by the same problem:
(Under Debian or Ubuntu)

Extract the whole cbz-archive using Fileroller or similiar
Open Terminal
CD into the folder in which the Images are and use the following command to change all ".jpeg" extensions to ".jpg" without changing the filename:

rename 's/jpeg$/jpg/' *

After you've done so pack everything into an .zip Archive (fileroller) and change the extension to .cbz

Hope it helped!

PDF support

Just an enhancement request. Would it be possible to add PDF support ?
Lots of commercial comics are being published in PDF.
Thanks !

Confusing behaviour

It is not obvious that to turn the page in zoom mode I should press on the left or right margin.(flicking is turned off). Moreover, when flicking is enabled it is virtually impossible to navigate in zoom mode, because frequently instead of navigating the zoomed image( left slide) I get moved to the next page

OCR 0.2.1.1 beta: Task switching away then back to Open Comic Reader does not restore immersive mode.

Title pretty much says it all.

Immersive mode is great but after switching to another app, then back again, the notification bar and virtual home screen icons remain visible obscuring the image which is still scaled to the full screen width.

I'm using Android 4.4.2 on a Nexus 5. You can reproduce this by simply opening a comic to read (in full screen immersive mode), switching to another app (or home screen) and back again.

Hope that's clear.

Crash when pressing back button while reading comic in horizontal view.

OCM crashs when pressing back button while reading comic in horizontal view.

How to reproduce:

  1. Start OCM
  2. Choose a comic to read (e.g. cbr)
  3. Flip phone sideways (horizontal)
  4. Press back button to return to library
  5. Crash

Android 4.2.2

Exception class name
java.lang.IllegalStateException

Source file
SQLiteConnectionPool.java

Source method
throwIfClosedLock

Line Number
962

Stack trace contains
java.lang.IllegalStateException: Cannot perform this operation because the connection pol has been closed.

Let me know, if you need further information.

mTapBoundary in GestureImageView is hardcoded

I was wondering why I had problems switching pages and why my taps wouldn't often register. Currently mTapBoundary is set to 75 and never changed based on screen width. This means only 6% of my screen is actually possible to tap...

New Library UI

Been using windows 8 on a tablet lately and I kinda like the tile interface. Thinking about redesigning the library UI to be more modern tile-ish where you can swipe from left to right instead of how it is now which is more based on how most of the other comic book apps look like.

How do people feel about that?

Scaling not saved when changeing in comic

When you read a comic and press the comic for a secong, a scale dialog pops up. When you change the scale it's only temporary for that session. It does not get saved permanently.

I don't know if this is a bug or intended.

Comics not ordering properly.

Since the last update, comics are no longer ordered alphabetically. I can find no rhyme or reason to the ordering now, it seems to be entirely random.

On my computer:

AKIRA Volume 1
AKIRA Volume 2
AKIRA Volume 3
AKIRA Volume 4
AKIRA Volume 5
AKIRA Volume 6
Batman Year 100
Boxers & Saints - Boxers
Boxers & Saints - Saints
Britten And Brulightly
From Hell
Ghost World Godzilla, The Half-Century War
Hip Hop Family Tree Volume 1
I Shall Destroy All Civilized Planets!
Judge Dredd - The Complete Case Files 01
etc.
and numerous others (51 files in all)

In OpenComicReader:

AKIRA Volume 1
AKIRA Volume 3
Judge Dredd - The Complete Case Files 02
through
Judge Dredd - The Complete Case Files 08
Les aventures extraordinaires d'Adèle Blanc-Sec 03 - Le savant fou
AKIRA Volume 4
AKIRA Volume 2
AKIRA Volume 6
AKIRA Volume 5
Judge Dredd - The Complete Case Files 08
etc.

The majority of the files are cbz.

Option to turn on Natural Sort Order for comic pages and issues

Currently we have sorting 1->10>100 which is fine when your files are named 001, 002 and so on. For people with big collections of files named 1->2->...->10 this means files will be sorted in wrong order and require a lot of batch name changing, which can be especially bad if the pages in archives are also named like this.

I propose using natural sort order/human readable sort order and optionally option to enable/disable it in settings. Some helpful algorithms might be found here: http://blog.codinghorror.com/sorting-for-humans-natural-sort-order/

Virtual buttons don't hide again when accidentally showing.

I read in fullscreen mode. Sometimes I accidentally swish from top to bottom, triggering the display of the virtual buttons. They don't disappear unless I go to the library and then back to the comic.

Please add a timer or something to hide them again after showing them.

Menu not hiding after a reopen of in progress comic

If I have a comic open and have the app lose focus somehow (notification, go to home screen and back etc) the menu appears but never disappears.

I would expect it to behave similar to when you first open a comic and the menu disappears.

License change

I'm hoping to see opencomicreader in F-Droid, a repository for Free and Open Source android applications.[1] Both the OSI Open Source Definition and the FSF Free Software Definition explicitly state that sale and other commercial uses must be allowed for a license to be considered free. Since opencomicreader has a non-commercial license, it can't currently be included in F-Droid. Are there any plans to choose a Free Software compatible license such as the GPLv3 or Apache 2.0?

More information on why Free Culture projects should avoid using a non-commercial license: http://freedomdefined.org/Licenses/NC

[1]https://f-droid.org/

FC when accessing settings in v0.3

(appearantly, this issue has also been reported in the Reviews section in the Play Store)

Removed previous version (+data & cache) ; fresh install of v0.3.
Crash when accessing 'Settings' menu option :

I/ActivityManager(  446): START u0 {cmp=com.sketchpunk.ocomicreader/.PrefActivity} from pid 23635
D/dalvikvm(23590): GC_CONCURRENT freed 403K, 70% free 4589K/15004K, paused 4ms+2ms, total 37ms
D/AndroidRuntime(23635): Shutting down VM
W/dalvikvm(23635): threadid=1: thread exiting with uncaught exception (group=0x41bb6ba8)
E/AndroidRuntime(23635): FATAL EXCEPTION: main
E/AndroidRuntime(23635): Process: com.sketchpunk.ocomicreader, PID: 23635
E/AndroidRuntime(23635): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.sketchpunk.ocomicreader/com.sketchpunk.ocomicreader.PrefActivity}: java.lang.RuntimeException: Subclasses of PreferenceActivity must override isValidFragment(String) to verify that the Fragment class is valid! com.sketchpunk.ocomicreader.PrefActivity has not checked if fragment com.sketchpunk.ocomicreader.PrefActivity$SyncPreferenceFragment is valid.
E/AndroidRuntime(23635):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
E/AndroidRuntime(23635):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
E/AndroidRuntime(23635):    at android.app.ActivityThread.access$800(ActivityThread.java:135)
E/AndroidRuntime(23635):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
E/AndroidRuntime(23635):    at android.os.Handler.dispatchMessage(Handler.java:102)
E/AndroidRuntime(23635):    at android.os.Looper.loop(Looper.java:136)
E/AndroidRuntime(23635):    at android.app.ActivityThread.main(ActivityThread.java:5017)
E/AndroidRuntime(23635):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(23635):    at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime(23635):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
E/AndroidRuntime(23635):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
E/AndroidRuntime(23635):    at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)
E/AndroidRuntime(23635):    at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(23635): Caused by: java.lang.RuntimeException: Subclasses of PreferenceActivity must override isValidFragment(String) to verify that the Fragment class is valid! com.sketchpunk.ocomicreader.PrefActivity has not checked if fragment com.sketchpunk.ocomicreader.PrefActivity$SyncPreferenceFragment is valid.
E/AndroidRuntime(23635):    at android.preference.PreferenceActivity.isValidFragment(PreferenceActivity.java:898)
E/AndroidRuntime(23635):    at android.preference.PreferenceActivity.switchToHeaderInner(PreferenceActivity.java:1179)
E/AndroidRuntime(23635):    at android.preference.PreferenceActivity.switchToHeader(PreferenceActivity.java:1219)
E/AndroidRuntime(23635):    at android.preference.PreferenceActivity.onCreate(PreferenceActivity.java:564)
E/AndroidRuntime(23635):    at com.sketchpunk.ocomicreader.PrefActivity.onCreate(PrefActivity.java:29)
E/AndroidRuntime(23635):    at android.app.Activity.performCreate(Activity.java:5231)
E/AndroidRuntime(23635):    at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method)
E/AndroidRuntime(23635):    at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:631)
E/AndroidRuntime(23635):    at android.app.Activity.performCreate(Native Method)
E/AndroidRuntime(23635):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
E/AndroidRuntime(23635):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
E/AndroidRuntime(23635):    ... 12 more
W/ActivityManager(  446):   Force finishing activity com.sketchpunk.ocomicreader/.PrefActivity
W/ActivityManager(  446):   Force finishing activity com.sketchpunk.ocomicreader/.LibraryActivity
D/hwcomposer(  121): fb1 open!
D/hwcomposer(  121): fb1 realy close!
W/ActivityManager(  446): Activity pause timeout for ActivityRecord{429c2200 u0 com.sketchpunk.ocomicreader/.PrefActivity t165 f}
D/dalvikvm(22472): GC_CONCURRENT freed 1598K, 87% free 5218K/37472K, paused 3ms+6ms, total 36ms
V/RenderScript( 4833): 0x74141cf0 Launching thread(s), CPUs 4

Folder view

Would it be possible to add a folder view to the app ?
It would provide a more intuitive way to navigate through the library for those who have issues with the other views.

Thanks !

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.