Giter Club home page Giter Club logo

ddr-finder-ng's People

Contributors

andrew67 avatar dependabot[bot] avatar

Stargazers

 avatar

Watchers

 avatar  avatar

ddr-finder-ng's Issues

Crossing the date line breaks location display.

Although Leaflet provides a wrap() utility method that rewrites lng within the -180, 180 range, which allows the API call to return data, GeoJSON does not apply this, so the data will not display.

The options are:

  • Find an option so that GeoJSON auto-wraps.
  • Alter the server side to accept range outside wrap, wrap for the DB query, then apply offset into results.
  • Apply offset into results client-side.

iOS Status Bar issues

Two issues with translucent status bar:

  • Coming back from Google Maps, the app comes in as "black" instead of "black-translucent", so now the content is pushed down.
  • Coming back from Sygic, it continues polling from location in the background, so again we have pushed-down content.
  • Having a phone call active will also push down content.

Proposed fix:

  • Function that adds/removes translucent-statusbar class from body, to have padding only on its presence.
  • Call function on page load and on onresize events (I've confirmed they fire).

Add iOS splash screen

Currently, a white screen is shown when loading as homescreen webapp.
This will require targeting multiple screen sizes.

Remove iOS homescreen webapp support tag

iOS continues to break homescreen webapps, on top of existing issues:

  • Safari only
  • no discoverability (users don't know about this feature)
  • separate cookies/localstorage etc

Remove tag and provide communication to users to re-bookmark as a normal bookmark.

i18n

Similar to Android app, include Spanish/Japanese translations.
i18next looks like a good library to use for integration.

Dark theme

Requirements:

  • Provide user toggle (Automatic/Light/Dark). Debatable as browsers begin to include their own toggles
  • Build alternate Onsen Components CSS and attaching using media query, plus custom dark CSS for map
  • Toggle between light and dark mapbox styles (custom arcade icons included) using media query listener

Handle missing map apps

This is a problem for both platforms:

  • Android: if no apps installed to handle geo: URIs.
  • iOS: if the selected non-default app is not installed.

Symptoms: nothing happens.

Proposed solutions:

  • Android: wrap the geo: URI in an Intent URI, with a fallback pointing to the Google Play Store Google Maps entry (how native app handles it).
  • iOS: there's no app picker in this moment, and the app should get unloaded immediately, so we should be able to use setTimeout to realize nothing happened, and present a dialog, for example: "The selected navigation app is not installed. Use Apple Maps?" which would retry with maps: afterward (guaranteed to work, even with app "disabled").

Back swipe on iOS

Bug (Safari): the left-to-right swipe for back in Safari will exit out of the app completely, since we only push history entries on Android. This can be resolved by applying the Android back button workaround to iOS non-standalone.

Enhancement (Standalone): left-to-right back swipe is non-existant. Can look into using the Onsen gesture detector to trigger a back action like in Safari / native apps.

Incorrect notch paddings on iPhone 12

iPhone 12 models introduced brand new screen sizes.
OnsenUI uses the screen size to determine whether a phone is iPhone X or newer, to apply hard-coded padding (as opposed to the new env()).
Short-term fix: newer OnsenUI release contains iPhone 12 sizes.
Long-term fix: switch to CSS that uses env().

Upgrade OnsenUI

Breaking changes identified so far:

  • 2.2.0: CSS Components moved from Stylus to postcss-cssnext; custom theme requires upgrade to new format files and gulp actions
  • 2.4.0: ons-input is now different tags, such as ons-radio

Material color branding

Currently, there is no ThemeRoller UI for the Onsen UI Material design.
Once available, create color scheme to match native app.
Alternatively, play with stylus to produce a components CSS with our colors.

Duplicate pins

Can be noticed by an increasing shadow when hitting the "Reload" button, duplicate pins are being loaded into the GeoJSON layer.
Find and implement adequate counter-measures.
This is either a blocker for issue #3, or gets resolved as a side-effect of implementing it.

Preserve user's last map location

Preserve user's last map location and zoom for next map init, as otherwise whenever they hit "More Info" or "Navigate" on a platform that quickly kills background tasks (iOS), they will be sent back to initial map screen and not where they were looking just now.

Proposed plan:

  • Add location saving to localstorage (using settingsService) to map dragend and zoomend events.
  • Add location loading to map init event (where it currently hardcoaded loads US zoomed out). Set the defaults in settingsService to retain behavior for first launch.

Android back button

As it's a single page app, hitting back in Settings/About pages with the device button will kick you out of the site/app.

Implementing history.pushState and onpopstate on Android to call myNavigator.popPage() could potentially work.

ATH appears on Chrome even after doing so

As Chrome does not populate navigator.standalone, this is probably telling the extension (which hasn't been updated in a while) to show the message again.
Chrome does have a standalone media query, so we can use that to force display:none on the components.

Get rid of ATH dependency

Currently, Add-To-Homescreen adds about 12KB (gzipped/minified) to prompt the user only on iOS, since Android handles this.
Should replace with custom code, targeting only the languages we care about, using OnsenUI components and ion icons (for example, ion-ios-upload-outline for the icon).

Redeploy as app/

For the purpose of having sync'd native and web app links, "ng/" is meaningless to the end-user, let's move it all to "app/".
Will require changes to ddr-finder project as well, to set up proper redirects.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.