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.FileProxy; import com.openfarmanager.android.filesystem.YandexDiskFile; import com.openfarmanager.android.fragments.NetworkPanel; import com.openfarmanager.android.model.NetworkEnum; import com.openfarmanager.android.utils.Extensions; import com.openfarmanager.android.utils.FileUtilsExt; import static com.openfarmanager.android.fragments.NetworkPanel.MSG_NETWORK_OPEN; /** * @author Vlad Namashko */ public class YandexDiskDataSource extends RawPathDataSource { public YandexDiskDataSource(Handler handler) { mHandler = handler; } @Override public String getNetworkType() { return "YandexDisk"; } @Override public NetworkEnum getNetworkTypeEnum() { return NetworkEnum.YandexDisk; } @Override public NetworkPanel.DirectoryScanInfo openDirectory(FileProxy directory) throws RuntimeException { return mDirectoryScanInfo.set(App.sInstance.getYandexDiskApi().getDirectoryFiles(directory.getFullPath()), FileUtilsExt.getParentPath(directory.getParentPath())); } @Override public void onUnlinkedAccount() { App.sInstance.getDropboxApi().deleteCurrentAccount(); } @Override public void exitFromNetwork() { } @Override public boolean isSearchSupported() { return false; } @Override public boolean isChangeEncodingSupported() { return false; } public FileProxy createFakeDirectory(String path) { return new YandexDiskFile(path); } @Override public void open(FileProxy file) { YandexDiskFile diskFile = (YandexDiskFile) file; if (!Extensions.isNullOrEmpty(diskFile.getPublicUrl())) { mHandler.sendMessage(mHandler.obtainMessage(MSG_NETWORK_OPEN, new Pair<>(file, diskFile.getPublicUrl()))); } } }