Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

Android Telemetry planning #2421

Closed
3 tasks done
ljbade opened this issue Sep 25, 2015 · 17 comments
Closed
3 tasks done

Android Telemetry planning #2421

ljbade opened this issue Sep 25, 2015 · 17 comments
Assignees
Labels
Android Mapbox Maps SDK for Android telemetry Integration with Mapbox Telemetry libraries

Comments

@ljbade
Copy link
Contributor

ljbade commented Sep 25, 2015

For the v0.2.0 release we plan to implement metrics.

This ticket is for planning what tasks we need to complete so we can break it out into separate issues.

Tasks:

  • create an EventManager that processes and uploads events on a background thread - Create Android EventManager #2422
  • test low battery location strategies on Android
  • copy SSL certs to common folder then use build system to copy into ios and android
@ljbade ljbade added Android Mapbox Maps SDK for Android telemetry Integration with Mapbox Telemetry libraries labels Sep 25, 2015
@ljbade ljbade added this to the android-v0.2.0 milestone Sep 25, 2015
@incanus incanus removed this from the android-v0.2.0 milestone Sep 29, 2015
@bleege bleege added this to the android-v2.2.0 milestone Oct 26, 2015
@ljbade ljbade added the P0 label Oct 27, 2015
@bleege bleege modified the milestones: android-v2.2.0, android-v2.3.0 Oct 28, 2015
@bleege bleege self-assigned this Nov 12, 2015
@bleege
Copy link
Contributor

bleege commented Nov 12, 2015

The data model and lifecycle model to mirror from iOS can be found in MGLMapboxEvents.m.

@bleege bleege changed the title Android metrics planning Android Telemetry planning Nov 12, 2015
@bleege
Copy link
Contributor

bleege commented Nov 12, 2015

Telemetry is going to need #2954 to be implemented first.

@bleege bleege modified the milestones: android-v2.3.0, android-v2.4.0 Dec 4, 2015
@bleege bleege modified the milestones: android-v3.0.0, android-v3.1.0 Dec 21, 2015
@tobrun
Copy link
Member

tobrun commented Jan 11, 2016

I believe this is issue has gone out of date and is being tracked/evaluated elsewhere.

cc @bleege

@tobrun tobrun closed this as completed Jan 11, 2016
@bleege
Copy link
Contributor

bleege commented Jan 11, 2016

Nope, we'll be using this ticket to build the implementation out. This will be easier to have data and history in one ticket.

@bleege bleege reopened this Jan 11, 2016
@bleege bleege modified the milestones: android-v3.1.0, android-v4.0.0 Jan 20, 2016
bleege added a commit that referenced this issue Feb 11, 2016
bleege added a commit that referenced this issue Feb 11, 2016
… to common location and updating iOS projects to load them from there
bleege added a commit that referenced this issue Feb 11, 2016
bleege added a commit that referenced this issue Feb 11, 2016
bleege added a commit that referenced this issue Feb 11, 2016
bleege added a commit that referenced this issue Feb 11, 2016
@bleege
Copy link
Contributor

bleege commented Feb 11, 2016

Rebased and merged into master so that internal testing can begin.

In order for Android Telemetry Iteration 1 to be considered "complete" the following tickets also must be completed:

/cc @mapbox/telemetry

@bleege bleege closed this as completed Feb 11, 2016
lgeromegnace pushed a commit to Mappy/mapbox-gl-native that referenced this issue Feb 12, 2016
* master: (144 commits)
  [android] mapbox#3900 - Using CopyWriteArrayList to avoid concurrency issues with MapChangeListeners
  [android] mapbox#3919 - restore espresso tests
  [android] mapbox#3907 - Clearing any / all events in memory at the time of Telemetry being disabled
  [android] mapbox#3907 - Integrating Telemetry On / Off UI with functionality
  [android] mapbox#3907 - Initial refactoring to support on / off capability for Telemetry Services
  [android] mapbox#3907 - Adding Telemetry Settings to Attribution Options
  [tests] Fix build
  [core] Organize files that were in map folder better
  Allow using tileSize: 512 as a switch to trade retina support for 512px raster tiles
  [android] mapbox#3908 - No more beep
  [build] Build `offline` tool on the bots
  [build] Fix broken target when building on the bots
  [build] Build `offline` smoke test for Linux
  [android] mapbox#3876 - rename InfoWindowClickListener method
  [android] mapbox#3895 - handles the case of not requested/accepted permissions
  [core] use std::move() to prevent copies
  [core] return std::move() prevents copy elision
  [android] mapbox#2421 - Adding basic JavaDocs
  [android] mapbox#2421 - Setting up Certificate Pinning for Prod Server GeoTrust
  [android] mapbox#2421 - Setting up Certificate Pinning for Staging Server
  ...
@afathman
Copy link

My opinion on Telemetry: there should be an easy opt-out procedure, whether it be not including the service in the manifest or by using a MapboxMapOptions flag.

For me, using the Telemetry service in my manifest causes a crash in my application, and I'd also like to not send user location data as I'm just displaying a Map, not displaying the user's location.

@bleege
Copy link
Contributor

bleege commented Mar 28, 2016

Thanks for your feedback @afathman. We always love to hear from the community about Mapbox projects.

My opinion on Telemetry: there should be an easy opt-out procedure

We agree! That's why we built the Consumer Opt Out Control directly into the MapView UI so that all end users can control whether or not they want to participate.

For me, using the Telemetry service in my manifest causes a crash in my application

Can you tell us which version of the SDK you're using? Is it the latest Release Candidate from Friday night?

I'd also like to not send user location data as I'm just displaying a Map, not displaying the user's location.

The Telemetry system works by listening for Location updates from the app and operating system. The only time that User Location data will be generated by Mapbox tools is when the User Location is enabled using MapboxMap.setMyLocationEnabled(true).

@afathman
Copy link

We agree! That's why we built the Consumer Opt Out Control directly into the MapView UI so that all end users can control whether or not they want to participate.

Was hoping for a developer opt out control, it doesn't seem very friendly to crash an app when it doesn't list your Telemetry service in the manifest.

Can you tell us which version of the SDK you're using? Is it the latest Release Candidate from Friday night?

I'm using 4.0.0-rc1 in my build.

The Telemetry system works by listening for Location updates from the app and operating system. The only time that User Location data will be generated by Mapbox tools is when the User Location is enabled using MapboxMap.setMyLocationEnabled(true).

That makes sense... though I get logcat error messages from MapBox complaining that I didn't yet give it location permissions, even when I use setMyLocationEnabled(false);

@bleege
Copy link
Contributor

bleege commented Mar 28, 2016

I'm using 4.0.0-rc1 in my build.

Thanks for confirming. Can you provide a stack trace or more details about what's crashing?

though I get logcat error messages from MapBox complaining that I didn't yet give it location permissions, even when I use setMyLocationEnabled(false);

Yep, the Mapbox Android SDK uses the open source LOST framework which uses the stock AOSP Location API for Location data generation. This means that the usual Android Location permissions (ACCESS_COARSE_LOCATION and ACCESS_FINE_LOCATION) are required in the app.

@bleege bleege mentioned this issue Mar 30, 2016
13 tasks
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Android Mapbox Maps SDK for Android telemetry Integration with Mapbox Telemetry libraries
Projects
None yet
Development

No branches or pull requests

6 participants