You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
User Device that doesn't have Chrome/Any other browser installed on it.
User goes to Main Menu Screen
Opens the Overflow menu
Opens 'About' Activity
User clicks on either 'Visit the ODK Website' or 'Join the ODK forum'
Expected behaviour
Url should be opened in Webview
Other information
Found while working on #1755
The issue can be fixed by adding a check before opening a ChromeCustomTabs whether Chrome support is there or not on device then handling it by either webview or by opening it in browser.
01-27 12:55:13.954 16330-16330/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: org.odk.collect.android, PID: 16330
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=https://opendatakit.org/... }
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1805)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1514)
at android.app.Activity.startActivityForResult(Activity.java:3963)
at android.app.Activity.startActivityForResult(Activity.java:3924)
at android.app.Activity.startActivity(Activity.java:4247)
at android.app.Activity.startActivity(Activity.java:4215)
at org.odk.collect.android.utilities.CustomTabHelper.openUri(CustomTabHelper.java:97)
at org.odk.collect.android.preferences.AboutPreferencesFragment.onPreferenceClick(AboutPreferencesFragment.java:85)
at android.preference.Preference.performClick(Preference.java:996)
at android.preference.PreferenceScreen.onItemClick(PreferenceScreen.java:214)
at android.widget.AdapterView.performItemClick(AdapterView.java:310)
at android.widget.AbsListView.performItemClick(AbsListView.java:1145)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:3066)
at android.widget.AbsListView.onTouchUp(AbsListView.java:3915)
at android.widget.AbsListView.onTouchEvent(AbsListView.java:3680)
at android.view.View.dispatchTouchEvent(View.java:9311)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2548)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2241)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2255)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2255)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2255)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2554)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2255)
at com.android.internal.policy.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2403)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1737)
at android.app.Activity.dispatchTouchEvent(Activity.java:2805)
at com.android.internal.policy.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2364)
at android.view.View.dispatchPointerEvent(View.java:9531)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4283)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4098)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3644)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3697)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3663)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3789)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3671)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:3846)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3644)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3697)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3663)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3671)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3644)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:5975)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:5949)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:5910)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6078)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:323)
at android.os.Looper.loop(Loop
The text was updated successfully, but these errors were encountered:
lakshyagupta21
changed the title
Visiting ODK website crashes the application if chrome is not installed
Visiting ODK website crashes the application if no browser is installed
Feb 2, 2018
Software and hardware versions
Collect v1.12.2
Android 6.0.1
Problem description
Devices that don't have chrome installed on it.
Steps to reproduce the problem
User Device that doesn't have Chrome/Any other browser installed on it.
Expected behaviour
Url should be opened in Webview
Other information
Found while working on #1755
The issue can be fixed by adding a check before opening a ChromeCustomTabs whether Chrome support is there or not on device then handling it by either webview or by opening it in browser.
The text was updated successfully, but these errors were encountered: