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

Fix #159: Introduce question player UI structure #500

Merged
merged 149 commits into from
Jun 10, 2020

Conversation

BenHenning
Copy link
Sponsor Member

@BenHenning BenHenning commented Dec 2, 2019

Fix #159.

This introduces full support for the question player, minus early exit support (which will be a follow-up work item post-prototype).

This PR is primarily refactoring the state fragment presenter into a shared StatePlayerRecyclerViewAssembler object that can be used to arrange the recycler views for both explorations and questions. This is done in a compositional way that facilitates future features being added, or disparity in functionality between the two (e.g. no previous button in questions and no replay button in explorations).

This PR also includes reworking how the GCS resource bucket name is provided to be normalized (we were using two different annotations before), and set up such that we can change the bucket used depending on context (questions require the test server bucket rather than the production one).

#503 tracks adding thorough tests for the question player once #89 is resolved. This wasn't done as part of this PR for a few reasons:

  1. Although Fix #417: Ensure state navigation buttons are de-duplicated, the same size, and aligned #495 shows that we can make reasonable tests pass for these async players, they aren't reliable and have issues (e.g. no Robolectric support)
  2. This PR is already quite large and complicated
  3. Fix #417: Ensure state navigation buttons are de-duplicated, the same size, and aligned #495 is introducing basic testing for the state player, much of which is shared with questions

This replaces #411 by building on the work started by @jamesxu0.

Open issues that should be resolved after this PR is done:

vinitamurthi and others added 30 commits October 7, 2019 20:07
…ler-interface

Conflicts:
	domain/src/main/java/org/oppia/domain/question/QuestionAssessmentProgressController.kt
	domain/src/main/java/org/oppia/domain/question/QuestionTrainingController.kt
	domain/src/test/java/org/oppia/domain/question/QuestionTrainingControllerTest.kt
	model/src/main/proto/question.proto
This includes some basic refactoring of internal structures used by the
exploration progress controller to share common functionality between the
two progress controllers. There's still some duplication, but this seems
like a reasonable split since there's likely to be further differences in
the progress controllers in the future.

The question assessment progress controller tests pass, but no new ones
have yet been added to thoroughly test the implementation.
ExplorationProgressController. They haven't yet been verified as correct.
…terface

Conflicts:
	domain/src/main/assets/sample_questions.json
	domain/src/main/java/org/oppia/domain/question/QuestionAssessmentProgressController.kt
	domain/src/main/java/org/oppia/domain/question/QuestionTrainingController.kt
	domain/src/main/java/org/oppia/domain/util/JsonAssetRetriever.kt
	domain/src/test/java/org/oppia/domain/question/QuestionTrainingControllerTest.kt
@BenHenning BenHenning assigned veena14cs and unassigned BenHenning May 28, 2020
@BenHenning
Copy link
Sponsor Member Author

BenHenning commented May 28, 2020

Thanks all! @veena14cs sending this back to you to confirm whether I addressed your comments.

Also and also to you @rt4914 for your one comment.

@rt4914 rt4914 removed their assignment May 28, 2020
@rt4914
Copy link
Contributor

rt4914 commented May 28, 2020

Unassigned myself as I have resolved all comments.

Base automatically changed from introduce-question-progress-controller-implementation to develop May 28, 2020 18:21
@BenHenning BenHenning changed the title Fix #159: Introduce question player UI structure [Blocked: #397] Fix #159: Introduce question player UI structure May 28, 2020
Copy link
Contributor

@veena14cs veena14cs left a comment

Choose a reason for hiding this comment

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

Please assign me once the changes are done as discussed in the comment.

behavior graph (and added an actual visual representation of this graph
in code to simplify maintaining the solution in the future). Tests will
be added as part of solving #1273.
@BenHenning
Copy link
Sponsor Member Author

@veena14cs & @nikitamarysolomanpvt sending this back to you to resolve your open comment threads. Please let me know if you have any questions.

Conflicts:
	app/src/main/java/org/oppia/app/application/ApplicationComponent.kt
	app/src/main/java/org/oppia/app/player/state/StateFragmentPresenter.kt
Copy link
Contributor

@veena14cs veena14cs left a comment

Choose a reason for hiding this comment

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

LGTM.

@veena14cs veena14cs assigned BenHenning and unassigned veena14cs Jun 10, 2020
@BenHenning BenHenning merged commit 07c4ee8 into develop Jun 10, 2020
@rt4914 rt4914 mentioned this pull request Jun 24, 2020
3 tasks
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

Successfully merging this pull request may close these issues.

UI Structure: QuestionTrainingFragment [Blocked: #120, #158]
6 participants