Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[android] Reimplement "Recent Track" feature #8183

Draft
wants to merge 11 commits into
base: master
Choose a base branch
from

Conversation

kavikhalique
Copy link
Contributor

[Android] Implements Recent Track Recording in android app of OM

@rtsisyk rtsisyk self-assigned this May 15, 2024
@rtsisyk rtsisyk self-requested a review May 15, 2024 11:49
Copy link
Contributor

@rtsisyk rtsisyk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let me play with this PR on my real devices.

@Jean-BaptisteC
Copy link
Member

Subtitle of record time is not update after user select a duration

@kavikhalique
Copy link
Contributor Author

Subtitle of record time is not update after user select a duration

Sorry if i am misunderstanding but do you mean the description below Record time title? Which contains text

Select duration for which recorded point will be shown on map ?

@Jean-BaptisteC
Copy link
Member

Update summary of preference with value selected by the user

@dmitrygribenchuk
Copy link

The setup failed my expectations. If you turn on/off track recording, the track disappears, despite the fact that the option to show 24 hours is set.
The track behaves strangely when changing the scale
6% of battery for bicycle ride for 25 minutes.

Next time I will compare it with my Garmin Edge. Visually it was nice, but I lost proofs (

Screenshot_2024-05-15-18-44-44-355_app organicmaps web debug

Screenrecorder-2024-05-15-18-44-27-816.mp4

@kavikhalique
Copy link
Contributor Author

The setup failed my expectations. If you turn on/off track recording, the track disappears, despite the fact that the option to show 24 hours is set.

Hi @dmitrygribenchuk thanks for your feedback :)

This feature is still underdevelopment. We will surely try to implement the features which are beneficial for the users. )

6% of battery for bicycle ride for 25 minutes.

Thanks for this feedback

Can you please provide details of your device to better understand app's behaviour and also kindly provide what was your initial battery percentage if you remember it.

@dmitrygribenchuk
Copy link

Sure. I have Xiaomi Redmi Note 12 Pro, it's starts with 37% end end with 31%

Also here is a 0.5 km dog walk to compare track from Garmin Device (it's pretty accurate)

Screenshot_2024-05-15-19-25-55-924_app organicmaps web debug-edit

@deevroman
Copy link
Contributor

deevroman commented May 15, 2024

Hello, I also tested this assembly on Samsung A52 Android 14 and in general it copes with the task of recording a track 👍

I also encountered the fact that after turning off the track recording, most of the track disappears, and the remaining random (!) part begins to blink.

From the wishes: the recording interval is now long, the track turns out rough even when walking quickly.

6% of battery for bicycle ride for 25 minutes.

It should be noted that the Debug build is much slower than the release build and probably consumes more battery

@kavikhalique
Copy link
Contributor Author

Hello, I also tested this assembly on Samsung A52 Android 14 and in general it copes with the task of recording a track 👍

Thanks for the feedback :)

I also encountered the fact that after turning off the track recording, most of the track disappears, and the remaining random (!) part begins to blink.

Will look into this issue 👍

From the wishes: the recording interval is now long, the track turns out rough even when walking quickly.

For now in background it is 10 sec interval keeping battery consumption as focus, but if it will affect accuracy then surely interval need to be decreased.

Signed-off-by: kavikhalique <[email protected]>
@rtsisyk rtsisyk changed the title Implements recent track recorder [android] Reimplement "Recent Track" feature May 16, 2024
@rtsisyk rtsisyk added the Android Android development label May 16, 2024
@biodranik
Copy link
Member

Is it possible to make it easier for users to enable/disable recent track feature in one click in Settings?

@kavikhalique
Copy link
Contributor Author

Is it possible to make it easier for users to enable/disable recent track feature in one click in Settings?

we can bring options on main setting screen instead of taking users to another activity for track recording controls.
But in future some more functionalities related to track recorder might be implemented and keeping all related functionalities in separate activity would be better.

Alternatively, we can create a separate section in main setting and there we can put all related settings. (Like we have general settings section, navigation etc...)

