Git Product home page Git Product logo

privacy-friendly-pedometer's Introduction

PFA Twitter Mastodon

Privacy Friendly Backup Icon

Privacy Friendly Pedometer

The Privacy Friendly Pedometer stores the user's step count per hour. The user can review the recorded steps in a daily, weekly and monthly report. These reports also display the calculated distance and calories. As a bonus feature the app can record training sessions (e.g. a jogging session) in a different view. The user can choose whether the app should remind him if the achievement of his daily step goal is in danger.

Motivation

Privacy Friendly Pedometer belongs to the group of Privacy Friendly Apps and has therefore been optimized with respect to user's privacy.

Building

Further development requires Android Studio, we recommend to use the latest version.

API Reference

Minimum SDK: 17 Target SDK: 31

Data Backup

You can use the Privacy Friendly Backup app to backup and restore this application's data. This can also be used to migrate your data to a new phone.

License

Privacy Friendly Pedometer is licensed under the GPLv3.
Copyright (C) 2017 Tobias Neidig
Copyright (C) 2018 - 2022 Christopher Beckmann

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

The app is based on Privacy Friendly Example App. The icons used in the navigation drawer are licensed under the CC BY 2.5. In addition to them the app uses icons from Google Design Material Icons licensed under Apache License Version 2.0. All other images (the logo of Privacy Friendly Apps, the SECUSO logo, the splash screen logo and the app icons) copyright SECUSO (2022). For showing charts the app uses MPAndroidChart licensed under Apache License, Version 2.0.

Contributors

App-Icon:
Markus Hau

privacy-friendly-pedometer's People

Contributors

bengan avatar coderpaddys avatar dependabot[bot] avatar jahway603 avatar jclehner avatar jonathanmm avatar kamuno avatar karolbedkowski avatar licaon-kter avatar lonami avatar morckx avatar poussinou avatar pvagner avatar sleep-yearning avatar tobiasneidig avatar udenr avatar waldist avatar yonjuni 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  avatar  avatar  avatar  avatar  avatar

Watchers

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

privacy-friendly-pedometer's Issues

Make it simpler to quit

Please make it possible to shut down the app directly from the notification bar, and from the app itself too.

Stopping background counting

I want to have background counting while in training mode but not when it is not activated. However, desactivating the option from the settings panel doesn't interrupt the program. I want to do this so it doesn't consume battery when I don't want to.

Thanks

Steps not counted

If i switch back to a previous day to check on and forget to switch back to the present day, it does not count any steps.
I switched back lastly once and forgot to get back to the present day and had no steps counted at the end of the day.

Shout also be the problem i mentioned #37 - i had my second smartphone with me and i would know the count. If you need a catlog or whatever, just ask.

Add a Sensitivity disclaimer pop-up at first run

Yonjuni said

Depending on the device and sensitivity setting not all steps are counted in Privacy Friendly Pedometer. Therefore, we recommend to try different sensivity settings.

Please inform your users with a pop-up saying that the Settings -> General -> Sensitivity should be calibrated.

ClassNotFoundException

Reported from Android 6 exclusively

java.lang.RuntimeException: at android.app.ActivityThread.handleReceiver(ActivityThread.java:2724) at android.app.ActivityThread.-wrap14(ActivityThread.java:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1431) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5443) at java.lang.reflect.Method.invoke(Native Method:0) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) Caused by: java.lang.ClassNotFoundException: at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:511) at java.lang.ClassLoader.loadClass(ClassLoader.java:469) at android.app.ActivityThread.handleReceiver(ActivityThread.java:2719)

Add default text to notification if nothing is chosen

I want to suggest hide the notification if none info is shown in it.

I know that notification is called "Permanent Notification" because it is permanent, but it bores me. I tried disable the background step count, but it continues in my status bar.

Add "Bicycling" mode

I think it would be a good idea to add "Bicycling" next to "Walking" and "Running".

Closing sidebar with 'Back' key [enhancement]

Now the only way to close side drawer is a right to left swipe, which is IMO inconvenient. Please add a go back arrow to upper left corner of a sidebar and also bind it to 'back' key.

Copyright violation

Hi @SecUSo

I found this app on the Google Play Store. This guy just took the source code, added some ads 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 the false app from the Store, if it's your wish ;)

Don't forget to tell Google that:

  • The app is licensed under GNU GPL v3 and this guy is violating it by distributing the app without distributing the source code;
  • He is falsely claiming he made the app;
  • Also tell them that this guy has done the same thing already with other apps. Probably this is worth mentioning. (I watch him)

Add ability to stop step counter temporary

It's really a must have feature, because most of devices keep registering vibrations during commute by transport, which has nothing to do with physical activities.
So there must be a pause/resume button or slider in UI that is easy to access on the go. I recommend to put it on a separate pane in between summary and detailed panes.
To prevent erroneous triggering there must be confirmation dialog that will offer to options.
-1st is a button to ignore comand and close dialog.
-2nd is button to proceed.
-there should be a third control like a wheel of numbers to choose preset time intervals between reminder notifications that will suggest to resume counting, in case you have forgotten to turn it back on upon arrival.
Time presets should be configurable via settings and the set could look like: 10, 20, 30, 45, 60, 90, 120 minutes.
To represent status of inactivity in summary pane step counter during this period can be grayed out and/or icon with walking man changed to a sitting pose.
Also to visualize such a period of inactivity on plot it can be colored with gray.

Save Step Bug

When i walk and step detector for example count 30 step for me, and i go setting -> general, and deactive (Permanent step counter) and back to main activity and see step count is 0 !!!!!

Sensitivity: make it 1-15 instead of 1-7

Settings -> General -> Sensitivity have 7 different modes:

  • very high
  • higher
  • high
  • normal
  • low
  • lower
  • very low

