Giter Site home page Giter Site logo

liinahamari / follower Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 2.0 8.43 MB

Follower - background movement tracker with OpenStreetMap (osmdroid) used for observing tracks

License: MIT License

Kotlin 100.00%
openstreetmap osmdroid bound-service gps-tracker

follower's People

Contributors

liinahamari avatar

Stargazers

 avatar  avatar

Watchers

 avatar

follower's Issues

Empty state in TrackListFragment

Add layer responsible for mapping empty state (no items at all) in TrackListFragment and proper handling changing of this state on adding new one and deleting the last one.

Custom attributes of dependency's dependency creates problems with application's compilation

Dependency Loggy uses ExpandableLayout dependency to render error logs in dashboard. ExpandableLayout have custom attributes declared, such as el_duration and el_expanded. If application doesn't have ExpandableLayout dependency (doesn't matter is it used in exact application itself or not), project won't copile:
ERROR:/home/user/.gradle/caches/transforms-2/files-2.1/e7492b61a/loggy_sdk-debug/res/layout/item_error_log.xml:57: AAPT: error: attribute el_duration (aka dev.liinahamari.follower:el_duration) not found.
The only workaround found for this moment is duplicate dependency in application itself too.

Current track shown when tracking is on

When tracking is on, current track is showing for a moment in TrackListFragment. By design current track always hidden until it will be saved. Investigate why.

Feature: first-meet intro describing app's features

When user opens up application first time he\she should see slideshow describing app's core features.
Every slide should contain title, description, picture (representing device screen with specific application state) and some unique (comparing to other slides) background color.
User should be able to skip intro.
Title and description should be translated to app's provided languages.
This functionality, definitely, should be implemented via AppIntro library.
Some UI tests should be added.
TODO: Think about "splash screen" proxy with as fast as possible screen drawing mechanism.

Track Tags

User should be able to add tag to distinct groups of tracks.
TODO: think about redesign TrackListFragment accordingly tag functionality.

Improvement: automatic cache purging politics

Investigation is needed: which practices used to use open-source application to deal with increasing cache amount? Maybe some automatic time-to-time cache purging mechanisms should be presented.

Feature: backups & track sharing

  • explore Storage Access Framework functionality and file access of it in particular;
  • investigate .gpx file format of OpenStreetMap, it's impact and tracks' sharing guidelines;
  • provide to end user options of creating, saving, updating, deleting and sharing* tracks;
  • test saved in the App tracks in other applications supporting .gpx files (such as OsmAnd).

* sharing of traces is optional for now, the separate ticket is needed on demand.

Feature: cache delete

Investigate which possibilities exist to clear app's cache and provide section in settings which clears all the cache (or split different type of cache delete between multiple sections).

Database encryption

Database encryption in case of storing Tracks should be presented. Write documentation with test cases presented as well.

Intro screen's refactoring

Improve code base accordingly to AppIntro library guidelines.

  • IntroActivity shouldn't be first one in the list of activities in AndroidManifest.xml
  • AppIntroFragment is better in our case to use insted of self-written Slide fragments.
  • Screen configuration should be added.

Fix issue which definitely related to in-app language enforcement

2021-04-11 05:01:41.736 32361-32361/dev.liinahamari.follower I/ResourcesCompat: Failed to retrieve rebase() method
    java.lang.NoSuchMethodException: rebase []
        at java.lang.Class.getMethod(Class.java:2068)
        at java.lang.Class.getDeclaredMethod(Class.java:2047)
        at androidx.core.content.res.ResourcesCompat$ThemeCompat$ImplApi23.rebase(ResourcesCompat.java:532)
        at androidx.core.content.res.ResourcesCompat$ThemeCompat.rebase(ResourcesCompat.java:508)
        at androidx.appcompat.app.AppCompatDelegateImpl.attachBaseContext2(AppCompatDelegateImpl.java:465)
        at androidx.appcompat.app.AppCompatActivity.attachBaseContext(AppCompatActivity.java:107)
        at dev.liinahamari.follower.screens.MainActivity.attachBaseContext(MainActivity.kt:74)
        at android.app.Activity.attach(Activity.java:7051)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2888)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3063)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1823)
        at android.os.Handler.dispatchMessage(Handler.java:107)
        at android.os.Looper.loop(Looper.java:198)
        at android.app.ActivityThread.main(ActivityThread.java:6729)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

Feature: auto-uploading tracks \ observing FTP server's content

For a moment there's a possibility to upload JSON file containing some Track to FTP server manually. This operation should be performed also it tracking mode too.
Also, on a "client" there should be a possibility to observe FTP server's content in "real time" or by request.
Write documentation.

Map rendering problem

Investigate possible workarounds to deal with fuzzy map view using osmdroid library.

PIN support

For a moment app has Fingerprint protection of Tracks to being showed (impossible to perform such operations such as deleting, if on). For various reasons Fingerprint API might not be available, so PIN support should be presented.

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.