Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Visiting ODK website crashes the application if no browser is installed #1813

Closed
lakshyagupta21 opened this issue Jan 27, 2018 · 1 comment
Closed

Comments

@lakshyagupta21
Copy link
Contributor

lakshyagupta21 commented Jan 27, 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.

  1. User goes to Main Menu Screen
  2. Opens the Overflow menu
  3. Opens 'About' Activity
  4. 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

@lakshyagupta21
Copy link
Contributor Author

@opendatakit-bot claim

@lakshyagupta21 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants