Permalink
Switch branches/tags
Commits on Nov 17, 2018
  1. Merge pull request #1197 from cbalster/bug/#1171

    monsieurtanuki committed Nov 17, 2018
    bug/#1171 - Actually throw SQLiteFullException
Commits on Nov 14, 2018
  1. Merge pull request #1195 from osmdroid/bug/#1191

    monsieurtanuki committed Nov 14, 2018
    bug/#1191 - put back the calls to ViewGroup.requestLayout
  2. bug/#1191 - put back the calls to ViewGroup.requestLayout

    monsieurtanuki committed Nov 14, 2018
    Impacted class:
    * `MapView`: put back the calls to method `ViewGroup.requestLayout` in methods `setZoomLevel`, `setMapOrientation`, `setPositionAndScale` and `setMapScroll`, as they used to be before #849, because of the impact on child views
  3. Merge pull request #1190 from osmdroid/bug/#825

    monsieurtanuki committed Nov 14, 2018
    bug/#825 - new custom zoom controller
  4. Fix of a side effect endless loop causing ANR

    monsieurtanuki committed Nov 14, 2018
    Impacted classes:
    * `MapTileAreaZoomComputer`: fixed method `computeFromSource`, where in some side effect cases we entered an endless loop
    * `MapTileAreaZoomComputerTest`: new test method `testBugANRSideEffect`
Commits on Nov 13, 2018
  1. bug/#825 - slight fix for demos

    monsieurtanuki committed Nov 13, 2018
    Impacted class:
    * `BaseSampleFragment`: removed the call to now deprecated method `mapView.setBuiltInZoomControls` in method `onActivityCreated` for 3 reasons - it is deprecated, it is redondant with the `MapView` constructor, and it overrides the specific custom set up potentially performed in method `addOverlays`
Commits on Nov 7, 2018
  1. bug/#825 - new custom zoom controller

    monsieurtanuki committed Nov 7, 2018
    The `CustomZoomButtonsController` class replaces the use of `android.widget.ZoomButtonsController`:
    * no more crash when the `MapView` is detached
    * customizable display using method `getDisplay`, including icons and position
    * customizable visibility using method `setVisibility` (display always / never / show and then fade out)
    * customizable alpha animation when fading out
    * handle short click and long click the same way, including when the map is rotated
    
    New classes:
    * `CustomZoomButtonsController`: controller of the zoom buttons, as a substitute for to-be-deprecated `android.widget.ZoomButtonsController`
    * `CustomZoomButtonsDisplay`: display of the zoom buttons
    * `CustomZoomButtonsDisplayTest`: unit test class for class `CustomZoomButtonsDisplay`
    
    Impacted class:
    * `MapView`: replaced `ZoomButtonsController` by `CustomZoomButtonsController`; removed mEnableZoomController; replaced `dispatchDraw`by `onDraw` for better `invalidate` reactions; unrelated new version of method `getMapCenter` with a "reuse" parameter
Commits on Nov 3, 2018
  1. Merge pull request #1186 from osmdroid/bug/#1185

    monsieurtanuki committed Nov 3, 2018
    bug/#1185 - Marker correct display with alpha parameter
  2. bug/#1185 - Marker correct display with alpha parameter

    monsieurtanuki committed Nov 3, 2018
    Impacted class:
    * `Marker`: new `Paint` member, used in the alpha display; edited method `drawAt` in order to take into account the alpha display parameter in the new `BitmapDrawable` display possibility; unrelated comments refactoring
Commits on Nov 2, 2018
  1. Merge pull request #1183 from osmdroid/bug/#1181

    monsieurtanuki committed Nov 2, 2018
    bug/#1181 - correct orientation for marker icons on orientated maps
  2. bug/#1181 - correct orientation for marker icons on orientated maps

    monsieurtanuki committed Nov 2, 2018
    Impacted classes:
    * `Marker`: fixed the orientation computation in method `draw`
    * `SampleMarker`: used a more orientation-obvious icon for better tests
Commits on Nov 1, 2018
  1. Merge pull request #1180 from osmdroid/feature/#1178

    monsieurtanuki committed Nov 1, 2018
    feature/#1178 - MapView.setExpectedCenter with new offset parameters
  2. feature/#1178 - MapView.setExpectedCenter with new offset parameters

    monsieurtanuki committed Nov 1, 2018
    Impacted class:
    * `MapView`: added a version of method `setExpectedCenter` with offset parameters
