Android: Small fixes to landing page and passthrough

This commit is contained in:
Pieter Vander Vennet 2025-01-21 21:06:50 +01:00
parent baa7379fbf
commit 77f4bc84aa
12 changed files with 55 additions and 31 deletions

View file

@ -1,9 +1,12 @@
<!DOCTYPE html>
<html>
<head><title>MapComplete Auth</title></head>
<head><title>MapComplete Auth</title>
<meta content="width=device-width, initial-scale=1.0" name="viewport">
</head>
<body>
Authorizing and redirecting, hang on...
<div id="token"></div>
<div id="token">Waiting for token</div>
<script type="module" src="./land.ts"></script>
</body>
</html>

View file

@ -12,6 +12,9 @@ const tokenSrc = new UIEventSource("")
new VariableUiElement(tokenSrc).AttachTo("token")
new OsmConnection().finishLogin(async (_, token: string) => {
console.log("Login finished, redirecting to passthrough; token is "+token)
await Utils.waitFor(10)
window.location.href = "https://app.mapcomplete.org/passthrough.html?oauth_token="+token
tokenSrc.set(token)
await Utils.waitFor(500)
window.location.href = "orgmapcomplete://passthrough.html?oauth_token="+token
await Utils.waitFor(500)
window.close()
})

View file

@ -2,6 +2,8 @@
<html lang="en">
<head>
<meta charset="UTF-8">
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<title>MapComplete Login</title>
</head>
<body>

View file

