Commit 5365d9c
committed
Share and release marker bitmaps in mapsforge layer (rel. to cgeo#18404)
Every marker created a private ARGB_8888 copy of its source bitmap via
AndroidGraphicFactory.convertToBitmap(), although all caches of one type
share the same source bitmap from MapMarkerUtils' marker cache. Those
copies were never released either: MapsforgeV6ZLevelGroupLayer dropped
removed layers without calling Layer.onDestroy(), so Marker.onDestroy()
never decremented the bitmap reference count and Mapsforge's reusable
bitmap pool was never refilled.
Share one Mapsforge bitmap per source bitmap and hand out reference
counted references, and destroy layers when they are removed from the
group layer or when the group layer itself is destroyed.1 parent 767d74e commit 5365d9c
2 files changed
Lines changed: 97 additions & 3 deletions
File tree
- main/src/main/java/cgeo/geocaching/unifiedmap/geoitemlayer
Lines changed: 60 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| 21 | + | |
21 | 22 | | |
| 23 | + | |
22 | 24 | | |
23 | 25 | | |
24 | 26 | | |
| |||
41 | 43 | | |
42 | 44 | | |
43 | 45 | | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
44 | 83 | | |
45 | 84 | | |
46 | 85 | | |
| |||
76 | 115 | | |
77 | 116 | | |
78 | 117 | | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
79 | 121 | | |
80 | 122 | | |
81 | 123 | | |
| |||
144 | 186 | | |
145 | 187 | | |
146 | 188 | | |
147 | | - | |
| 189 | + | |
148 | 190 | | |
149 | 191 | | |
150 | 192 | | |
| |||
155 | 197 | | |
156 | 198 | | |
157 | 199 | | |
158 | | - | |
| 200 | + | |
159 | 201 | | |
160 | 202 | | |
161 | 203 | | |
162 | 204 | | |
163 | 205 | | |
164 | 206 | | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
165 | 223 | | |
166 | 224 | | |
167 | 225 | | |
| |||
Lines changed: 37 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
5 | 6 | | |
| 7 | + | |
6 | 8 | | |
7 | 9 | | |
8 | 10 | | |
| |||
62 | 64 | | |
63 | 65 | | |
64 | 66 | | |
| 67 | + | |
65 | 68 | | |
66 | 69 | | |
67 | 70 | | |
| |||
73 | 76 | | |
74 | 77 | | |
75 | 78 | | |
76 | | - | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
77 | 83 | | |
78 | 84 | | |
79 | 85 | | |
80 | 86 | | |
81 | 87 | | |
82 | 88 | | |
83 | 89 | | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
84 | 93 | | |
85 | 94 | | |
86 | 95 | | |
87 | 96 | | |
88 | 97 | | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
89 | 125 | | |
90 | 126 | | |
91 | 127 | | |
| |||
0 commit comments