forked from MapComplete/MapComplete
		
	Make AndroidPolyfill completely static
This commit is contained in:
		
							parent
							
								
									9b7052767a
								
							
						
					
					
						commit
						700599140e
					
				
					 3 changed files with 8 additions and 7 deletions
				
			
		
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| 
						 | 
					@ -25,7 +25,7 @@ const DatabridgePluginSingleton = registerPlugin<DatabridgePlugin>("Databridge",
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export class AndroidPolyfill {
 | 
					export class AndroidPolyfill {
 | 
				
			||||||
    private readonly databridgePlugin: DatabridgePlugin = DatabridgePluginSingleton
 | 
					    private static readonly databridgePlugin: DatabridgePlugin = DatabridgePluginSingleton
 | 
				
			||||||
    private static readonly _inAndroid: UIEventSource<boolean> = new UIEventSource<boolean>(false)
 | 
					    private static readonly _inAndroid: UIEventSource<boolean> = new UIEventSource<boolean>(false)
 | 
				
			||||||
    public static readonly inAndroid: Store<boolean> = AndroidPolyfill._inAndroid
 | 
					    public static readonly inAndroid: Store<boolean> = AndroidPolyfill._inAndroid
 | 
				
			||||||
    private static readonly _geolocationPermission: UIEventSource<"granted" | "denied" | "prompt"> = new UIEventSource("prompt")
 | 
					    private static readonly _geolocationPermission: UIEventSource<"granted" | "denied" | "prompt"> = new UIEventSource("prompt")
 | 
				
			||||||
| 
						 | 
					@ -35,7 +35,7 @@ export class AndroidPolyfill {
 | 
				
			||||||
     * Registers 'navigator.'
 | 
					     * Registers 'navigator.'
 | 
				
			||||||
     * @private
 | 
					     * @private
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    private backfillGeolocation(databridgePlugin: DatabridgePlugin) {
 | 
					    private static backfillGeolocation(databridgePlugin: DatabridgePlugin) {
 | 
				
			||||||
        const src = UIEventSource.FromPromise(databridgePlugin.request({ key: "location:has-permission" }))
 | 
					        const src = UIEventSource.FromPromise(databridgePlugin.request({ key: "location:has-permission" }))
 | 
				
			||||||
        src.addCallbackAndRunD(permission => {
 | 
					        src.addCallbackAndRunD(permission => {
 | 
				
			||||||
            console.log("> Checking geopermission gave: ", JSON.stringify(permission), permission.value)
 | 
					            console.log("> Checking geopermission gave: ", JSON.stringify(permission), permission.value)
 | 
				
			||||||
| 
						 | 
					@ -48,16 +48,16 @@ export class AndroidPolyfill {
 | 
				
			||||||
        return DatabridgePluginSingleton.request({ key: "location:request-permission" })
 | 
					        return DatabridgePluginSingleton.request({ key: "location:request-permission" })
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public async init() {
 | 
					    public static async init() {
 | 
				
			||||||
        console.log("Sniffing shell version")
 | 
					        console.log("Sniffing shell version")
 | 
				
			||||||
        const shell = await this.databridgePlugin.request({ key: "meta" })
 | 
					        const shell = await AndroidPolyfill.databridgePlugin.request({ key: "meta" })
 | 
				
			||||||
        if (shell.value === "web") {
 | 
					        if (shell.value === "web") {
 | 
				
			||||||
            console.log("Not initing Android polyfill as not in a shell; web detected")
 | 
					            console.log("Not initing Android polyfill as not in a shell; web detected")
 | 
				
			||||||
            return
 | 
					            return
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        AndroidPolyfill._inAndroid.set(true)
 | 
					        AndroidPolyfill._inAndroid.set(true)
 | 
				
			||||||
        console.log("Detected shell:", shell.value)
 | 
					        console.log("Detected shell:", shell.value)
 | 
				
			||||||
        this.backfillGeolocation(this.databridgePlugin)
 | 
					        AndroidPolyfill.backfillGeolocation(AndroidPolyfill.databridgePlugin)
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static async requestLoginCodes() {
 | 
					    public static async requestLoginCodes() {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -12,6 +12,7 @@ import { UIEventSource } from "../Logic/UIEventSource"
 | 
				
			||||||
import { WithSearchState } from "../Models/ThemeViewState/WithSearchState"
 | 
					import { WithSearchState } from "../Models/ThemeViewState/WithSearchState"
 | 
				
			||||||
import { ThemeConfigJson } from "../Models/ThemeConfig/Json/ThemeConfigJson"
 | 
					import { ThemeConfigJson } from "../Models/ThemeConfig/Json/ThemeConfigJson"
 | 
				
			||||||
import ThemeConfig from "../Models/ThemeConfig/ThemeConfig"
 | 
					import ThemeConfig from "../Models/ThemeConfig/ThemeConfig"
 | 
				
			||||||
 | 
					import { AndroidPolyfill } from "../Logic/Web/AndroidPolyfill"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function webgl_support() {
 | 
					function webgl_support() {
 | 
				
			||||||
  try {
 | 
					  try {
 | 
				
			||||||
| 
						 | 
					@ -46,7 +47,7 @@ async function getAvailableLayers(): Promise<Set<string>> {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export let theme: ThemeConfig
 | 
					export let theme: ThemeConfig
 | 
				
			||||||
 | 
					AndroidPolyfill.init()
 | 
				
			||||||
let webgl_supported = webgl_support()
 | 
					let webgl_supported = webgl_support()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let availableLayers = UIEventSource.FromPromise(getAvailableLayers())
 | 
					let availableLayers = UIEventSource.FromPromise(getAvailableLayers())
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue