Skip to content

Commit 2fe34a5

Browse files
committed
[FAB] Fixed FAB Button visibility issue
(cherry picked from commit f6d6bd4)
1 parent 21e2e22 commit 2fe34a5

File tree

6 files changed

+19
-18
lines changed

6 files changed

+19
-18
lines changed

app/src/main/java/de/davis/passwordmanager/ui/BaseMainActivity.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,7 @@ protected void onCreate(Bundle savedInstanceState) {
3232

3333
getFAB().setOnClickListener(v -> new AddBottomSheet().show(getSupportFragmentManager(), "add-bottom-sheet"));
3434

35-
36-
float screenWidthDp = getResources().getConfiguration().smallestScreenWidthDp;
35+
float screenWidthDp = getResources().getConfiguration().screenWidthDp;
3736
if(screenWidthDp >= 600)
3837
return;
3938

@@ -42,7 +41,7 @@ protected void onCreate(Bundle savedInstanceState) {
4241
}
4342

4443
private View getFAB(){
45-
float screenWidthDp = getResources().getConfiguration().smallestScreenWidthDp;
44+
float screenWidthDp = getResources().getConfiguration().screenWidthDp;
4645
return screenWidthDp >= 600 ? findViewById(R.id.add_rail) : findViewById(R.id.add);
4746
}
4847
}

app/src/main/java/de/davis/passwordmanager/ui/BottomSectionHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public BottomSectionHandler(NavigationBarView navigationBarView, ExtendedFloatin
6060
}
6161

6262
public void handle(){
63-
scrollingViewModel.getVisibility().observe(activity, visible -> extendedFAB.setVisibility(visible ? View.VISIBLE : View.GONE));
63+
scrollingViewModel.getFabVisibility().observe(activity, visible -> extendedFAB.setVisibility(visible ? View.VISIBLE : View.GONE));
6464
scrollingViewModel.getConsumedY().observe(activity, consumed -> {
6565
if(consumed < 0 && !extendedFAB.isExtended()) {
6666
extendedFAB.extend();

app/src/main/java/de/davis/passwordmanager/ui/callbacks/SlidingBackPaneManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ private void updateState(){
2929
@Override
3030
public void handleOnBackPressed() {
3131
slidingPaneLayout.closePane();
32-
scrollingViewModel.setVisibility(true);
32+
scrollingViewModel.setFabVisibility(true);
3333
}
3434

3535
@Override

app/src/main/java/de/davis/passwordmanager/ui/dashboard/DashboardFragment.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public class DashboardFragment extends Fragment implements SearchView.OnQueryTex
5252
private DashboardViewModel viewModel;
5353
private ScrollingViewModel scrollingViewModel;
5454

55-
private boolean oldState = true;
55+
private boolean shouldShowBtn = true;
5656

5757
@Nullable
5858
@Override
@@ -93,7 +93,7 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat
9393
dashboardAdapter.applyWithTracker(binding.listPane.recyclerView);
9494

9595
BasicViewHolder.OnItemClickedListener onItemClickedListener = element -> {
96-
scrollingViewModel.setVisibility(false);
96+
scrollingViewModel.setFabVisibility(false);
9797
binding.listPane.searchView.hide();
9898
Bundle bundle = new Bundle();
9999
bundle.putSerializable("element", element);
@@ -169,20 +169,20 @@ public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
169169
return;
170170

171171
onItemClickedListener.onClicked(element);
172-
oldState = false;
172+
shouldShowBtn = false;
173173
}
174174

175175
@Override
176176
public void onPause() {
177177
super.onPause();
178-
oldState = Boolean.TRUE.equals(scrollingViewModel.getVisibility().getValue());
179-
scrollingViewModel.setVisibility(false);
178+
shouldShowBtn = Boolean.TRUE.equals(scrollingViewModel.getFabVisibility().getValue());
179+
scrollingViewModel.setFabVisibility(false);
180180
}
181181

182182
@Override
183-
public void onResume() {
184-
super.onResume();
185-
scrollingViewModel.setVisibility(oldState);
183+
public void onStart() {
184+
super.onStart();
185+
scrollingViewModel.setFabVisibility(shouldShowBtn);
186186
}
187187

188188
private void addMenu(DashboardAdapter dashboardAdapter){
@@ -222,6 +222,7 @@ public void onSaveInstanceState(@NonNull Bundle outState) {
222222
if(binding == null)
223223
return;
224224
outState.putCharSequence("searchbar_hint", binding.listPane.searchBar.getHint());
225+
outState.putBoolean("shouldShowBtn", shouldShowBtn);
225226
}
226227

227228
@Override
@@ -232,6 +233,7 @@ public void onViewStateRestored(@Nullable Bundle savedInstanceState) {
232233
return;
233234

234235
binding.listPane.searchBar.setHint(savedInstanceState.getCharSequence("searchbar_hint", getString(android.R.string.search_go)));
236+
shouldShowBtn = savedInstanceState.getBoolean("shouldShowBtn");
235237
}
236238

237239
private void showBottomSheet(){

app/src/main/java/de/davis/passwordmanager/ui/viewmodels/ScrollingViewModel.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,21 @@
77
public class ScrollingViewModel extends ViewModel {
88

99
private final MutableLiveData<Integer> consumedY = new MutableLiveData<>();
10-
private final MutableLiveData<Boolean> visibility = new MutableLiveData<>();
10+
private final MutableLiveData<Boolean> fabVisibility = new MutableLiveData<>();
1111

1212
public void setConsumedY(int consumed){
1313
consumedY.setValue(consumed);
1414
}
1515

16-
public void setVisibility(boolean visible){
17-
visibility.setValue(visible);
16+
public void setFabVisibility(boolean visible){
17+
fabVisibility.setValue(visible);
1818
}
1919

2020
public LiveData <Integer> getConsumedY() {
2121
return consumedY;
2222
}
2323

24-
public MutableLiveData<Boolean> getVisibility() {
25-
return visibility;
24+
public MutableLiveData<Boolean> getFabVisibility() {
25+
return fabVisibility;
2626
}
2727
}

0 commit comments

Comments
 (0)