@rtsisyk
Copy link
Contributor

rtsisyk commented May 16, 2024

Feedback by @RicoElectrico from Telegram chat:

  • I would rename it to something else. Its more like plotting ;)
  • the notification should have some disable or settings button, in short: be actionable
  • does it need a submenu in settings? Why not off/1h/.../24h? And display that below option name just like with night mode

return null;
}
@RequiresPermission(value = ACCESS_FINE_LOCATION)
public static void startForegroundService(@NonNull Context context)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I haven't seen any notifications, neither after enabling "Record Track" in the settings, nor after restarting the app. Please check for POST_NOTIFICATION permission. It is probably better to do from MwmActivity. See

public void requestPostNotificationsPermission()
{
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU ||
ActivityCompat.checkSelfPermission(this, POST_NOTIFICATIONS) == PERMISSION_GRANTED)
{
Logger.i(TAG, "Permissions POST_NOTIFICATIONS is granted");
return;
}
Logger.i(TAG, "Requesting POST_NOTIFICATIONS permission");
mPostNotificationPermissionRequest.launch(POST_NOTIFICATIONS);
}
.

UPDATE: It has started to work after enabling notification in system settings:

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have transferred the calling of service from preference class to mwmActivity class.

Although without notification permission i don't think it will show any notification. I tried with navigation as well but no notification shows if notification is turned off in settings.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This bug still present. Moreover, I don't see a notification when I start the app with the enabled option. I suspect that the foreground service doesn't start either. Enabling/disabling option in the settings fixes the issue.

6de4a18 (HEAD -> recent-track-recorder)
Author: kavikhalique [email protected]
Date: Fri May 17 02:45:21 2024 +0530

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This problem is still their even after calling the requestPostNotification() method from MwmActivity, It do not asks permissions for notifications even if it disabled in setiings although functionality works fine but it do not shows any notification.
Please test this with navigation as well. @rtsisyk

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This problem is still their even after calling the requestPostNotification() method from MwmActivity, It do not asks permissions for notifications even if it disabled in setiings although functionality works fine but it do not shows any notification. Please test this with navigation as well. @rtsisyk

POST_NOTIFICATIONS is available on Android 13+ (API 33+). Please see https://developer.android.com/develop/ui/views/notifications/notification-permission. Let's try to call requestPostNotificationsPermission() at least.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please call requestPostNotificationsPermission() as well as check for location!

@dmitrygribenchuk
Copy link

dmitrygribenchuk commented May 16, 2024

One more test (2024.05.15-8-Google-beta, bicycle, average speed 17.2 kph) vs Garmin Edge

Screenshot_2024-05-16-22-36-03-694_app organicmaps beta

@biodranik
Copy link
Member

UPDATE: It has started to work after enabling notification in system settings:

Is it possible to check if notifications are disabled by the user and ask to enable them? Would it be helpful?

@kavikhalique
Copy link
Contributor Author

One more test (2024.05.15-8-Google-beta, bicycle, average speed 17.2 kph) vs Garmin Edge

Thanks for the feedback 👍

Accuracy seems low in comparison to Garmin. Can you please provide battery drain if by chance you remember it.

@kavikhalique
Copy link
Contributor Author

UPDATE: It has started to work after enabling notification in system settings:

Is it possible to check if notifications are disabled by the user and ask to enable them? Would it be helpful?

I have tested it in 2 devices and what i found is even if the notifications are disabled and notifications are not showing the app still runs in background as usual : )

For navigation it might not be good but for track recording its not a problem i guess.

@rtsisyk
Copy link
Contributor

rtsisyk commented May 17, 2024

Vendor: Samsung
Model: S10
Android: 12
ROM: One UI 4.1
Mobile data: OFF
Power save: ON

Result: no points recorded when app is in the background

@rtsisyk
Copy link
Contributor

rtsisyk commented May 17, 2024

