GithubHelp home page GithubHelp logo

ark-retouch-legacy's People

Contributors

kirillt avatar mdrlzy avatar pgpathan22 avatar sdex avatar

Stargazers

 avatar

Watchers

 avatar

ark-retouch-legacy's Issues

Move [undo] button to top bar, make it easy to access

When a user taps on bottom toolbar (semi-transparent), it hides. It is good for drawing, but during drawing [undo] often is needed, so to access it, it is necessary to invoke toolbar again. Moving [undo] button out of it, into fixed top bar, would make it much easier to use.

Crop frame resets after rotation

Two flavours of this bug:

  1. Select a frame for crop, turn screen: right border of the frame resets.
  2. Select a frame for crop, switch into drawing mode, turn screen: crop frame resets completely.
crop.mp4

Capability to put text labels on image

Would be cool if Retouch could put text labels on images. For this we need additional button which puts dragable bubble and editable text inside. Would be great to be able to change shape and color of the bubble as well (or just disable the bubble and leave only plain text).

Toolbar is inconsistent in different layouts

Sometimes, depending on orientation toolbar can be floating over the image (correct) or occupy space at the bottom while image is scaled down (incorrect). We need image always occupy maximum space available.
landscape
portrait

Crop mode not showing image.

Step to reproduce the issue.

  1. Select image first time
  2. Go to draw mode.
  3. Select new image again.
  4. Tap on crop mode

Result: Image is invisible

device-2022-08-20-122034.mp4

.

Video file edit

Video file can be open by ark-retouch

After video is opened we can see only thumbail
We can draw on it and save
After save we have .mp4 file with size of some kB, not usible

Editor modes stores modifications in separate states

When we change editor mode, e.g. from "cropping" to "drawing", all modifications are reset. The same if we change editor mode from "drawing" to "cropping". But when we switch back, drawing modifications are remembered. Cropping modifications are not remembered at all.

bug.mp4

What is expected is to preserve all modifications in the same state and make user capable of composing operations.

Bottom bar default selections inconsistent

When 2nd time image is selected from file picker, the default selection in toolbar is gone and show only some options from crop mode. not all option visible.

device-2022-08-20-120305.mp4

.

Previous changes lost after save

When a user performs several changes on the same picture, overwriting it several times — changes made before previous save are lost, only last changes are visible. Cleaning cache of ARK Retouch using Android settings solves it.

bug.mp4

Rotation behaves differently in drawing mode

In cropping mode, an image occupies all available space after rotation and multiple rotations don't affect quality of the picture.

In drawing mode, the same image becomes small after rotation and also quality degrades with each rotation, which is noticeable after multiple rotations — the picture becomes blurry.

bug.mp4

Landscape layout is un-usable

When app is presented in lanscape layout, controls take much more space than the image itself.

This makes it difficult to edit photo:
Screenshot_20220415-204631_ARK Retouch

Color picking tool

It would be nice to be able to pick any color from the image itself and use it for drawing. This should involve a button somewhere in color selecting dialog. When it was pressed, touching the image would set current color to be the color of touched pixel.

Permissions for access in files

Steps to allow access are on the wrong action for first use

  • Install app
  • Press + button - > We get empty list of interal storage
  • Go back and press ✔️ button -> Permission modal is open.
  • Allow access
  • Press + button -> now folders and files of internal storage/SD card are visible

Pass back to ARK Navigator info for linking versions

When a user is done with editing and is saving modified version into folder containing the original version, we want to pass both paths back into ARK Navigator. This action must be supported in ARK Navigator as well — we want to link both versions (this requires ARK-Builders/ARK-Navigator#40) and port tags from older version to newer one. We must be sure that we perform this linking before ARK Navigator performed re-indexation. In case of overwriting, the paths coincide and re-indexation would erase old version of the resource from the index and we would be unable to extract it's id and tags information.

After linking the two versions we can port tags from older version to the newer as well.

Width constraint violation

java.lang.IllegalArgumentException: x + width must be <= bitmap.width()
	at android.graphics.Bitmap.createBitmap(Bitmap.java:984)
	at android.graphics.Bitmap.createBitmap(Bitmap.java:950)
	at space.taran.arkretouch.EditActivity$cropImage$2.invokeSuspend(EditActivity.kt:718)
	at space.taran.arkretouch.EditActivity$cropImage$2.invoke(Unknown Source:8)
	at space.taran.arkretouch.EditActivity$cropImage$2.invoke(Unknown Source:4)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
	at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:166)
	at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1)
	at space.taran.arkretouch.EditActivity.cropImage(EditActivity.kt:710)
	at space.taran.arkretouch.EditActivity.access$cropImage(EditActivity.kt:136)
	at space.taran.arkretouch.EditActivity$saveImageFromCropOrDrawMode$1.invokeSuspend(EditActivity.kt:683)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
	at kotlinx.coroutines.internal.LimitedDispatcher.run(LimitedDispatcher.kt:42)
	at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:95)
	at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:570)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:749)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:677)
	at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:664)
	Suppressed: kotlinx.coroutines.DiagnosticCoroutineContextException: [StandaloneCoroutine{Cancelling}@82b1758, Dispatchers.IO]

Quick and simple image editor

We need a micro-editor for images, analogous to editors embedded into default Gallery or Telegram apps.
Only cropping, rotating, text labels and hand writing of different colors are necessary.
Must be implemented in Kotlin and support Android 9 and higher.
Support of older versions of Android isn't required.

The editor must be able to save new version of an image into:

  1. same file (overwrite);
  2. same folder;
  3. folder of choice;
  4. folder from settings.

The app must handle Android EDIT intents from ARK Navigator app while supporting cases 1 and 2 of the list above — this is the reason why we need the editor. I.e. if a user opens an image from ARK Navigator, the user must be able to save the edited version into the same folder containing original image or overwrite original image.

In cases 2-4 new name should be generated if the folder contains a file with the same name (always the case in 2).

This should be an external app, this way it's:

  1. possible to choose to not use our editor if user doesn't need it;
  2. possible to update core app or editor app separately (quicker download);
  3. possible to use the editor by itself.

We can fork this project and take editor from there, or probably modify this one. But in order to integrate it with ARK Navigator external app needs to handle EDIT intent properly, receiving path of the image being edited in it and having access to the folder containing the image.

See also: ARK-Builders/ARK-Navigator#84

Future work:
After a resource is changed, its id changes as well. We should port tags from older version to newer one. In case of overwriting the resource, we can do it using ARK-Builders/ARK-Navigator#40 since both versions share the same path. In case of saving into the same root folder, we can't link versions without help of the editor, so it should either send new path of the resource back into ARK Navigator or update tags storage and index using the library (ARK-Builders/ARK-Navigator#163).

Growing image vertically

If we make user capable of growing image then they could do graphical notes using the app. Suppose the user has device supporting input with pen. The user can write on the image in drawing mode, but when they reach the edge they need more blank space to continue writing. We can grow space on scroll event or by pressing special floating button.

Confirm exit upon [back] event if there are unsaved changes

Right now, the app quits immediately when [back] event triggered. This is very annoying during drawing on devices with navigation gestures enabled instead of 3-buttons bar.

ux-issue.mp4

If user has unsaved changes the app must always confirm if they want to quit and whether changes must be saved.

Hide [+] button when the app starts by EDIT_INTENT

When an external app calls the editor, we should hide option to open another file because we are in the middle of bigger data flow. The calling side might expect some result from us which is not valid for different image.

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.