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

feat: Add WebView based Discovery Experience #163

Merged
merged 17 commits into from
Dec 27, 2023

Conversation

HamzaIsrar12
Copy link
Contributor

Webview Discovery Experience

Introduces a feature flag-based approach to introduce a webView Discovery screen so the community has a choice to either use native or webView implementation.

The webView-based feature set includes:

  • The main landing Discover screen
  • Course info screen
  • Program info screen
  • Enrolment handling
  • External link handling

Implementation Key-Points

  • The native Discovery experience is the default for the repository
  • The Course Info and Program Info screens will be open in a separate view
  • Links are considered external if it has a different host URL or contains a query parameter of external_link=true
  • We have also introduced a new config for webView discovery:
DISCOVERY:
  TYPE: 'native'
  WEBVIEW:
    BASE_URL: ''
    COURSE_DETAIL_TEMPLATE: ''
    PROGRAM_DETAIL_TEMPLATE: ''

Acceptance Criteria

  • App behaviour to reflect flag settings as expected
  • Back navigation needs to be implemented on the webView screen.
  • If the URL directs to a link outside of the supported domain show a pop-up that you are being directed to the browser to the user.
  • On successful enrolment, the user should be directed to the enrolled course’s dashboard screen.

Notes

  • The enrollment won't work with RG Sandbox so you will have to shift to edX Sandbox for that only.
WebView.Discovery.mp4

@HamzaIsrar12 HamzaIsrar12 linked an issue Dec 13, 2023 that may be closed by this pull request
@HamzaIsrar12 HamzaIsrar12 requested a review from k1rill December 14, 2023 09:50
@HamzaIsrar12
Copy link
Contributor Author

@k1rill & @farhan-arshad-dev , I have updated the UI to address some bugs identified by the QA Team at TouchMedia and ensured consistency in the toolbar throughout the navigation.

k1rill
k1rill previously approved these changes Dec 22, 2023
Copy link
Contributor

@farhan-arshad-dev farhan-arshad-dev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some minor suggestions.

@HamzaIsrar12
Copy link
Contributor Author

@volodymyr-chekyrta If it's approved on your end, feel free to merge the pull request.

@volodymyr-chekyrta
Copy link
Contributor

@HamzaIsrar12, could you please resolve the conflicts so we can merge this PR?

Fixes: LEARNER-9716
Fixes": LEARNER-9716
- Convert LiveData to SharedFlow
- Moved injections to ViewModel
- Added imports for Resource and Colors
- Refactored some code
- Made functions private

Fixes: LEARNER-9716
@HamzaIsrar12
Copy link
Contributor Author

@volodymyr-chekyrta You can merge this PR now. 🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
4 participants