Mercury-IM/app/src/main/java/org/mercury_im/messenger/android/ui/roster/RosterFragment.java

96 lines
2.8 KiB
Java
Raw Normal View History

2020-06-06 18:45:20 +02:00
package org.mercury_im.messenger.android.ui.roster;
2019-04-14 18:12:04 +02:00
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
2019-09-23 23:20:43 +02:00
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
2020-07-13 01:39:26 +02:00
import androidx.appcompat.widget.SearchView;
2019-06-20 17:20:23 +02:00
import androidx.fragment.app.Fragment;
2019-09-23 23:20:43 +02:00
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.ViewPager;
2019-06-20 17:20:23 +02:00
2019-09-23 23:20:43 +02:00
import com.google.android.material.tabs.TabLayout;
2019-09-01 04:56:23 +02:00
import org.mercury_im.messenger.R;
2020-06-06 18:45:20 +02:00
import org.mercury_im.messenger.android.ui.roster.bookmarks.BookmarkListFragment;
import org.mercury_im.messenger.android.ui.roster.contacts.ContactListFragment;
2019-04-14 18:12:04 +02:00
2019-09-23 23:20:43 +02:00
import butterknife.BindView;
import butterknife.ButterKnife;
2019-06-20 17:20:23 +02:00
2020-07-13 01:39:26 +02:00
public class RosterFragment extends Fragment implements SearchView.OnQueryTextListener {
2019-04-14 18:12:04 +02:00
2019-09-23 23:20:43 +02:00
@BindView(R.id.tab_layout)
TabLayout tabLayout;
2019-04-14 18:12:04 +02:00
2019-09-23 23:20:43 +02:00
@BindView(R.id.viewpager)
ViewPager viewPager;
2019-04-14 18:12:04 +02:00
2020-07-13 01:39:26 +02:00
private ContactListFragment contactListFragment = new ContactListFragment();
private BookmarkListFragment bookmarkListFragment = new BookmarkListFragment();
2019-09-23 23:20:43 +02:00
@Nullable
2019-04-14 18:12:04 +02:00
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
2019-09-23 23:20:43 +02:00
View view = inflater.inflate(R.layout.fragment_roster_tabswitcher, container, false);
2019-09-01 04:56:23 +02:00
ButterKnife.bind(this, view);
2019-04-14 18:12:04 +02:00
2019-09-23 23:20:43 +02:00
viewPager.setAdapter(new RosterFragmentPagerAdapter(
getChildFragmentManager(),
FragmentPagerAdapter.BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT));
tabLayout.setupWithViewPager(viewPager);
2019-04-14 18:12:04 +02:00
2019-06-20 17:20:23 +02:00
return view;
}
2020-07-13 01:39:26 +02:00
@Override
public boolean onQueryTextSubmit(String query) {
return true;
}
@Override
public boolean onQueryTextChange(String newText) {
contactListFragment.onQueryTextChange(newText);
return false;
}
2019-09-23 23:20:43 +02:00
private class RosterFragmentPagerAdapter extends FragmentPagerAdapter {
2019-05-04 00:27:02 +02:00
2019-09-23 23:20:43 +02:00
final int PAGE_COUNT = 2;
final String[] PAGE_TITLES = new String[] {
getString(R.string.tab_contacts),
getString(R.string.tab_bookmarks)
};
final Fragment[] PAGES = new Fragment[] {
2020-07-13 01:39:26 +02:00
contactListFragment,
bookmarkListFragment
2019-09-23 23:20:43 +02:00
};
public RosterFragmentPagerAdapter(@NonNull FragmentManager fm, int behavior) {
super(fm, behavior);
}
@NonNull
@Override
public Fragment getItem(int position) {
return PAGES[position];
}
@Override
public int getCount() {
return PAGE_COUNT;
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return PAGE_TITLES[position];
}
};
2019-04-14 18:12:04 +02:00
}