Update footer

This commit is contained in:
Mario Danic 2017-02-15 07:53:40 +01:00 committed by AndyScherzinger
parent ca674dd8a0
commit 7a15e20b20
No known key found for this signature in database
GPG key ID: 6CADC7E3523C308B
3 changed files with 50 additions and 5 deletions

View file

@ -48,6 +48,7 @@ import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
import com.owncloud.android.files.services.FileUploader.FileUploaderBinder; import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
import com.owncloud.android.services.OperationsService.OperationsServiceBinder; import com.owncloud.android.services.OperationsService.OperationsServiceBinder;
import com.owncloud.android.ui.activity.ComponentsGetter; import com.owncloud.android.ui.activity.ComponentsGetter;
import com.owncloud.android.ui.interfaces.ExtendedListFragmentInterface;
import com.owncloud.android.utils.DisplayUtils; import com.owncloud.android.utils.DisplayUtils;
import com.owncloud.android.utils.FileStorageUtils; import com.owncloud.android.utils.FileStorageUtils;
import com.owncloud.android.utils.MimeTypeUtil; import com.owncloud.android.utils.MimeTypeUtil;
@ -73,13 +74,16 @@ public class FileListListAdapter extends BaseAdapter implements FilterableListAd
private FileDataStorageManager mStorageManager; private FileDataStorageManager mStorageManager;
private Account mAccount; private Account mAccount;
private ComponentsGetter mTransferServiceGetter; private ComponentsGetter mTransferServiceGetter;
private ExtendedListFragmentInterface extendedListFragmentInterface;
public FileListListAdapter( public FileListListAdapter(
boolean justFolders, boolean justFolders,
Context context, Context context,
ComponentsGetter transferServiceGetter ComponentsGetter transferServiceGetter,
ExtendedListFragmentInterface extendedListFragmentInterface
) { ) {
this.extendedListFragmentInterface = extendedListFragmentInterface;
mJustFolders = justFolders; mJustFolders = justFolders;
mContext = context; mContext = context;
mAccount = AccountUtils.getCurrentOwnCloudAccount(mContext); mAccount = AccountUtils.getCurrentOwnCloudAccount(mContext);
@ -476,6 +480,7 @@ public class FileListListAdapter extends BaseAdapter implements FilterableListAd
} }
mFiles = FileStorageUtils.sortOcFolder(mFiles); mFiles = FileStorageUtils.sortOcFolder(mFiles);
notifyDataSetChanged(); notifyDataSetChanged();
extendedListFragmentInterface.finishedFiltering();
} }
/** /**

View file

@ -63,6 +63,7 @@ import com.owncloud.android.ui.dialog.CreateFolderDialogFragment;
import com.owncloud.android.ui.dialog.RemoveFilesDialogFragment; import com.owncloud.android.ui.dialog.RemoveFilesDialogFragment;
import com.owncloud.android.ui.dialog.RenameFileDialogFragment; import com.owncloud.android.ui.dialog.RenameFileDialogFragment;
import com.owncloud.android.ui.helpers.SparseBooleanArrayParcelable; import com.owncloud.android.ui.helpers.SparseBooleanArrayParcelable;
import com.owncloud.android.ui.interfaces.ExtendedListFragmentInterface;
import com.owncloud.android.ui.preview.PreviewImageFragment; import com.owncloud.android.ui.preview.PreviewImageFragment;
import com.owncloud.android.ui.preview.PreviewMediaFragment; import com.owncloud.android.ui.preview.PreviewMediaFragment;
import com.owncloud.android.ui.preview.PreviewTextFragment; import com.owncloud.android.ui.preview.PreviewTextFragment;
@ -78,7 +79,7 @@ import java.util.List;
* *
* TODO refactor to get rid of direct dependency on FileDisplayActivity * TODO refactor to get rid of direct dependency on FileDisplayActivity
*/ */
public class OCFileListFragment extends ExtendedListFragment { public class OCFileListFragment extends ExtendedListFragment implements ExtendedListFragmentInterface {
private static final String TAG = OCFileListFragment.class.getSimpleName(); private static final String TAG = OCFileListFragment.class.getSimpleName();
@ -193,7 +194,8 @@ public class OCFileListFragment extends ExtendedListFragment {
mAdapter = new FileListListAdapter( mAdapter = new FileListListAdapter(
mJustFolders, mJustFolders,
getActivity(), getActivity(),
mContainerActivity mContainerActivity,
this
); );
setListAdapter(mAdapter); setListAdapter(mAdapter);
@ -351,6 +353,11 @@ public class OCFileListFragment extends ExtendedListFragment {
com.getbase.floatingactionbutton.R.id.fab_label)).setVisibility(View.GONE); com.getbase.floatingactionbutton.R.id.fab_label)).setVisibility(View.GONE);
} }
@Override
public void finishedFiltering() {
updateFooter();
}
/** /**
* Handler for multiple selection mode. * Handler for multiple selection mode.
* *
@ -791,12 +798,12 @@ public class OCFileListFragment extends ExtendedListFragment {
} }
} }
private void updateLayout() { private void updateFooter() {
if (!mJustFolders) { if (!mJustFolders) {
int filesCount = 0, foldersCount = 0; int filesCount = 0, foldersCount = 0;
int count = mAdapter.getCount(); int count = mAdapter.getCount();
OCFile file; OCFile file;
for (int i=0; i < count ; i++) { for (int i = 0; i < count; i++) {
file = (OCFile) mAdapter.getItem(i); file = (OCFile) mAdapter.getItem(i);
if (file.isFolder()) { if (file.isFolder()) {
foldersCount++; foldersCount++;
@ -808,7 +815,12 @@ public class OCFileListFragment extends ExtendedListFragment {
} }
// set footer text // set footer text
setFooterText(generateFooterText(filesCount, foldersCount)); setFooterText(generateFooterText(filesCount, foldersCount));
}
}
private void updateLayout() {
if (!mJustFolders) {
updateFooter();
// decide grid vs list view // decide grid vs list view
OwnCloudVersion version = AccountUtils.getServerVersion( OwnCloudVersion version = AccountUtils.getServerVersion(
((FileActivity)mContainerActivity).getAccount()); ((FileActivity)mContainerActivity).getAccount());

View file

@ -0,0 +1,28 @@
/**
* Nextcloud Android client application
*
* @author Mario Danic
* Copyright (C) 2017 Mario Danic
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.owncloud.android.ui.interfaces;
/**
* Interface for signaling filter finish
*/
public interface ExtendedListFragmentInterface {
void finishedFiltering();
}