/* DroidFish - An Android chess program. Copyright (C) 2014,2016 Peter Ă–sterlund, peterosterlund2@gmail.com This program is free software: you can redistribute it and/or modify it under the terms of the GNU 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 General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. */ package org.petero.droidfish.engine; import java.io.File; import java.io.IOException; import java.util.List; import com.kalab.chess.enginesupport.ChessEngine; import com.kalab.chess.enginesupport.ChessEngineResolver; /** Engine imported from a different android app, resolved using the open exchange format. */ public class OpenExchangeEngine extends ExternalEngine { public OpenExchangeEngine(String engine, Report report) { super(engine, report); } @Override protected String copyFile(File from, File exeDir) throws IOException { new File(internalSFPath()).delete(); ChessEngineResolver resolver = new ChessEngineResolver(context); List<ChessEngine> engines = resolver.resolveEngines(); for (ChessEngine engine : engines) { if (EngineUtil.openExchangeFileName(engine).equals(from.getName())) { File engineFile = engine.copyToFiles(context.getContentResolver(), exeDir); return engineFile.getAbsolutePath(); } } throw new IOException("Engine not found"); } }