Add support for background notification download when power save mode is enabled (#411)
## What changes were proposed in this pull request? * Add support for background notification download when power save mode is enabled (Fixes #408) * Remove social links ## How was this patch tested? Manually. Co-authored-by: Amab <juanmi1982@gmail.com> Reviewed-on: #411
This commit is contained in:
parent
41abd55f43
commit
dcd264adb4
|
@ -14,9 +14,12 @@
|
|||
<uses-permission android:name="android.permission.USE_CREDENTIALS" android:maxSdkVersion="22" />
|
||||
<uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
|
||||
<uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="28" />
|
||||
<uses-permission android:name="android.permission.CAMERA" />
|
||||
<uses-permission android:name="android.permission.VIBRATE" />
|
||||
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||
|
||||
<uses-feature
|
||||
android:name="android.hardware.touchscreen"
|
||||
|
@ -49,7 +52,6 @@
|
|||
<activity
|
||||
android:name="es.ugr.swad.swadroid.SWADMain"
|
||||
android:icon="@drawable/ic_launcher_swadroid"
|
||||
android:label="@string/app_name"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
|
@ -366,6 +368,26 @@
|
|||
android:resource="@xml/sync_notifications" />
|
||||
</service>
|
||||
|
||||
<receiver
|
||||
android:name="es.ugr.swad.swadroid.modules.notifications.RestarterNotificationsReceiver"
|
||||
android:enabled="true"
|
||||
android:exported="true">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.REBOOT" />
|
||||
<action android:name="android.intent.action.SCREEN_ON" />
|
||||
<action android:name="android.intent.action.SCREEN_OFF" />
|
||||
<action android:name="android.intent.action.USER_PRESENT" />
|
||||
<action android:name="android.intent.action.PACKAGE_DATA_CLEARED" />
|
||||
<action android:name="android.intent.action.PACKAGE_REPLACED" />
|
||||
<action android:name="android.intent.action.PACKAGE_RESTARTED" />
|
||||
<action android:name="android.intent.action.MY_PACKAGE_SUSPENDED" />
|
||||
<action android:name="android.intent.action.PACKAGE_FULLY_REMOVED" />
|
||||
<action android:name="android.intent.action.PACKAGE_REMOVED" />
|
||||
<action android:name="android.intent.action.MY_PACKAGE_SUSPENDED" />
|
||||
<action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
|
||||
</intent-filter>
|
||||
</receiver>
|
||||
|
||||
<provider
|
||||
android:name="androidx.core.content.FileProvider"
|
||||
android:authorities="es.ugr.swad.swadroid.fileprovider"
|
||||
|
|
|
@ -267,6 +267,10 @@ public class Constants {
|
|||
* Request code for PERMISSION_MULTIPLE permissions
|
||||
*/
|
||||
public static final int PERMISSION_MULTIPLE = 102;
|
||||
/**
|
||||
* Request code for POST_NOTIFICATIONS permission
|
||||
*/
|
||||
public static final int PERMISSIONS_REQUEST_POST_NOTIFICATIONS = 103;
|
||||
/**
|
||||
* Prefix tag name for Logcat
|
||||
*/
|
||||
|
|
|
@ -19,11 +19,14 @@
|
|||
|
||||
package es.ugr.swad.swadroid;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.database.Cursor;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.text.TextUtils;
|
||||
import android.util.Log;
|
||||
|
@ -43,6 +46,10 @@ import android.widget.Spinner;
|
|||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.RequiresApi;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.core.content.ContextCompat;
|
||||
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
@ -50,6 +57,7 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
|
||||
import es.ugr.swad.swadroid.database.DataBaseHelper;
|
||||
import es.ugr.swad.swadroid.gui.AlertNotificationFactory;
|
||||
import es.ugr.swad.swadroid.gui.DialogFactory;
|
||||
import es.ugr.swad.swadroid.gui.MenuExpandableListActivity;
|
||||
import es.ugr.swad.swadroid.gui.ProgressScreen;
|
||||
|
@ -59,8 +67,8 @@ import es.ugr.swad.swadroid.model.Model;
|
|||
import es.ugr.swad.swadroid.modules.courses.Courses;
|
||||
import es.ugr.swad.swadroid.modules.downloads.DownloadsManager;
|
||||
import es.ugr.swad.swadroid.modules.groups.MyGroupsManager;
|
||||
import es.ugr.swad.swadroid.modules.information.Information;
|
||||
import es.ugr.swad.swadroid.modules.indoorlocation.IndoorLocation;
|
||||
import es.ugr.swad.swadroid.modules.information.Information;
|
||||
import es.ugr.swad.swadroid.modules.login.Login;
|
||||
import es.ugr.swad.swadroid.modules.login.LoginActivity;
|
||||
import es.ugr.swad.swadroid.modules.messages.Messages;
|
||||
|
@ -166,6 +174,11 @@ public class SWADMain extends MenuExpandableListActivity {
|
|||
initializeMainViews();
|
||||
|
||||
try {
|
||||
// Create Notifications channel
|
||||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
|
||||
AlertNotificationFactory.createNotificationChanel(this);
|
||||
}
|
||||
|
||||
//Check if this is the first run after an install or upgrade
|
||||
lastVersion = Preferences.getLastVersion();
|
||||
currentVersion = getPackageManager().getPackageInfo(getPackageName(), 0).versionCode;
|
||||
|
@ -191,6 +204,20 @@ public class SWADMain extends MenuExpandableListActivity {
|
|||
}
|
||||
}
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.TIRAMISU)
|
||||
@Override
|
||||
protected void onStart() {
|
||||
super.onStart();
|
||||
|
||||
// Check Android 13 permission
|
||||
if (ContextCompat.checkSelfPermission(this, Manifest.permission.POST_NOTIFICATIONS)
|
||||
!= PackageManager.PERMISSION_GRANTED) {
|
||||
ActivityCompat.requestPermissions(this,
|
||||
new String[]{Manifest.permission.POST_NOTIFICATIONS},
|
||||
Constants.PERMISSIONS_REQUEST_POST_NOTIFICATIONS);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
* @see android.app.Activity#onResume()
|
||||
|
|
|
@ -19,23 +19,31 @@
|
|||
|
||||
package es.ugr.swad.swadroid.gui;
|
||||
|
||||
import static es.ugr.swad.swadroid.utils.NotificationUtils.SWADROID_CHANNEL_ID;
|
||||
|
||||
import android.app.Notification;
|
||||
import android.app.NotificationChannel;
|
||||
import android.app.NotificationManager;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.BitmapFactory;
|
||||
import android.graphics.Color;
|
||||
import android.os.Build;
|
||||
|
||||
import androidx.annotation.RequiresApi;
|
||||
import androidx.core.app.NotificationCompat;
|
||||
|
||||
import es.ugr.swad.swadroid.modules.notifications.Notifications;
|
||||
import es.ugr.swad.swadroid.utils.NotificationUtils;
|
||||
|
||||
import static es.ugr.swad.swadroid.utils.NotificationUtils.SWADROID_CHANNEL_ID;
|
||||
|
||||
/**
|
||||
* Class for create notification alerts.
|
||||
*
|
||||
* @author Juan Miguel Boyero Corral <juanmi1982@gmail.com>
|
||||
*/
|
||||
public class AlertNotificationFactory {
|
||||
public static final String CHANNEL_NAME = "Background Service";
|
||||
public static NotificationCompat.Builder createAlertNotificationBuilder(Context context, String contentTitle, String contentText,
|
||||
String ticker, PendingIntent pendingIntent, int smallIcon, int largeIcon,
|
||||
boolean autocancel, boolean ongoing, boolean onlyAlertOnce) {
|
||||
|
@ -55,7 +63,7 @@ public class AlertNotificationFactory {
|
|||
//.setLights(Color.GREEN, 500, 500);
|
||||
|
||||
//Launch activity on alert click
|
||||
if(pendingIntent != null) {
|
||||
if (pendingIntent != null) {
|
||||
notifBuilder.setContentIntent(pendingIntent);
|
||||
}
|
||||
|
||||
|
@ -130,6 +138,30 @@ public class AlertNotificationFactory {
|
|||
return notifBuilder.build();
|
||||
}
|
||||
|
||||
public static Notification createBackgroundNotification(Context context, String contentTitle, int smallIcon, int largeIcon, PendingIntent pendingIntent) {
|
||||
NotificationCompat.Builder notifBuilder = new NotificationCompat.Builder(context, SWADROID_CHANNEL_ID)
|
||||
.setOngoing(true)
|
||||
.setSmallIcon(smallIcon)
|
||||
.setLargeIcon(BitmapFactory.decodeResource(context.getResources(), largeIcon))
|
||||
.setContentTitle(contentTitle)
|
||||
.setPriority(NotificationManager.IMPORTANCE_HIGH)
|
||||
.setCategory(Notification.CATEGORY_SERVICE)
|
||||
.setContentIntent(pendingIntent);
|
||||
|
||||
//Create alert
|
||||
return notifBuilder.build();
|
||||
}
|
||||
|
||||
@RequiresApi(Build.VERSION_CODES.O)
|
||||
public static void createNotificationChanel(Context context) {
|
||||
NotificationChannel channel = new NotificationChannel(SWADROID_CHANNEL_ID, CHANNEL_NAME, NotificationManager.IMPORTANCE_DEFAULT);
|
||||
NotificationManager manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
|
||||
|
||||
assert manager != null;
|
||||
channel.setLightColor(Color.BLUE);
|
||||
manager.createNotificationChannel(channel);
|
||||
}
|
||||
|
||||
public static void showAlertNotification(Context context, Notification notif, int notifId) {
|
||||
NotificationManager notifManager;
|
||||
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
package es.ugr.swad.swadroid.modules.notifications;
|
||||
|
||||
import android.accounts.Account;
|
||||
import android.annotation.TargetApi;
|
||||
import android.app.Activity;
|
||||
import android.app.Notification;
|
||||
import android.app.PendingIntent;
|
||||
|
@ -28,9 +27,7 @@ import android.content.ContentResolver;
|
|||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
import android.util.Log;
|
||||
import android.view.Menu;
|
||||
import android.view.MenuItem;
|
||||
|
@ -42,6 +39,8 @@ import android.widget.LinearLayout;
|
|||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
||||
|
||||
import org.ksoap2.serialization.SoapObject;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -142,30 +141,27 @@ public class Notifications extends Module implements
|
|||
/**
|
||||
* Id for the not seen notifications group
|
||||
*/
|
||||
private int NOT_SEEN_GROUP_ID = 0;
|
||||
private final int NOT_SEEN_GROUP_ID = 0;
|
||||
/**
|
||||
* Id for the seen notifications group
|
||||
*/
|
||||
private int SEEN_GROUP_ID = 1;
|
||||
private final int SEEN_GROUP_ID = 1;
|
||||
/**
|
||||
* ListView click listener
|
||||
*/
|
||||
private OnChildClickListener clickListener = new OnChildClickListener() {
|
||||
@Override
|
||||
public boolean onChildClick(ExpandableListView parent, View v,
|
||||
int groupPosition, int childPosition, long id) {
|
||||
private final OnChildClickListener clickListener = (parent, v, groupPosition, childPosition, id) -> {
|
||||
|
||||
TextView notifCode = (TextView) v.findViewById(R.id.notifCode);
|
||||
TextView code = (TextView) v.findViewById(R.id.eventCode);
|
||||
TextView type = (TextView) v.findViewById(R.id.eventType);
|
||||
TextView userPhoto = (TextView) v.findViewById(R.id.eventUserPhoto);
|
||||
TextView sender = (TextView) v.findViewById(R.id.eventSender);
|
||||
TextView course = (TextView) v.findViewById(R.id.eventLocation);
|
||||
TextView summary = (TextView) v.findViewById(R.id.eventSummary);
|
||||
TextView content = (TextView) v.findViewById(R.id.eventText);
|
||||
TextView date = (TextView) v.findViewById(R.id.eventDate);
|
||||
TextView time = (TextView) v.findViewById(R.id.eventTime);
|
||||
TextView seenLocalText = (TextView) v.findViewById(R.id.seenLocal);
|
||||
TextView notifCode = v.findViewById(R.id.notifCode);
|
||||
TextView code = v.findViewById(R.id.eventCode);
|
||||
TextView type = v.findViewById(R.id.eventType);
|
||||
TextView userPhoto = v.findViewById(R.id.eventUserPhoto);
|
||||
TextView sender = v.findViewById(R.id.eventSender);
|
||||
TextView course = v.findViewById(R.id.eventLocation);
|
||||
TextView summary = v.findViewById(R.id.eventSummary);
|
||||
TextView content = v.findViewById(R.id.eventText);
|
||||
TextView date = v.findViewById(R.id.eventDate);
|
||||
TextView time = v.findViewById(R.id.eventTime);
|
||||
TextView seenLocalText = v.findViewById(R.id.seenLocal);
|
||||
|
||||
Intent activity = new Intent(getApplicationContext(),
|
||||
NotificationItem.class);
|
||||
|
@ -183,7 +179,6 @@ public class Notifications extends Module implements
|
|||
startActivity(activity);
|
||||
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -280,9 +275,9 @@ public class Notifications extends Module implements
|
|||
|
||||
refreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_container_expandablelist);
|
||||
list = (ExpandableListView) findViewById(R.id.expandablelist_pulltorefresh);
|
||||
emptyNotifTextView = (TextView) findViewById(R.id.list_item_title);
|
||||
emptyNotifTextView = findViewById(R.id.list_item_title);
|
||||
mBirthdayLayout = (LinearLayout) findViewById(R.id.notify_layout);
|
||||
mBirthdayTextView = (TextView) findViewById(R.id.notifyTextView);
|
||||
mBirthdayTextView = findViewById(R.id.notifyTextView);
|
||||
|
||||
groupItem = new ArrayList<>();
|
||||
childItem = new ArrayList<>();
|
||||
|
@ -406,12 +401,12 @@ public class Notifications extends Module implements
|
|||
notifCount = 0;
|
||||
for (int i = 0; i < numNotif; i++) {
|
||||
SoapObject pii = (SoapObject) soap.getProperty(i);
|
||||
Long notifCode = Long.valueOf(pii.getProperty("notifCode")
|
||||
long notifCode = Long.parseLong(pii.getProperty("notifCode")
|
||||
.toString());
|
||||
Long eventCode = Long.valueOf(pii.getProperty(
|
||||
long eventCode = Long.parseLong(pii.getProperty(
|
||||
"eventCode").toString());
|
||||
String eventType = pii.getProperty("eventType").toString();
|
||||
Long eventTime = Long.valueOf(pii.getProperty("eventTime")
|
||||
long eventTime = Long.parseLong(pii.getProperty("eventTime")
|
||||
.toString());
|
||||
String userNickname = pii.getProperty("userNickname")
|
||||
.toString();
|
||||
|
@ -424,7 +419,7 @@ public class Notifications extends Module implements
|
|||
String userPhoto = pii.getProperty("userPhoto").toString();
|
||||
String location = pii.getProperty("location").toString();
|
||||
String summary = pii.getProperty("summary").toString();
|
||||
Integer status = Integer.valueOf(pii.getProperty("status")
|
||||
int status = Integer.parseInt(pii.getProperty("status")
|
||||
.toString());
|
||||
String content = pii.getProperty("content").toString();
|
||||
boolean notifReadSWAD = (status >= 4);
|
||||
|
@ -587,17 +582,14 @@ public class Notifications extends Module implements
|
|||
|
||||
@Override
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
switch (item.getItemId()) {
|
||||
case R.id.action_markAllRead:
|
||||
if (item.getItemId() == R.id.action_markAllRead) {
|
||||
dbHelper.updateAllNotifications("seenLocal",
|
||||
Utils.parseBoolString(true));
|
||||
sendReadNotifications();
|
||||
refreshScreen();
|
||||
return true;
|
||||
|
||||
default:
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -638,76 +630,8 @@ public class Notifications extends Module implements
|
|||
refreshLayout.setEnabled(enable);
|
||||
}
|
||||
});
|
||||
/*
|
||||
* Create a ListView-specific touch listener. ListViews are given special treatment because
|
||||
* by default they handle touches for their list items... i.e. they're in charge of drawing
|
||||
* the pressed state (the list selector), handling list item clicks, etc.
|
||||
*
|
||||
* Requires Android 3.1 (HONEYCOMB_MR1) or newer
|
||||
*/
|
||||
/*if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB_MR1) {
|
||||
SwipeListViewTouchListener touchListener =
|
||||
new SwipeListViewTouchListener(
|
||||
list,
|
||||
new SwipeListViewTouchListener.OnSwipeCallback() {
|
||||
@Override
|
||||
public void onSwipeLeft(ListView listView, int [] reverseSortedPositions) {
|
||||
if(reverseSortedPositions.length > 0) {
|
||||
swipeItem(reverseSortedPositions[0]);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSwipeRight(ListView listView, int [] reverseSortedPositions) {
|
||||
if(reverseSortedPositions.length > 0) {
|
||||
swipeItem(reverseSortedPositions[0]);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStartSwipe() {
|
||||
disableSwipe();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onStopSwipe() {
|
||||
enableSwipe();
|
||||
}
|
||||
},
|
||||
true,
|
||||
true);
|
||||
|
||||
list.setOnTouchListener(touchListener);
|
||||
// Setting this scroll listener is required to ensure that during ListView scrolling,
|
||||
// we don't look for swipes.
|
||||
list.setOnScrollListener(touchListener.makeScrollListener(refreshLayout));
|
||||
} else {
|
||||
Log.w(TAG, "SwipeListViewTouchListener requires Android 3.1 (HONEYCOMB_MR1) or newer");
|
||||
list.setOnScrollListener(new AbsListView.OnScrollListener() {
|
||||
@Override
|
||||
public void onScrollStateChanged(AbsListView absListView, int scrollState) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onScroll(AbsListView absListView, int firstVisibleItem,
|
||||
int visibleItemCount, int totalItemCount) {
|
||||
|
||||
boolean enable = false;
|
||||
if(list != null && list.getChildCount() > 0){
|
||||
// check if the first item of the list is visible
|
||||
boolean firstItemVisible = list.getFirstVisiblePosition() == 0;
|
||||
// check if the top of the first item is visible
|
||||
boolean topOfFirstItemVisible = list.getChildAt(0).getTop() == 0;
|
||||
// enabling or disabling the refresh layout
|
||||
enable = firstItemVisible && topOfFirstItemVisible;
|
||||
}
|
||||
refreshLayout.setEnabled(enable);
|
||||
}
|
||||
});
|
||||
}*/
|
||||
}
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
|
||||
private void setAppearance() {
|
||||
refreshLayout.setColorSchemeResources(android.R.color.holo_blue_bright,
|
||||
android.R.color.holo_green_light,
|
||||
|
|
|
@ -59,7 +59,6 @@ import es.ugr.swad.swadroid.model.SWADNotification;
|
|||
import es.ugr.swad.swadroid.model.User;
|
||||
import es.ugr.swad.swadroid.modules.login.Login;
|
||||
import es.ugr.swad.swadroid.preferences.Preferences;
|
||||
import es.ugr.swad.swadroid.ssl.SecureConnection;
|
||||
import es.ugr.swad.swadroid.utils.Utils;
|
||||
import es.ugr.swad.swadroid.webservices.IWebserviceClient;
|
||||
import es.ugr.swad.swadroid.webservices.SOAPClient;
|
||||
|
@ -72,8 +71,6 @@ import es.ugr.swad.swadroid.webservices.SOAPClient;
|
|||
*/
|
||||
public class NotificationsSyncAdapterService extends Service {
|
||||
private static final String TAG = "NotificationsSyncAdapterService";
|
||||
private static Preferences prefs;
|
||||
private static SecureConnection conn;
|
||||
private static SyncAdapterImpl sSyncAdapter = null;
|
||||
private static int notifCount;
|
||||
private static DataBaseHelper dbHelper;
|
||||
|
@ -81,14 +78,9 @@ public class NotificationsSyncAdapterService extends Service {
|
|||
private static String METHOD_NAME = "";
|
||||
private static Object result;
|
||||
private static String errorMessage = "";
|
||||
private static boolean isConnected;
|
||||
private static boolean isDebuggable;
|
||||
public static final String START_SYNC = "es.ugr.swad.swadroid.sync.start";
|
||||
public static final String STOP_SYNC = "es.ugr.swad.swadroid.sync.stop";
|
||||
/**
|
||||
* Application context
|
||||
*/
|
||||
private static Context mCtx;
|
||||
|
||||
public NotificationsSyncAdapterService() {
|
||||
super();
|
||||
|
@ -100,7 +92,6 @@ public class NotificationsSyncAdapterService extends Service {
|
|||
public SyncAdapterImpl(Context context) {
|
||||
super(context, true);
|
||||
mContext = context;
|
||||
mCtx = context;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -187,7 +178,6 @@ public class NotificationsSyncAdapterService extends Service {
|
|||
*/
|
||||
@Override
|
||||
public void onCreate() {
|
||||
isConnected = Utils.connectionAvailable(this);
|
||||
// Check if debug mode is enabled
|
||||
try {
|
||||
getPackageManager().getApplicationInfo(
|
||||
|
@ -198,7 +188,6 @@ public class NotificationsSyncAdapterService extends Service {
|
|||
}
|
||||
|
||||
try {
|
||||
prefs = new Preferences(this);
|
||||
dbHelper = new DataBaseHelper(this);
|
||||
//Initialize webservices client
|
||||
webserviceClient = null;
|
||||
|
@ -206,19 +195,57 @@ public class NotificationsSyncAdapterService extends Service {
|
|||
Log.e(TAG, "Error initializing database and preferences", e);
|
||||
}
|
||||
|
||||
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.O) {
|
||||
Log.i(TAG, "Starting persistent notification in custom foreground mode");
|
||||
startCustomForeground();
|
||||
} else {
|
||||
Log.i(TAG, "Starting persistent notification in standard foreground mode");
|
||||
startForeground(1, new Notification());
|
||||
}
|
||||
|
||||
super.onCreate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
|
||||
Intent broadcastIntent = new Intent();
|
||||
broadcastIntent.setAction("restartNotificationsService");
|
||||
broadcastIntent.setClass(this, RestarterNotificationsReceiver.class);
|
||||
this.sendBroadcast(broadcastIntent);
|
||||
}
|
||||
|
||||
private void startCustomForeground() {
|
||||
Intent notificationIntent = new Intent(this, Notifications.class);
|
||||
PendingIntent pendingIntent;
|
||||
|
||||
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
||||
//single top to avoid creating many activity stacks queue
|
||||
notificationIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
|
||||
|
||||
pendingIntent = PendingIntent.getActivity(this,
|
||||
0,
|
||||
notificationIntent,
|
||||
PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_IMMUTABLE);
|
||||
|
||||
Notification notification = AlertNotificationFactory.createBackgroundNotification(
|
||||
this,
|
||||
getString(R.string.appRunningBackground),
|
||||
R.drawable.ic_launcher_swadroid_notif,
|
||||
R.drawable.ic_launcher_swadroid,
|
||||
pendingIntent);
|
||||
|
||||
startForeground(2, notification);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see android.app.Service#onStartCommand(android.content.Intent, int, int)
|
||||
*/
|
||||
@Override
|
||||
public int onStartCommand(Intent intent, int flags, int startId) {
|
||||
super.onStartCommand(intent, flags, startId);
|
||||
// return START_NOT_STICKY - we want this Service to be left running
|
||||
// unless explicitly stopped, and it's process is killed, we want it to
|
||||
// be restarted
|
||||
return START_STICKY;
|
||||
return START_REDELIVER_INTENT;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -342,10 +369,10 @@ public class NotificationsSyncAdapterService extends Service {
|
|||
notifCount = 0;
|
||||
for (int i = 0; i < numNotif; i++) {
|
||||
SoapObject pii = (SoapObject) soap.getProperty(i);
|
||||
Long notifCode = Long.valueOf(pii.getProperty("notifCode").toString());
|
||||
Long eventCode = Long.valueOf(pii.getProperty("eventCode").toString());
|
||||
long notifCode = Long.parseLong(pii.getProperty("notifCode").toString());
|
||||
long eventCode = Long.parseLong(pii.getProperty("eventCode").toString());
|
||||
String eventType = pii.getProperty("eventType").toString();
|
||||
Long eventTime = Long.valueOf(pii.getProperty("eventTime").toString());
|
||||
long eventTime = Long.parseLong(pii.getProperty("eventTime").toString());
|
||||
String userNickname = pii.getProperty("userNickname").toString();
|
||||
String userSurname1 = pii.getProperty("userSurname1").toString();
|
||||
String userSurname2 = pii.getProperty("userSurname2").toString();
|
||||
|
@ -353,7 +380,7 @@ public class NotificationsSyncAdapterService extends Service {
|
|||
String userPhoto = pii.getProperty("userPhoto").toString();
|
||||
String location = pii.getProperty("location").toString();
|
||||
String summary = pii.getProperty("summary").toString();
|
||||
Integer status = Integer.valueOf(pii.getProperty("status").toString());
|
||||
int status = Integer.parseInt(pii.getProperty("status").toString());
|
||||
String content = pii.getProperty("content").toString();
|
||||
boolean notifReadSWAD = (status >= 4);
|
||||
boolean notifCancelled = (status >= 8);
|
||||
|
|
|
@ -0,0 +1,48 @@
|
|||
/*
|
||||
* This file is part of SWADroid.
|
||||
*
|
||||
* Copyright (C) 2010 Juan Miguel Boyero Corral <juanmi1982@gmail.com>
|
||||
*
|
||||
* SWADroid 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.
|
||||
*
|
||||
* SWADroid 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 SWADroid. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package es.ugr.swad.swadroid.modules.notifications;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.util.Log;
|
||||
|
||||
/**
|
||||
* Restarter for NotificationsSyncAdapterService service.
|
||||
*
|
||||
* @author Juan Miguel Boyero Corral <juanmi1982@gmail.com>
|
||||
*/
|
||||
public class RestarterNotificationsReceiver extends BroadcastReceiver {
|
||||
private static final String TAG = "RestarterNotificationsReceiver";
|
||||
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
Log.i(TAG, "Service tried to stop");
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
context.startForegroundService(new Intent(context, NotificationsSyncAdapterService.class));
|
||||
} else {
|
||||
context.startService(new Intent(context, NotificationsSyncAdapterService.class));
|
||||
}
|
||||
|
||||
Log.i(TAG, "Service restarted");
|
||||
}
|
||||
}
|
|
@ -18,11 +18,9 @@
|
|||
*/
|
||||
package es.ugr.swad.swadroid.preferences;
|
||||
|
||||
import android.annotation.TargetApi;
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.SharedPreferences.Editor;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
|
||||
|
@ -85,22 +83,6 @@ public class Preferences {
|
|||
* Rate preference name
|
||||
*/
|
||||
public static final String RATEPREF = "ratePref";
|
||||
/**
|
||||
* Twitter preference name
|
||||
*/
|
||||
public static final String TWITTERPREF = "twitterPref";
|
||||
/**
|
||||
* Facebook preference name
|
||||
*/
|
||||
public static final String FACEBOOKPREF = "facebookPref";
|
||||
/**
|
||||
* Telegram preference name
|
||||
*/
|
||||
public static final String TELEGRAMPREF = "telegramPref";
|
||||
/**
|
||||
* Blog preference name
|
||||
*/
|
||||
public static final String BLOGPREF = "blogPref";
|
||||
/**
|
||||
* Share preference name
|
||||
*/
|
||||
|
@ -177,7 +159,6 @@ public class Preferences {
|
|||
/**
|
||||
* Constructor
|
||||
*/
|
||||
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
|
||||
public Preferences(Context ctx) {
|
||||
getPreferences(ctx);
|
||||
|
||||
|
|
|
@ -82,22 +82,6 @@ public class PreferencesActivity extends PreferenceActivity implements OnPrefere
|
|||
* Rate preference
|
||||
*/
|
||||
private static Preference ratePref;
|
||||
/**
|
||||
* Twitter preference
|
||||
*/
|
||||
private static Preference twitterPref;
|
||||
/**
|
||||
* Facebook preference
|
||||
*/
|
||||
private static Preference facebookPref;
|
||||
/**
|
||||
* Telegram preference
|
||||
*/
|
||||
private static Preference telegramPref;
|
||||
/**
|
||||
* Blog preference
|
||||
*/
|
||||
private static Preference blogPref;
|
||||
/**
|
||||
* Share preference
|
||||
*/
|
||||
|
@ -180,10 +164,6 @@ public class PreferencesActivity extends PreferenceActivity implements OnPrefere
|
|||
logOutPref = findPreference(Preferences.LOGOUTPREF);
|
||||
currentVersionPref = findPreference(Preferences.CURRENTVERSIONPREF);
|
||||
ratePref = findPreference(Preferences.RATEPREF);
|
||||
twitterPref = findPreference(Preferences.TWITTERPREF);
|
||||
facebookPref = findPreference(Preferences.FACEBOOKPREF);
|
||||
telegramPref = findPreference(Preferences.TELEGRAMPREF);
|
||||
blogPref = findPreference(Preferences.BLOGPREF);
|
||||
sharePref = findPreference(Preferences.SHAREPREF);
|
||||
privacyPolicyPref = findPreference(Preferences.PRIVACYPOLICYPREF);
|
||||
syncTimePref = findPreference(Preferences.SYNCTIMEPREF);
|
||||
|
@ -191,10 +171,6 @@ public class PreferencesActivity extends PreferenceActivity implements OnPrefere
|
|||
//syncTimeLocationPref = findPreference(Preferences.SYNCLOCATIONTIMEPREF);
|
||||
|
||||
ratePref.setOnPreferenceChangeListener(this);
|
||||
twitterPref.setOnPreferenceChangeListener(this);
|
||||
facebookPref.setOnPreferenceChangeListener(this);
|
||||
telegramPref.setOnPreferenceChangeListener(this);
|
||||
blogPref.setOnPreferenceChangeListener(this);
|
||||
sharePref.setOnPreferenceChangeListener(this);
|
||||
privacyPolicyPref.setOnPreferenceChangeListener(this);
|
||||
syncEnablePref.setOnPreferenceChangeListener(this);
|
||||
|
@ -229,54 +205,6 @@ public class PreferencesActivity extends PreferenceActivity implements OnPrefere
|
|||
return true;
|
||||
}
|
||||
});
|
||||
twitterPref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
|
||||
/**
|
||||
* Called when a preference is selected.
|
||||
* @param preference Preference selected.
|
||||
*/
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
Intent urlIntent = new Intent(Intent.ACTION_VIEW);
|
||||
urlIntent.setData(Uri.parse(getString(R.string.twitterURL)));
|
||||
startActivity(urlIntent);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
facebookPref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
|
||||
/**
|
||||
* Called when a preference is selected.
|
||||
* @param preference Preference selected.
|
||||
*/
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
Intent urlIntent = new Intent(Intent.ACTION_VIEW);
|
||||
urlIntent.setData(Uri.parse(getString(R.string.facebookURL)));
|
||||
startActivity(urlIntent);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
telegramPref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
|
||||
/**
|
||||
* Called when a preference is selected.
|
||||
* @param preference Preference selected.
|
||||
*/
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
Intent urlIntent = new Intent(Intent.ACTION_VIEW);
|
||||
urlIntent.setData(Uri.parse(getString(R.string.telegramURL)));
|
||||
startActivity(urlIntent);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
blogPref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
|
||||
/**
|
||||
* Called when a preference is selected.
|
||||
* @param preference Preference selected.
|
||||
*/
|
||||
public boolean onPreferenceClick(Preference preference) {
|
||||
Intent urlIntent = new Intent(Intent.ACTION_VIEW);
|
||||
urlIntent.setData(Uri.parse(getString(R.string.blogURL)));
|
||||
startActivity(urlIntent);
|
||||
return true;
|
||||
}
|
||||
});
|
||||
sharePref.setOnPreferenceClickListener(new OnPreferenceClickListener() {
|
||||
/**
|
||||
* Called when a preference is selected.
|
||||
|
|
|
@ -18,22 +18,27 @@
|
|||
</head>
|
||||
|
||||
<body bgcolor="white">
|
||||
<!--<h4>1.6.0 (upcoming)</h4>
|
||||
<!--<h4>1.6.0</h4>
|
||||
<ul>
|
||||
<li type="disc">Añadido módulo para localización en interiores</li>
|
||||
</ul>-->
|
||||
|
||||
<h4>1.5.8 (2022-05-23)</h4>
|
||||
<h4>1.5.9</h4>
|
||||
<ul>
|
||||
<li type="disc">Añadido soporte para la descarga de notificaciones en segundo plano cuando la optimización de batería está habilitada</li>
|
||||
</ul>
|
||||
|
||||
<h4>1.5.8<h4>
|
||||
<ul>
|
||||
<li type="disc">Corregida descarga de notificaciones en Android 12 (S)</li>
|
||||
</ul>
|
||||
|
||||
<h4>1.5.7 (2020-12-19)</h4>
|
||||
<h4>1.5.7<h4>
|
||||
<ul>
|
||||
<li type="disc">Corregida descarga de archivos en Android R</li>
|
||||
</ul>
|
||||
|
||||
<h4>1.5.6 (2019-11-05)</h4>
|
||||
<h4>1.5.6<h4>
|
||||
<ul>
|
||||
<li type="disc">
|
||||
<strong>Pasar lista:</strong>
|
||||
|
@ -41,13 +46,13 @@
|
|||
</li>
|
||||
</ul>
|
||||
|
||||
<h4>1.5.5 (2019-07-08)</h4>
|
||||
<h4>1.5.5<h4>
|
||||
<ul>
|
||||
<li type="disc">Añadido soporte para Android-Q</li>
|
||||
<li type="disc">Corregidas erratas en el historial de cambios</li>
|
||||
</ul>
|
||||
|
||||
<h4>1.5.4 (2018-02-25)</h4>
|
||||
<h4>1.5.4<h4>
|
||||
<ul>
|
||||
<lh class="fix">[CORRECCIONES]</lh>
|
||||
<li type="disc">
|
||||
|
@ -56,7 +61,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
|
||||
<h4>1.5.3 (2017-10-25)</h4>
|
||||
<h4>1.5.3<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadida compatibilidad con el sistema de notificaciones de Android
|
||||
|
@ -64,7 +69,7 @@
|
|||
</li>
|
||||
</ul>
|
||||
|
||||
<h4>1.5.2 (2017-02-12)</h4>
|
||||
<h4>1.5.2<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadida política de privacidad de datos en la pantalla de
|
||||
|
@ -78,12 +83,12 @@
|
|||
Calificaciones, ahora se encuentran en la nueva carpeta Archivos
|
||||
</li>
|
||||
</ul>
|
||||
<h4>1.5.1 (2017-01-21)</h4>
|
||||
<h4>1.5.1<h4>
|
||||
<ul>
|
||||
<lh class="fix">[CORRECCIONES]</lh>
|
||||
<li type="disc">Corregido error unparseable date: "anyType{}"(at offset 0)</li>
|
||||
</ul>
|
||||
<h4>1.5.0 (2016-09-01)</h4>
|
||||
<h4>1.5.0<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">
|
||||
|
@ -91,7 +96,7 @@
|
|||
Añadida búsqueda de destinatarios
|
||||
</li>
|
||||
</ul>
|
||||
<h4>1.4.0 (2016-07-25)</h4>
|
||||
<h4>1.4.0<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">
|
||||
|
@ -107,7 +112,7 @@
|
|||
Corregida consulta de calificaciones desde el rol estudiante
|
||||
</li>
|
||||
</ul>
|
||||
<h4>1.3.4 (2016-07-17)</h4>
|
||||
<h4>1.3.4<h4>
|
||||
<ul>
|
||||
<lh class="update">[ACTUALIZACIONES]</lh>
|
||||
<li type="disc">
|
||||
|
@ -129,7 +134,7 @@
|
|||
Mejoras menores
|
||||
</li>
|
||||
</ul>
|
||||
<h4>1.3.3 (2016-01-31)</h4>
|
||||
<h4>1.3.3<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadidas notificaciones sociales</li>
|
||||
|
@ -142,12 +147,12 @@
|
|||
mayor a 30 días
|
||||
</li>
|
||||
</ul>
|
||||
<h4>1.3.2 (2016-01-06)</h4>
|
||||
<h4>1.3.2<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadida gestión de permisos en Android 6.0 Marshmallow</li>
|
||||
</ul>
|
||||
<h4>1.3.1 (2015-12-06)</h4>
|
||||
<h4>1.3.1<h4>
|
||||
<ul>
|
||||
<lh class="update">[ACTUALIZACIONES]</lh>
|
||||
<li type="disc">Mejoras en las pantallas de identificación y creación de
|
||||
|
@ -155,7 +160,7 @@
|
|||
</li>
|
||||
<li type="disc">Ahora las notificaciones canceladas no se descargan durante la sincronización</li>
|
||||
</ul>
|
||||
<h4>1.3 (2015-09-03)</h4>
|
||||
<h4>1.3<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadida creación de cuentas de usuario</li>
|
||||
|
@ -166,13 +171,13 @@
|
|||
y tests (parcial en tests)
|
||||
</li>
|
||||
</ul>
|
||||
<h4>1.2.4 (2015-03-15)</h4>
|
||||
<h4>1.2.4<h4>
|
||||
<ul>
|
||||
<lh class="update">[ACTUALIZACIONES]</lh>
|
||||
<li type="disc">Reducido retardo entre escaneos de códigos a un segundo</li>
|
||||
<li type="disc">Ahora el módulo de descargas requiere Android 3.0 o superior</li>
|
||||
</ul>
|
||||
<h4>1.2.3 (2014-11-30)</h4>
|
||||
<h4>1.2.3<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadido soporte para escaneo de códigos de barras en el
|
||||
|
@ -186,7 +191,7 @@
|
|||
</li>
|
||||
<li type="disc">Reducido retardo entre escaneos de códigos a 2 segundos</li>
|
||||
</ul>
|
||||
<h4>1.2.2 (2014-11-26)</h4>
|
||||
<h4>1.2.2<h4>
|
||||
<ul>
|
||||
<lh class="update">[ACTUALIZACIONES]</lh>
|
||||
<li type="disc">Deshabilitado el deslizamiento lateral de las notificaciones</li>
|
||||
|
@ -201,7 +206,7 @@
|
|||
correctamente
|
||||
</li>
|
||||
</ul>
|
||||
<h4>1.2.1 (2014-11-24)</h4>
|
||||
<h4>1.2.1<h4>
|
||||
<ul>
|
||||
<lh class="update">[ACTUALIZACIONES]</lh>
|
||||
<li type="disc">Ahora se pueden enviar listados de asistencias vacíos para marcar
|
||||
|
@ -212,7 +217,7 @@
|
|||
<lh class="fix">[CORRECCIONES]</lh>
|
||||
<li type="disc">Corregido refresco en pantalla del listado de asistencias</li>
|
||||
</ul>
|
||||
<h4>1.2 (2014-11-23)</h4>
|
||||
<h4>1.2<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadidas felicitaciones de cumpleaños</li>
|
||||
|
@ -220,19 +225,19 @@
|
|||
las asistencias a SWAD
|
||||
</li>
|
||||
</ul>
|
||||
<h4>1.1.4 (2014-11-11)</h4>
|
||||
<h4>1.1.4<h4>
|
||||
<ul>
|
||||
<lh class="fix">[CORRECCIONES]</lh>
|
||||
<li type="disc">Corregida descarga de notificaciones por modificaciones en SWAD</li>
|
||||
</ul>
|
||||
<h4>1.1.3 (2014-10-05)</h4>
|
||||
<h4>1.1.3<h4>
|
||||
<ul>
|
||||
<lh class="fix">[CORRECCIONES]</lh>
|
||||
<li type="disc">Corregida actualización errónea de las notificaciones al
|
||||
desplazar hacia arriba la lista
|
||||
</li>
|
||||
</ul>
|
||||
<h4>1.1.2 (2014-09-18)</h4>
|
||||
<h4>1.1.2<h4>
|
||||
<ul>
|
||||
<lh class="update">[ACTUALIZACIONES]</lh>
|
||||
<li type="disc">Mejoras en los mensajes de error</li>
|
||||
|
@ -244,7 +249,7 @@
|
|||
<lh class="fix">[CORRECCIONES]</lh>
|
||||
<li type="disc">Corregidos errores tipográficos en el historial de cambios</li>
|
||||
</ul>
|
||||
<h4>1.1.1 (2014-09-16)</h4>
|
||||
<h4>1.1.1<h4>
|
||||
<ul>
|
||||
<lh class="update">[ACTUALIZACIONES]</lh>
|
||||
<li type="disc">Ahora el desplazamiento lateral de las notificaciones sólo está
|
||||
|
@ -257,7 +262,7 @@
|
|||
desplazar la lista hacia arriba sin estar en la parte superior de la misma
|
||||
</li>
|
||||
</ul>
|
||||
<h4>1.1 (2014-09-08)</h4>
|
||||
<h4>1.1<h4>
|
||||
<ul>
|
||||
<lh class="update">[ACTUALIZACIONES]</lh>
|
||||
<li type="disc">Ahora las notificaciones se agrupan en
|
||||
|
@ -293,7 +298,7 @@
|
|||
aplicación
|
||||
</li>
|
||||
</ul>
|
||||
<h4>1.0 (2014-03-26)</h4>
|
||||
<h4>1.0<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Nueva interfaz gráfica estilo Holo</li>
|
||||
|
@ -316,7 +321,7 @@
|
|||
</li>
|
||||
<li type="disc">Eliminados los idiomas no utilizados por los usuarios</li>
|
||||
</ul>
|
||||
<h4>0.13 (2014-02-02)</h4>
|
||||
<h4>0.13<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadida pantalla de identificación</li>
|
||||
|
@ -327,7 +332,7 @@
|
|||
2.3 o superior cuando la sincronización automática está activada
|
||||
</li>
|
||||
</ul>
|
||||
<h4>0.12.7 (2013-12-14)</h4>
|
||||
<h4>0.12.7<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadida información de las notificaciones vistas en SWAD al
|
||||
|
@ -344,7 +349,7 @@
|
|||
</li>
|
||||
<li type="disc">Corregido error al recuperar la configuración de los tests</li>
|
||||
</ul>
|
||||
<h4>0.12.6 (2013-11-24)</h4>
|
||||
<h4>0.12.6<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadido control de las notificaciones vistas</li>
|
||||
|
@ -366,17 +371,17 @@
|
|||
</li>
|
||||
<li type="disc">Corregido color de fondo negro al deslizar el listado de notificaciones</li>
|
||||
</ul>
|
||||
<h4>0.12.5 (2013-11-10)</h4>
|
||||
<h4>0.12.5<h4>
|
||||
<ul>
|
||||
<lh class="fix">[CORRECCIONES]</lh>
|
||||
<li type="disc">Corregido error que impedía responder mensajes</li>
|
||||
</ul>
|
||||
<h4>0.12.4 (2013-11-09)</h4>
|
||||
<h4>0.12.4<h4>
|
||||
<ul>
|
||||
<lh class="fix">[CORRECCIONES]</lh>
|
||||
<li type="disc">Corregido error que impedía consultar las sesiones de prácticas</li>
|
||||
</ul>
|
||||
<h4>0.12.3 (2013-11-09)</h4>
|
||||
<h4>0.12.3<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadido sistema de actualización "Arrastrar-para-actualizar"
|
||||
|
@ -420,13 +425,13 @@
|
|||
</li>
|
||||
<li type="disc">Corregido error en la selección del número de preguntas de test</li>
|
||||
</ul>
|
||||
<h4>0.12.2 (2013-06-19)</h4>
|
||||
<h4>0.12.2<h4>
|
||||
<ul>
|
||||
<lh class="update">[ACTUALIZACIONES]</lh>
|
||||
<li type="disc">Actualizadas las comunicaciones con el servidor</li>
|
||||
</ul>
|
||||
|
||||
<h4>0.12.1 (2013-06-09)</h4>
|
||||
<h4>0.12.1<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadidas notificaciones de foros</li>
|
||||
|
@ -455,7 +460,7 @@
|
|||
<li type="disc">Corregida la detección del valor nulo en la respuesta del servidor
|
||||
</li>
|
||||
</ul>
|
||||
<h4>0.12 (2013-04-20)</h4>
|
||||
<h4>0.12<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadidos los nuevos tipos de notificación de Documentos,
|
||||
|
@ -500,7 +505,7 @@
|
|||
dispositivos
|
||||
</li>
|
||||
</ul>
|
||||
<h4>0.11.3 (2013-03-03)</h4>
|
||||
<h4>0.11.3<h4>
|
||||
<ul>
|
||||
<lh class="update">[ACTUALIZACIONES]</lh>
|
||||
<li type="disc">Ahora se muestra el servidor por defecto cuando el campo "Servidor" se deja
|
||||
|
@ -514,7 +519,7 @@
|
|||
asignaturas ante un cambio de configuración
|
||||
</li>
|
||||
</ul>
|
||||
<h4>0.11.2 (2013-02-24)</h4>
|
||||
<h4>0.11.2<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadido botón de actualización de las asignaturas en la
|
||||
|
@ -539,7 +544,7 @@
|
|||
<li type="disc">Corregido comportamiento anómalo de los checkboxes en Android 4.2
|
||||
</li>
|
||||
</ul>
|
||||
<h4>0.11.1 (2013-01-26)</h4>
|
||||
<h4>0.11.1<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadida compatibilidad con pantallas táctiles básicas
|
||||
|
@ -568,7 +573,7 @@
|
|||
descriptores de los tests
|
||||
</li>
|
||||
</ul>
|
||||
<h4>0.11 (2012-12-15)</h4>
|
||||
<h4>0.11<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadido módulo de Descargas</li>
|
||||
|
@ -580,7 +585,7 @@
|
|||
opciones de SWAD
|
||||
</li>
|
||||
</ul>
|
||||
<h4>0.10.1 (2012-11-17)</h4>
|
||||
<h4>0.10.1<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadida compatibilidad con Android 4.2</li>
|
||||
|
@ -603,7 +608,7 @@
|
|||
asunto
|
||||
</li>
|
||||
</ul>
|
||||
<h4>0.10 (2012-11-09)</h4>
|
||||
<h4>0.10<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadido módulo de inscripción a grupos</li>
|
||||
|
@ -620,7 +625,7 @@
|
|||
<li type="disc">Corregido error en la comprobación de la conexión a Internet
|
||||
</li>
|
||||
</ul>
|
||||
<h4>0.9.3 (2012-07-20)</h4>
|
||||
<h4>0.9.3<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadido soporte para carpetas en la URL del servidor</li>
|
||||
|
@ -629,14 +634,14 @@
|
|||
<lh class="update">[ACTUALIZACIONES]</lh>
|
||||
<li type="disc">mMjoras en los mensajes de error</li>
|
||||
</ul>
|
||||
<h4>0.9.2 (2012-07-10)</h4>
|
||||
<h4>0.9.2<h4>
|
||||
<ul>
|
||||
<lh class="fix">[CORRECCIONES]</lh>
|
||||
<li type="disc">La característica camera.autofocus ahora es opcional para corregir
|
||||
incompatibilidades con algunos dispositivos
|
||||
</li>
|
||||
</ul>
|
||||
<h4>0.9.1 (2012-07-09)</h4>
|
||||
<h4>0.9.1<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadido soporte pana DNI con letra (primera y última posición)
|
||||
|
@ -648,19 +653,19 @@
|
|||
<lh class="fix">[CORRECCIONES]</lh>
|
||||
<li type="disc">Corregido soporte para pantallas grandes</li>
|
||||
</ul>
|
||||
<h4>0.9 (2012-07-01)</h4>
|
||||
<h4>0.9<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadido módulo para pasar lista</li>
|
||||
</ul>
|
||||
<h4>0.8.1 (2012-05-20)</h4>
|
||||
<h4>0.8.1<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadida opción para responder mensajes desde su notificación
|
||||
abierta
|
||||
</li>
|
||||
</ul>
|
||||
<h4>0.8 (2012-05-01)</h4>
|
||||
<h4>0.8<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadida sincronización automática de las
|
||||
|
@ -691,7 +696,7 @@
|
|||
<li type="disc">Corregido bug HTML en el campo "location" de las notificaciones</li>
|
||||
<li type="disc">Corregido error en la etiqueta br de las notificaciones</li>
|
||||
</ul>
|
||||
<h4>0.7.2 (2012-02-22)</h4>
|
||||
<h4>0.7.2<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadidas alertas de notificaciones en la barra de estado</li>
|
||||
|
@ -701,7 +706,7 @@
|
|||
<lh class="update">[ACTUALIZACIONES]</lh>
|
||||
<li type="disc">Optimizadas las consultas a la base de datos</li>
|
||||
</ul>
|
||||
<h4>0.7.1 (2012-01-11)</h4>
|
||||
<h4>0.7.1<h4>
|
||||
<ul>
|
||||
<lh class="update">[ACTUALIZACIONES]</lh>
|
||||
<li type="disc">Mejorada la velocidad de renderizado de las calificaciones</li>
|
||||
|
@ -710,14 +715,14 @@
|
|||
<lh class="fix">[CORRECCIONES]</lh>
|
||||
<li type="disc">Corregidos errores de renderizado en las calificaciones</li>
|
||||
</ul>
|
||||
<h4>0.7 (2012-01-10)</h4>
|
||||
<h4>0.7<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadida visualización de las calificaciones al pulsar sobre la
|
||||
notificación asociada
|
||||
</li>
|
||||
</ul>
|
||||
<h4>0.6.2 (2011-12-09)</h4>
|
||||
<h4>0.6.2<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadido enlace al blog de la aplicación en la pantalla de
|
||||
|
@ -732,7 +737,7 @@
|
|||
</li>
|
||||
<li type="disc">Cambios menores en los mensajes de error</li>
|
||||
</ul>
|
||||
<h4>0.6.1 (2011-11-16)</h4>
|
||||
<h4>0.6.1<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadido enlace a la página de Google+ de la
|
||||
|
@ -747,7 +752,7 @@
|
|||
<lh class="fix">[CORRECCIONES]</lh>
|
||||
<li type="disc">Corregido el funcionamiento del menú de opciones</li>
|
||||
</ul>
|
||||
<h4>0.6 (2011-11-06)</h4>
|
||||
<h4>0.6<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadida compatibilidad con Android 4.0</li>
|
||||
|
@ -759,7 +764,7 @@
|
|||
</li>
|
||||
<li type="disc">Añadido autor de SWAD en la pantalla de configuración</li>
|
||||
</ul>
|
||||
<h4>0.5.2 (2011-09-29)</h4>
|
||||
<h4>0.5.2<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadido el nombre real de los destinatarios en el mensaje "Mensaje
|
||||
|
@ -774,12 +779,12 @@
|
|||
<lh class="fix">[CORRECCIONES]</lh>
|
||||
<li type="disc">Corregido error en la descarga de las preguntas de test</li>
|
||||
</ul>
|
||||
<h4>0.5.1 (2011-09-26)</h4>
|
||||
<h4>0.5.1<h4>
|
||||
<ul>
|
||||
<lh class="fix">[CORRECCIONES]</lh>
|
||||
<li type="disc">Corregido error al responder mensajes</li>
|
||||
</ul>
|
||||
<h4>0.5 (2011-09-26)</h4>
|
||||
<h4>0.5<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadido módulo de envío de mensajes</li>
|
||||
|
@ -788,17 +793,17 @@
|
|||
<lh class="fix">[CORRECCIONES]</lh>
|
||||
<li type="disc">Correcciones menores</li>
|
||||
</ul>
|
||||
<h4>0.4.5 (2011-07-08)</h4>
|
||||
<h4>0.4.5<h4>
|
||||
<ul>
|
||||
<lh class="update">[ACTUALIZACIONES]</lh>
|
||||
<li type="disc">Optimizada la descarga de las preguntas de test</li>
|
||||
</ul>
|
||||
<h4>0.4.4 (2011-07-05)</h4>
|
||||
<h4>0.4.4<h4>
|
||||
<ul>
|
||||
<lh class="fix">[CORRECCIONES]</lh>
|
||||
<li type="disc">Correccoines menores</li>
|
||||
</ul>
|
||||
<h4>0.4.3 (2011-06-15)</h4>
|
||||
<h4>0.4.3<h4>
|
||||
<ul>
|
||||
<lh class="update">[ACTUALIZACIONES]</lh>
|
||||
<li type="disc">mejorada la vissualización de los tests</li>
|
||||
|
@ -807,7 +812,7 @@
|
|||
<lh class="fix">[CORRECCIONES]</lh>
|
||||
<li type="disc">Correcciones menores</li>
|
||||
</ul>
|
||||
<h4>0.4.2 (2011-06-15)</h4>
|
||||
<h4>0.4.2<h4>
|
||||
<ul>
|
||||
<lh class="update">[ACTUALIZACIONES]</lh>
|
||||
<li type="disc">Ahora las preguntas no contestadas puntúan como 0</li>
|
||||
|
@ -816,7 +821,7 @@
|
|||
</li>
|
||||
<li type="disc">mejoras en la cisualización de los tests</li>
|
||||
</ul>
|
||||
<h4>0.4.1 (2011-06-14)</h4>
|
||||
<h4>0.4.1<h4>
|
||||
<ul>
|
||||
<lh class="update">[ACTUALIZACIONES]</lh>
|
||||
<li type="disc">Se permiten puntuacioes negativas en los tests</li>
|
||||
|
@ -825,7 +830,7 @@
|
|||
<lh class="fix">[CORRECCIONES]</lh>
|
||||
<li type="disc">Correcifo error al descargar las preguntas de test</li>
|
||||
</ul>
|
||||
<h4>0.4 (2011-06-13)</h4>
|
||||
<h4>0.4<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadido módulo de Tests</li>
|
||||
|
@ -834,7 +839,7 @@
|
|||
<lh class="fix">[CORRECCIONES]</lh>
|
||||
<li type="disc">Correcciones menores</li>
|
||||
</ul>
|
||||
<h4>0.3.10 (2011-05-19)</h4>
|
||||
<h4>0.3.10<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadidas notificaciones de actividades, encuestas y notificaciones
|
||||
|
@ -848,28 +853,28 @@
|
|||
</li>
|
||||
<li type="disc">Añadido mensaje de error de credenciales erróneas</li>
|
||||
</ul>
|
||||
<h4>0.3.9 (2011-05-03)</h4>
|
||||
<h4>0.3.9<h4>
|
||||
<ul>
|
||||
<lh class="fix">[CORRECCIONES]</lh>
|
||||
<li type="disc">Corregido error de campos vacíos en las notificaciones</li>
|
||||
</ul>
|
||||
<h4>0.3.8 (2011-04-27)</h4>
|
||||
<h4>0.3.8<h4>
|
||||
<ul>
|
||||
<lh class="fix">[CORRECCIONES]</lh>
|
||||
<li type="disc">Corregido error al borrar las notificaciones antiguas</li>
|
||||
</ul>
|
||||
<h4>0.3.7 (2011-04-14)</h4>
|
||||
<h4>0.3.7<h4>
|
||||
<ul>
|
||||
<lh class="fix">[CORRECCIONES]</lh>
|
||||
<li type="disc">Corregido error en el apellido de las notificaciones</li>
|
||||
</ul>
|
||||
<h4>0.3.6 (2011-04-13)</h4>
|
||||
<h4>0.3.6<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadidos detalles de las notificaciones</li>
|
||||
<li type="disc">Añadido mensaje de actualización de la aplicación</li>
|
||||
</ul>
|
||||
<h4>0.3.5 (2011-04-05)</h4>
|
||||
<h4>0.3.5<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadida barra de acción</li>
|
||||
|
@ -882,7 +887,7 @@
|
|||
<li type="disc">Mejorada la interfaz de usuario</li>
|
||||
<li type="disc">Mejoras de rendimiento</li>
|
||||
</ul>
|
||||
<h4>0.3.4 (2011-03-27)</h4>
|
||||
<h4>0.3.4<h4>
|
||||
<ul>
|
||||
<lh class="update">[ACTUALIZACIONES]</lh>
|
||||
<li type="disc">Mejorada la interfaz de usuario</li>
|
||||
|
@ -891,12 +896,12 @@
|
|||
<lh class="fix">[CORRECCIONES]</lh>
|
||||
<li type="disc">Corregidos errores menores en los mensajes de error</li>
|
||||
</ul>
|
||||
<h4>0.3.3 (2011-03-27)</h4>
|
||||
<h4>0.3.3<h4>
|
||||
<ul>
|
||||
<lh class="update">[ACTUALIZACIONES]</lh>
|
||||
<li type="disc">Rediseñada la interfaz de usuario</li>
|
||||
</ul>
|
||||
<h4>0.3.2 (2011-03-24)</h4>
|
||||
<h4>0.3.2<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadido cuadro de diálogo de primer inicio de la aplicación</li>
|
||||
|
@ -905,7 +910,7 @@
|
|||
<lh class="update">[ACTUALIZACIONES]</lh>
|
||||
<li type="disc">mejorada la pantalla de configuración</li>
|
||||
</ul>
|
||||
<h4>0.3.1 (2011-03-21)</h4>
|
||||
<h4>0.3.1<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadido guardado automático de la configuración</li>
|
||||
|
@ -921,13 +926,13 @@
|
|||
<lh class="fix">[CORRECCIONES]</lh>
|
||||
<li type="disc">Corregidos problemas de compatibilidad con algunos dispositivos</li>
|
||||
</ul>
|
||||
<h4>0.3 (2011-03-08)</h4>
|
||||
<h4>0.3<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadido módulo de Notificaciones</li>
|
||||
<li type="disc">Añadida compatibilidad con Android 3.0 Honeycomb</li>
|
||||
</ul>
|
||||
<h4>0.2.2 (2011-01-18)</h4>
|
||||
<h4>0.2.2<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadida comprobación de la conexión a Internet</li>
|
||||
|
@ -944,13 +949,13 @@
|
|||
<li type="disc">Corregidos los iconos del lanzador</li>
|
||||
<li type="disc">Corregidos problemas de compatibilidad con Android 1.6</li>
|
||||
</ul>
|
||||
<h4>0.2.1 (2010-12-15)</h4>
|
||||
<h4>0.2.1<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadida compatibilidad con Android 2.3 Gingerbread</li>
|
||||
<li type="disc">Completado el módulo de Login</li>
|
||||
</ul>
|
||||
<h4>0.2 (2010-12-08)</h4>
|
||||
<h4>0.2<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadido cierre de sesión automático cuando se modifica
|
||||
|
@ -958,7 +963,7 @@
|
|||
</li>
|
||||
<li type="disc">Añadida base de datos inicial</li>
|
||||
</ul>
|
||||
<h4>0.1.1 (2010-11-06)</h4>
|
||||
<h4>0.1.1<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Añadida imagen de fondo en la pantalla principal</li>
|
||||
|
@ -967,7 +972,7 @@
|
|||
<lh class="fix">[CORRECCIONES]</lh>
|
||||
<li type="disc">Correcciones menores en la pantalla principal</li>
|
||||
</ul>
|
||||
<h4>0.1 (2010-11-03)</h4>
|
||||
<h4>0.1<h4>
|
||||
<ul>
|
||||
<lh class="new">[NOVEDADES]</lh>
|
||||
<li type="disc">Versión inicial</li>
|
||||
|
|
|
@ -18,22 +18,27 @@
|
|||
</head>
|
||||
|
||||
<body bgcolor="white"><!--
|
||||
<h4>1.6.0 (upcoming)</h4>
|
||||
<h4>1.6.0</h4>
|
||||
<ul>
|
||||
<li type="disc">Added indoor location module</li>
|
||||
</ul>-->
|
||||
|
||||
<h4>1.5.8 (2022-05-23)</h4>
|
||||
<h4>1.5.9</h4>
|
||||
<ul>
|
||||
<li type="disc">Added support for background notification download when power save mode is enabled</li>
|
||||
</ul>
|
||||
|
||||
<h4>1.5.8<h4>
|
||||
<ul>
|
||||
<li type="disc">Fixed notifications downloads on Android 12 (S)</li>
|
||||
</ul>
|
||||
|
||||
<h4>1.5.7 (2020-12-19)</h4>
|
||||
<h4>1.5.7<h4>
|
||||
<ul>
|
||||
<li type="disc">Fixed file downloads on Android R</li>
|
||||
</ul>
|
||||
|
||||
<h4>1.5.6 (2019-11-05)</h4>
|
||||
<h4>1.5.6<h4>
|
||||
<ul>
|
||||
<li type="disc">
|
||||
<strong>Rollcall:</strong>
|
||||
|
@ -41,13 +46,13 @@
|
|||
</li>
|
||||
</ul>
|
||||
|
||||
<h4>1.5.5 (2019-07-08)</h4>
|
||||
<h4>1.5.5<h4>
|
||||
<ul>
|
||||
<li type="disc">Added support for Android-Q</li>
|
||||
<li type="disc">Fixed CHANGELOG typos</li>
|
||||
</ul>
|
||||
|
||||
<h4>1.5.4 (2018-02-25)</h4>
|
||||
<h4>1.5.4<h4>
|
||||
<ul>
|
||||
<lh class="fix">[FIXES]</lh>
|
||||
<li type="disc">
|
||||
|
@ -56,13 +61,13 @@
|
|||
</li>
|
||||
</ul>
|
||||
|
||||
<h4>1.5.3 (2017-10-25)</h4>
|
||||
<h4>1.5.3<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added compatibility for Android Oreo notifications system</li>
|
||||
</ul>
|
||||
|
||||
<h4>1.5.2 (2017-02-12)</h4>
|
||||
<h4>1.5.2<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added privacy policy in Preferences screen</li>
|
||||
|
@ -73,12 +78,12 @@
|
|||
files, such as Documents, Shared and Marks, are now available in the new Files folder
|
||||
</li>
|
||||
</ul>
|
||||
<h4>1.5.1 (2017-01-21)</h4>
|
||||
<h4>1.5.1<h4>
|
||||
<ul>
|
||||
<lh class="fix">[FIXES]</lh>
|
||||
<li type="disc">Fixed unparseable date: "anyType{}"(at offset 0) error</li>
|
||||
</ul>
|
||||
<h4>1.5.0 (2016-09-01)</h4>
|
||||
<h4>1.5.0<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">
|
||||
|
@ -86,7 +91,7 @@
|
|||
Added search of recipients
|
||||
</li>
|
||||
</ul>
|
||||
<h4>1.4.0 (2016-07-25)</h4>
|
||||
<h4>1.4.0<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">
|
||||
|
@ -101,7 +106,7 @@
|
|||
Fixed consultation of marks from the student role
|
||||
</li>
|
||||
</ul>
|
||||
<h4>1.3.4 (2016-07-17)</h4>
|
||||
<h4>1.3.4<h4>
|
||||
<ul>
|
||||
<lh class="update">[UPDATES]</lh>
|
||||
<li type="disc">
|
||||
|
@ -122,7 +127,7 @@
|
|||
Minor improvements
|
||||
</li>
|
||||
</ul>
|
||||
<h4>1.3.3 (2016-01-31)</h4>
|
||||
<h4>1.3.3<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added social notifications</li>
|
||||
|
@ -133,18 +138,18 @@
|
|||
Now notifications are automatically removed with greater age than 30 days
|
||||
</li>
|
||||
</ul>
|
||||
<h4>1.3.2 (2016-01-06)</h4>
|
||||
<h4>1.3.2<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added permission management on Android 6.0 Marshmallow</li>
|
||||
</ul>
|
||||
<h4>1.3.1 (2015-12-06)</h4>
|
||||
<h4>1.3.1<h4>
|
||||
<ul>
|
||||
<lh class="update">[UPDATES]</lh>
|
||||
<li type="disc">Improvements on login screen and create account screen</li>
|
||||
<li type="disc">Now canceled notifications are not downloaded during synchronization</li>
|
||||
</ul>
|
||||
<h4>1.3 (2015-09-03)</h4>
|
||||
<h4>1.3<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added creation of user accounts</li>
|
||||
|
@ -154,13 +159,13 @@
|
|||
(partial in tests)
|
||||
</li>
|
||||
</ul>
|
||||
<h4>1.2.4 (2015-03-15)</h4>
|
||||
<h4>1.2.4<h4>
|
||||
<ul>
|
||||
<lh class="update">[UPDATES]</lh>
|
||||
<li type="disc">Changed scan delay of codes to one second</li>
|
||||
<li type="disc">Now the Downloads module requires Android 3.0 or higher</li>
|
||||
</ul>
|
||||
<h4>1.2.3 (2014-11-30)</h4>
|
||||
<h4>1.2.3<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added support for barcode scanning in rollcall module</li>
|
||||
|
@ -170,7 +175,7 @@
|
|||
<li type="disc">Now the events list is sorted in rollcall module</li>
|
||||
<li type="disc">Changed scan delay of codes to 2 seconds</li>
|
||||
</ul>
|
||||
<h4>1.2.2 (2014-11-26)</h4>
|
||||
<h4>1.2.2<h4>
|
||||
<ul>
|
||||
<lh class="update">[UPDATES]</lh>
|
||||
<li type="disc">Disabled lateral sliding of notifications</li>
|
||||
|
@ -181,7 +186,7 @@
|
|||
<li type="disc">Fixed screen refresh of users and attendances lists</li>
|
||||
<li type="disc">Now the relationship between events and courses is handled properly</li>
|
||||
</ul>
|
||||
<h4>1.2.1 (2014-11-24)</h4>
|
||||
<h4>1.2.1<h4>
|
||||
<ul>
|
||||
<lh class="update">[UPDATES]</lh>
|
||||
<li type="disc">Now you can send empty attendance listings to mark all attendees as
|
||||
|
@ -192,23 +197,23 @@
|
|||
<lh class="fix">[FIXES]</lh>
|
||||
<li type="disc">Fixed screen refresh of attendances list</li>
|
||||
</ul>
|
||||
<h4>1.2 (2014-11-23)</h4>
|
||||
<h4>1.2<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added birthday greetings</li>
|
||||
<li type="disc">Added rollcall module with sending of attendances to SWAD</li>
|
||||
</ul>
|
||||
<h4>1.1.4 (2014-11-11)</h4>
|
||||
<h4>1.1.4<h4>
|
||||
<ul>
|
||||
<lh class="fix">[FIXES]</lh>
|
||||
<li type="disc">Fixed download of notifications due to changes in SWAD</li>
|
||||
</ul>
|
||||
<h4>1.1.3 (2014-10-05)</h4>
|
||||
<h4>1.1.3<h4>
|
||||
<ul>
|
||||
<lh class="fix">[FIXES]</lh>
|
||||
<li type="disc">Fixed wrong update of notifications when sliding up the list</li>
|
||||
</ul>
|
||||
<h4>1.1.2 (2014-09-18)</h4>
|
||||
<h4>1.1.2<h4>
|
||||
<ul>
|
||||
<lh class="update">[UPDATES]</lh>
|
||||
<li type="disc">Improvements in error messages</li>
|
||||
|
@ -220,7 +225,7 @@
|
|||
<lh class="fix">[FIXES]</lh>
|
||||
<li type="disc">Fixed typos in changelog</li>
|
||||
</ul>
|
||||
<h4>1.1.1 (2014-09-16)</h4>
|
||||
<h4>1.1.1<h4>
|
||||
<ul>
|
||||
<lh class="update">[UPDATES]</lh>
|
||||
<li type="disc">Now the lateral sliding of the notifications is only available for Android
|
||||
|
@ -233,7 +238,7 @@
|
|||
without being on top of it
|
||||
</li>
|
||||
</ul>
|
||||
<h4>1.1 (2014-09-08)</h4>
|
||||
<h4>1.1<h4>
|
||||
<ul>
|
||||
<lh class="update">[UPDATES]</lh>
|
||||
<li type="disc">Now the notifications are grouped into
|
||||
|
@ -260,7 +265,7 @@
|
|||
</li>
|
||||
<li type="disc">Fixed crash for open downloaded files with no apps to open with</li>
|
||||
</ul>
|
||||
<h4>1.0 (2014-03-26)</h4>
|
||||
<h4>1.0<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">New GUI Holo style</li>
|
||||
|
@ -276,7 +281,7 @@
|
|||
<li type="disc">Disabled rollcall module (pending redesign and integration with SWAD)</li>
|
||||
<li type="disc">Removed unused languages</li>
|
||||
</ul>
|
||||
<h4>0.13 (2014-02-02)</h4>
|
||||
<h4>0.13<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added login screen</li>
|
||||
|
@ -287,7 +292,7 @@
|
|||
when automatic synchronization is enabled
|
||||
</li>
|
||||
</ul>
|
||||
<h4>0.12.7 (2013-12-14)</h4>
|
||||
<h4>0.12.7<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added info of seen notifications from SWAD on notifications download</li>
|
||||
|
@ -300,7 +305,7 @@
|
|||
<li type="disc">Fixed error retrieving the list of students on the rollcall module</li>
|
||||
<li type="disc">Fixed error retrieving the tests configuration</li>
|
||||
</ul>
|
||||
<h4>0.12.6 (2013-11-24)</h4>
|
||||
<h4>0.12.6<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added management of seen notifications</li>
|
||||
|
@ -317,17 +322,17 @@
|
|||
<li type="disc">Fixed black background color when the notifications list is being pulled
|
||||
</li>
|
||||
</ul>
|
||||
<h4>0.12.5 (2013-11-10)</h4>
|
||||
<h4>0.12.5<h4>
|
||||
<ul>
|
||||
<lh class="fix">[FIXES]</lh>
|
||||
<li type="disc">Fixed bug that prevented replying messages</li>
|
||||
</ul>
|
||||
<h4>0.12.4 (2013-11-09)</h4>
|
||||
<h4>0.12.4<h4>
|
||||
<ul>
|
||||
<lh class="fix">[FIXES]</lh>
|
||||
<li type="disc">Fixed bug that prevented consulting practice sessions</li>
|
||||
</ul>
|
||||
<h4>0.12.3 (2013-11-09)</h4>
|
||||
<h4>0.12.3<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added pull-to-refresh update system to the notifications</li>
|
||||
|
@ -357,12 +362,12 @@
|
|||
<li type="disc">Fixed a bug when trying to download an user picture from an empty URL</li>
|
||||
<li type="disc">Fixed display bug on number of questions input of the tests</li>
|
||||
</ul>
|
||||
<h4>0.12.2 (2013-06-19)</h4>
|
||||
<h4>0.12.2<h4>
|
||||
<ul>
|
||||
<lh class="update">[UPDATES]</lh>
|
||||
<li type="disc">Updated communications with server</li>
|
||||
</ul>
|
||||
<h4>0.12.1 (2013-06-09)</h4>
|
||||
<h4>0.12.1<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added forumPostCourse notification type</li>
|
||||
|
@ -387,7 +392,7 @@
|
|||
<li type="disc">Fixed error messages display</li>
|
||||
<li type="disc">Modified NULL value detection in server response</li>
|
||||
</ul>
|
||||
<h4>0.12 (2013-04-20)</h4>
|
||||
<h4>0.12<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added new notification types "documentFile", "sharedFile", "enrollment" and
|
||||
|
@ -429,7 +434,7 @@
|
|||
</li>
|
||||
<li type="disc">Fixed non decimal keyboard type for decimal numbers on some devices</li>
|
||||
</ul>
|
||||
<h4>0.11.3 (2013-03-03)</h4>
|
||||
<h4>0.11.3<h4>
|
||||
<ul>
|
||||
<lh class="update">[UPDATES]</lh>
|
||||
<li type="disc">Shows default server in preference summary when the preference value is
|
||||
|
@ -443,7 +448,7 @@
|
|||
preferences change
|
||||
</li>
|
||||
</ul>
|
||||
<h4>0.11.2 (2013-02-24)</h4>
|
||||
<h4>0.11.2<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added refresh button on main screen to update courses without clean the
|
||||
|
@ -466,7 +471,7 @@
|
|||
behaviour is exactly the opposite in Android 4.2)
|
||||
</li>
|
||||
</ul>
|
||||
<h4>0.11.1 (2013-01-26)</h4>
|
||||
<h4>0.11.1<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added compatibility with screens with basic touch capabilities</li>
|
||||
|
@ -492,7 +497,7 @@
|
|||
descriptors
|
||||
</li>
|
||||
</ul>
|
||||
<h4>0.11 (2012-12-15)</h4>
|
||||
<h4>0.11<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added downloads module</li>
|
||||
|
@ -504,7 +509,7 @@
|
|||
functions in SWAD
|
||||
</li>
|
||||
</ul>
|
||||
<h4>0.10.1 (2012-11-17)</h4>
|
||||
<h4>0.10.1<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added Android 4.2 compatibility</li>
|
||||
|
@ -521,7 +526,7 @@
|
|||
<li type="disc">Fixed available choose for groups with real membership</li>
|
||||
<li type="disc">Fixed problem with uppercase letter in notifications without summary</li>
|
||||
</ul>
|
||||
<h4>0.10 (2012-11-09)</h4>
|
||||
<h4>0.10<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added module for enrollment to course groups</li>
|
||||
|
@ -539,7 +544,7 @@
|
|||
<li type="disc">Fixed some bugs in course selection spinner</li>
|
||||
<li type="disc">Fixed bug when checking available connections</li>
|
||||
</ul>
|
||||
<h4>0.9.3 (2012-07-20)</h4>
|
||||
<h4>0.9.3<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added folders support in server URL</li>
|
||||
|
@ -548,14 +553,14 @@
|
|||
<lh class="update">[UPDATES]</lh>
|
||||
<li type="disc">Improved error messages</li>
|
||||
</ul>
|
||||
<h4>0.9.2 (2012-07-10)</h4>
|
||||
<h4>0.9.2<h4>
|
||||
<ul>
|
||||
<lh class="fix">[FIXES]</lh>
|
||||
<li type="disc">camera.autofocus feature marked as optional in order to fix device
|
||||
incompatibilities
|
||||
</li>
|
||||
</ul>
|
||||
<h4>0.9.1 (2012-07-09)</h4>
|
||||
<h4>0.9.1<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added DNI with letter (first and last) support and DNI with zeros support
|
||||
|
@ -566,17 +571,17 @@
|
|||
<lh class="fix">[FIXES]</lh>
|
||||
<li type="disc">Fixed xlarge screens support</li>
|
||||
</ul>
|
||||
<h4>0.9 (2012-07-01)</h4>
|
||||
<h4>0.9<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added RollCall module</li>
|
||||
</ul>
|
||||
<h4>0.8.1 (2012-05-20)</h4>
|
||||
<h4>0.8.1<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added message replys from open notifications</li>
|
||||
</ul>
|
||||
<h4>0.8 (2012-05-01)</h4>
|
||||
<h4>0.8<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added automatic synchronization of notifications</li>
|
||||
|
@ -597,7 +602,7 @@
|
|||
<li type="disc">Fixed HTML bug in location field of notifications</li>
|
||||
<li type="disc">Fixed br tag bug in notifications</li>
|
||||
</ul>
|
||||
<h4>0.7.2 (2012-02-22)</h4>
|
||||
<h4>0.7.2<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added notification alerts on status bar</li>
|
||||
|
@ -607,7 +612,7 @@
|
|||
<lh class="update">[UPDATES]</lh>
|
||||
<li type="disc">Improved query statements</li>
|
||||
</ul>
|
||||
<h4>0.7.1 (2012-01-11)</h4>
|
||||
<h4>0.7.1<h4>
|
||||
<ul>
|
||||
<lh class="update">[UPDATES]</lh>
|
||||
<li type="disc">Improved rendering speed in marks function</li>
|
||||
|
@ -616,12 +621,12 @@
|
|||
<lh class="fix">[FIXES]</lh>
|
||||
<li type="disc">Fixed rendering errors in marks function</li>
|
||||
</ul>
|
||||
<h4>0.7 (2012-01-10)</h4>
|
||||
<h4>0.7<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added marks function in notifications module</li>
|
||||
</ul>
|
||||
<h4>0.6.2 (2011-12-09)</h4>
|
||||
<h4>0.6.2<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added Blog URL to preferences screen</li>
|
||||
|
@ -632,7 +637,7 @@
|
|||
<li type="disc">Reinitialized last course selected on database cleaning</li>
|
||||
<li type="disc">Minor changes on error messages</li>
|
||||
</ul>
|
||||
<h4>0.6.1 (2011-11-16)</h4>
|
||||
<h4>0.6.1<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added Google+ account to preferences screen</li>
|
||||
|
@ -645,7 +650,7 @@
|
|||
<lh class="fix">[FIXES]</lh>
|
||||
<li type="disc">Fixed menu operation in all activities</li>
|
||||
</ul>
|
||||
<h4>0.6 (2011-11-06)</h4>
|
||||
<h4>0.6<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added Android 4.0 compatibility</li>
|
||||
|
@ -653,7 +658,7 @@
|
|||
<li type="disc">Added clean database option to application menu</li>
|
||||
<li type="disc">Added name of SWAD's creator to author preferences</li>
|
||||
</ul>
|
||||
<h4>0.5.2 (2011-09-29)</h4>
|
||||
<h4>0.5.2<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added real names of receivers in "Message Sent" toast</li>
|
||||
|
@ -666,12 +671,12 @@
|
|||
<lh class="fix">[FIXES]</lh>
|
||||
<li type="disc">Fixed bug on test questions syncronization</li>
|
||||
</ul>
|
||||
<h4>0.5.1 (2011-09-26)</h4>
|
||||
<h4>0.5.1<h4>
|
||||
<ul>
|
||||
<lh class="fix">[FIXES]</lh>
|
||||
<li type="disc">Fixed bug in reply messages function</li>
|
||||
</ul>
|
||||
<h4>0.5 (2011-09-26)</h4>
|
||||
<h4>0.5<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added messages module</li>
|
||||
|
@ -680,17 +685,17 @@
|
|||
<lh class="fix">[FIXES]</lh>
|
||||
<li type="disc">Minor fixes</li>
|
||||
</ul>
|
||||
<h4>0.4.5 (2011-07-08)</h4>
|
||||
<h4>0.4.5<h4>
|
||||
<ul>
|
||||
<lh class="update">[UPDATES]</lh>
|
||||
<li type="disc">Optimized questions syncronization</li>
|
||||
</ul>
|
||||
<h4>0.4.4 (2011-07-05)</h4>
|
||||
<h4>0.4.4<h4>
|
||||
<ul>
|
||||
<lh class="fix">[FIXES]</lh>
|
||||
<li type="disc">Minor fixes</li>
|
||||
</ul>
|
||||
<h4>0.4.3 (2011-06-15)</h4>
|
||||
<h4>0.4.3<h4>
|
||||
<ul>
|
||||
<lh class="update">[UPDATES]</lh>
|
||||
<li type="disc">Improved tests GUI</li>
|
||||
|
@ -699,7 +704,7 @@
|
|||
<lh class="fix">[FIXES]</lh>
|
||||
<li type="disc">Minor fixes</li>
|
||||
</ul>
|
||||
<h4>0.4.2 (2011-06-15)</h4>
|
||||
<h4>0.4.2<h4>
|
||||
<ul>
|
||||
<lh class="update">[UPDATES]</lh>
|
||||
<li type="disc">Now not answered questions score as 0</li>
|
||||
|
@ -708,7 +713,7 @@
|
|||
</li>
|
||||
<li type="disc">Improved tests GUI</li>
|
||||
</ul>
|
||||
<h4>0.4.1 (2011-06-14)</h4>
|
||||
<h4>0.4.1<h4>
|
||||
<ul>
|
||||
<lh class="update">[UPDATES]</lh>
|
||||
<li type="disc">Allowed negative scores on tests</li>
|
||||
|
@ -717,7 +722,7 @@
|
|||
<lh class="fix">[FIXES]</lh>
|
||||
<li type="disc">Fixed bug on questions syncronization</li>
|
||||
</ul>
|
||||
<h4>0.4 (2011-06-13)</h4>
|
||||
<h4>0.4<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added tests module</li>
|
||||
|
@ -726,7 +731,7 @@
|
|||
<lh class="fix">[FIXES]</lh>
|
||||
<li type="disc">Minor fixes</li>
|
||||
</ul>
|
||||
<h4>0.3.10 (2011-05-19)</h4>
|
||||
<h4>0.3.10<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added assignment, survey and unknown notifications</li>
|
||||
|
@ -734,28 +739,28 @@
|
|||
<li type="disc">Added forced relogin if connection time exceeds a certain period</li>
|
||||
<li type="disc">Added incorrect user or password error message</li>
|
||||
</ul>
|
||||
<h4>0.3.9 (2011-05-03)</h4>
|
||||
<h4>0.3.9<h4>
|
||||
<ul>
|
||||
<lh class="fix">[FIXES]</lh>
|
||||
<li type="disc">Fixed empty fields bug on notifications module</li>
|
||||
</ul>
|
||||
<h4>0.3.8 (2011-04-27)</h4>
|
||||
<h4>0.3.8<h4>
|
||||
<ul>
|
||||
<lh class="fix">[FIXES]</lh>
|
||||
<li type="disc">Fixed bug on cleaning old notifications</li>
|
||||
</ul>
|
||||
<h4>0.3.7 (2011-04-14)</h4>
|
||||
<h4>0.3.7<h4>
|
||||
<ul>
|
||||
<lh class="fix">[FIXES]</lh>
|
||||
<li type="disc">Fixed notifications bug in surname</li>
|
||||
</ul>
|
||||
<h4>0.3.6 (2011-04-13)</h4>
|
||||
<h4>0.3.6<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added notification details</li>
|
||||
<li type="disc">Added upgrade dialog</li>
|
||||
</ul>
|
||||
<h4>0.3.5 (2011-04-05)</h4>
|
||||
<h4>0.3.5<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added action bar</li>
|
||||
|
@ -766,7 +771,7 @@
|
|||
<li type="disc">Improved GUI</li>
|
||||
<li type="disc">Improved performance</li>
|
||||
</ul>
|
||||
<h4>0.3.4 (2011-03-27)</h4>
|
||||
<h4>0.3.4<h4>
|
||||
<ul>
|
||||
<lh class="update">[UPDATES]</lh>
|
||||
<li type="disc">Improved GUI</li>
|
||||
|
@ -775,12 +780,12 @@
|
|||
<lh class="fix">[FIXES]</lh>
|
||||
<li type="disc">Fixed minor errors on error messages</li>
|
||||
</ul>
|
||||
<h4>0.3.3 (2011-03-27)</h4>
|
||||
<h4>0.3.3<h4>
|
||||
<ul>
|
||||
<lh class="update">[UPDATES]</lh>
|
||||
<li type="disc">Redesigned GUI</li>
|
||||
</ul>
|
||||
<h4>0.3.2 (2011-03-24)</h4>
|
||||
<h4>0.3.2<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added first run dialog</li>
|
||||
|
@ -789,7 +794,7 @@
|
|||
<lh class="update">[UPDATES]</lh>
|
||||
<li type="disc">Improved preferences screen</li>
|
||||
</ul>
|
||||
<h4>0.3.1 (2011-03-21)</h4>
|
||||
<h4>0.3.1<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added automatic saving of preferences</li>
|
||||
|
@ -804,13 +809,13 @@
|
|||
<lh class="fix">[FIXES]</lh>
|
||||
<li type="disc">Fixed compatibility issues with some devices</li>
|
||||
</ul>
|
||||
<h4>0.3 (2011-03-08)</h4>
|
||||
<h4>0.3<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added notifications module</li>
|
||||
<li type="disc">Added Android 3.0 Honeycomb compatibility</li>
|
||||
</ul>
|
||||
<h4>0.2.2 (2011-01-18)</h4>
|
||||
<h4>0.2.2<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added connection check</li>
|
||||
|
@ -827,19 +832,19 @@
|
|||
<li type="disc">Fixed launcher icons</li>
|
||||
<li type="disc">Fixed Android 1.6 compatibility issues</li>
|
||||
</ul>
|
||||
<h4>0.2.1 (2010-12-15)</h4>
|
||||
<h4>0.2.1<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added Android 2.3 Gingerbread compatibility</li>
|
||||
<li type="disc">Completed login module</li>
|
||||
</ul>
|
||||
<h4>0.2 (2010-12-08)</h4>
|
||||
<h4>0.2<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added auto logout when user id or password changes</li>
|
||||
<li type="disc">Added initial database</li>
|
||||
</ul>
|
||||
<h4>0.1.1 (2010-11-06)</h4>
|
||||
<h4>0.1.1<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">Added background image to main activity</li>
|
||||
|
@ -848,7 +853,7 @@
|
|||
<lh class="fix">[Fixes]</lh>
|
||||
<li type="disc">Minor fixes on main screen</li>
|
||||
</ul>
|
||||
<h4>0.1 (2010-11-03)</h4>
|
||||
<h4>0.1<h4>
|
||||
<ul>
|
||||
<lh class="new">[NEW]</lh>
|
||||
<li type="disc">First release</li>
|
||||
|
|
|
@ -356,4 +356,5 @@
|
|||
<string name="checkIn">Hora</string>
|
||||
<string name="lostLocation">Ubicación no encontrada</string>
|
||||
<string name="nearestLocation">Punto de acceso inalámbrico más cercano</string>
|
||||
<string name="appRunningBackground">SWADroid se está ejecutando</string>
|
||||
</resources>
|
||||
|
|
|
@ -372,4 +372,5 @@
|
|||
<string name="checkIn">Time</string>
|
||||
<string name="lostLocation">Location not found</string>
|
||||
<string name="nearestLocation">Nearest wireless access point</string>
|
||||
<string name="appRunningBackground">SWADroid is running</string>
|
||||
</resources>
|
||||
|
|
|
@ -66,26 +66,6 @@
|
|||
android:key="sharePref"
|
||||
android:summary="@string/shareBodyMsg"
|
||||
android:title="@string/shareTitle_menu" />
|
||||
<Preference
|
||||
android:defaultValue=""
|
||||
android:key="blogPref"
|
||||
android:summary="@string/blogURL"
|
||||
android:title="@string/blogTitle" />
|
||||
<Preference
|
||||
android:defaultValue=""
|
||||
android:key="twitterPref"
|
||||
android:summary="@string/twitterUser"
|
||||
android:title="@string/twitterTitle" />
|
||||
<Preference
|
||||
android:defaultValue=""
|
||||
android:key="facebookPref"
|
||||
android:summary="@string/facebookURL"
|
||||
android:title="@string/facebookTitle" />
|
||||
<Preference
|
||||
android:defaultValue=""
|
||||
android:key="telegramPref"
|
||||
android:summary="@string/telegramURL"
|
||||
android:title="@string/telegramTitle" />
|
||||
<Preference
|
||||
android:defaultValue=""
|
||||
android:key="privacyPolicyPref"
|
||||
|
|
Loading…
Reference in New Issue
Block a user