Commits on Oct 27, 2018
  1. Merge pull request #1177 from osmdroid/feature/#1176

    monsieurtanuki committed Oct 27, 2018
    feature/#1176 - milestones with non repetitive values; includes demo
  2. feature/#1176 - milestones with non repetitive values; includes demo

    monsieurtanuki committed Oct 27, 2018
    New demo to be found in "More Samples / Data / Milestones with non repetitive values", navigating through all EU capitals.
    Also, unrelated minor fixes about:
    * 2 bugs in the app demo samples's "Rotate Counter Clockwise" and "Map Source" feature
    * a switch from http to https for Mapbox
    
    New files:
    * `data_country.json`: data about a country, including its ISO 3166-1 alpha-3, its name and its capital (name + lan/lon) [so far, only in European Union]
    
    New classes:
    * `DataCountry`: data about a country, including its ISO 3166-1 alpha-3, its name and its capital (name + lan/lon)
    * `DataCountryLoader`: `extends DataLoader<DataCountry>`
    * `DataLoader`: `abstract` json data loader, inspired by `DataRegionLoader`
    * `MilestoneLineDisplayer`: display lines between milestone steps, inspired by `SampleRace`
    * `SampleMilestonesNonRepetitive`: demo with the new "non repetitive milestones" feature - a map of all capitals of the EU
    
    Impacted classes:
    * `BaseSampleFragment`: unrelated bug fix - the "Rotate Counter Clockwise" feature was working in the opposite direction when rotation was < 0
    * `DataRegionLoader`: refactored as `DataLoader<DataRegion>`
    * `MapBoxTileSource`: unrelated enhancement - switching to the new "https://api.mapbox.com/v4/" URL prefix
    * `MilestoneMeterDistanceLister`: added the "not iterative milestones" feature
    * `SampleAnimateTo`: impacted by the changes on `DataRegionLoader`
    * `SampleFactory`: added reference to new class `SampleMilestonesNonRepetitive`
    * `SampleRace`: refactored part of code of method `getAnimatedPathManager` into new class `MilestoneLineDisplayer`
    * `TilesOverlay`: unrelated bug fix - when we selected "Map Source" it used to trigger "Rotate Counter Clockwise" too
Commits on Oct 26, 2018
  1. Merge pull request #1174 from osmdroid/bug/#1172

    monsieurtanuki committed Oct 26, 2018
    bug/#1172 - consistency between tile writer and tile provider
  2. bug/#1172 - consistency between tile writer and tile provider

    monsieurtanuki committed Oct 26, 2018
    Impacted classes:
    * `MapTileProviderBasic`: new `static` method `getMapTileFileStorageProviderBase` that fixes the possible inconsistency between the `IFilesystemCache` and the `MapTileFileStorageProviderBase`; used this method the constructor; unrelated constructor gentle refactoring
    * `GeoPackageProvider`: used new `static` method `MapTileProviderBasic.getMapTileFileStorageProviderBase` in the constructor
    * `SampleLieFi`: used new `static` method `MapTileProviderBasic.getMapTileFileStorageProviderBase` in `MapTileProviderLieFi`'s constructor
  3. Merge pull request #1173 from osmdroid/bug/#1167

    monsieurtanuki committed Oct 26, 2018
    bug/#1167 - using also http header cache-control:max-age for tile expiration
  4. bug/#1167 - using also http header cache-control:max-age for tile exp…

    monsieurtanuki committed Oct 26, 2018
    …iration
    
    New class:
    * `TileDownloaderTest`: unit test class for `TileDownloader`, especially regarding tile expiration computation
    
    Impacted classes:
    * `OpenStreetMapTileProviderConstants`: added constant `HTTP_CACHECONTROL_HEADER` (as `"Cache-Control"`)
    * `TileDownloader`: now also uses the cache-control http header in tile expiration computation in method `downloadTile`; created helper methods `getHttpExpiresTime` and `getHttpCacheControlDuration` and modified method `computeExpirationTime` accordingly
Commits on Oct 18, 2018
  1. Merge pull request #1169 from osmdroid/feature/#1168

    monsieurtanuki committed Oct 18, 2018
    feature/#1168 - Total distance of a Polyline or Polygon in meters
