Commit 0c48adc3 authored by Shakti Sahu's avatar Shakti Sahu Committed by Chromium LUCI CQ

Video Tutorials : Hide language picker if there is only one language

Bug: 1158589
Change-Id: Iefd63185eeea5506bf403563a5f897bd8f0d0970
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2591237Reviewed-by: default avatarMin Qin <qinmin@chromium.org>
Commit-Queue: Shakti Sahu <shaktisahu@chromium.org>
Cr-Commit-Position: refs/heads/master@{#837176}
parent 7da2d0dd
...@@ -11,6 +11,7 @@ import org.chromium.chrome.browser.video_tutorials.Tutorial; ...@@ -11,6 +11,7 @@ import org.chromium.chrome.browser.video_tutorials.Tutorial;
import org.chromium.chrome.browser.video_tutorials.VideoTutorialService; import org.chromium.chrome.browser.video_tutorials.VideoTutorialService;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
/** A video tutorial service implementation for tests. */ /** A video tutorial service implementation for tests. */
...@@ -94,4 +95,10 @@ public class TestVideoTutorialService implements VideoTutorialService { ...@@ -94,4 +95,10 @@ public class TestVideoTutorialService implements VideoTutorialService {
mLanguages.add("ta"); mLanguages.add("ta");
mLanguages.add("en"); mLanguages.add("en");
} }
/** Initialized to a set of test languages. */
public void initializeTestLanguages(String[] languages) {
mLanguages.clear();
mLanguages.addAll(Arrays.asList(languages));
}
} }
...@@ -94,7 +94,10 @@ class VideoPlayerMediator implements PlaybackStateObserver.Observer { ...@@ -94,7 +94,10 @@ class VideoPlayerMediator implements PlaybackStateObserver.Observer {
void playVideoTutorial(Tutorial tutorial) { void playVideoTutorial(Tutorial tutorial) {
mTutorial = tutorial; mTutorial = tutorial;
if (TextUtils.isEmpty(mVideoTutorialService.getPreferredLocale())) { boolean shouldShowLanguagePicker =
TextUtils.isEmpty(mVideoTutorialService.getPreferredLocale())
&& mVideoTutorialService.getSupportedLanguages().size() > 1;
if (shouldShowLanguagePicker) {
mModel.set(VideoPlayerProperties.SHOW_LANGUAGE_PICKER, true); mModel.set(VideoPlayerProperties.SHOW_LANGUAGE_PICKER, true);
mLanguagePicker.showLanguagePicker(this::onLanguageSelected, mCloseCallback); mLanguagePicker.showLanguagePicker(this::onLanguageSelected, mCloseCallback);
} else { } else {
...@@ -131,7 +134,8 @@ class VideoPlayerMediator implements PlaybackStateObserver.Observer { ...@@ -131,7 +134,8 @@ class VideoPlayerMediator implements PlaybackStateObserver.Observer {
public void onEnded() { public void onEnded() {
VideoTutorialMetrics.recordWatchStateUpdate(mTutorial.featureType, WatchState.COMPLETED); VideoTutorialMetrics.recordWatchStateUpdate(mTutorial.featureType, WatchState.COMPLETED);
mModel.set(VideoPlayerProperties.SHOW_MEDIA_CONTROLS, true); mModel.set(VideoPlayerProperties.SHOW_MEDIA_CONTROLS, true);
mModel.set(VideoPlayerProperties.SHOW_CHANGE_LANGUAGE, true); mModel.set(VideoPlayerProperties.SHOW_CHANGE_LANGUAGE,
mVideoTutorialService.getSupportedLanguages().size() > 1);
maybeShowWatchNextVideoButton(); maybeShowWatchNextVideoButton();
mModel.set(VideoPlayerProperties.SHOW_TRY_NOW, mModel.set(VideoPlayerProperties.SHOW_TRY_NOW,
VideoTutorialUtils.shouldShowTryNow(mTutorial.featureType)); VideoTutorialUtils.shouldShowTryNow(mTutorial.featureType));
......
...@@ -100,6 +100,18 @@ public class VideoPlayerMediatorUnitTest { ...@@ -100,6 +100,18 @@ public class VideoPlayerMediatorUnitTest {
Mockito.verify(mNavigationController).loadUrl(any()); Mockito.verify(mNavigationController).loadUrl(any());
} }
@Test
public void languagePickerNotShownIfOnlyOneLanguage() {
mTestVideoTutorialService.setPreferredLocale(null);
mTestVideoTutorialService.initializeTestLanguages(new String[] {"hi"});
Tutorial tutorial = mTestVideoTutorialService.getTestTutorials().get(0);
mMediator.playVideoTutorial(tutorial);
assertThat(mModel.get(VideoPlayerProperties.SHOW_LANGUAGE_PICKER), equalTo(false));
Mockito.verify(mLanguagePicker, Mockito.times(0))
.showLanguagePicker(mLanguagePickerCallback.capture(), any());
}
@Test @Test
public void languagePickerNotShownIfPreferredLocaleSetAlready() { public void languagePickerNotShownIfPreferredLocaleSetAlready() {
mTestVideoTutorialService.setPreferredLocale("en"); mTestVideoTutorialService.setPreferredLocale("en");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment