package com.openfarmanager.android.core.network; import com.openfarmanager.android.core.network.dropbox.DropboxAPI; import com.openfarmanager.android.core.network.ftp.FtpAPI; import com.openfarmanager.android.core.network.ftp.SftpAPI; import com.openfarmanager.android.core.network.googledrive.GoogleDriveApi; import com.openfarmanager.android.core.network.mediafire.MediaFireApi; import com.openfarmanager.android.core.network.skydrive.SkyDriveAPI; import com.openfarmanager.android.core.network.smb.SmbAPI; import com.openfarmanager.android.core.network.webdav.WebDavApi; import com.openfarmanager.android.core.network.yandexdisk.YandexDiskApi; import com.openfarmanager.android.model.NetworkAccount; import com.openfarmanager.android.model.NetworkEnum; import org.json.JSONObject; /** * @author Vlad Namashko */ public class NetworkAccountManager { public NetworkAccount createNetworkAccount(long accountId, String user, String authData, int networkType) throws Exception { switch (NetworkEnum.fromOrdinal(networkType)) { case Dropbox: return new DropboxAPI.DropboxAccount(accountId, user, new JSONObject(authData)); case SkyDrive: return new SkyDriveAPI.SkyDriveAccount(accountId, user, new JSONObject(authData)); case FTP: return new FtpAPI.FtpAccount(accountId, user, new JSONObject(authData)); case SMB: return new SmbAPI.SmbAccount(accountId, user, new JSONObject(authData)); case YandexDisk: return new YandexDiskApi.YandexDiskAccount(accountId, user, new JSONObject(authData)); case GoogleDrive: return new GoogleDriveApi.GoogleDriveAccount(accountId, user, new JSONObject(authData)); case MediaFire: return new MediaFireApi.MediaFireAccount(accountId, user, authData); case SFTP: return new SftpAPI.SftpAccount(accountId, user, new JSONObject(authData)); case WebDav: return new WebDavApi.WebDavAccount(accountId, user, new JSONObject(authData)); } return null; } public NetworkEnum getNetworkType(int networkType) { return NetworkEnum.fromOrdinal(networkType); } }