Vendor: Google
Model: Pixel 4a
Android: 14
ROM: CalyxOS 5.6.3
Mobile data: OFF
Power save: OFF / ON - I don't see any difference
Google Play Location Services: ON (microG is installed, but no internet anyway)

Result: the track is ragged

@rtsisyk
Copy link
Contributor

rtsisyk commented May 17, 2024

Vendor: Samsung
Model: S10
Android: 12
ROM: One UI 4.1
Mobile data: OFF
Power save: OFF
Google Play Location Services: ON (no internet)
Navigation was enabled, i.e. interval was 0

The track is perfectly fine. I don't see any difference from iPhone.

Copy link
Contributor

@rtsisyk rtsisyk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a few comments. Sorry for being picky here, but since this is your first major contribution, please pay attention to the code style. I won't comment on it further.

android/app/src/main/java/app/organicmaps/MwmActivity.java Outdated Show resolved Hide resolved
{
mListeners.unregister(listener);
}
public static native void nativeSetEnabled(boolean enable);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't really buy this idea with listeners in this class. Can we just check the status of Recent Track in MwmActivity.onResume() and start or stop the service? It will be 2 lines of code instead of 100.

public static void setRecentTrackRecorderDuration(int value)
{
nativeSetInt(KEY_RECENT_TRACK_RECORDER_DURATION, value);
if(value!=0) TrackRecorder.nativeSetDuration(value);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: please fix the code style here

@@ -2194,4 +2194,9 @@
<string name="type.amenity.events_venue">Events Venue</string>
<string name="type.shop.auction">Auction</string>
<string name="type.shop.collector">Collectables</string>
<string name="hour_recent_track">" hour"</string>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why does string contain " ?

" hour"?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry this is a mistake i will remove it.
Actually it automatically got added to keep the space " " attached with that

@@ -292,6 +297,8 @@ private long calcLocationUpdatesInterval()
{
if (RoutingController.get().isNavigating())
return INTERVAL_NAVIGATION_MS;
if (!mAppInForeground && TrackRecorder.nativeIsEnabled())
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

!mAppInForeground doesn't matter here, just check of TrackRecorder.nativeIsEnabled()

if (isActive())
return;
{
if (LocationUtils.checkLocationPermission(mContext)) restartWithNewMode();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's not change interval depending on background/foreground. Just always use INTERVAL_TRACK_RECORDING_BACKGROUND if recording is enabled.

@@ -365,6 +364,9 @@ else if (RoutingController.get().isNavigating())
Logger.i(LOCATION_TAG, "Navigation is in progress, keeping location in the background");
else if (!Map.isEngineCreated() || LocationState.getMode() == LocationState.PENDING_POSITION)
Logger.i(LOCATION_TAG, "PENDING_POSITION mode, keeping location in the background");
else if(TrackRecorder.nativeIsEnabled()){
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: formatting

@@ -345,18 +346,16 @@ public void onActivityDestroyed(@NonNull Activity activity)
private void onForeground()
{
Logger.d(TAG);

mLocationHelper.onAppForeground();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why the order has changed? it could be important...

@rtsisyk
Copy link
Contributor

rtsisyk commented May 25, 2024

Pedestrian 5 km/h:

✅ Huawei P30 / Android 12 / Battery > 85% / No power safe / Airplane / Google Location (no Internet)
✅ Pixel 4a / Android 14 / Battery > 85% / No power safe / Airplane / Google Location via microG (no Internet)
✅ Samsung S10 / Android 12 / Battery > 85% / No power safe / Airplane / Google Location (no Internet)

All devices were in the same backpack on my back. Traces are almost identical when outdoors.

Vehicle 20-30 km/h:

✅ Huawei P30 / Android 12 / Battery > 85% / No power safe / Airplane / Google Location (no Internet)
🔴 Pixel 4a / Android 14 / Battery > 85% / No power safe / Airplane / Google Location via microG (no Internet)
The device has lost GPS location fix 🤯
🔴 Samsung S10 / Android 12 / Battery > 85% / No power safe / Airplane / Google Location (no Internet)
The device has lost GPS location fix 🤯

All devices were in the same backpack on the front seat. It is surprising, but only Huawei had working GPS. Two other devices had something like that:

onSatelliteStatusChanged(): total = 20 used = 0 fixed = false
onSatelliteStatusChanged(): total = 20 used = 0 fixed = false
onSatelliteStatusChanged(): total = 19 used = 0 fixed = false
onSatelliteStatusChanged(): total = 19 used = 0 fixed = false
onSatelliteStatusChanged(): total = 20 used = 0 fixed = false
onSatelliteStatusChanged(): total = 20 used = 0 fixed = false
onFirstFix(): ttffMillis = 808290

So far, I haven't found any issues related to the Recent Track itself. Location was propagated to the track recorder on every update:

D/app.organicmaps.location: LocationHelper.java:93 onSatelliteStatusChanged(): total = 29 used = 17 fixed = true
D/app.organicmaps.location: LocationHelper.java:175 onLocationChanged(): provider = GoogleFusedLocationProvider location = Location[fused ***,*** hAcc=5.211152 et=+14m32s971ms alt=70.7540283203125 vAcc=6.0624332 mslAlt=43.03958336079154 mslAltAcc=6.068443 vel=0.78 sAcc=2.52121 bear=36.4 bAcc=84.28713 {Bundle[{maxCn0=30}]}]
I/TrackRecordingService: TrackRecordingService.java:168 onLocationUpdated(): Location is being updated in Track Recording service

I am waiting for the full (-A)GPS re-sync from wi-fi and sky and re-testing again.

@kavikhalique
Copy link
Contributor Author

@rtsisyk Thanks for the detailed feedback : )

@rtsisyk
Copy link
Contributor

rtsisyk commented May 25, 2024

GPS gaps on Pixel 4a are caused by broken device / firmware: #8289

Copy link
Contributor

@rtsisyk rtsisyk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This small feature is functionally complete. Let's polish the code and merge it. The work on the full-featured track recorder will continue in new PRs.


public static int getRecentTrackRecorderDuration()
{
return nativeGetInt(KEY_RECENT_TRACK_RECORDER_DURATION, 0);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we really need these settings in Config.java? I suppose that TrackRecorder.nativeSetEnabled() already saves the setting persistently via C++ code. Please kindly take a look at https://github.com/organicmaps/organicmaps/pull/1807/files#diff-4a1a76e5c1d535b59bc9159048bd2c941dc112f5052e4e8ec650756c1ed0eed0R594-R642. The original patch didn't have Config.java changes at all.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes i was about to ask you the same. I think it can be removed its redundant.
Will remove it 👍

@@ -220,6 +220,10 @@
<string name="prefs_group_route">Navigation</string>
<string name="pref_zoom_title">Zoom buttons</string>
<string name="pref_zoom_summary">Display on the map</string>
<!--Title of Recent track Recorder in settings-->
<string name="recent_track">Recent Track</string>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please re-use existting strings from iOS? See https://github.com/organicmaps/organicmaps/pull/1807/files#diff-8e9891f34f779c3f69c75ce68b56207e638f199a26123422c079734a32496c7cR4138

  1. Change tags = ios to tags = ios,android to in strings.txt
  2. Run ./tools/unix/generate_localizations.sh to regenerate values-*/strings.xml

Please refer to https://github.com/organicmaps/organicmaps/blob/master/docs/TRANSLATIONS.md for more details.

@@ -333,7 +337,8 @@ public void start()
{
if (isActive())
{
Logger.d(TAG, "Already started");
restartWithNewMode();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please be careful here. It can lead into infinite loop. It would be better to not to add restartWithNewMode(); here.

{
mListeners.unregister(listener);
}
public static native void nativeSetEnabled(boolean enable);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is one UX issue-
Suppose a users enables the recent track recorder from settings and directly exits the app without going to map screen. In that case service will never be started.

Why don't just call TrackRecordingService.startForegroundService(this) from SettingsActivity? Why these listeners are needed?

Logger.i(TAG, "Location permission is not there");
return;
}
TrackRecordingService.startForegroundService(this);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are two cases:

  1. Starting/stopping the service after enabling/disabled it in the SettingsActivity.
    It is safe to call TrackRecordingService.startForegroundService(this)/stopService() from SettingsActivity.

  2. Starting the service with the app
    Keep this current code that check for the settings and call TrackRecordingService.startForegroundService(this) if enabled.

@@ -532,6 +556,10 @@ protected void onSafeCreate(@Nullable Bundle savedInstanceState)
initViews(isLaunchByDeepLink);
updateViewsInsets();

mTrackRecorder = TrackRecorder.getInstance();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This instance will organically disappear after removing listeners.

return null;
}
@RequiresPermission(value = ACCESS_FINE_LOCATION)
public static void startForegroundService(@NonNull Context context)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This problem is still their even after calling the requestPostNotification() method from MwmActivity, It do not asks permissions for notifications even if it disabled in setiings although functionality works fine but it do not shows any notification. Please test this with navigation as well. @rtsisyk

POST_NOTIFICATIONS is available on Android 13+ (API 33+). Please see https://developer.android.com/develop/ui/views/notifications/notification-permission. Let's try to call requestPostNotificationsPermission() at least.

@rtsisyk
Copy link
Contributor

rtsisyk commented May 28, 2024

We have been discussion bike sheds for a while. It is time to make decisions. I am proposing the following plan:

  1. Add the "Trace Path" button the main menu
  • Icon - to be provided by me, use any for development
  • Position: between "Settings" and "Share my location"
  1. Show the blue dot on the button (like for "Download Maps:", but blue) when the feature is active
  2. Add a disclaimer implemented via AlertDialog on the first usage of the feature (like we have for routing):
    • Buttons
      • OK
      • CANCEL
    • Header - to be provided later, add any placeholder for now
    • Text - one sentece, to be provided later, add any placeholder for now
  3. Hard-code 24h interval
  4. Remove existing "Recent Track" settings
  5. Address review comments
  6. ???
  7. Push to production

@biodranik
Copy link
Member

biodranik commented May 28, 2024

What's the benefit of throwing out all discussion arguments and pushing something questionable? I have several questions:

  1. Why Trace Path instead of Record Track or Record Path or Track Recording?
  • Trace word does not have a meaning related to recording, it is unclear what it does.
  • Trace Path looks like an unknown phrase/name for millions of users compared to alternatives with a word Record. Do any apps use it?
  • With any Record phrase there will be no need to rename the feature when the active recorder is ready.
  1. Why suddenly a blue color? Any background behind it? Any active recording is perfectly associated with a red color. The red color should not be changed later to another color when the active recorder feature is released.
  2. What is the goal of a disclaimer? Why does it require a cancel button? Is it a "dangerous" feature? Can a toast be used instead?

@rtsisyk
Copy link
Contributor

rtsisyk commented May 29, 2024

What's the benefit of throwing out all discussion arguments and pushing something questionable? I have several questions:

  1. Why Trace Path instead of Record Track or Record Path or Track Recording?
  • Trace word does not have a meaning related to recording, it is unclear what it does.
  • Trace Path looks like an unknown phrase/name for millions of users compared to alternatives with a word Record. Do any apps use it?
  • With any Record phrase there will be no need to rename the feature when the active recorder is ready.

Naming has been discussed in another thread: #6678. Honestly, any decision here is better than no decision. I have tossed my coin already. You don't need to agree with the outcome.

  1. Why suddenly a blue color? Any background behind it? Any active recording is perfectly associated with a red color. The red color should not be changed later to another color when the active recorder feature is released.

Bike shed? We will change the constant in the code if it doesn't work well.

  1. What is the goal of a disclaimer? Why does it require a cancel button? Is it a "dangerous" feature? Can a toast be used instead?

This feature implies significantly battery consumption. I think that it makes sense to notify the user at least once.

@biodranik
Copy link
Member

This feature implies significantly battery consumption.

It is not the first time I have heard this hypothesis. Are there any facts confirming it? What is significantly and insignificantly?

@kavikhalique
Copy link
Contributor Author

kavikhalique commented May 29, 2024

This feature implies significantly battery consumption.

It is not the first time I have heard this hypothesis. Are there any facts confirming it? What is significantly and insignificantly?

Few days back i had done a testing for about 13 hours approx.
In general my android phone's battery drops 3-4 percent in a day when unused, but after testing the drop was significant it was about 30-35 percent within 13 hours.

Please have a look into the testing data below

Testing data for Recent track recorder

Device name - Xiaomi Redmi 8a dual
Android - 10
MIUI 12 stable

1- interval 0 sec
Initial Percentage - 97
Duration - 1 hr
Percentage consumed - 3

2- interval 2 sec
Initial Percentage - 94
Duration - 1 hr 26 mins
Percentage consumed - 3

3- interval 10 sec
Initial Percentage - 91
Duration - 2 hour
Percentage consumed - 3

4- interval 3 sec
Initial Percentage - 88
Duration - 2 hour
Percentage consumed - 3

5- navigation enabled
Duration - 1 hour
Initial Percentage- 85
Percentage consumed - 3

6- interval - 3 sec
Duration - 2 hr
Initial Percentage - 82
Percentage consumed - 4

7- interval - 10 sec
Duration - 3 hr 23 min
Initial Percentage - 78
Percentage consumed - 4

@kavikhalique
Copy link
Contributor Author

kavikhalique commented May 29, 2024

✅ Add "Trace Path" button to main menu (placeholder icon used)
✅ Show the blue dot when feature is active (refresh is not proper need to work upon it)
✅ Add a disclaimer using AlertDialog on first usage (placeholder text used)
✅ Hard code 24h
✅ Remove existing "Recent Track" settings
✅ Address review comment

@rtsisyk i have finished all this above mentioned. Please review it. Few small works are pending which i will finish in next few commits probably.

@Jean-BaptisteC
Copy link
Member

Before start record path, we need to check location is enabled.

@biodranik
Copy link
Member

@kavikhalique comparing the state when an app is not used to the state when the app is used doesn't reflect reality well.

Can you please compare the running track recorder with the running navigation feature?

Is there a warning about battery usage when users start navigation in Organic Maps and other maps apps?

@biodranik biodranik added this to the Needs alpha/beta testing milestone May 30, 2024
@rtsisyk
Copy link
Contributor

rtsisyk commented May 30, 2024

Absolutely nothing happens when I press "OK" in the dialog. Please add POST_NOTIFICATION check finally!

@rtsisyk
Copy link
Contributor

rtsisyk commented May 30, 2024

  • Please add a blue dot to Trace Path itself.
  • It would be nice to show a Toast on starting/stoping the feature (on the first start we show a dialog already).

@kavikhalique
Copy link
Contributor Author

  • Please add a blue dot to Trace Path itself.

But there already we are changing the color of the icon.
Should i remove the color change of icon and just add blue dot on trace path? And should i also remove the blue dot on main menu button too?

  • It would be nice to show a Toast on starting/stoping the feature (on the first start we show a dialog already).

Sure will do that 👍

@rtsisyk
Copy link
Contributor

rtsisyk commented May 30, 2024

But there already we are changing the color of the icon.

It is really hard to say when it is enabled and it is not... Let's fix the notification first and I will re-test again.

@rtsisyk
Copy link
Contributor

rtsisyk commented May 30, 2024

I've moved GPS + Power Save research into a separate ticket #8336

@kavikhalique
Copy link
Contributor Author

✅ Toast message on start and stop
✅ Request Location permission if not granted
✅ Request post notification permission if not granted (for now it do not starts the trace path if permission is not granted)

  • [to be implemented] blue dot in trace path itself.

@kavikhalique
Copy link
Contributor Author

✅ Request user to disable battery optimisation on app in case it is enabled

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Android Android development
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants