Cliente - Trabajo de Fin de Grado 2018-19 - Ingeniería Informática - Universidad de Alicante
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.
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
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)
Mostrar nombre y nombre de usuario del usuario logeado en la parte superior del menú desplegable de la pantalla principal de la aplicación.
Permitir añadir imagenes a los tours y los sitios
Crear y actualizar mapas y localizaciones
Al completar un sitio no se cambia a la siguiente.
Branch auth
Hacer imagen de usuario redonda
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ñ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.
Al entrar a crear un mapa mostrar primero el fragment para poner el nombre y la descripción
Seguimiento de una localización con el termómetro.
Indicando si te acercas o te alejas.
Volver a iniciar sesión por el usuario si se ha perdido el token sin tener que pedirle que inicie sesión.
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.
Al mostrar un tour que se muestre la distancia total del recorrido.
Añadir single sign on de google para iniciar sesión
Añadir un apartado de logros por el que se premia con insignias.
Crear categorías para tours.
Añadir listado de categorías en el Navigation Drawer
Modificar el tipo mapa a tipo tour para mejor entendimiento
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.
Añadir un buscador de sitios, en el mapa, al crear un sitio.
Arreglar registro
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.
Seguimiento de una localización con la brújula.
Si al consultar un dato de base de datos, su fecha es superior a X tiempo, refrescar dato con la API.
Añadir animaciones de carga mientras está cargando datos importantes:
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
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.
Hacer funcionar el botón de añadir imagen a los tours y sitios
Pasos a seguir:
Hacer más claro el color secundario
Añadir calves ajenas en las etiquetas @Entity
para que haya control de datos.
Probar que todo funciona.
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á.
Habilitar poder reordenar los sitios al editar.
Está funcionando en el servidor.
Hashear la contraseña del usuario antes de enviarla al servidor
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.
Añadir diálogos de confirmación:
Seguimiento de una localización en el mapa
Cambiar latitud y longitud de String a Double
Controlar cuando falla o falta el GPS donde se requiera de la ubicación del usuario
Enviar un correo al recibir un mensaje para soporte
Referencia #36
Usar smart lock para almacenar las credenciales del usuario e iniciar sesión en su lugar
Añadir en la pantalla principal (MainFragment
) un listado con los tours en progreso y el indicador de progreso.
Añadir la posibilidad de añadir preguntas al completar un Sitio
o un Tour
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 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.