Giter Club home page Giter Club logo

lastquakechile's Introduction

Snyk GitHub repo language GitHub repo size GitHub last commit Google Play Badge

This is the repository of the LastQuakeChile application - Earthquakes in Chile

Description

LastQuakeChile, is an app where you can get the latest earthquakes in Chile and receive notifications quickly on your cell phone.

In the application you can review the latest earthquakes occurred in the country, you can also review details of each one, such as: date, time, epicenter depth, measurement scale, geographic location, etc..

Every time an earthquake occurs, the LastQuakeChile service will send an alert and you will be able to get all the details of the earthquake by simply pressing the notification.

Screenshots

lastquakechile's People

Contributors

figonzal1 avatar imgbotapp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

lastquakechile's Issues

Integración con historias de instagram

Al compartir el sismo se debería abrir un selector de aplicaciones que permita elegir la opción de "Historias de instagram", luego instagram se debe abrir con una imagen de la UI en forma de sticker (Tal cual como lo hace twitter con los tweets en instagram)

A4YMNPLQS5FTPHH4GPY4NQDG3E

Class.isInterface() on null object reference

Error encontrado en QuakeDetailsActivity.kt

java.lang.RuntimeException: Unable to start activity ComponentInfo{cl.figonzal.lastquakechile/cl.figonzal.lastquakechile.quake_feature.ui.QuakeDetailsActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.Class.isInterface()' on a null object reference android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4169) android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4325) android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101) android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) android.app.ActivityThread$H.handleMessage(ActivityThread.java:2574) android.os.Handler.dispatchMessage(Handler.java:106) android.os.Looper.loopOnce(Looper.java:226) android.os.Looper.loop(Looper.java:313) android.app.ActivityThread.main(ActivityThread.java:8757) java.lang.reflect.Method.invoke(Method.java:0) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.Class.isInterface()' on a null object reference java.lang.Class.isAssignableFrom(Class.java:824) android.os.Parcel.readParcelableCreatorInternal(Parcel.java:4865) android.os.Parcel.readParcelableInternal(Parcel.java:4778) android.os.Parcel.readValue(Parcel.java:4544) android.os.Parcel.readValue(Parcel.java:4324) android.os.Parcel.-$$Nest$mreadValue(:0) android.os.Parcel$LazyValue.apply(Parcel.java:4422) android.os.Parcel$LazyValue.apply(Parcel.java:4381) android.os.BaseBundle.getValueAt(BaseBundle.java:394) android.os.BaseBundle.getValue(BaseBundle.java:374) android.os.BaseBundle.getValue(BaseBundle.java:357) android.os.BaseBundle.get(BaseBundle.java:696) android.os.Bundle.getParcelable(Bundle.java:947) cl.figonzal.lastquakechile.quake_feature.ui.QuakeDetailsActivity.bindingResources(QuakeDetailsActivity.kt:700) cl.figonzal.lastquakechile.quake_feature.ui.QuakeDetailsActivity.onCreate(QuakeDetailsActivity.kt:700) android.app.Activity.performCreate(Activity.java:8591) android.app.Activity.performCreate(Activity.java:8570) android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1384) android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4150) android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4325) android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101) android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) android.app.ActivityThread$H.handleMessage(ActivityThread.java:2574) android.os.Handler.dispatchMessage(Handler.java:106) android.os.Looper.loopOnce(Looper.java:226) android.os.Looper.loop(Looper.java:313) android.app.ActivityThread.main(ActivityThread.java:8757) java.lang.reflect.Method.invoke(Method.java:0) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)

Solución:

Cambiar el uso del getParacelable para versiones > Android 13

quake = when {
    Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU -> {
        this?.let { BundleCompat.getParcelable(it, QUAKE, Quake::class.java) }
    }
    else -> this?.get(QUAKE) as Quake
}

[BUG] Fragment a{8be1e2d} (b71e4e5b-f9cf-4d49-b424-017288476d6a) not attached to a context.