Commits on Oct 17, 2018
  1. feature/#1168 - Total distance of a Polyline or Polygon in meters

    monsieurtanuki committed Oct 17, 2018
    Impacted classes:
    * `LinearRing`: split member `mPrecomputed` in `mProjectedPrecomputed` and `mDistancePrecomputed`; split method `computeProjectedAndDistances` in `computeProjected` and `computeDistances`; created method `getDistance` that aggregates segment distances
    * `Polygon`: created method `getDistance`
    * `Polyline`: created method `getDistance`
  2. feature/#1168 - Total distance of a Polyline or Polygon in meters

    monsieurtanuki committed Oct 17, 2018
    Impacted classes:
    * `LinearRing`: split member `mPrecomputed` in `mProjectedPrecomputed` and `mDistancePrecomputed`; split method `computeProjectedAndDistances` in `computeProjected` and `computeDistances`; created method `getDistance` that aggregates segment distances
    * `Polygon`: created method `getDistance`
    * `Polyline`: created method `getDistance`
Commits on Oct 10, 2018
  1. Merge pull request #1166 from osmdroid/bug/#1164

    monsieurtanuki committed Oct 10, 2018
    bug/#1164: fixed the broken segment joints for Polylines in demos
  2. bug/#1164: fixed the broken segment joints for Polylines in demos

    monsieurtanuki committed Oct 10, 2018
    Impacted classes:
    * `CustomPaintingSurface`: added a `Paint.Cap.ROUND` feature for all polylines
    * `SampleRace`: added a `Paint.Cap.ROUND` feature for all polylines; unrelated - computed the initial bounding box
  3. Merge pull request #1149 from osmdroid/feature/#1144

    monsieurtanuki committed Oct 10, 2018
    feature/#1144 - using the new MapTileAreaList class in CacheManager (refactoring)
Commits on Sep 9, 2018
  1. Merge pull request #1151 from osmdroid/feature/#1122_2

    monsieurtanuki committed Sep 9, 2018
    feature/#1122 - removed the confusing animation at start of demos
Commits on Sep 8, 2018
  1. feature/#1122 - removed the confusing animation at start of demos

    monsieurtanuki committed Sep 8, 2018
    Impacted classes:
    * `SampleItemizedOverlayMultiClick`
    * `SampleMarkerMultiClick`
Commits on Sep 7, 2018
  1. Merge pull request #1150 from osmdroid/feature/#1122

    monsieurtanuki committed Sep 7, 2018
    feature/#1122 - samples on how to handle a click on overlapping items
  2. feature/#1122 - samples on how to handle a click on overlapping items

    monsieurtanuki committed Sep 7, 2018
    I created 2 new samples, to be found in "More Samples / Data": "Overlapping ItemizedOverlays' click" and "Overlapping Markers' click"
    
    New classes:
    * `SampleItemizedOverlayMultiClick`: Sample on how to handle a click on overlapping `OverlayItem`s, to be found in "More Samples / Data / Overlapping ItemizedOverlays' click"
    * `SampleMarkerMultiClick`: Sample on how to handle a click on overlapping `Marker`s, to be found in "More Samples / Data / Overlapping Markers' click"
    
    Impacted classes:
    * `GeoPoint`: added a constructor with `IGeoPoint` as parameter
    * `SampleFactory`: added the 2 new classes `SampleItemizedOverlayMultiClick` and `SampleMarkerMultiClick`
    * `SampleWithMinimapItemizedOverlayWithFocus`: unrelated - used not-deprecated new versions of old methods
  3. feature/#1144 - using the new MapTileAreaList class in CacheManager (…

    monsieurtanuki committed Sep 7, 2018
    …refactoring)
    
    New class:
    * `TileSystemWebMercatorTest`: slightly unrelated unit test class about class `TileSystemWebMercatorTest`
    
    Impacted classes:
    * `CacheManager`: deprecated methods `getMapTileFromCoordinates` and `getCoordinatesFromMapTile` in favor of new `TileSystem` methods; replaced in method `getTilesCoverageIterable` an on-the-fly `IterableWithSize<Long>` class with an instance of `MapTileAreaList`; made `static` method `getTilesRect` `public`
    * `CacheManagerTest`: created new test methods `testGetTilesRectSingleTile` and `testGetTilesRectWholeWorld`; used now `public` method `CacheManager.getTilesRect` in method `getTilesCoverage`
    * `MapTileAreaTest`: slightly unrelated new `testCorners` method
    * `TileSystem`: created methods `getTileXFromLongitude`, `getTileYFromLatitude`, `getLatitudeFromTileY` and `getLongitudeFromTileX`, whose code was more or less previously in class `CacheManager` but will be more comfortable here, because we can handle other tile systems, and because even in the web mercator case the conversion formula was slightly deprecated (as we now use a more precise projection function); created helper method `clipTile`
    * `TileSystemWebMercator`: very slightly fine-tune min and max latitude values, so that their projection into [0,1] fit into [0,1]
