/*
* 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.ssh.jsch;
import static com.madgag.agit.operations.OpNotification.alert;
import static com.madgag.agit.operations.OpPrompt.prompt;
import static com.madgag.agit.operations.OpPrompt.promptYesOrNo;
import android.util.Log;
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.jcraft.jsch.UserInfo;
import com.madgag.android.blockingprompt.BlockingPromptService;
public class GUIUserInfo implements UserInfo {
private final static String TAG = "GUIUI";
private final Provider<BlockingPromptService> blockingPrompt;
@Inject
public GUIUserInfo(Provider<BlockingPromptService> blockingPrompt) {
this.blockingPrompt = blockingPrompt;
}
private String password, passphrase;
public String getPassphrase() {
return passphrase;
}
public String getPassword() {
return password;
}
public boolean promptPassphrase(String msg) {
Log.d(TAG, "promptPassphrase : " + msg);
passphrase = blockingPrompt.get().request(prompt(String.class, alert("Passphrase required",
"Please enter your passphrase", msg)));
return passphrase != null;
}
public boolean promptPassword(String msg) {
Log.d(TAG, "promptPassword : " + msg);
password = blockingPrompt.get().request(prompt(String.class, alert("Password required",
"Please enter your password", msg)));
return password != null;
}
public boolean promptYesNo(String msg) {
Log.d(TAG, "promptYesNo : " + msg);
Boolean bool = blockingPrompt.get().request(promptYesOrNo(alert("SSH", msg)));
return bool != null ? bool : false;
}
public void showMessage(String msg) {
Log.i(TAG, "Should show this: " + msg);
}
}