package com.openfarmanager.android.core.network.datasource;
import android.os.Handler;
import android.util.Pair;
import com.openfarmanager.android.App;
import com.openfarmanager.android.filesystem.FakeFile;
import com.openfarmanager.android.filesystem.FileProxy;
import com.openfarmanager.android.fragments.NetworkPanel;
import com.openfarmanager.android.googledrive.model.File;
import com.openfarmanager.android.model.NetworkEnum;
import com.openfarmanager.android.utils.Extensions;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import static com.openfarmanager.android.fragments.NetworkPanel.MSG_NETWORK_OPEN;
/**
* author: Vlad Namashko
*/
public class GoogleDriveDataSource extends IdPathDataSource {
public GoogleDriveDataSource(Handler handler) {
mHandler = handler;
}
@Override
public String getNetworkType() {
return "Google Drive";
}
@Override
public NetworkEnum getNetworkTypeEnum() {
return NetworkEnum.GoogleDrive;
}
@Override
protected List<FileProxy> getDirectoryFiles(FileProxy directory) {
return App.sInstance.getGoogleDriveApi().getDirectoryFiles(directory.getId(), directory.getFullPathRaw());
}
@Override
public FileProxy requestFileInfo(String id) {
return App.sInstance.getGoogleDriveApi().getFileInfo(id);
}
@Override
public void onUnlinkedAccount() {
}
@Override
public void exitFromNetwork() {
}
@Override
public boolean isSearchSupported() {
return true;
}
@Override
public boolean isChangeEncodingSupported() {
return false;
}
@Override
public void open(FileProxy file) {
mHandler.sendMessage(mHandler.obtainMessage(MSG_NETWORK_OPEN, new Pair<>(file,
App.sInstance.getGoogleDriveApi().getDownloadLink(file))));
}
}