Commits on Aug 31, 2018
  1. bug/#909 - Polyline info bubble is now anchored on the Polyline, not …

    monsieurtanuki authored and spyhunter99 committed Aug 31, 2018
    …on the initial touch event (#1136)
    
    * bug/#909 - Polyline info bubble is now anchored on the Polyline, not on the initial touch event
    
    Tested from zoom 0 to zoom 29: no drifting at all for Polyline info window bubbles.
    
    Impacted classes:
    * `Distance`: introduced the concept of "projection factor"; created methods `getSquaredDistanceToProjection`, `getProjectionFactorToLine` and `getProjectionFactorToSegment`; removed unused `private` method `crossProduct`; fixed comments
    * `DistanceTest`: created method `test_getProjectionFactorToLine`
    * `LinearRing`: created method `getCloseTo` for a precise touch computation; rewrote method `isCloseTo` build on `getCloseTo`
    * `Polyline`: created method `getCloseTo` for a precise touch computation; rewrote method `isCloseTo` build on `getCloseTo`; impacted method `onSingleTapConfirmed` that now uses a `GeoPoint` that belongs to the `Polyline`
    
    * bug/#909 - Fix for world replication
    
    Impacted class:
    * `LinearRing`: fixed method `getCloseTo`, that now takes into account world replication
Commits on Aug 27, 2018
  1. Merge pull request #1131 from osmdroid/feature/#1128

    monsieurtanuki committed Aug 27, 2018
    feature/#1128 - faster MapTileCache management
Commits on Aug 10, 2018
  1. feature/#1128 - quick fix regarding build

    monsieurtanuki committed Aug 10, 2018
    Impacted class:
    * `MapTileAreaTest`: removed a risky performance test
  2. feature/#1128 - faster MapTileCache management with new class MapTile…

    monsieurtanuki committed Aug 10, 2018
    …Area
    
    `MapTileArea` now replaces `MapTileList` in most operations, for performance reasons. In `MapTileAreaTest.testPerformances` on a 100 item list: the init phase goes 50 times faster, the lookup phase goes about twice faster for an item in the list, and 10 times faster for an item not in the list.
    
    New classes/interface:
    * `MapTileArea`: a zoom/xmin/xmax/ymin/ymax tile area, that replaces the array of tile indices kept in `MapTileList` for performance reasons
    * `MapTileAreaTest`: a unit test class for `MapTileArea`
    * `MapTileAreaList`: a list of `MapTileArea`
    * `MapTileAreaListTest`: a unit test class for `MapTileAreaList`
    * `MapTileAreaComputer`: Compute a map tile area from a map tile area source, replacing `MapTileListComputer`
    * `MapTileAreaBorderComputer`: Compute a map tile area from a map tile area source - the source with a border
    * `MapTileAreaBorderComputerTest`: a unit test class for `MapTileAreaBorderComputer`
    * `MapTileAreaZoomComputer`: Compute a map tile area from a map tile area source - the source on another zoom level
    * `MapTileAreaZoomComputerTest`: a unit test class for `MapTileAreaZoomComputer`
    
    Deprecated classes/interface:
    * `MapTileListComputer`
    * `MapTileListBorderComputer`
    * `MapTileListBorderComputerTest`
    * `MapTileListZoomComputer`
    * `MapTileListZoomComputerTest`
    
    Other impacted classes:
    * `MapTileCache`: replaced `MapTileList*` with `MapTileArea*`; created `private` method `refreshAdditionalLists` for code readability
    * `MapTileCacheTest`: replaced `MapTileList*` with `MapTileArea*`
    * `MapTilePreCache`: replaced `MapTileList` with `MapTileAreaList`
    * `MapTileProviderBasic`: replaced `MapTileList*` with `MapTileArea*`
    * `TilesOverlay`: replaced `MapTileList*` with `MapTileArea*`
Commits on Aug 6, 2018
  1. feature/#1128 - faster MapTileCache management

    monsieurtanuki committed Aug 6, 2018
    Removed class:
    * `LRUMapTileCache`: already deprecated class, removed _en route_
    
    Impacted classes:
    * `IConfigurationProvider`: impacted the removal of `LRUMapTileCache` in comments; gently refactored
    * `MapTileCache`: new `boolean mAutoEnsureCapacity` and its getter; optimized method `garbageCollection` using `mAutoEnsureCapacity`; method `ensureCapacity` now returns a `boolean` ("actually changed the capacity?"); optimized method `shouldKeepTile`
    * `MapTilePreCache`: added a little optimization in method `fill`; fixed typos
    * `MapTileProviderBasic`: set the new `MapTileCache.mAutoEnsureCapacity` to `true`