Skip to content
This repository was archived by the owner on Jul 22, 2024. It is now read-only.

Commit 64db2d4

Browse files
authored
Fix for the what's configuration change issue (#3536)
1 parent 71aabd0 commit 64db2d4

File tree

3 files changed

+18
-27
lines changed

3 files changed

+18
-27
lines changed

app/src/common/shared/org/mozilla/vrbrowser/ui/views/NavigationURLBar.java

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,11 @@ public NavigationURLBar(Context context, AttributeSet attrs) {
109109

110110
@SuppressLint("ClickableViewAccessibility")
111111
private void initialize(Context aContext) {
112+
mSettingsViewModel = new ViewModelProvider(
113+
(VRBrowserActivity)getContext(),
114+
ViewModelProvider.AndroidViewModelFactory.getInstance(((VRBrowserActivity) getContext()).getApplication()))
115+
.get(SettingsViewModel.class);
116+
112117
mAudio = AudioEngine.fromContext(aContext);
113118

114119
mUIThreadExecutor = ((VRBrowserApplication)getContext().getApplicationContext()).getExecutors().mainThread();
@@ -120,6 +125,7 @@ private void initialize(Context aContext) {
120125
// Layout setup
121126
mBinding = DataBindingUtil.inflate(LayoutInflater.from(getContext()), R.layout.navigation_url, this, true);
122127
mBinding.setLifecycleOwner((VRBrowserActivity)getContext());
128+
mBinding.setSettingsViewmodel(mSettingsViewModel);
123129

124130
// Use Domain autocomplete provider from components
125131
mAutocompleteProvider = new ShippedDomainsProvider();
@@ -239,25 +245,15 @@ public void detachFromWindow() {
239245
mViewModel.getIsBookmarked().removeObserver(mIsBookmarkedObserver);
240246
mViewModel = null;
241247
}
242-
if (mSettingsViewModel != null) {
243-
mSettingsViewModel = null;
244-
}
245248
}
246249

247250
public void attachToWindow(@NonNull WindowWidget aWindow) {
248251
mViewModel = new ViewModelProvider(
249252
(VRBrowserActivity)getContext(),
250253
ViewModelProvider.AndroidViewModelFactory.getInstance(((VRBrowserActivity) getContext()).getApplication()))
251254
.get(String.valueOf(aWindow.hashCode()), WindowViewModel.class);
252-
mSettingsViewModel = new ViewModelProvider(
253-
(VRBrowserActivity)getContext(),
254-
ViewModelProvider.AndroidViewModelFactory.getInstance(((VRBrowserActivity) getContext()).getApplication()))
255-
.get(SettingsViewModel.class);
256255

257256
mBinding.setViewmodel(mViewModel);
258-
mBinding.setSettingsViewmodel(mSettingsViewModel);
259-
260-
mSettingsViewModel.refresh();
261257

262258
mViewModel.getIsLoading().observe((VRBrowserActivity)getContext(), mIsLoadingObserver);
263259
mViewModel.getIsBookmarked().observe((VRBrowserActivity)getContext(), mIsBookmarkedObserver);

app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/NavigationBarWidget.java

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,10 @@ private void initialize(@NonNull Context aContext) {
142142
(VRBrowserActivity)getContext(),
143143
ViewModelProvider.AndroidViewModelFactory.getInstance(((VRBrowserActivity) getContext()).getApplication()))
144144
.get(TrayViewModel.class);
145+
mSettingsViewModel = new ViewModelProvider(
146+
(VRBrowserActivity)getContext(),
147+
ViewModelProvider.AndroidViewModelFactory.getInstance(((VRBrowserActivity) getContext()).getApplication()))
148+
.get(SettingsViewModel.class);
145149

146150
updateUI();
147151

@@ -189,6 +193,7 @@ private void updateUI() {
189193
mBinding = DataBindingUtil.inflate(inflater, R.layout.navigation_bar, this, true);
190194
mBinding.setLifecycleOwner((VRBrowserActivity)getContext());
191195
mBinding.setViewmodel(mViewModel);
196+
mBinding.setSettingsmodel(mSettingsViewModel);
192197

193198
mBinding.navigationBarNavigation.backButton.setOnClickListener(v -> {
194199
v.requestFocusFromTouch();
@@ -424,6 +429,8 @@ public void onConfigurationChanged(Configuration newConfig) {
424429
super.onConfigurationChanged(newConfig);
425430

426431
updateUI();
432+
433+
mSettingsViewModel.refresh();
427434
}
428435

429436
@Override
@@ -521,10 +528,6 @@ public void detachFromWindow() {
521528
mViewModel.getIsPopUpBlocked().removeObserver(mIsPopUpBlockedListener);
522529
mViewModel = null;
523530
}
524-
525-
if (mSettingsViewModel != null) {
526-
mSettingsViewModel = null;
527-
}
528531
}
529532

530533
@Override
@@ -541,15 +544,8 @@ public void attachToWindow(@NonNull WindowWidget aWindow) {
541544
(VRBrowserActivity)getContext(),
542545
ViewModelProvider.AndroidViewModelFactory.getInstance(((VRBrowserActivity) getContext()).getApplication()))
543546
.get(String.valueOf(mAttachedWindow.hashCode()), WindowViewModel.class);
544-
mSettingsViewModel = new ViewModelProvider(
545-
(VRBrowserActivity)getContext(),
546-
ViewModelProvider.AndroidViewModelFactory.getInstance(((VRBrowserActivity) getContext()).getApplication()))
547-
.get(SettingsViewModel.class);
548547

549548
mBinding.setViewmodel(mViewModel);
550-
mBinding.setSettingsmodel(mSettingsViewModel);
551-
552-
mSettingsViewModel.refresh();
553549

554550
mViewModel.getIsActiveWindow().observeForever(mIsActiveWindowObserver);
555551
mViewModel.getIsPopUpBlocked().observeForever(mIsPopUpBlockedListener);

app/src/common/shared/org/mozilla/vrbrowser/ui/widgets/settings/SettingsWidget.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,11 @@ public SettingsWidget(Context aContext, AttributeSet aAttrs, int aDefStyle) {
104104

105105
@SuppressLint("ClickableViewAccessibility")
106106
private void initialize() {
107+
mSettingsViewModel = new ViewModelProvider(
108+
(VRBrowserActivity)getContext(),
109+
ViewModelProvider.AndroidViewModelFactory.getInstance(((VRBrowserActivity) getContext()).getApplication()))
110+
.get(SettingsViewModel.class);
111+
107112
updateUI();
108113

109114
mOpenDialog = SettingsView.SettingViewType.MAIN;
@@ -129,12 +134,6 @@ public void updateUI() {
129134

130135
// Inflate this data binding layout
131136
mBinding = DataBindingUtil.inflate(inflater, R.layout.settings, this, true);
132-
133-
mSettingsViewModel = new ViewModelProvider(
134-
(VRBrowserActivity)getContext(),
135-
ViewModelProvider.AndroidViewModelFactory.getInstance(((VRBrowserActivity) getContext()).getApplication()))
136-
.get(SettingsViewModel.class);
137-
138137
mBinding.setSettingsmodel(mSettingsViewModel);
139138

140139
mBinding.backButton.setOnClickListener(v -> {

0 commit comments

Comments
 (0)