Removed AppListFragmentPageAdapter
Only used in old FDroid activity which is about to be removed.
This commit is contained in:
parent
5ebe3b2420
commit
4dc18f0a88
@ -48,7 +48,6 @@ import org.fdroid.fdroid.compat.TabManager;
|
||||
import org.fdroid.fdroid.compat.UriCompat;
|
||||
import org.fdroid.fdroid.data.AppProvider;
|
||||
import org.fdroid.fdroid.data.NewRepoConfig;
|
||||
import org.fdroid.fdroid.views.AppListFragmentPagerAdapter;
|
||||
import org.fdroid.fdroid.views.ManageReposActivity;
|
||||
import org.fdroid.fdroid.views.swap.SwapWorkflowActivity;
|
||||
|
||||
@ -75,8 +74,6 @@ public class FDroid extends AppCompatActivity implements SearchView.OnQueryTextL
|
||||
@Nullable
|
||||
private TabManager tabManager;
|
||||
|
||||
private AppListFragmentPagerAdapter adapter;
|
||||
|
||||
@Nullable
|
||||
private MenuItem searchMenuItem;
|
||||
|
||||
@ -389,8 +386,6 @@ public class FDroid extends AppCompatActivity implements SearchView.OnQueryTextL
|
||||
|
||||
private void createViews() {
|
||||
viewPager = (ViewPager) findViewById(R.id.main_pager);
|
||||
adapter = new AppListFragmentPagerAdapter(this);
|
||||
viewPager.setAdapter(adapter);
|
||||
viewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
|
||||
@Override
|
||||
public void onPageSelected(int position) {
|
||||
@ -426,7 +421,6 @@ public class FDroid extends AppCompatActivity implements SearchView.OnQueryTextL
|
||||
|
||||
@Override
|
||||
public boolean onQueryTextChange(String newText) {
|
||||
adapter.updateSearchQuery(newText);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -1,116 +0,0 @@
|
||||
package org.fdroid.fdroid.views;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v4.app.Fragment;
|
||||
import android.support.v4.app.FragmentPagerAdapter;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import org.fdroid.fdroid.FDroid;
|
||||
import org.fdroid.fdroid.R;
|
||||
import org.fdroid.fdroid.compat.TabManager;
|
||||
import org.fdroid.fdroid.data.AppProvider;
|
||||
import org.fdroid.fdroid.views.fragments.AppListFragment;
|
||||
import org.fdroid.fdroid.views.fragments.AvailableAppsFragment;
|
||||
import org.fdroid.fdroid.views.fragments.CanUpdateAppsFragment;
|
||||
import org.fdroid.fdroid.views.fragments.InstalledAppsFragment;
|
||||
|
||||
/**
|
||||
* Used by the FDroid activity in conjunction with its ViewPager to support
|
||||
* swiping of tabs for both old devices (< 3.0) and new devices.
|
||||
*
|
||||
* See http://stackoverflow.com/a/15261142 for how to obtain references
|
||||
* to fragments in order to update them in response to search queries.
|
||||
*/
|
||||
public class AppListFragmentPagerAdapter extends FragmentPagerAdapter {
|
||||
|
||||
@NonNull private final FDroid parent;
|
||||
@Nullable private String searchQuery;
|
||||
|
||||
private final AppListFragment[] registeredFragments = new AppListFragment[TabManager.INDEX_COUNT];
|
||||
|
||||
public AppListFragmentPagerAdapter(@NonNull FDroid parent) {
|
||||
super(parent.getSupportFragmentManager());
|
||||
this.parent = parent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object instantiateItem(ViewGroup container, int position) {
|
||||
AppListFragment fragment = (AppListFragment) super.instantiateItem(container, position);
|
||||
fragment.updateSearchQuery(searchQuery);
|
||||
registeredFragments[position] = fragment;
|
||||
return fragment;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroyItem(ViewGroup container, int position, Object object) {
|
||||
registeredFragments[position] = null;
|
||||
super.destroyItem(container, position, object);
|
||||
}
|
||||
|
||||
private String getInstalledTabTitle() {
|
||||
int installedCount = AppProvider.Helper.count(parent, AppProvider.getInstalledUri());
|
||||
return parent.getString(R.string.tab_installed_apps_count, installedCount);
|
||||
}
|
||||
|
||||
private String getUpdateTabTitle() {
|
||||
int updateCount = AppProvider.Helper.count(parent, AppProvider.getCanUpdateUri());
|
||||
return parent.getString(R.string.tab_updates_count, updateCount);
|
||||
}
|
||||
|
||||
/**
|
||||
* Changing the search query is quite an expensive operation, so this does some rudimentary
|
||||
* checking to see if the two queries are meaningfully different. At present, it trims the
|
||||
* strings and does a case insensitive comparison.
|
||||
*/
|
||||
private boolean isSearchQuerySame(String newQuery) {
|
||||
String oldValueTrimmed = searchQuery == null ? "" : searchQuery.trim();
|
||||
String newValueTrimmed = newQuery == null ? "" : newQuery.trim();
|
||||
return oldValueTrimmed.equalsIgnoreCase(newValueTrimmed);
|
||||
}
|
||||
|
||||
public void updateSearchQuery(@Nullable String query) {
|
||||
if (isSearchQuerySame(query)) {
|
||||
return;
|
||||
}
|
||||
|
||||
searchQuery = query;
|
||||
for (AppListFragment fragment : registeredFragments) {
|
||||
if (fragment != null) {
|
||||
fragment.updateSearchQuery(query);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Fragment getItem(int i) {
|
||||
switch (i) {
|
||||
case TabManager.INDEX_AVAILABLE:
|
||||
return new AvailableAppsFragment();
|
||||
case TabManager.INDEX_INSTALLED:
|
||||
return new InstalledAppsFragment();
|
||||
default:
|
||||
return new CanUpdateAppsFragment();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getCount() {
|
||||
return TabManager.INDEX_COUNT;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPageTitle(int i) {
|
||||
switch (i) {
|
||||
case TabManager.INDEX_AVAILABLE:
|
||||
return parent.getString(R.string.tab_available_apps);
|
||||
case TabManager.INDEX_INSTALLED:
|
||||
return getInstalledTabTitle();
|
||||
case TabManager.INDEX_CAN_UPDATE:
|
||||
return getUpdateTabTitle();
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user