Bug encontrado en producción, android falla al recrear activity cuando se elige el modo day/night

Causa: Se llama a getString cuando el fragment aun no está visible en pantalla

Falla

Fecha: Multiples fallas

  • Versión de la app: 1.7.1 (38)

Sistema operativo

  • Versión con fallos vistos: Android 9 y 7.1.1
Fatal Exception: java.lang.IllegalStateException: Fragment a{8be1e2d} (b71e4e5b-f9cf-4d49-b424-017288476d6a) not attached to a context.
       at androidx.fragment.app.Fragment.requireContext(Fragment.java:967)
       at androidx.fragment.app.Fragment.getResources(Fragment.java:1031)
       at cl.figonzal.lastquakechile.core.ui.SettingsActivity$SettingsFragment.handleChangesNightMode(SettingsActivity.kt:142)
       at cl.figonzal.lastquakechile.core.ui.SettingsActivity$SettingsFragment.onSharedPreferenceChanged(SettingsActivity.kt:69)
       at android.app.SharedPreferencesImpl$EditorImpl.notifyListeners(SharedPreferencesImpl.java:607)
       at android.app.SharedPreferencesImpl$EditorImpl.lambda$notifyListeners$0(SharedPreferencesImpl.java:613)
       at android.app.-$$Lambda$SharedPreferencesImpl$EditorImpl$3CAjkhzA131V3V-sLfP2uy0FWZ0.run(-.java:4)
       at android.os.Handler.handleCallback(Handler.java:873)
       at android.os.Handler.dispatchMessage(Handler.java:99)
       at android.os.Looper.loop(Looper.java:192)
       at android.app.ActivityThread.main(ActivityThread.java:7159)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:504)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

[BUG] Caused by android.content.res.Resources$NotFoundException Unable to find resource ID #0x7f08001e

Bug encontrado en producción, android no puede encontrar un recurso.

Causa: Posible instalación corrupta de la aplicación en el dispositivo del cliente. (StackOverflow)

Falla

  • Fecha:28 sept 2022 22:33:39
  • Versión de la app:1.7.1 (38)

Dispositivo

  • Marca:LGE
  • Modelo:Nexus 5X
  • Orientación: Vertical
  • Memoria RAM disponible: 1.31 GB
  • Espacio disponible en el disco: 362.55 MB

Sistema operativo

  • Versión:Android 8.1.0
  • Orientación: Vertical
  • Con derechos de administrador: No

