Skip to content

Commit 8a38d5d

Browse files
committed
Fixing bugs with fragments
1 parent e367426 commit 8a38d5d

File tree

2 files changed

+19
-22
lines changed
  • app/src/main/java/biz/binarysolutions/mindfulnessmeditation/ui/audioguides
  • metadata/en-US/changelogs

2 files changed

+19
-22
lines changed

app/src/main/java/biz/binarysolutions/mindfulnessmeditation/ui/audioguides/ParentFragment.java

+18-21
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@
22

33
import android.content.Context;
44
import android.os.Bundle;
5+
import android.os.Handler;
56
import android.view.LayoutInflater;
67
import android.view.View;
78
import android.view.ViewGroup;
89

910
import androidx.annotation.NonNull;
1011
import androidx.annotation.Nullable;
1112
import androidx.fragment.app.Fragment;
12-
import androidx.fragment.app.FragmentActivity;
1313
import androidx.fragment.app.FragmentManager;
1414
import androidx.fragment.app.FragmentTransaction;
1515

@@ -35,15 +35,16 @@ public class ParentFragment extends Fragment
3535
*/
3636
private void addFragmentsToContainer() {
3737

38-
FragmentActivity activity = getActivity();
39-
if (activity == null) {
40-
return;
38+
FragmentManager fm = getChildFragmentManager();
39+
FragmentTransaction ft = fm.beginTransaction();
40+
41+
if (!onDeviceFragment.isAdded()) {
42+
ft.add(R.id.fragmentContainer, onDeviceFragment);
43+
}
44+
if (!downloadableFragment.isAdded()) {
45+
ft.add(R.id.fragmentContainer, downloadableFragment);
4146
}
4247

43-
FragmentManager fm = activity.getSupportFragmentManager();
44-
FragmentTransaction ft = fm.beginTransaction();
45-
ft.add(R.id.fragmentContainer, onDeviceFragment);
46-
ft.add(R.id.fragmentContainer, downloadableFragment);
4748
ft.commit();
4849
}
4950

@@ -56,17 +57,18 @@ private void selectDefaultTab(final TabLayout tabLayout) {
5657
Context context = getContext();
5758
if (context == null) {
5859
tabLayout.selectTab(tabLayout.getTabAt(1));
60+
return;
5961
}
6062

6163
final MeditationDao dao =
6264
MeditationDatabase.getDatabase(context).meditationDao();
6365

64-
MeditationDatabase.databaseWriteExecutor.execute(new Runnable() {
65-
@Override
66-
public void run() {
67-
int count = dao.getAllOnDeviceCount();
68-
tabLayout.selectTab(tabLayout.getTabAt(count > 0? 0 : 1));
69-
}
66+
MeditationDatabase.databaseWriteExecutor.execute(() -> {
67+
68+
int count = dao.getAllOnDeviceCount();
69+
new Handler(context.getMainLooper()).post(() ->
70+
tabLayout.selectTab(tabLayout.getTabAt(count > 0? 0 : 1))
71+
);
7072
});
7173
}
7274

@@ -106,14 +108,9 @@ public void onCreate(@Nullable Bundle savedInstanceState) {
106108
@Override
107109
public void onTabSelected(TabLayout.Tab tab) {
108110

109-
FragmentActivity activity = getActivity();
110-
if (activity == null) {
111-
return;
112-
}
113-
114111
int position = tab.getPosition();
115112

116-
FragmentManager fm = activity.getSupportFragmentManager();
113+
FragmentManager fm = getChildFragmentManager();
117114
FragmentTransaction ft = fm.beginTransaction();
118115
ft.hide(position == 0 ? downloadableFragment : onDeviceFragment);
119116
ft.show(position == 0 ? onDeviceFragment : downloadableFragment);
@@ -122,7 +119,7 @@ public void onTabSelected(TabLayout.Tab tab) {
122119

123120
@Override
124121
public void onTabReselected(TabLayout.Tab tab) {
125-
// do nothing
122+
onTabSelected(tab);
126123
}
127124

128125
@Override

metadata/en-US/changelogs/4.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
2.2 (2023.07.27)
1+
2.2 (2023.07.28)
22

33
* adding karma points

0 commit comments

Comments
 (0)