@ -9,6 +9,15 @@
"nl": "Wijzigingen gemaakt met MapComplete",
"ko": "MapComplete로 이루어진 변경 사항"
},
"shortDescription": {
"en": "Shows changes made by MapComplete",
"de": "Zeigt die von MapComplete vorgenommenen Änderungen an",
"cs": "Zobrazuje změny provedené nástrojem MapComplete",
"es": "Muestra los cambios realizados por MapComplete",
"fr": "Afficher les modifications faites avec MapComplete",
"nl": "Toont wijzigingen gemaakt met MapComplete",
"ko": "MapComplete를 통해 이루어진 변경 사항을 표시합니다"
},
"description": {
"en": "This maps shows all the changes made with MapComplete",
"de": "Diese Karte zeigt alle mit MapComplete vorgenommenen Änderungen",
@ -19,17 +28,11 @@
"nl": "Deze kaarten tonen alle wijzigingen die zijn gemaakt met MapComplete",
"ko": "이 지도는 MapComplete를 사용하여 이루어진 모든 변경 사항을 표시합니다"
},
"shortDescription": {
"en": "Shows changes made by MapComplete",
"de": "Zeigt die von MapComplete vorgenommenen Änderungen an",
"cs": "Zobrazuje změny provedené nástrojem MapComplete",
"es": "Muestra los cambios realizados por MapComplete",
"fr": "Afficher les modifications faites avec MapComplete",
"nl": "Toont wijzigingen gemaakt met MapComplete",
"ko": "MapComplete를 통해 이루어진 변경 사항을 표시합니다"
},
"icon": "./assets/svg/logo.svg",
"hideFromOverview": true,
"startLat": 0,
"startLon": 0,
"startZoom": 1,
"layers": [
{
"id": "mapcomplete-changes",

File diff suppressed because one or more lines are too long

View file

@ -31,6 +31,8 @@ cp dist/*.css dist-full/
cp -r dist/css dist-full/
mkdir dist-full/assets
mkdir dist-full/assets/generated
cp dist/assets/*.js dist-full/assets
cp dist/assets/*.svg dist-full/assets
cp dist/assets/*.woff dist-full/assets
@ -39,16 +41,16 @@ cp dist/assets/*.png dist-full/assets
cp dist/assets/*.json dist-full/assets
cp dist/assets/*.css dist-full/assets
cp -r dist/assets/data dist-full/assets
cp -r dist/assets/docs dist-full/assets
cp -r dist/assets/fonts dist-full/assets
cp -r dist/assets/langs dist-full/assets
cp -r dist/assets/layers dist-full/assets
cp -r dist/assets/png dist-full/assets
cp -r dist/assets/svg dist-full/assets
cp -r dist/assets/templates dist-full/assets
cp -r dist/assets/themes dist-full/assets
cp -r dist/assets/data dist-full/assets/
cp -r dist/assets/docs dist-full/assets/
cp -r dist/assets/fonts dist-full/assets/
cp -r dist/assets/langs dist-full/assets/
cp -r dist/assets/layers dist-full/assets/
cp -r dist/assets/png dist-full/assets/
cp -r dist/assets/svg dist-full/assets/
cp -r dist/assets/templates dist-full/assets/
cp -r dist/assets/generated/themes/ dist-full/assets/generated/
cp -r dist/assets/themes dist-full/assets/
# mkdir dist-full/assets/generated
nvm use

View file

@ -54,7 +54,6 @@ interface OsmUserInfo {
}
export default interface UserDetails {
loggedIn: boolean
name: string
uid: number
csCount: number
@ -165,7 +164,6 @@ export class OsmConnection {
const ud = this.userDetails.data
ud.csCount = 5678
ud.uid = 42
ud.loggedIn = true
ud.unreadMessages = 0
ud.name = "Fake user"
ud.totalMessages = 42
@ -236,7 +234,6 @@ export class OsmConnection {
public LogOut() {
this.auth.logout()
this.userDetails.data.loggedIn = false
this.userDetails.data.csCount = 0
this.userDetails.data.name = ""
this.userDetails.ping()
@ -296,7 +293,6 @@ export class OsmConnection {
name: user.display_name,
csCount: user.changesets.count,
description: user.description,
loggedIn: true,
backend: this.Backend(),
home: user.home,
languages: user.languages,

View file

@ -279,7 +279,7 @@ export class OsmPreferences {
* @private
*/
private deleteKeyDirectly(k: string) {
if (!this.osmConnection.userDetails.data.loggedIn) {
if (!this.osmConnection.isLoggedIn.data) {
console.debug(`Not saving preference ${k}: user not logged in`)
return
}
@ -312,7 +312,7 @@ export class OsmPreferences {
* Deletes it if 'v' is undefined, null or empty
*/
private async uploadKeyDirectly(k: string, v: string) {
if (!this.osmConnection.userDetails.data.loggedIn) {
if (!this.osmConnection.isLoggedIn.data) {
console.debug(`Not saving preference ${k}: user not logged in`)
return
}

View file

@ -14,9 +14,11 @@ const DatabridgePluginSingleton = registerPlugin<DatabridgePlugin>("Databridge",
web: () => {
return <DatabridgePlugin>{
async request(options: { key: string }): Promise<{ value: string | object }> {
console.log("Android polyfill got request for", options.key)
if (options.key === "meta") {
return { value: "web" }
}
return null
}
}
}
@ -65,6 +67,12 @@ export class AndroidPolyfill {
console.log("Registering back button callback", callback)
DatabridgePluginSingleton.request({ key: "backbutton" }).then(ev => {
console.log("AndroidPolyfill: received backbutton: ", ev)
if(ev === null){
// Probably in web environment
return
}
// We have to re-register every time
AndroidPolyfill.onBackButton(callback, options)
if (callback()) {
return
}

View file

@ -153,6 +153,10 @@ export default class ThemeViewStateHashActor {
state.previewedImage.setData(undefined)
return true
}
if(state.searchState.showSearchDrawer.data){
state.searchState.showSearchDrawer.set(false)
return true
}
if (state.guistate.closeAll()) {
return true
}

View file

@ -120,6 +120,9 @@ export class MenuState {
return true
}
}
if (ps.menu.data) {
ps.menu.set(false)
return true

View file

@ -1 +1 @@
{"properties":{"name":"Bing Maps Aerial","id":"Bing","url":"https://ecn.t2.tiles.virtualearth.net/tiles/a{quadkey}.jpeg?g=14880&pr=odbl&n=f","type":"bing","category":"photo","min_zoom":1,"max_zoom":22},"type":"Feature","geometry":null}
{"properties":{"name":"Bing Maps Aerial","id":"Bing","url":"https://ecn.t3.tiles.virtualearth.net/tiles/a{quadkey}.jpeg?g=14880&pr=odbl&n=f","type":"bing","category":"photo","min_zoom":1,"max_zoom":22},"type":"Feature","geometry":null}