Minor fixes
git-svn-id: https://forja.rediris.es/svn/cusl6-swadroid/trunk@113 5bc14d19-1e4b-4ba2-aa50-860af135f48c
This commit is contained in:
parent
df40721f08
commit
76c9d69068
|
@ -24,7 +24,7 @@
|
|||
</application>
|
||||
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
|
||||
|
||||
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="11"></uses-sdk>
|
||||
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="10"></uses-sdk>
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
|
||||
<supports-screens android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:anyDensity="true" android:largeScreens="true" android:xlargeScreens="true"></supports-screens>
|
||||
</manifest>
|
||||
|
|
2066
SWADroid/src/es/ugr/swad/swadroid/Base64.java
Normal file
2066
SWADroid/src/es/ugr/swad/swadroid/Base64.java
Normal file
File diff suppressed because it is too large
Load Diff
|
@ -21,13 +21,14 @@ package es.ugr.swad.swadroid.modules;
|
|||
|
||||
import android.os.Bundle;
|
||||
import android.widget.Toast;
|
||||
import es.ugr.swad.swadroid.Base64;
|
||||
import es.ugr.swad.swadroid.Global;
|
||||
import es.ugr.swad.swadroid.R;
|
||||
import es.ugr.swad.swadroid.model.User;
|
||||
import java.io.IOException;
|
||||
import java.security.MessageDigest;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import org.kobjects.base64.Base64;
|
||||
|
||||
import org.ksoap2.SoapFault;
|
||||
import org.ksoap2.serialization.KvmSerializable;
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
|
@ -71,9 +72,10 @@ public class Login extends Module {
|
|||
protected void connect() {
|
||||
String progressDescription = getString(R.string.loginProgressDescription);
|
||||
int progressTitle = R.string.loginProgressTitle;
|
||||
Connect con = new Connect(false, progressDescription, progressTitle);
|
||||
Toast.makeText(this, progressDescription, Toast.LENGTH_LONG).show();
|
||||
|
||||
new Connect(false, progressDescription, progressTitle).execute();
|
||||
con.execute();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -93,8 +95,7 @@ public class Login extends Module {
|
|||
//Encrypts user password with SHA-512 and encodes it to Base64UrlSafe
|
||||
md = MessageDigest.getInstance("SHA-512");
|
||||
md.update(prefs.getUserPassword().getBytes());
|
||||
//userPassword = new String(Base64.encode(md.digest(), Base64.URL_SAFE + Base64.NO_PADDING + Base64.NO_WRAP));
|
||||
userPassword = new String(Base64.encode(md.digest()));
|
||||
userPassword = new String(Base64.encodeBytes(md.digest()));
|
||||
userPassword = userPassword.replace('+','-').replace('/','_').replace('=', ' ').replaceAll("\\s+", "").trim();
|
||||
|
||||
//Creates webservice request, adds required params and sends request to webservice
|
||||
|
@ -119,7 +120,6 @@ public class Login extends Module {
|
|||
|
||||
//Request finalized without errors
|
||||
setResult(RESULT_OK);
|
||||
Global.setLogged(true);
|
||||
}
|
||||
} else {
|
||||
//Request finalized without errors
|
||||
|
|
|
@ -48,7 +48,7 @@ import org.ksoap2.SoapEnvelope;
|
|||
import org.ksoap2.SoapFault;
|
||||
import org.ksoap2.serialization.SoapObject;
|
||||
import org.ksoap2.serialization.SoapSerializationEnvelope;
|
||||
import org.ksoap2.transport.HttpTransportSE;
|
||||
import org.ksoap2.transport.KeepAliveHttpsTransportSE;
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
|
||||
import com.android.dataframework.DataFramework;
|
||||
|
@ -73,7 +73,7 @@ public abstract class Module extends ListActivity {
|
|||
/**
|
||||
* URL param for webservice request.
|
||||
*/
|
||||
String URL = "https://swad.ugr.es/";
|
||||
String URL = "swad.ugr.es";
|
||||
/**
|
||||
* Preferences of the activity.
|
||||
*/
|
||||
|
@ -102,6 +102,10 @@ public abstract class Module extends ListActivity {
|
|||
* Connection available flag
|
||||
*/
|
||||
protected static boolean isConnected;
|
||||
/**
|
||||
* Connection timeout in milliseconds
|
||||
*/
|
||||
private static int TIMEOUT = 10000;
|
||||
|
||||
/**
|
||||
* Connects to SWAD and gets user data.
|
||||
|
@ -261,6 +265,8 @@ public abstract class Module extends ListActivity {
|
|||
*/
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
Log.d(Global.MODULE_TAG, "onCreate()");
|
||||
|
||||
super.onCreate(savedInstanceState);
|
||||
prefs.getPreferences(getBaseContext());
|
||||
|
||||
|
@ -275,11 +281,10 @@ public abstract class Module extends ListActivity {
|
|||
db.open(this, this.getPackageName());
|
||||
dbHelper = new DataBaseHelper(db);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
Log.e(e.getClass().getSimpleName(), e.getMessage());
|
||||
error(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
Log.d(Global.MODULE_TAG, "onCreate()");
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
|
@ -287,12 +292,12 @@ public abstract class Module extends ListActivity {
|
|||
*/
|
||||
@Override
|
||||
protected void onPause() {
|
||||
Log.d(Global.MODULE_TAG, "onPause()");
|
||||
|
||||
super.onPause();
|
||||
if(errorDialog != null) {
|
||||
errorDialog.dismiss();
|
||||
}
|
||||
|
||||
Log.d(Global.MODULE_TAG, "onPause()");
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
|
@ -300,17 +305,8 @@ public abstract class Module extends ListActivity {
|
|||
*/
|
||||
@Override
|
||||
protected void onDestroy() {
|
||||
super.onDestroy();
|
||||
Log.d(Global.MODULE_TAG, "onDestroy()");
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see android.app.Activity#onNewIntent(android.content.Intent)
|
||||
*/
|
||||
@Override
|
||||
protected void onNewIntent(Intent intent) {
|
||||
super.onNewIntent(intent);
|
||||
Log.d(Global.MODULE_TAG, "onNewIntent()");
|
||||
super.onDestroy();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
|
@ -318,8 +314,8 @@ public abstract class Module extends ListActivity {
|
|||
*/
|
||||
@Override
|
||||
protected void onRestart() {
|
||||
super.onRestart();
|
||||
Log.d(Global.MODULE_TAG, "onRestart()");
|
||||
super.onRestart();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
|
@ -327,8 +323,8 @@ public abstract class Module extends ListActivity {
|
|||
*/
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
Log.d(Global.MODULE_TAG, "onResume()");
|
||||
super.onResume();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
|
@ -336,8 +332,8 @@ public abstract class Module extends ListActivity {
|
|||
*/
|
||||
@Override
|
||||
protected void onStart() {
|
||||
super.onStart();
|
||||
Log.d(Global.MODULE_TAG, "onStart()");
|
||||
super.onStart();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
|
@ -345,8 +341,8 @@ public abstract class Module extends ListActivity {
|
|||
*/
|
||||
@Override
|
||||
protected void onStop() {
|
||||
super.onStop();
|
||||
Log.d(Global.MODULE_TAG, "onStop()");
|
||||
super.onStop();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
|
@ -354,6 +350,8 @@ public abstract class Module extends ListActivity {
|
|||
*/
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
Log.d(Global.MODULE_TAG, "onActivityResult()");
|
||||
|
||||
if (resultCode == Activity.RESULT_OK) {
|
||||
//Bundle extras = data.getExtras();
|
||||
|
||||
|
@ -369,11 +367,14 @@ public abstract class Module extends ListActivity {
|
|||
connect();
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
switch(requestCode) {
|
||||
case Global.LOGIN_REQUEST_CODE:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Log.d(Global.MODULE_TAG, "onActivityResult()");
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -401,33 +402,24 @@ public abstract class Module extends ListActivity {
|
|||
* @throws SoapFault
|
||||
* @throws InstantiationException
|
||||
* @throws IllegalAccessException
|
||||
* @throws XmlPullParserException
|
||||
*/
|
||||
protected void sendRequest(Class cl, boolean simple)
|
||||
throws IOException, SoapFault, IllegalAccessException, InstantiationException {
|
||||
throws IOException, SoapFault, IllegalAccessException, InstantiationException, XmlPullParserException {
|
||||
|
||||
int numRetrys = 1;
|
||||
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
|
||||
KeepAliveHttpsTransportSE connection = new KeepAliveHttpsTransportSE(URL, 443, "", TIMEOUT);
|
||||
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
|
||||
System.setProperty("http.keepAlive", "false");
|
||||
|
||||
envelope.setOutputSoapObject(request);
|
||||
envelope.addMapping(NAMESPACE, cl.getSimpleName(), cl);
|
||||
connection.call(SOAP_ACTION, envelope);
|
||||
|
||||
//If an XmlPullParserException occurs, retry once in order to workaround an Android emulator bug
|
||||
do {
|
||||
try {
|
||||
androidHttpTransport.call(SOAP_ACTION, envelope);
|
||||
|
||||
if(simple) {
|
||||
if(simple && !(envelope.getResponse() instanceof SoapFault)) {
|
||||
result = envelope.bodyIn;
|
||||
} else {
|
||||
result = envelope.getResponse();
|
||||
}
|
||||
} catch(XmlPullParserException ex) {
|
||||
Log.e(Global.MODULE_TAG, getString(R.string.errorMsgWorkaroundEmulator));
|
||||
Log.e(Global.MODULE_TAG, ex.getLocalizedMessage());
|
||||
ex.printStackTrace();
|
||||
}
|
||||
} while(numRetrys-- > 0);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -469,7 +461,6 @@ public abstract class Module extends ListActivity {
|
|||
}
|
||||
})
|
||||
.setIcon(R.drawable.erroricon).show();
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -538,6 +529,8 @@ public abstract class Module extends ListActivity {
|
|||
*/
|
||||
@Override
|
||||
protected void onPreExecute() {
|
||||
Log.d(Global.MODULE_TAG, "onPreExecute()");
|
||||
|
||||
if(showDialog) {
|
||||
dialog.setMessage(progressDescription);
|
||||
dialog.setTitle(progressTitle);
|
||||
|
@ -550,12 +543,14 @@ public abstract class Module extends ListActivity {
|
|||
*/
|
||||
@Override
|
||||
protected Void doInBackground(String... urls) {
|
||||
Log.d(Global.MODULE_TAG, "doInBackground()");
|
||||
|
||||
try {
|
||||
//Sends webservice request
|
||||
requestService();
|
||||
/**
|
||||
* If an exception occurs, capture and points exception pointer
|
||||
* to it.
|
||||
* If an exception occurs, capture, points exception pointer
|
||||
* to it and shows error message according to exception type.
|
||||
*/
|
||||
} catch (SoapFault ex) {
|
||||
e = ex;
|
||||
|
@ -571,12 +566,12 @@ public abstract class Module extends ListActivity {
|
|||
*/
|
||||
@Override
|
||||
protected void onPostExecute(Void unused) {
|
||||
Log.d(Global.MODULE_TAG, "onPostExecute()");
|
||||
|
||||
if(dialog.isShowing()) {
|
||||
dialog.dismiss();
|
||||
}
|
||||
|
||||
postConnect();
|
||||
|
||||
if(e != null) {
|
||||
/**
|
||||
* If an exception has occurred, shows error message according to
|
||||
|
@ -587,13 +582,15 @@ public abstract class Module extends ListActivity {
|
|||
Log.e(es.getClass().getSimpleName(), es.getMessage());
|
||||
error(es.getMessage());
|
||||
} else {
|
||||
Log.e(e.getClass().getSimpleName(), e.toString());
|
||||
error(e.toString());
|
||||
Log.e(e.getClass().getSimpleName(), e.getMessage());
|
||||
error(e.getMessage());
|
||||
}
|
||||
|
||||
//Request finalized with errors
|
||||
e.printStackTrace();
|
||||
setResult(RESULT_CANCELED);
|
||||
} else {
|
||||
postConnect();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,11 +26,15 @@ import org.ksoap2.SoapFault;
|
|||
import org.ksoap2.serialization.SoapObject;
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
|
||||
import com.android.dataframework.DataFramework;
|
||||
|
||||
import es.ugr.swad.swadroid.Global;
|
||||
import es.ugr.swad.swadroid.R;
|
||||
import es.ugr.swad.swadroid.gui.NotificationsCursorAdapter;
|
||||
import es.ugr.swad.swadroid.model.DataBaseHelper;
|
||||
import es.ugr.swad.swadroid.model.User;
|
||||
import es.ugr.swad.swadroid.model.Notification;
|
||||
import android.content.Context;
|
||||
import android.database.Cursor;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
|
@ -92,6 +96,18 @@ public class Notifications extends Module {
|
|||
setMETHOD_NAME("getNotifications");
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see es.ugr.swad.swadroid.modules.Module#onResume()
|
||||
*/
|
||||
@Override
|
||||
protected void onResume() {
|
||||
super.onResume();
|
||||
|
||||
//Refresh data on screen
|
||||
dbCursor = dbHelper.getDb().getCursor(Global.DB_TABLE_NOTIFICATIONS, selection, orderby);
|
||||
adapter.changeCursor(dbCursor);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see es.ugr.swad.swadroid.modules.Module#requestService()
|
||||
*/
|
||||
|
@ -159,4 +175,16 @@ public class Notifications extends Module {
|
|||
dbCursor = dbHelper.getDb().getCursor(Global.DB_TABLE_NOTIFICATIONS, selection, orderby);
|
||||
adapter.changeCursor(dbCursor);
|
||||
}
|
||||
|
||||
public void clearNotifications(Context context) {
|
||||
try {
|
||||
DataFramework db = DataFramework.getInstance();
|
||||
db.open(context, context.getPackageName());
|
||||
dbHelper = new DataBaseHelper(db);
|
||||
|
||||
dbHelper.emptyTable(Global.DB_TABLE_NOTIFICATIONS);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user