Added connection check

git-svn-id: https://forja.rediris.es/svn/cusl6-swadroid/trunk@86 5bc14d19-1e4b-4ba2-aa50-860af135f48c
This commit is contained in:
Juan Miguel Boyero Corral 2011-11-22 22:06:51 +00:00
parent b1cd237c26
commit 8053b48928
6 changed files with 78 additions and 35 deletions

View File

@ -21,6 +21,7 @@
</activity> </activity>
</application> </application>
<uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-sdk android:targetSdkVersion="4" android:minSdkVersion="4"></uses-sdk> <uses-sdk android:targetSdkVersion="4" android:minSdkVersion="4"></uses-sdk>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
</manifest> </manifest>

View File

@ -31,13 +31,14 @@ public final class R {
public static final class string { public static final class string {
public static final int app_name=0x7f060000; public static final int app_name=0x7f060000;
public static final int close_dialog=0x7f060003; public static final int close_dialog=0x7f060003;
public static final int errorCopyMsg_DB=0x7f060016; public static final int errorCopyMsg_DB=0x7f060015;
public static final int errorMsgLaunchingActivity=0x7f060013; public static final int errorMsgLaunchingActivity=0x7f060013;
public static final int errorMsgNoConnection=0x7f060016;
public static final int errorMsgWorkaroundEmulator=0x7f060014; public static final int errorMsgWorkaroundEmulator=0x7f060014;
public static final int loginModuleLabel=0x7f060001; public static final int loginModuleLabel=0x7f060001;
public static final int loginProgressDescription=0x7f060012; public static final int loginProgressDescription=0x7f060012;
public static final int loginProgressTitle=0x7f060011; public static final int loginProgressTitle=0x7f060011;
public static final int loginSuccessfulMsg=0x7f060017; public static final int loginSuccessfulMsg=0x7f060018;
public static final int loginTitle_menu=0x7f060010; public static final int loginTitle_menu=0x7f060010;
public static final int preferencesTitle_menu=0x7f06000f; public static final int preferencesTitle_menu=0x7f06000f;
public static final int saveMsg_preferences=0x7f06000c; public static final int saveMsg_preferences=0x7f06000c;
@ -45,7 +46,7 @@ public final class R {
public static final int saveTitle_preferences=0x7f06000e; public static final int saveTitle_preferences=0x7f06000e;
public static final int set_preferences=0x7f060004; public static final int set_preferences=0x7f060004;
public static final int title_error_dialog=0x7f060002; public static final int title_error_dialog=0x7f060002;
public static final int upgradeMsg_DB=0x7f060015; public static final int upgradeMsg_DB=0x7f060017;
public static final int userIDName_preferences=0x7f060006; public static final int userIDName_preferences=0x7f060006;
public static final int userIDSummary_preferences=0x7f060007; public static final int userIDSummary_preferences=0x7f060007;
public static final int userIDTitle_preferences=0x7f060008; public static final int userIDTitle_preferences=0x7f060008;

View File

@ -20,7 +20,7 @@
<string name="loginProgressTitle">Identificación</string> <string name="loginProgressTitle">Identificación</string>
<string name="loginProgressDescription">Conectando...</string> <string name="loginProgressDescription">Conectando...</string>
<string name="errorMsgWorkaroundEmulator">Mierda. Ese bug del emulador de Android ha vuelto a aparecer. Reintentando...</string> <string name="errorMsgWorkaroundEmulator">Mierda. Ese bug del emulador de Android ha vuelto a aparecer. Reintentando...</string>
<string name="errorMsgLaunchingActivity">Ha ocurrido un error durante la ejecución de la operación</string> <string name="errorMsgLaunchingActivity">Ha ocurrido un error durante la ejecución de la operación</string><string name="errorMsgNoConnection">No hay conexión</string>
<string name="upgradeMsg_DB">Actualizando base de datos...</string><string name="errorCopyMsg_DB">Error copiando base de datos</string> <string name="errorCopyMsg_DB">Error copiando base de datos</string><string name="upgradeMsg_DB">Actualizando base de datos...</string>
<string name="loginSuccessfulMsg">Conectado</string> <string name="loginSuccessfulMsg">Conectado</string>
</resources> </resources>

View File

@ -21,7 +21,8 @@
<string name="loginProgressDescription">Connecting...</string> <string name="loginProgressDescription">Connecting...</string>
<string name="errorMsgLaunchingActivity">An error occurred during the execution of the operation</string> <string name="errorMsgLaunchingActivity">An error occurred during the execution of the operation</string>
<string name="errorMsgWorkaroundEmulator">Damn. That Android emulator bug appeared again. Retrying...</string> <string name="errorMsgWorkaroundEmulator">Damn. That Android emulator bug appeared again. Retrying...</string>
<string name="upgradeMsg_DB">Upgrading database...</string>
<string name="errorCopyMsg_DB">Error copying database</string> <string name="errorCopyMsg_DB">Error copying database</string>
<string name="loginSuccessfulMsg">Login successful</string> <string name="errorMsgNoConnection">No connection found</string><string name="upgradeMsg_DB">Upgrading database...</string><string name="loginSuccessfulMsg">Login successful</string>
</resources> </resources>

View File

@ -24,6 +24,7 @@ import android.os.AsyncTask;
import android.os.Bundle; import android.os.Bundle;
//import android.util.Base64; //import android.util.Base64;
import android.util.Log; import android.util.Log;
import android.widget.Toast;
import es.ugr.swad.swadroid.Global; import es.ugr.swad.swadroid.Global;
import es.ugr.swad.swadroid.R; import es.ugr.swad.swadroid.R;
import es.ugr.swad.swadroid.model.User; import es.ugr.swad.swadroid.model.User;
@ -47,6 +48,7 @@ public class Login extends Module {
* User password. * User password.
*/ */
private String userPassword; private String userPassword;
private boolean isConnected;
/** /**
* Called when activity is first created. * Called when activity is first created.
@ -56,6 +58,12 @@ public class Login extends Module {
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
setMETHOD_NAME("loginByUserPasswordKey"); setMETHOD_NAME("loginByUserPasswordKey");
isConnected = connectionAvailable(this);
if (!isConnected) {
Toast.makeText(this, R.string.errorMsgNoConnection, Toast.LENGTH_LONG).show();
}
connect(); connect();
} }
@ -76,7 +84,7 @@ public class Login extends Module {
*/ */
private void requestService() private void requestService()
throws NoSuchAlgorithmException, IOException, XmlPullParserException, SoapFault { throws NoSuchAlgorithmException, IOException, XmlPullParserException, SoapFault {
if (isConnected) {
//Encrypts user password with SHA-512 and encodes it to Base64UrlSafe //Encrypts user password with SHA-512 and encodes it to Base64UrlSafe
md = MessageDigest.getInstance("SHA-512"); md = MessageDigest.getInstance("SHA-512");
md.update(prefs.getUserPassword().getBytes()); md.update(prefs.getUserPassword().getBytes());
@ -103,6 +111,8 @@ public class Login extends Module {
//Request finalized without errors //Request finalized without errors
setResult(RESULT_OK); setResult(RESULT_OK);
}
finish(); finish();
} }

View File

@ -21,8 +21,11 @@ package es.ugr.swad.swadroid.modules;
import android.app.Activity; import android.app.Activity;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle; import android.os.Bundle;
import android.util.Log; import android.util.Log;
import es.ugr.swad.swadroid.Global; import es.ugr.swad.swadroid.Global;
@ -43,6 +46,10 @@ import org.xmlpull.v1.XmlPullParserException;
* Superclass for encapsulate common behavior of all modules. * Superclass for encapsulate common behavior of all modules.
* @author Juan Miguel Boyero Corral <juanmi1982@gmail.com> * @author Juan Miguel Boyero Corral <juanmi1982@gmail.com>
*/ */
/**
* @author Juan Miguel Boyero Corral <juanmi1982@gmail.com>
*
*/
public class Module extends Activity { public class Module extends Activity {
/** /**
* SOAP_ACTION param for webservice request. * SOAP_ACTION param for webservice request.
@ -267,6 +274,29 @@ public class Module extends Activity {
} }
} }
/**
* Checks if any connection is available
* @param ctx Application context
* @return true if there is a connection available, false in other case
*/
public static boolean connectionAvailable(Context ctx){
boolean connAvailable = false;
ConnectivityManager connec = (ConnectivityManager)ctx.getSystemService(Context.CONNECTIVITY_SERVICE);
//Survey all networks (wifi, gprs...)
NetworkInfo[] networks = connec.getAllNetworkInfo();
for(int i=0; i<2; i++){
//If any of them has a connection available, put boolean to true
if (networks[i].isConnected()){
connAvailable = true;
}
}
//If boolean remains false there is no connection available
return connAvailable;
}
/** /**
* Shows an error message. * Shows an error message.
* @param message Error message to show. * @param message Error message to show.