Caused by android.content.res.Resources$NotFoundException: File res/drawable/abc_switch_thumb_material.xml from drawable resource ID #0x7f080051 at android.content.res.ResourcesImpl.loadDrawableForCookie(ResourcesImpl.java:820) at android.content.res.ResourcesImpl.loadDrawable(ResourcesImpl.java:630) at android.content.res.Resources.getDrawableForDensity(Resources.java:877) at android.content.res.XResources.getDrawableForDensity(XResources.java:868) at android.content.res.Resources.getDrawable(Resources.java:819) at android.content.res.XResources.getDrawable(XResources.java:790) at android.content.Context.getDrawable(Context.java:605) at androidx.core.content.ContextCompat$Api21Impl.getDrawable(ContextCompat.java:864) at androidx.core.content.ContextCompat.getDrawable(ContextCompat.java:483) at androidx.appcompat.widget.ResourceManagerInternal.getDrawable(ResourceManagerInternal.java:148) at androidx.appcompat.widget.ResourceManagerInternal.getDrawable(ResourceManagerInternal.java:136) at androidx.appcompat.content.res.AppCompatResources.getDrawable(AppCompatResources.java:66) at androidx.appcompat.widget.TintTypedArray.getDrawable(TintTypedArray.java:83) at androidx.appcompat.widget.SwitchCompat.<init>(SwitchCompat.java:262) at androidx.appcompat.widget.SwitchCompat.<init>(SwitchCompat.java:233) at java.lang.reflect.Constructor.newInstance0(Constructor.java) at java.lang.reflect.Constructor.newInstance(Constructor.java:334) 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.inflate(LayoutInflater.java:492) at android.view.LayoutInflater.inflate(LayoutInflater.java:423) at android.view.LayoutInflater.inflate(LayoutInflater.java:374) at androidx.preference.PreferenceGroupAdapter.onCreateViewHolder(PreferenceGroupAdapter.java:409) at androidx.preference.PreferenceGroupAdapter.onCreateViewHolder(PreferenceGroupAdapter.java:49) at androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:7295) at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6416) at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6300) at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6296) at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2330) at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1631) at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1591) at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:668) at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4309) at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:4012) at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4578) at android.view.View.layout(View.java:19659) at android.view.ViewGroup.layout(ViewGroup.java:6075) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) at android.widget.FrameLayout.onLayout(FrameLayout.java:261) at android.view.View.layout(View.java:19659) at android.view.ViewGroup.layout(ViewGroup.java:6075) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635) at android.widget.LinearLayout.onLayout(LinearLayout.java:1544) at android.view.View.layout(View.java:19659) at android.view.ViewGroup.layout(ViewGroup.java:6075) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) at android.widget.FrameLayout.onLayout(FrameLayout.java:261) at android.view.View.layout(View.java:19659) at android.view.ViewGroup.layout(ViewGroup.java:6075) at androidx.constraintlayout.widget.ConstraintLayout.onLayout(ConstraintLayout.java:1873) at android.view.View.layout(View.java:19659) at android.view.ViewGroup.layout(ViewGroup.java:6075) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) at android.widget.FrameLayout.onLayout(FrameLayout.java:261) at android.view.View.layout(View.java:19659) at android.view.ViewGroup.layout(ViewGroup.java:6075) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635) at android.widget.LinearLayout.onLayout(LinearLayout.java:1544) at android.view.View.layout(View.java:19659) at android.view.ViewGroup.layout(ViewGroup.java:6075) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) at android.widget.FrameLayout.onLayout(FrameLayout.java:261) at android.view.View.layout(View.java:19659) at android.view.ViewGroup.layout(ViewGroup.java:6075) at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791) at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635) at android.widget.LinearLayout.onLayout(LinearLayout.java:1544) at android.view.View.layout(View.java:19659) at android.view.ViewGroup.layout(ViewGroup.java:6075) at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323) at android.widget.FrameLayout.onLayout(FrameLayout.java:261) at com.android.internal.policy.DecorView.onLayout(DecorView.java:761) at android.view.View.layout(View.java:19659) at android.view.ViewGroup.layout(ViewGroup.java:6075) at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2496) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2212) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1392) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6752) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911) at android.view.Choreographer.doCallbacks(Choreographer.java:723) at android.view.Choreographer.doFrame(Choreographer.java:658) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897) at android.os.Handler.handleCallback(Handler.java:790) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6494) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

Execution failed for task ':app:connectedBetaDebugAndroidTest'. Instrumentation Test

El error impide generar test de instrumentacion, se sospecha de liberías desactualizadas. A su vez es imposible implementar fastlane para screenshots automatizados

Task :app:connectedBetaDebugAndroidTest FAILED
69 actionable tasks: 1 executed, 68 up-to-date
Test run failed to complete. Instrumentation run failed due to Process crashed.

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':app:connectedBetaDebugAndroidTest'.

There were failing tests. See the report at: file:///D:/figon/Documentos/GithubProjects/Felipe/Apps/LastQuakeChile/app/build/reports/androidTests/connected/flavors/beta/index.html

  • Try:

Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.

BUILD FAILED in 29s

Horario de sismos mal calculado en lista de sismos

Bug observado:
Usario deja minimizada la aplicación, luego de varias horas llegannuevos sismos, el usuario vuelve a abrir la aplicación, el listado no recalcula el tiempo pasado, sino que muestra el tiempo de la ultima apertura.

Reemplazar info windows google map por un Bottom sheet dialog

Info windows está quedando visualmente obsoleto, y sería mas conveniente actualizar este ítem por un bottom sheet dialog que l usuario pueda esconder.

