Add retina detection

This commit is contained in:
Pieter Vander Vennet 2020-09-27 21:00:37 +02:00
parent 6a92e417ec
commit 3e2fbcee20
3 changed files with 9 additions and 2 deletions

View file

@ -34,7 +34,8 @@ export class State {
tagsVisibleAndWikiLinked: 150, tagsVisibleAndWikiLinked: 150,
themeGeneratorReadOnlyUnlock: 200, themeGeneratorReadOnlyUnlock: 200,
themeGeneratorFullUnlock: 500, themeGeneratorFullUnlock: 500,
addNewPointWithUnreadMessagesUnlock: 500 addNewPointWithUnreadMessagesUnlock: 500,
minZoomLevelToAddNewPoints: (Utils.isRetina() ? 18 : 19)
}; };
public static runningFromConsole: boolean = false; public static runningFromConsole: boolean = false;

View file

@ -204,7 +204,7 @@ export class SimpleAddUI extends UIElement {
"</span>"]).Render(); "</span>"]).Render();
} }
if (State.state.locationControl.data.zoom < 19) { if (State.state.locationControl.data.zoom < State.userJourney.minZoomLevelToAddNewPoints) {
return new Combine([header, Translations.t.general.add.zoomInFurther]).Render() return new Combine([header, Translations.t.general.add.zoomInFurther]).Render()
} }

View file

@ -97,4 +97,10 @@ export class Utils {
return [a.substr(0, index), a.substr(index+sep.length)]; return [a.substr(0, index), a.substr(index+sep.length)];
} }
public static isRetina() : boolean{
// The cause for this line of code: https://github.com/pietervdvn/MapComplete/issues/115
// See https://stackoverflow.com/questions/19689715/what-is-the-best-way-to-detect-retina-support-on-a-device-using-javascript
return ((window.matchMedia && (window.matchMedia('only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx), only screen and (min-resolution: 75.6dpcm)').matches || window.matchMedia('only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min--moz-device-pixel-ratio: 2), only screen and (min-device-pixel-ratio: 2)').matches)) || (window.devicePixelRatio && window.devicePixelRatio >= 2));
}
} }