Git Product home page Git Product logo

batteryhub's People

Contributors

hmatalonga 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

batteryhub's Issues

Drop the use of explicit wake locks with the PowerManager system service

Expected Behavior

Drop the use of PowerManager wake locks and instead switch to a JobScheduler.

Current Behavior

Currently the application has a target API level of 27, since the WakefulBroadcastReceiver was deprecated in API level 26.1.0, the use of wave locks through the PowerManager class is a potential security and performance risk!

Possible Solution

Migrate the current DataEstimatorService class to a JobIntentService.

Context

From https://developer.android.com/reference/android/support/v4/content/WakefulBroadcastReceiver:

As of Android O, background check restrictions make this class no longer generally useful. (It is generally not safe to start a service from the receipt of a broadcast, because you don't have any guarantees that your app is in the foreground at this point and thus allowed to do so.) Instead, developers should use android.app.job.JobScheduler to schedule a job, and this does not require that the app hold a wake lock while doing so (the system will take care of holding a wake lock for the job).

This issue is related to #79.

Implement battery current alternative source for older devices

Modify Battery current now feature to be compatible with older devices (older than Android 5.0).

Otherwise, if the device doesn't support, the value 0 is returned at the moment.

Add a new setting to turn on a new alternative reading method for older devices.

Add a boot receiver

Add a boot receiver to broadcast to the application so it starts after the android operating is boot up or restarted.

Setup a calibration mechanism on first-run

Do a setup calibration on the first-run of the app after the user accepts the ToS.

  1. This would be useful to test a first sample ๐Ÿ‘
  2. Verify if gathers all required protocol fields through the standard Android API classes
  3. Otherwise it would be necessary to set any device specific measurements file paths

Fix Tabs layout behavior

  • Fix tabs layout behaviour when working with Google Material Design elements such as floating action buttons

Update the BatteryHub to be compatible with new versions of Google Android

Current Behavior

F-Droid:

This app was built for an older version of Android and cannot be updated automatically.

Your Environment

OS version: Funtouch OS 14
Model: Vivo T1 4G (V2153)
Hardware version: MP_0.1
Build number: PD22010F_EX_A_14.2.7.12.W20
Baseband version: S.HA.1.1.c2-00054-DIVAR_GENSP_PACK-1.29062.88
Kernel version: 4.19.157-perf+, 1 Wed Jun 5 10:25:33 CST 2024
Compile time: 5 Jun 2024 05:20:41
Android security update: 1 June 2024
Google Play system update: 1 May 2024

Create a channel to receive back-end feedback

Provide a channel to get future feedback recommendations from the back-end analysis

  1. Implement an additional protocol layer to read future feedback from the back-end data analysis
  2. Possibly make this channel bidirectional

Get runnings processes on Android 7.0 or newer

/proc is now a root directory therefore the information about the runnings processes on Android 7.0 or newer may be compromised.

It is necessary to find a workaround this issue and try not to loose information in the way.

Create a benchmark utility to check battery life

Design a benchmark utility to run periodically and test current battery life status

  1. This utility would provide a new metric to compare a given device battery life with the remaining population of registered devices
  2. The goal is to create an additional KPI for the back-end analysis workers in order to improve recommendations
  3. Possibly it could help send preliminary recommendations based on initials samples + battery life benchmark results alone, speeding up the feedback response time

Add remaining time feature

Consider use a linear function percentage of battery over time to get battery drain?

Start with a simpler approach and develop

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.