Its not sufficient as mentioned here.

To solve the issue I suggest that you replace them with a number scale that can be scrolled.

ClassNotFoundException

Reported from Android 6 exclusively

java.lang.RuntimeException: at android.app.ActivityThread.handleReceiver(ActivityThread.java:2724) at android.app.ActivityThread.-wrap14(ActivityThread.java:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1431) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5443) at java.lang.reflect.Method.invoke(Native Method:0) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) Caused by: java.lang.ClassNotFoundException: at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:511) at java.lang.ClassLoader.loadClass(ClassLoader.java:469) at android.app.ActivityThread.handleReceiver(ActivityThread.java:2719)

Error on RecyclerView

E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #2
Process: org.secuso.privacyfriendlyactivitytracker, PID: 2287
java.lang.IllegalStateException: Cannot call this method while RecyclerView is computing a layout or scrolling
at android.support.v7.widget.RecyclerView.assertNotInLayoutOrScroll(RecyclerView.java:2457)
at android.support.v7.widget.RecyclerView$RecyclerViewDataObserver.onItemRangeChanged(RecyclerView.java:4803)
at android.support.v7.widget.RecyclerView$AdapterDataObservable.notifyItemRangeChanged(RecyclerView.java:10783)
at android.support.v7.widget.RecyclerView$AdapterDataObservable.notifyItemRangeChanged(RecyclerView.java:10774)
at android.support.v7.widget.RecyclerView$Adapter.notifyItemChanged(RecyclerView.java:6363)
at org.secuso.privacyfriendlyactivitytracker.fragments.WeeklyReportFragment$2.run(WeeklyReportFragment.java:341)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)

Start step counting after a threshold

Currently the app also counts other "moves" like writing as steps. Therefore, a threshold of 10 steps should be introduced.
This prevents miscounts be movements.

Hardware step-sensor

Make use of the hardware step-sensor which is build-in modern phones, this will save battery and improve accuracy.

Translation

How I can translate your application in French?
If I can participate :)
Thank you

android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.

android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:6603) at android.view.ViewRootImpl.requestLayout(ViewRootImpl.java:919) at android.view.View.requestLayout(View.java:18738) at android.view.View.requestLayout(View.java:18738) at android.view.View.requestLayout(View.java:18738) at android.view.View.requestLayout(View.java:18738) at android.view.View.requestLayout(View.java:18738) at android.view.View.requestLayout(View.java:18738) at android.support.v4.widget.DrawerLayout.requestLayout(DrawerLayout.java:1265) at android.view.View.requestLayout(View.java:18738) at android.view.View.requestLayout(View.java:18738) at android.view.View.requestLayout(View.java:18738) at android.view.View.requestLayout(View.java:18738) at android.view.View.requestLayout(View.java:18738) at android.view.View.requestLayout(View.java:18738) at android.widget.RelativeLayout.requestLayout(RelativeLayout.java:360) at android.view.View.requestLayout(View.java:18738) at android.support.v7.widget.RecyclerView.requestLayout(RecyclerView.java:3806) at android.support.v7.widget.RecyclerView$RecyclerViewDataObserver.onChanged(RecyclerView.java:4891) at android.support.v7.widget.RecyclerView$AdapterDataObservable.notifyChanged(RecyclerView.java:11101) at android.support.v7.widget.RecyclerView$Adapter.notifyDataSetChanged(RecyclerView.java:6590) at org.secuso.privacyfriendlyactivitytracker.fragments.MonthlyReportFragment$2.run(MonthlyReportFragment.java:332) at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) at java.lang.Thread.run(Thread.java:818)

Repo issues

Do update master and then make tags based on that,not the other way around.

'About' screen behaves strangely [quirk]

Steps to reproduce:

  1. Open application and notice 'Pedometer' caption at the top;
  2. Open 'About' screen via sidebar and notice 'Pedometer about' caption appear;
  3. Open 'Pedometer' screen via sidebar, notice 'Pedometer about' caption still there instead of 'Pedometer' caption;
  4. Repeat steps 2 to 3 couple more times;
  5. Navigate with 'Back' key, notice each time you are closing an instance of one of those screens.
    I suggest to use same code for 'About' screen as one for 'Help' screen.

Accuracy problem

The accuracy of the application and the number of steps IOS difference of about 500 steps, how to adjust the accuracy?

Exit Button

App Most Use From Battery, Is Good Show A Exit Button In App And When User Click In The Exit Button, App Force Stop, And All Service Is Stop.

it does not work well

huawei P10, Android 7, F-Droid installled, prozessor is not allowed to sleep
pedometer does not start automatically in the morning
when it starts, it forgot the counted steps after some minutes
when the screen is on, the app sometimes count steps
more often it doesn't count
one have to switch the date back and forth to see new counted steps
i am walking a defined distance and count my own steps - the app shows most of the time a totally different result
compared with samsung health the app shows only the half or two-thirds of health
in this case I trust health more, because I know the distances I am walking
what can i do?

java.lang.NumberFormatException in java.lang.Integer.parseInt

Reported from Android 7

java.lang.RuntimeException: Unable to create service org.secuso.privacyfriendlyactivitytracker.services.HardwareStepDetectorService: java.lang.NumberFormatException: For input string: "" at android.app.ActivityThread.handleCreateService(ActivityThread.java:3201) at android.app.ActivityThread.-wrap5(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1567) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) Caused by: java.lang.NumberFormatException: For input string: "" at java.lang.Integer.parseInt(Integer.java:533) at java.lang.Integer.parseInt(Integer.java:556) at org.secuso.privacyfriendlyactivitytracker.services.AbstractStepDetectorService.onCreate(AbstractStepDetectorService.java:191) at android.app.ActivityThread.handleCreateService(ActivityThread.java:3191) ... 8 more

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.