martinlaizg / tfg-geo-find-android Goto Github PK
View Code? Open in Web Editor NEWClient GeoFind
Client GeoFind
Añadir de crear mapa en un Floating Action Button en la lista de mapas.
Añadir single sign on de google para iniciar sesión
Permitir añadir imagenes a los tours y los sitios
Arreglar error al inicio de la aplicación.
Stacktrace
E/TypefaceCompatApi21Impl: java.lang.NoSuchMethodException
java.lang.NoSuchMethodException: addFontWeightStyle [class java.lang.String, int, boolean]
at java.lang.Class.getMethod(Class.java:2068)
at java.lang.Class.getMethod(Class.java:1690)
at androidx.core.graphics.TypefaceCompatApi21Impl.<clinit>(TypefaceCompatApi21Impl.java:74)
at androidx.core.graphics.TypefaceCompat.<clinit>(TypefaceCompat.java:47)
at androidx.core.graphics.TypefaceCompat.create(TypefaceCompat.java:190)
at androidx.appcompat.widget.AppCompatTextView.setTypeface(AppCompatTextView.java:576)
at android.widget.TextView.resolveStyleAndSetTypeface(TextView.java:2037)
at android.widget.TextView.setTypefaceFromAttrs(TextView.java:2008)
at android.widget.TextView.applyTextAppearance(TextView.java:3640)
at android.widget.TextView.<init>(TextView.java:1498)
at android.widget.TextView.<init>(TextView.java:869)
at androidx.appcompat.widget.AppCompatTextView.<init>(AppCompatTextView.java:97)
at androidx.appcompat.widget.AppCompatTextView.<init>(AppCompatTextView.java:93)
at androidx.appcompat.app.AppCompatViewInflater.createTextView(AppCompatViewInflater.java:182)
at androidx.appcompat.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:103)
at androidx.appcompat.app.AppCompatDelegateImpl.createView(AppCompatDelegateImpl.java:1267)
at androidx.appcompat.app.AppCompatDelegateImpl.onCreateView(AppCompatDelegateImpl.java:1317)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:772)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:866)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at com.google.android.material.internal.NavigationMenuPresenter.inflateHeaderView(NavigationMenuPresenter.java:215)
at com.google.android.material.navigation.NavigationView.inflateHeaderView(NavigationView.java:285)
at com.google.android.material.navigation.NavigationView.<init>(NavigationView.java:197)
at com.google.android.material.navigation.NavigationView.<init>(NavigationView.java:104)
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
at android.view.LayoutInflater.createView(LayoutInflater.java:647)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:470)
at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:141)
at com.martinlaizg.geofind.MainActivity.onCreate(MainActivity.java:48)
at android.app.Activity.performCreate(Activity.java:7136)
at android.app.Activity.performCreate(Activity.java:7127)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2894)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3049)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
E/TypefaceCompatApi21Impl: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1809)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6692)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Limitar le juego de tours al nivel mínimo del tour.
Mapa<Brújula<Termómetro
Si el nivel mínimo es mapa, se puede jugar en modo mapa, brújula y termómetro.
Si el nivel mínimo es brújula, se puede jugar en modo brújula y termómetro.
Si el nivel mínimo es termómetro, solo se puede jugar en modo termómetro.
Enviar un correo al recibir un mensaje para soporte
Referencia #36
Añadir diálogos de confirmación:
Is your feature request related to a problem? Please describe.
No
Describe the solution you'd like
Poder modificar los datos del usuario.
Describe alternatives you've considered
Añadir una opción en ajustes para modificar los datos del usuario.
Additional context
No
Crear categorías para tours.
Añadir listado de categorías en el Navigation Drawer
Añadir en la pantalla principal (MainFragment
) un listado con los tours en progreso y el indicador de progreso.
Volver a iniciar sesión por el usuario si se ha perdido el token sin tener que pedirle que inicie sesión.
Mostrar nombre y nombre de usuario del usuario logeado en la parte superior del menú desplegable de la pantalla principal de la aplicación.
Al entrar en la vista de tour, mostrar todos los lugares pero separados por una línea.
Los de la parte superior estarán completados, y en un tono más claro y los de la inferior aún no.
Si al consultar un dato de base de datos, su fecha es superior a X tiempo, refrescar dato con la API.
Crear y actualizar mapas y localizaciones
Añadir un campo en los ajustes de la aplicación para que el usuario pueda mandar mensajes a "Soporte".
Mensajes anónimos y al servidor.
Seguimiento de una localización con el termómetro.
Indicando si te acercas o te alejas.
Al completar un sitio no se cambia a la siguiente.
Branch auth
Usar smart lock para almacenar las credenciales del usuario e iniciar sesión en su lugar
Añadir un buscador de sitios, en el mapa, al crear un sitio.
Hacer más claro el color secundario
Cambiar latitud y longitud de String a Double
Hacer imagen de usuario redonda
Issue para implementar los tests de lo anterior a la fecha de creación de este issue.
A partir de este día, para cada añadido se le harán los test.
Branch old-tests
Mostrar un círculo al rededor de la ubicación dónde se encuentra el sitio.
Calculando una ubicación cercana de forma aleatoria, centrar el mapa en ese punto y poner un circulo alrededor.
El circulo debe de cubrir el punto exacto donde se encuentra la ubicación.
Así no se revela la ubicación exacta, pero se puede saber en que zona está.
Seguimiento de una localización con la brújula.
La brújula sólo se actualiza cuándo se mueve el usuario.
Se debería de calcular la orientación del usuario en cada movimiento, pero después rotar la imagen a la vez que se rota el dispositivo móvil.
Controlar cuando falla o falta el GPS donde se requiera de la ubicación del usuario
Seguimiento de una localización en el mapa
Hashear la contraseña del usuario antes de enviarla al servidor
Al entrar a crear un mapa mostrar primero el fragment para poner el nombre y la descripción
Mejorar repositorio para mostrar mensaje de error al no haber conexión con el servidor
Actualizar el recyclerView al obtener los datos
Branch fix-tour-list-repo
A la hora de jugar a un mapa se debe de seguir un orden de localizaciones no permitiendo al usuario que vaya a la que más le convenga.
Añadir animaciones de carga mientras está cargando datos importantes:
Habilitar poder reordenar los sitios al editar.
Está funcionando en el servidor.
Hacer funcionar el botón de añadir imagen a los tours y sitios
Añadir la posibilidad de añadir preguntas al completar un Sitio
o un Tour
Añadir el tipo de mapa por defecto que quiere el usuario al jugar, Mapa
o Satelite
.
Añadir una opción en los Ajustes de la aplicación para que el usuario pueda elegir su mapa por defecto.
Al cargar la vista de mapa cargar la opción por defecto del usuario.
Pasos a seguir:
Añadir calves ajenas en las etiquetas @Entity
para que haya control de datos.
Probar que todo funciona.
El inicio de sesión con un nueva cuenta de Google no funciona.
Log de Heroku:
2019-06-14T20:16:03.433048+00:00 heroku[router]: at=info method=POST path="/api/login" host=geofind1.herokuapp.com request_id=a6d587bd-0dbb-4ecc-8d53-7f6936d79c04 fwd="79.146.175.43" dyno=web.1 connect=0ms service=82ms status=500 bytes=45098 protocol=https
2019-06-14T20:16:03.353386+00:00 app[web.1]: [2019-06-14 20:16:03] App\Http\Controllers\UserController::login.DEBUG: login with google [] []
2019-06-14T20:16:03.428572+00:00 app[web.1]: 10.29.125.27 - - [14/Jun/2019:20:16:03 +0000] "POST /api/login HTTP/1.1" 500 44829 "-" "okhttp/3.12.0
Añadir un apartado de logros por el que se premia con insignias.
Modificar el tipo mapa a tipo tour para mejor entendimiento
Al mostrar un tour que se muestre la distancia total del recorrido.
Arreglar registro
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.