Git Product home page Git Product logo

android_packages_apps_aperture's Introduction

android_packages_apps_aperture's People

Contributors

althafvly avatar amartinz avatar chirayudesai avatar darkjoker360 avatar dhina17 avatar itsvixano avatar lineageos-gerrit avatar luca020400 avatar luk1337 avatar mikeng avatar sebaubuntu avatar starkdroid avatar t-m-w avatar teccheck avatar thescarastic avatar trautamaki avatar vazguard avatar zifnab06 avatar zvnexus 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

Watchers

 avatar  avatar  avatar  avatar

android_packages_apps_aperture's Issues

Name of picture file.

Hey i have issue on my rom. IDK it is on another rom's but messenger wrong sort of the photos. Photos maked this camera app is last on the list. I noticed it by name. The SS starts by "recived" another camera app name by date. That app too have a date but with the IMG prefix. If it not my rom issue you can delete this prefix to better use of this app.

AE/AF Lock

Hi,
I'd like to request a feature.
I think it would be great to be able to lock Exposure and Focus for shooting videos.

CameraX tracking

Generic CameraX changes in AOSP that will help us in the future:

Link Description Status
https://android-review.googlesource.com/c/platform/frameworks/support/+/2742215 Proper video frame rate selector, video dynamic color range, mirror mode Merged, waiting for release
https://android-review.googlesource.com/c/platform/frameworks/support/+/2597686 Persistent recording (Flip camera while recording) Waiting for API exposure, gonna take a while for CameraController
https://android-review.googlesource.com/c/platform/frameworks/support/+/2326153 HFR (>=120fps) recording Merged but API for it isn't public
None Concurrent camera mode Merged in master, not exposed from CameraController
https://android-review.googlesource.com/c/platform/frameworks/support/+/2740958 Video and preview stabilization Waiting for merge and release
https://android-review.googlesource.com/c/platform/frameworks/support/+/2572510 Audio amplitude Maybe show on info island?

Add axis hint in preview

Using position sensors we should show a guide to let the user know of the device azimuth of the current main axis

Will likely suffer of the same issue of grid view positioning ...

Sd card storage

It would be great if this app can save img/vid to external drive

Spanish translations not approved yet on Crowdin.

I would like to add some spanish translations to this project. Although there is a strings.xml file, most of the LineageOS app are translated via Crowdin. But I can't find the Crowdin for this app neither.

Should I contribute with a pull request? Or is there any Crowdin specific section that I'm missing.
Thanks :)

UI

This issue will track the status of adopting the UI from figma design by Vaz

Make top bar items dropdowns

With the current logic we cycle between all the available items, we should instead make the user able to pick only what they need.

Aparture is not included in the latest LineageOS build.

Hello there.

I'm have just installed the latest official LineageOS rom but that doesn't include this camera on my device (Redmi 8A / Mi439), instead that bundles another camera having the package name "com.android.camera2". Is this intentional or an accidental mistake? If this is unintentional then where should I report it?

Thank you for your time.

Allow to use coarse location

Currently we allow GPS tagging only if both coarse and fine are granted, while we should allow coarse only to be used

Handling one-time photo/video for other apps

I don't even know where to start implementing that, but camera apps installed as system app should be able to handle other apps requests for a single photo/video (e.g. when uploading a photo from Chrome)

This can be done later once we start testing the app inline with LineageOS

Make top bar dynamic

The top bar items are hardcoded and visible regardless of supported items
Instead we should make it completely dynamic and adjust the item position based on already ( if any ) present items.

This is required for devices not supporting any camerax extension and without a flash.

Possible solution: use an horizontal linear layout, or possibly easier, make a little custom view class that extends a linear layout that handles everything for us

Gallery preview

Currently we use a different shade of grey to show whether we have an available photo/video to open via gallery.
Instead it should use a cropped version of the photo or a frame of the video.

Both are available to us as an Uri, need to check what we should do in both cases.

Add zoom information to zoom slider

It's not uncommon for the slider to not have a linear progress in some specific ratio ( 0.7x in Pixel 6 ) as they switch to another lens
As a first step we need to add the current ratio inside the slider, further in the process ( if possible ) add some know steps in the UI.

External microphone support

Maybe it's because Aperture isn't configured for my device (Sony Xperia 10 IV / XQ-CC54) but external mics plugged in through the 3.5mm audio jack don't seem to work, only the onboard mic. It's definitely a niche use case but thought it would be nice to have.

H265 recording

An option to select the codec the video file will be saved would be useful.

Check intent results

