Fix search fragment

pull/594/head
jhengazuki 3 months ago
parent 1e284476e4
commit 12802d0bbf
  1. 4
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/SearchActivity.java
  2. 8
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/CollectFragment.java
  3. 16
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SearchFragment.java

@ -34,7 +34,9 @@ public class SearchActivity extends BaseActivity {
@Override
protected void initView(Bundle savedInstanceState) {
getSupportFragmentManager().beginTransaction().add(R.id.container, SearchFragment.newInstance(getKeyword()), SearchFragment.class.getSimpleName()).commit();
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction().replace(R.id.container, SearchFragment.newInstance(getKeyword()), SearchFragment.class.getSimpleName()).commit();
}
}
@Override

@ -68,6 +68,7 @@ public class CollectFragment extends BaseFragment implements MenuProvider, Colle
@Override
protected void initMenu() {
if (isHidden()) return;
AppCompatActivity activity = (AppCompatActivity) requireActivity();
activity.setSupportActionBar(mBinding.toolbar);
activity.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
@ -202,9 +203,16 @@ public class CollectFragment extends BaseFragment implements MenuProvider, Colle
if (mExecutor != null) mExecutor.pause();
}
@Override
public void onHiddenChanged(boolean hidden) {
if (hidden) requireActivity().removeMenuProvider(this);
else initMenu();
}
@Override
public void onDestroyView() {
super.onDestroyView();
requireActivity().removeMenuProvider(this);
if (mExecutor != null) mExecutor.shutdownNow();
}
}

@ -78,6 +78,7 @@ public class SearchFragment extends BaseFragment implements MenuProvider, WordAd
@Override
protected void initMenu() {
if (isHidden()) return;
AppCompatActivity activity = (AppCompatActivity) requireActivity();
activity.setSupportActionBar(mBinding.toolbar);
activity.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
@ -138,10 +139,11 @@ public class SearchFragment extends BaseFragment implements MenuProvider, WordAd
private void collect(String keyword) {
FragmentManager fm = requireActivity().getSupportFragmentManager();
Fragment search = fm.findFragmentByTag(getClass().getSimpleName());
FragmentTransaction ft = fm.beginTransaction();
ft.add(R.id.container, CollectFragment.newInstance(keyword));
ft.setTransition(TRANSIT_FRAGMENT_OPEN);
Fragment collect = fm.findFragmentByTag(CollectFragment.class.getSimpleName());
if (collect != null) return;
FragmentTransaction ft = fm.beginTransaction().setTransition(TRANSIT_FRAGMENT_OPEN);
ft.add(R.id.container, CollectFragment.newInstance(keyword), CollectFragment.class.getSimpleName());
Fragment search = fm.findFragmentByTag(SearchFragment.class.getSimpleName());
if (search != null) ft.hide(search);
ft.setReorderingAllowed(true);
ft.addToBackStack(null);
@ -219,4 +221,10 @@ public class SearchFragment extends BaseFragment implements MenuProvider, WordAd
if (hidden) requireActivity().removeMenuProvider(this);
else initMenu();
}
@Override
public void onDestroyView() {
super.onDestroyView();
requireActivity().removeMenuProvider(this);
}
}

Loading…
Cancel
Save