brought restart threshold down to 8 times in 8h
This commit is contained in:
parent
1ef8d0a746
commit
698ddadbee
|
@ -101,8 +101,8 @@ public final class Config {
|
||||||
public static final long MAM_MAX_CATCHUP = MILLISECONDS_IN_DAY / 2;
|
public static final long MAM_MAX_CATCHUP = MILLISECONDS_IN_DAY / 2;
|
||||||
public static final int MAM_MAX_MESSAGES = 500;
|
public static final int MAM_MAX_MESSAGES = 500;
|
||||||
|
|
||||||
public static final long FREQUENT_RESTARTS_DETECTION_WINDOW = 10 * 60 * 60 * 1000; // 10 hours
|
public static final long FREQUENT_RESTARTS_DETECTION_WINDOW = 8 * 60 * 60 * 1000; // 10 hours
|
||||||
public static final long FREQUENT_RESTARTS_THRESHOLD = 10;
|
public static final long FREQUENT_RESTARTS_THRESHOLD = 8;
|
||||||
|
|
||||||
public static final ChatState DEFAULT_CHATSTATE = ChatState.ACTIVE;
|
public static final ChatState DEFAULT_CHATSTATE = ChatState.ACTIVE;
|
||||||
public static final int TYPING_TIMEOUT = 8;
|
public static final int TYPING_TIMEOUT = 8;
|
||||||
|
|
|
@ -139,7 +139,9 @@ public class DatabaseBackend extends SQLiteOpenHelper {
|
||||||
+ ") ON CONFLICT IGNORE"
|
+ ") ON CONFLICT IGNORE"
|
||||||
+ ");";
|
+ ");";
|
||||||
|
|
||||||
private static String CREATE_START_TIMES_TABLE = "create table start_times (timestamp NUMBER);";
|
private static String START_TIMES_TABLE = "start_times";
|
||||||
|
|
||||||
|
private static String CREATE_START_TIMES_TABLE = "create table "+START_TIMES_TABLE+" (timestamp NUMBER);";
|
||||||
|
|
||||||
private DatabaseBackend(Context context) {
|
private DatabaseBackend(Context context) {
|
||||||
super(context, DATABASE_NAME, null, DATABASE_VERSION);
|
super(context, DATABASE_NAME, null, DATABASE_VERSION);
|
||||||
|
@ -1232,16 +1234,24 @@ public class DatabaseBackend extends SQLiteOpenHelper {
|
||||||
public boolean startTimeCountExceedsThreshold() {
|
public boolean startTimeCountExceedsThreshold() {
|
||||||
SQLiteDatabase db = this.getWritableDatabase();
|
SQLiteDatabase db = this.getWritableDatabase();
|
||||||
long cleanBeforeTimestamp = System.currentTimeMillis() - Config.FREQUENT_RESTARTS_DETECTION_WINDOW;
|
long cleanBeforeTimestamp = System.currentTimeMillis() - Config.FREQUENT_RESTARTS_DETECTION_WINDOW;
|
||||||
db.execSQL("delete from start_times where timestamp < "+cleanBeforeTimestamp);
|
db.execSQL("delete from "+START_TIMES_TABLE+" where timestamp < "+cleanBeforeTimestamp);
|
||||||
ContentValues values = new ContentValues();
|
ContentValues values = new ContentValues();
|
||||||
values.put("timestamp",System.currentTimeMillis());
|
values.put("timestamp",System.currentTimeMillis());
|
||||||
db.insert("start_times",null,values);
|
db.insert(START_TIMES_TABLE,null,values);
|
||||||
String[] columns = new String[]{"count(timestamp)"};
|
String[] columns = new String[]{"count(timestamp)"};
|
||||||
Cursor cursor = db.query("start_times",columns,null,null,null,null,null);
|
Cursor cursor = db.query(START_TIMES_TABLE,columns,null,null,null,null,null);
|
||||||
|
int count;
|
||||||
if (cursor.moveToFirst()) {
|
if (cursor.moveToFirst()) {
|
||||||
return cursor.getInt(0) >= Config.FREQUENT_RESTARTS_THRESHOLD;
|
count = cursor.getInt(0);
|
||||||
} else {
|
} else {
|
||||||
return false;
|
count = 0;
|
||||||
}
|
}
|
||||||
|
cursor.close();
|
||||||
|
return count >= Config.FREQUENT_RESTARTS_THRESHOLD;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void clearStartTimeCounter() {
|
||||||
|
SQLiteDatabase db = this.getWritableDatabase();
|
||||||
|
db.execSQL("delete from "+START_TIMES_TABLE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3605,6 +3605,15 @@ public class XmppConnectionService extends Service {
|
||||||
conversation.setBookmark(bookmark);
|
conversation.setBookmark(bookmark);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void clearStartTimeCounter() {
|
||||||
|
mDatabaseExecutor.execute(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
databaseBackend.clearStartTimeCounter();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
public interface OnMamPreferencesFetched {
|
public interface OnMamPreferencesFetched {
|
||||||
void onPreferencesFetched(Element prefs);
|
void onPreferencesFetched(Element prefs);
|
||||||
void onPreferencesFetchFailed();
|
void onPreferencesFetchFailed();
|
||||||
|
|
|
@ -249,6 +249,10 @@ public class SettingsActivity extends XmppActivity implements
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (name.equals("keep_foreground_service")) {
|
} else if (name.equals("keep_foreground_service")) {
|
||||||
|
boolean foreground_service = preferences.getBoolean("keep_foreground_service",false);
|
||||||
|
if (!foreground_service) {
|
||||||
|
xmppConnectionService.clearStartTimeCounter();
|
||||||
|
}
|
||||||
xmppConnectionService.toggleForegroundService();
|
xmppConnectionService.toggleForegroundService();
|
||||||
} else if (resendPresence.contains(name)) {
|
} else if (resendPresence.contains(name)) {
|
||||||
if (xmppConnectionServiceBound) {
|
if (xmppConnectionServiceBound) {
|
||||||
|
|
Loading…
Reference in a new issue