dukecon / dukecon_android

Apache License 2.0
1 stars 1 forks source link

App crashes by clicking on Speaker's Twitter link #24

Closed michalharakal closed 6 years ago

michalharakal commented 6 years ago

Fatal Exception: android.content.ActivityNotFoundException No Activity found to handle Intent { act=android.intent.action.VIEW dat=@srose204 } android.app.Instrumentation.checkStartActivityResult (Instrumentation.java:1937) android.app.Instrumentation.execStartActivity (Instrumentation.java:1616) android.app.Activity.startActivityForResult (Activity.java:4487) android.support.v4.app.BaseFragmentActivityApi16.startActivityForResult (BaseFragmentActivityApi16.java:54) android.support.v4.app.FragmentActivity.startActivityForResult (FragmentActivity.java:68) android.app.Activity.startActivityForResult (Activity.java:4445) android.support.v4.app.FragmentActivity.startActivityForResult (FragmentActivity.java:751) android.app.Activity.startActivity (Activity.java:4806) android.app.Activity.startActivity (Activity.java:4774) arrow_right org.dukecon.android.ui.features.speakerdetail.SpeakerDetailView$showSpeaker$1.onClick (SpeakerDetailView.kt:83) android.view.View.performClick (View.java:6294) android.view.View$PerformClick.run (View.java:24770) android.os.Handler.handleCallback (Handler.java:790) android.os.Handler.dispatchMessage (Handler.java:99) android.os.Looper.loop (Looper.java:164) android.app.ActivityThread.main (ActivityThread.java:6494) java.lang.reflect.Method.invoke (Method.java) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:438) com.android.internal.os.ZygoteInit.main (ZygoteInit.java:807)

michalharakal commented 6 years ago

Apparently provides conference API a data for twitter in different formats:

To fix:

  1. unify data to the one format (full url is a preferred). SpeakerEntityMapper.kt is the right place to do that
  2. Presentation layer can decide how it can be displayed, here is Twitter Handle form preferred way. See SpeakerDetailMapper.kt for details
  3. Add check for availability of intent handler