From ActivityResultContracts:

    /**
     * An [ActivityResultContract] to
     * [take small a picture][MediaStore.ACTION_IMAGE_CAPTURE] preview, returning it as a
     * [Bitmap].
     *
     * This can be extended to override [createIntent] if you wish to pass additional
     * extras to the Intent created by `super.createIntent()`.
     */
    open class TakePicturePreview : ActivityResultContract<Void?, Bitmap?>() {
        @CallSuper
        override fun createIntent(context: Context, input: Void?): Intent {
            return Intent(MediaStore.ACTION_IMAGE_CAPTURE)
        }

        final override fun getSynchronousResult(
            context: Context,
            input: Void?
        ): SynchronousResult<Bitmap?>? = null

        @Suppress("DEPRECATION")
        final override fun parseResult(resultCode: Int, intent: Intent?): Bitmap? {
            return intent.takeIf { resultCode == Activity.RESULT_OK }?.getParcelableExtra("data")
        }
    }

    /**
     * An [ActivityResultContract] to
     * [take a picture][MediaStore.ACTION_IMAGE_CAPTURE] saving it into the provided
     * content-[Uri].
     *
     * Returns `true` if the image was saved into the given [Uri].
     *
     * This can be extended to override [createIntent] if you wish to pass additional
     * extras to the Intent created by `super.createIntent()`.
     */
    open class TakePicture : ActivityResultContract<Uri, Boolean>() {
        @CallSuper
        override fun createIntent(context: Context, input: Uri): Intent {
            return Intent(MediaStore.ACTION_IMAGE_CAPTURE)
                .putExtra(MediaStore.EXTRA_OUTPUT, input)
        }

        final override fun getSynchronousResult(
            context: Context,
            input: Uri
        ): SynchronousResult<Boolean>? = null

        @Suppress("AutoBoxing")
        final override fun parseResult(resultCode: Int, intent: Intent?): Boolean {
            return resultCode == Activity.RESULT_OK
        }
    }

    /**
     * An [ActivityResultContract] to
     * [take a video][MediaStore.ACTION_VIDEO_CAPTURE] saving it into the provided
     * content-[Uri].
     *
     * Returns a thumbnail.
     *
     * This can be extended to override [createIntent] if you wish to pass additional
     * extras to the Intent created by `super.createIntent()`.
     *
     */
    @Deprecated(
        """The thumbnail bitmap is rarely returned and is not a good signal to determine
      whether the video was actually successfully captured. Use {@link CaptureVideo} instead."""
    )
    open class TakeVideo : ActivityResultContract<Uri, Bitmap?>() {
        @CallSuper
        override fun createIntent(context: Context, input: Uri): Intent {
            return Intent(MediaStore.ACTION_VIDEO_CAPTURE)
                .putExtra(MediaStore.EXTRA_OUTPUT, input)
        }

        final override fun getSynchronousResult(
            context: Context,
            input: Uri
        ): SynchronousResult<Bitmap?>? = null

        @Suppress("DEPRECATION")
        final override fun parseResult(resultCode: Int, intent: Intent?): Bitmap? {
            return intent.takeIf { resultCode == Activity.RESULT_OK }?.getParcelableExtra("data")
        }
    }

    /**
     * An [ActivityResultContract] to
     * [take a video][MediaStore.ACTION_VIDEO_CAPTURE] saving it into the provided
     * content-[Uri].
     *
     * Returns `true` if the video was saved into the given [Uri].
     *
     * This can be extended to override [createIntent] if you wish to pass additional
     * extras to the Intent created by `super.createIntent()`.
     */
    open class CaptureVideo : ActivityResultContract<Uri, Boolean>() {
        @CallSuper
        override fun createIntent(context: Context, input: Uri): Intent {
            return Intent(MediaStore.ACTION_VIDEO_CAPTURE)
                .putExtra(MediaStore.EXTRA_OUTPUT, input)
        }

        final override fun getSynchronousResult(
            context: Context,
            input: Uri
        ): SynchronousResult<Boolean>? = null

        @Suppress("AutoBoxing")
        final override fun parseResult(resultCode: Int, intent: Intent?): Boolean {
            return resultCode == Activity.RESULT_OK
        }
    }

Secure gallery

If Selfie was started via the secure intent it shouldn't load the image and instead show a lock icon until a photo/video is taken, only then it'll be shown.

Panorama

Don't know if this is not out of scope, but I am really missing a panorama function.

Package for f-droid

This is built for Lineage OS, but could it also be delivered by f-droid for users not getting it in the OS? E.g. users without lineage?

raw photos

Option to save raw 16bit images(aka dng format) would be nice. Is this something that could be implemented in the future?

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.