Giter VIP home page Giter VIP logo

heartbeat's Introduction

HeartBeat

Java CI with Gradle

Get it on F-Droid

A very simple heart rate monitor for Android.

To initiate a measurement, start the app and place your finger on the camera, covering the flash as well, and keep still. The measurement takes roughly 10-15 seconds.

Once it is complete, the results, and the raw data is shown. While the app doesn't keep a log, these results can be copied.

heartbeat's People

Contributors

berdosi avatar carldea avatar dreamsyntax avatar easyvector avatar oymate avatar sguinetti avatar sr093906 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

heartbeat's Issues

Camera selection

Not all phones have a flash right next to the main shooter, and because of that it's not always possible to cover both the camera and flash.
Therefore I ask for camera selection dialogue to be added in settings

New measurement button

I am finding Heartbeat very useful. I would like to have a New Measurement button on the main screen, so I could start a new measurement with a single click.

Not able to run the app from Android Studio

Is it possible to open this project in android studio and run the app ?

When i tried to open this project in android studio, gradle sync is failing and also i got a warning as
Warning: License for package Android SDK Build-Tools 29.0.2 not accepted.

I'm using Android Studio Version 4.2 Beta4

Please provide an APK

Could you please make an APK file available for download? Most projects attach it to the corresponding release (at releases/), which would be very fine. Thanks a lot in advance!

Flashlight gets hot (Fairphone 3)

Hi, I am not sure if this is device specific, but my flash led gets so hot that I can't press my finger onto it after a few seconds. I just checked that this is not the case when I switch it on using the torch tile in my quick settings.

If there is any information that could help you track down the root cause, I'll try to provide it.

Crash on Measurement Completed | API <= 23

Stacktrace

2021-08-18 14:19:35.186 4649-4649/eu.berdosi.app.heartbeat E/AndroidRuntime: FATAL EXCEPTION: main
    Process: eu.berdosi.app.heartbeat, PID: 4649
    java.lang.IllegalArgumentException: Unknown pattern character 'X'
        at java.text.SimpleDateFormat.validatePatternCharacter(SimpleDateFormat.java:314)
        at java.text.SimpleDateFormat.validatePattern(SimpleDateFormat.java:303)
        at java.text.SimpleDateFormat.<init>(SimpleDateFormat.java:356)
        at eu.berdosi.app.heartbeat.OutputAnalyzer$1.onFinish(OutputAnalyzer.java:173)
        at android.os.CountDownTimer$1.handleMessage(CountDownTimer.java:127)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5254)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

Cause

Breaking on <string name="dateFormatGranular">yyyy-MM-dd\'T\'HH:mm:ss.SSSXXX</string>

new SimpleDateFormat(
          activity.getString(R.string.dateFormatGranular),
          Locale.getDefault()
          ).format(value.timestamp);

Blocked texts on the main page

Describe the bug

Dear developer!
In the process of using, I found a bug in layout / display. As shown in the figure below, on the main page, pulse indicating texts are blocked. Because the textedit element is not scrollable therefore the introduction texts of usage could not be seen fully. This may be an adaptation problem. I suspect it is because display and font size are set to large (mainly due to display size).
103165857-dbaf8580-4857-11eb-9e22-120ae1901389

App version is 2.1.0, my mobile phone is Google Pixel 2, and the screen resolution setting is 1920* 1080. And my font size and display size are the largest ! ! ! Also, my Android system version is 10.0.
The above is a description of the problem. The overall experience of the software is good. You can see that the design is very attentive. Thank you very much for the efforts of the developers all the time. I hope to receive a reply. Thank you so much!!

Expected behavior

I hope that I can see all of the texts fully, and in this circumstance, part of them seem to be blocked.

Steps to reproduce the behavior:

1.use the largest font and display in the display setting
2.open this app and wait
3.this error could be seen

Screenshot

copy

Environment

  1. Version of Heartbeat: 2.1.0
  2. Device : Google Pixel 2,
  3. OS version : Android 10.0

Crash on AppInit | API <= 22

Stacktrace

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: eu.berdosi.app.heartbeat, PID: 3475
    java.lang.NoSuchMethodError: No super method onRequestPermissionsResult(I[Ljava/lang/String;[I)V in class Landroid/app/Activity; or its super classes (declaration of 'android.app.Activity' appears in /system/framework/framework.jar)
        at eu.berdosi.app.heartbeat.MainActivity.onRequestPermissionsResult(MainActivity.java:133)
        at androidx.core.app.ActivityCompat$1.run(ActivityCompat.java:519)
        at android.os.Handler.handleCallback(Handler.java:739)
        at android.os.Handler.dispatchMessage(Handler.java:95)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5254)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

Cause

Note: I verified this issue also happens in v1.2, so this is not caused by v1.2.1.

  • onRequestPermissionsResult only is supported in API 23, this is when Android introduced individual permissions enable/disable

Solutions

  1. minSDK can be bumped up to API 23 (Android Marshmallow 6.0).
    -- According to Google stats as of Aug 18, 2021: Android 6.0+ holds 84.9% marketshare.
    -- Users on Android 5.0 and 5.1 would no longer be able to install the app (it would crash for them currently anyway).
  2. Remove super.onRequestPermissionsResult(requestCode, permissions, grantResults), this is a callback stub anyway

App freezes

When trying to start a new measurement if a measurement is already running.

App Crash

The app crashes when the camera sensor is not available

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.