Este bottom sheet dialog aparecerá cuando un usuario presione un pin dentro de google play, mostrando los detalles del sismo

IndexOutBoundException: Inconsistency detected. Invalid item position 1(offset:1)

Fatal Exception: java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 1(offset:1).state:15 androidx.recyclerview.widget.RecyclerView{3790931 VFED..... ........ 0,365-720,438 #7f090138 app:id/recycle_view_quakes}, adapter:cl.figonzal.lastquakechile.b.d@8db720c, layout:androidx.recyclerview.widget.LinearLayoutManager@3776755, context:android.view.ContextThemeWrapper@20be95
at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:381)
at androidx.recyclerview.widget.GapWorker.prefetchPositionWithDeadline(GapWorker.java:14)
at androidx.recyclerview.widget.GapWorker.flushTaskWithDeadline(GapWorker.java:15)
at androidx.recyclerview.widget.GapWorker.flushTasksWithDeadline(GapWorker.java:22)
at androidx.recyclerview.widget.GapWorker.prefetch(GapWorker.java:3)
at androidx.recyclerview.widget.GapWorker.run(GapWorker.java:70)
at android.os.Handler.handleCallback(Handler.java:907)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:216)
at android.app.ActivityThread.main(ActivityThread.java:7625)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)

[BUG] Illegal class access: 'com.bumptech.glide.b' attempting to access 'androidx.versionedparcelable.a'

Bug encontrado en producción, analisis del error en estudio

Falla

  • Fecha:3 oct 2022 06:28:21
  • Versión de la app:1.7.1 (38)

Dispositivo

  • Marca:unknown
  • Modelo:GCE x86 phone
  • Orientación: Vertical
  • Memoria RAM disponible: 6.2 GB
  • Espacio disponible en el disco: 2.89 GB

Sistema operativo

  • Versión:Android 9
  • Orientación: Vertical
  • Con derechos de administrador:Sí
Fatal Exception: java.lang.IllegalAccessError: Illegal class access: 'com.bumptech.glide.b' attempting to access 'androidx.versionedparcelable.a' (declaration of 'com.bumptech.glide.b' appears in /data/app/cl.figonzal.lastquakechile-FwLjFf5IkJm-4IwnoNdWCA==/base.apk)
       at com.bumptech.glide.Glide.<init>(Glide.java:457)
       at com.bumptech.glide.GlideBuilder.build(GlideBuilder.java:571)
       at com.bumptech.glide.Glide.initializeGlide(Glide.java:316)
       at com.bumptech.glide.Glide.initializeGlide(Glide.java:268)
       at com.bumptech.glide.Glide.checkAndInitializeGlide(Glide.java:212)
       at com.bumptech.glide.Glide.get(Glide.java:193)
       at com.bumptech.glide.Glide.getRetriever(Glide.java:791)
       at com.bumptech.glide.Glide.with(Glide.java:818)
       at cl.figonzal.lastquakechile.core.utils.ViewsExtKt.loadImage(ViewsExtKt.java:385)
       at cl.figonzal.lastquakechile.core.ui.MainActivity.onCreate(MainActivity.kt:80)
       at android.app.Activity.performCreate(Activity.java:7136)
       at android.app.Activity.performCreate(Activity.java:7127)
       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
       at androidx.test.runner.MonitoringInstrumentation.callActivityOnCreate(MonitoringInstrumentation.java:2)
       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
       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)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
       at android.os.Handler.dispatchMessage(Handler.java:106)
       at android.os.Looper.loop(Looper.java:193)
       at android.app.ActivityThread.main(ActivityThread.java:6669)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

Implementación de busqueda avanzada de sismos

Crear una sección dentro de la app que permita al usuario buscar sismos según los filtros que la app permita usar

Ejemplos:

  • Listado de sismos ordenados por fecha, magnitud, profundidad, etc.
  • Listado de sismos de alguna ciudad en específico.
  • Top 10 sismos magnitud

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.