/*
* Copyright (c) 2011, 2012 Roberto Tyley
*
* This file is part of 'Agit' - an Android Git client.
*
* Agit 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.
*
* Agit 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 com.madgag.agit.operations;
import android.util.Log;
import com.google.inject.Inject;
import com.google.inject.name.Named;
import com.madgag.agit.guice.RepositoryScoped;
import java.io.File;
@RepositoryScoped
public class RepoOpRegistry {
private final static String TAG = "ROR";
private
@Inject
@Named("gitdir")
File gitdir;
private GitOperation currentOperation;
public synchronized boolean setCurrentOperation(GitOperation op, boolean interruptExistingOp) {
if (currentOperation == null || currentOperation.isDone()) {
Log.d(TAG, "Prior op for " + gitdir + " : " + currentOperation + " - new op=" + op);
currentOperation = op;
return true;
}
if (interruptExistingOp) {
Log.d(TAG, "Interrupting existing op for " + gitdir + " : " + currentOperation + " -> " + op);
currentOperation.cancel();
currentOperation = op;
return true;
}
Log.d(TAG, "Won't interrupt existing op for " + gitdir + " : " + currentOperation);
return false;
}
public synchronized GitOperation getCurrentOperation() {
return currentOperation;
}
public void addRepoListener(ProgressListener<Progress> progressListener) {
}
}