diff --git a/app/src/common/shared/org/mozilla/vrbrowser/VRBrowserApplication.java b/app/src/common/shared/org/mozilla/vrbrowser/VRBrowserApplication.java index 8c86c8a6e..aa184b900 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/VRBrowserApplication.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/VRBrowserApplication.java @@ -53,6 +53,7 @@ public void onConfigurationChanged(Configuration newConfig) { Context context = LocaleUtils.init(this); Language language = LocaleUtils.getDisplayLanguage(context); newConfig.setLocale(language.getLocale()); + getApplicationContext().getResources().updateConfiguration(newConfig, getBaseContext().getResources().getDisplayMetrics()); super.onConfigurationChanged(newConfig); } diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/viewmodel/WindowViewModel.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/viewmodel/WindowViewModel.java index 10be2b97e..eb073f851 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/viewmodel/WindowViewModel.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/viewmodel/WindowViewModel.java @@ -277,20 +277,13 @@ public void onChanged(Spannable aUrl) { navigationBarUrl.postValue(url); } - if (isBookmarksVisible.getValue().get()) { - hint.postValue(getApplication().getString(R.string.url_bookmarks_title)); - - } else if (isHistoryVisible.getValue().get()) { - hint.postValue(getApplication().getString(R.string.url_history_title)); - - } else { - hint.postValue(getApplication().getString(R.string.search_placeholder)); - } + hint.postValue(getHintValue()); } }; public void refresh() { url.postValue(url.getValue()); + hint.postValue(getHintValue()); isWindowVisible.postValue(isWindowVisible.getValue()); placement.postValue(placement.getValue()); isOnlyWindow.postValue(isOnlyWindow.getValue()); @@ -308,6 +301,7 @@ public void refresh() { canGoBack.postValue(canGoBack.getValue()); isInVRVideo.postValue(isInVRVideo.getValue()); autoEnteredVRVideo.postValue(autoEnteredVRVideo.getValue()); + titleBarUrl.setValue(titleBarUrl.getValue()); isMediaAvailable.postValue(isMediaAvailable.getValue()); isMediaPlaying.postValue(isMediaPlaying.getValue()); } @@ -384,12 +378,21 @@ public void setUrl(@Nullable Spannable url) { @NonNull public MutableLiveData getHint() { - if (hint == null) { - hint = new MutableLiveData<>(""); - } return hint; } + private String getHintValue() { + if (isBookmarksVisible.getValue().get()) { + return getApplication().getString(R.string.url_bookmarks_title); + + } else if (isHistoryVisible.getValue().get()) { + return getApplication().getString(R.string.url_history_title); + + } else { + return getApplication().getString(R.string.search_placeholder); + } + } + @NonNull public MutableLiveData getIsWindowVisible() { return isWindowVisible; diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/views/NavigationURLBar.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/views/NavigationURLBar.java index 228e57839..bd087024a 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/views/NavigationURLBar.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/views/NavigationURLBar.java @@ -229,9 +229,7 @@ private void initialize(Context aContext) { mBinding.popup.setOnClickListener(mPopUpListener); // Bookmarks - mBinding.bookmarkButton.setOnClickListener(v -> { - handleBookmarkClick(); - }); + mBinding.bookmarkButton.setOnClickListener(v -> handleBookmarkClick()); clearFocus(); } diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/CrashDialogWidget.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/CrashDialogWidget.java index acb0f0446..483a68bbb 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/CrashDialogWidget.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/CrashDialogWidget.java @@ -39,8 +39,8 @@ public CrashDialogWidget(@NonNull Context aContext, @NonNull ArrayList f } @Override - protected void initialize(Context aContext) { - super.initialize(aContext); + public void updateUI() { + super.updateUI(); setButtons(new int[] { R.string.do_not_sent_button, @@ -51,7 +51,7 @@ protected void initialize(Context aContext) { if (mFiles != null) { SystemUtils.clearCrashFiles(getContext(), mFiles); } - onDismiss(); + onDismiss(); } else if (index == PromptDialogWidget.POSITIVE) { if (mFiles != null) { diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/PermissionWidget.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/PermissionWidget.java index 8d84b1d51..706100edf 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/PermissionWidget.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/PermissionWidget.java @@ -18,6 +18,8 @@ public class PermissionWidget extends PromptDialogWidget { private GeckoSession.PermissionDelegate.Callback mPermissionCallback; + private String mUri; + private PermissionType mPermissionType; public enum PermissionType { Camera, @@ -34,8 +36,8 @@ public PermissionWidget(Context aContext) { } @Override - protected void initialize(Context aContext) { - super.initialize(aContext); + public void updateUI() { + super.updateUI(); setButtons(new int[] { R.string.permission_reject, @@ -53,6 +55,10 @@ protected void initialize(Context aContext) { }); setCheckboxVisible(false); setDescriptionVisible(false); + + if (isVisible()) { + showPrompt(mUri, mPermissionType, mPermissionCallback); + } } public void showPrompt(String aUri, PermissionType aType, GeckoSession.PermissionDelegate.Callback aCallback) { @@ -97,6 +103,8 @@ public void showPrompt(String aUri, PermissionType aType, GeckoSession.Permissio } mPermissionCallback = aCallback; + mUri = aUri; + mPermissionType = aType; String requesterName = getRequesterName(aUri); String message = String.format(getContext().getString(messageId), requesterName); diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/PopUpBlockDialogWidget.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/PopUpBlockDialogWidget.java index e444c2727..220709a2a 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/PopUpBlockDialogWidget.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/PopUpBlockDialogWidget.java @@ -20,6 +20,11 @@ public PopUpBlockDialogWidget(Context aContext) { @Override protected void initialize(Context aContext) { super.initialize(aContext); + } + + @Override + public void updateUI() { + super.updateUI(); setDescriptionVisible(false); @@ -34,7 +39,6 @@ protected void initialize(Context aContext) { setCheckboxText(R.string.popup_block_checkbox); mBinding.checkbox.setOnCheckedChangeListener((buttonView, isChecked) -> mIsChecked = isChecked); - } public boolean askAgain() { diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/RestartDialogWidget.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/RestartDialogWidget.java index b2eb3a0f5..d7f2d749e 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/RestartDialogWidget.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/RestartDialogWidget.java @@ -18,8 +18,8 @@ public RestartDialogWidget(Context aContext) { } @Override - protected void initialize(Context aContext) { - super.initialize(aContext); + public void updateUI() { + super.updateUI(); setButtons(new int[] { R.string.restart_later_dialog_button, @@ -41,5 +41,4 @@ protected void initialize(Context aContext) { setTitle(R.string.restart_dialog_restart); setBody(getContext().getString(R.string.restart_dialog_text, getContext().getString(R.string.app_name))); } - } diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/SendTabDialogWidget.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/SendTabDialogWidget.java index 0db2633c9..c836a8642 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/SendTabDialogWidget.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/SendTabDialogWidget.java @@ -6,7 +6,6 @@ package org.mozilla.vrbrowser.ui.widgets.dialogs; import android.content.Context; -import android.content.res.Configuration; import android.view.LayoutInflater; import android.view.View; @@ -74,13 +73,10 @@ public void updateUI() { mBinding.headerLayout.setDescription(R.string.send_tab_dialog_description); mBinding.footerLayout.setFooterButtonText(R.string.send_tab_dialog_button); mBinding.footerLayout.setFooterButtonClickListener(this::sendTabButtonClick); - } - - @Override - public void onConfigurationChanged(Configuration newConfig) { - super.onConfigurationChanged(newConfig); - updateUI(); + if (isVisible()) { + mAccounts.refreshDevicesAsync(); + } } @Override @@ -143,13 +139,12 @@ public void onDevicesUpdate(@NonNull ConstellationState constellationState) { List list = constellationState.getOtherDevices().stream() .filter(device -> device.getCapabilities().contains(DeviceCapability.SEND_TAB)).collect(Collectors.toList()); - if (!mDevicesList.equals(list)) { - mDevicesList = list; + mDevicesList = list; + + List devicesNamesList = new ArrayList<>(); + mDevicesList.forEach((device) -> devicesNamesList.add(device.getDisplayName())); + mSendTabsDialogBinding.devicesList.setOptions(devicesNamesList.toArray(new String[]{})); - List devicesNamesList = new ArrayList<>(); - mDevicesList.forEach((device) -> devicesNamesList.add(device.getDisplayName())); - mSendTabsDialogBinding.devicesList.setOptions(devicesNamesList.toArray(new String[]{})); - } if (!mDevicesList.isEmpty()) { mBinding.footerLayout.setFooterButtonVisibility(View.VISIBLE); diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/SignOutDialogWidget.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/SignOutDialogWidget.java index 0f4ba8fc5..b994f75a7 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/SignOutDialogWidget.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/SignOutDialogWidget.java @@ -37,6 +37,11 @@ protected void initialize(Context aContext) { mUIThreadExecutor = ((VRBrowserApplication)getContext().getApplicationContext()).getExecutors().mainThread(); mAccounts = ((VRBrowserApplication)getContext().getApplicationContext()).getAccounts(); mPlaces = ((VRBrowserApplication)getContext().getApplicationContext()).getPlaces(); + } + + @Override + public void updateUI() { + super.updateUI(); setButtons(new int[] { R.string.fxa_signout_confirmation_signout, diff --git a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/WhatsNewWidget.java b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/WhatsNewWidget.java index 74f6de45b..d46114bf2 100644 --- a/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/WhatsNewWidget.java +++ b/app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/dialogs/WhatsNewWidget.java @@ -36,6 +36,11 @@ protected void initialize(Context aContext) { mUIThreadExecutor = ((VRBrowserApplication)getContext().getApplicationContext()).getExecutors().mainThread(); mAccounts = ((VRBrowserApplication)getContext().getApplicationContext()).getAccounts(); + } + + @Override + public void updateUI() { + super.updateUI(); setButtons(new int[] { R.string.whats_new_button_start_browsing,