package com.yeokm1.nussocprintandroid.network;
import android.app.Activity;
import android.os.AsyncTask;
import com.yeokm1.nussocprintandroid.R;
import com.yeokm1.nussocprintandroid.core.Storage;
/**
* Created by yeokm1 on 6/10/2014.
*/
public abstract class ConnectionTask extends AsyncTask<String, String, String>{
protected Activity activity;
protected SSHConnectivity connection;
public ConnectionTask(Activity activity){
this.activity = activity;
}
protected void startConnection() throws Exception{
Storage storage = Storage.getInstance();
String username = storage.getUsername();
String password = storage.getPassword();
String server = storage.getServer();
if(username.length() == 0 || password.length() == 0){
String missingCredentials = activity.getString(R.string.misc_missing_credential);
throw new Exception(missingCredentials);
}
if(server.length() == 0){
String missingServer = activity.getString(R.string.misc_missing_server);
throw new Exception(missingServer);
}
connection = new SSHConnectivity(server,username, password, activity);
connection.connect();
}
protected void createDirectory(String toBeCreated) throws Exception{
connection.runCommand("mkdir " + toBeCreated);
}
protected void deleteFile(String filePath) throws Exception{
connection.runCommand("rm " + filePath);
}
protected boolean doesThisFileNeedToBeUploaded(String filePath, String md5Value) throws Exception{
String command = "md5 " + filePath;
String commandOutput = connection.runCommand(command);
if(commandOutput.startsWith(md5Value)){
return false;
} else {
return true;
}
}
protected void disconnect(){
if(connection != null){
connection.disconnect();
}
}
@Override
protected void onPreExecute(){
super.onPreExecute();
keepScreenOn();
}
@Override
protected void onPostExecute(String output){
super.onPostExecute(output);
stopKeepScreenOn();
}
@Override
protected void onCancelled(){
super.onCancelled();
stopKeepScreenOn();
}
protected void keepScreenOn(){
activity.getWindow().addFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
protected void stopKeepScreenOn(){
activity.getWindow().clearFlags(android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
}