/*
* Copyright (c) 2012 Hai Bison
*
* See the file LICENSE at the root directory of this project for copying
* permission.
*/
package group.pals.android.lib.ui.filechooser.services;
import group.pals.android.lib.ui.filechooser.io.IFileFilter;
import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
/**
* Base service for a file provider.
*
* @author Hai Bison
* @since v3.1
*/
public abstract class FileProviderService extends Service implements IFileProvider {
/*-------------------------------------------------------------------
* Service
*/
@Override
public IBinder onBind(Intent intent) {
return mBinder;
}
/**
* Class for clients to access. Because we know this service always runs in
* the same process as its clients, we don't need to deal with IPC.
*/
public class LocalBinder extends Binder {
public IFileProvider getService() {
return FileProviderService.this;
}
}// LocalBinder
// This is the object that receives interactions from clients. See
// RemoteService for a more complete example.
private final IBinder mBinder = new LocalBinder();
/*-------------------------------------------------------------------
* IFileProvider
*/
private boolean mDisplayHiddenFiles = false;
private IFileFilter mFileFilter = null;
private FilterMode mFilterMode = FilterMode.FilesOnly;
private int mMaxFileCount = 1024;
private SortType mSortType = SortType.SortByName;
private SortOrder mSortOrder = SortOrder.Ascending;
@Override
public void setDisplayHiddenFiles(boolean display) {
mDisplayHiddenFiles = display;
};
@Override
public boolean isDisplayHiddenFiles() {
return mDisplayHiddenFiles;
}
@Override
public void setFileFilterClass(Class<IFileFilter> cls) {
if (cls == null)
mFileFilter = null;
else {
try {
mFileFilter = cls.newInstance();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};// setFileFilterClass()
@Override
public IFileFilter getFileFilter() {
return mFileFilter;
}
@Override
public void setFilterMode(FilterMode fm) {
mFilterMode = fm;
}
@Override
public FilterMode getFilterMode() {
return mFilterMode;
}
@Override
public void setSortType(SortType st) {
mSortType = st;
}
@Override
public SortType getSortType() {
return mSortType;
}
@Override
public void setSortOrder(SortOrder so) {
mSortOrder = so;
}
@Override
public SortOrder getSortOrder() {
return mSortOrder;
}
@Override
public void setMaxFileCount(int max) {
mMaxFileCount = max;
};
@Override
public int getMaxFileCount() {
return mMaxFileCount;
}
}