enable forground service for sony smartphones by default
This commit is contained in:
		
							parent
							
								
									e722ef6477
								
							
						
					
					
						commit
						51badfa721
					
				| @ -1394,37 +1394,6 @@ public class DatabaseBackend extends SQLiteOpenHelper { | ||||
| 				deleteArgs); | ||||
| 	} | ||||
| 
 | ||||
| 	public boolean startTimeCountExceedsThreshold() { | ||||
| 		SQLiteDatabase db = this.getWritableDatabase(); | ||||
| 		long cleanBeforeTimestamp = System.currentTimeMillis() - Config.FREQUENT_RESTARTS_DETECTION_WINDOW; | ||||
| 		db.execSQL("delete from "+START_TIMES_TABLE+" where timestamp < "+cleanBeforeTimestamp); | ||||
| 		ContentValues values = new ContentValues(); | ||||
| 		values.put("timestamp",System.currentTimeMillis()); | ||||
| 		db.insert(START_TIMES_TABLE,null,values); | ||||
| 		String[] columns = new String[]{"count(timestamp)"}; | ||||
| 		Cursor cursor = db.query(START_TIMES_TABLE,columns,null,null,null,null,null); | ||||
| 		int count; | ||||
| 		if (cursor.moveToFirst()) { | ||||
| 			count = cursor.getInt(0); | ||||
| 		} else { | ||||
| 			count = 0; | ||||
| 		} | ||||
| 		cursor.close(); | ||||
| 		Log.d(Config.LOGTAG,"start time counter reached "+count); | ||||
| 		return count >= Config.FREQUENT_RESTARTS_THRESHOLD; | ||||
| 	} | ||||
| 
 | ||||
| 	public void clearStartTimeCounter(boolean justOne) { | ||||
| 		SQLiteDatabase db = this.getWritableDatabase(); | ||||
| 		if (justOne) { | ||||
| 			db.execSQL("delete from "+START_TIMES_TABLE+" where timestamp in (select timestamp from "+START_TIMES_TABLE+" order by timestamp desc limit 1)"); | ||||
| 			Log.d(Config.LOGTAG,"do not count start up after being swiped away"); | ||||
| 		} else { | ||||
| 			Log.d(Config.LOGTAG,"resetting start time counter"); | ||||
| 			db.execSQL("delete from " + START_TIMES_TABLE); | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	public List<ShortcutService.FrequentContact> getFrequentContacts(int days) { | ||||
| 		SQLiteDatabase db = this.getReadableDatabase(); | ||||
| 		final String SQL = "select "+Conversation.TABLENAME+"."+Conversation.ACCOUNT+","+Conversation.TABLENAME+"."+Conversation.CONTACTJID+" from "+Conversation.TABLENAME+" join "+Message.TABLENAME+" on conversations.uuid=messages.conversationUuid where messages.status!=0 and carbon==0  and conversations.mode=0 and messages.timeSent>=? group by conversations.uuid order by count(body) desc limit 4;"; | ||||
|  | ||||
| @ -999,12 +999,9 @@ public class XmppConnectionService extends Service { | ||||
| 		Log.d(Config.LOGTAG,"restoring accounts..."); | ||||
| 		this.accounts = databaseBackend.getAccounts(); | ||||
| 
 | ||||
| 		if (Config.FREQUENT_RESTARTS_THRESHOLD != 0 | ||||
| 				&& Config.FREQUENT_RESTARTS_DETECTION_WINDOW != 0 | ||||
| 				&& !keepForegroundService() | ||||
| 				&& databaseBackend.startTimeCountExceedsThreshold()) { | ||||
| 		if (this.accounts.size() == 0 && Arrays.asList("Sony","Sony Ericsson").contains(Build.MANUFACTURER)) { | ||||
| 			getPreferences().edit().putBoolean(SettingsActivity.KEEP_FOREGROUND_SERVICE,true).commit(); | ||||
| 			Log.d(Config.LOGTAG,"number of restarts exceeds threshold. enabling foreground service"); | ||||
| 			Log.d(Config.LOGTAG,Build.MANUFACTURER+" is on blacklist. enabling foreground service"); | ||||
| 		} | ||||
| 
 | ||||
| 		restoreFromDatabase(); | ||||
| @ -1107,7 +1104,6 @@ public class XmppConnectionService extends Service { | ||||
| 
 | ||||
| 	private void logoutAndSave(boolean stop) { | ||||
| 		int activeAccounts = 0; | ||||
| 		databaseBackend.clearStartTimeCounter(true); // regular swipes don't count towards restart counter | ||||
| 		for (final Account account : accounts) { | ||||
| 			if (account.getStatus() != Account.State.DISABLED) { | ||||
| 				activeAccounts++; | ||||
| @ -3907,15 +3903,6 @@ public class XmppConnectionService extends Service { | ||||
| 		conversation.setBookmark(bookmark); | ||||
| 	} | ||||
| 
 | ||||
| 	public void clearStartTimeCounter() { | ||||
| 		mDatabaseExecutor.execute(new Runnable() { | ||||
| 			@Override | ||||
| 			public void run() { | ||||
| 				databaseBackend.clearStartTimeCounter(false); | ||||
| 			} | ||||
| 		}); | ||||
| 	} | ||||
| 
 | ||||
| 	public boolean verifyFingerprints(Contact contact, List<XmppUri.Fingerprint> fingerprints) { | ||||
| 		boolean needsRosterWrite = false; | ||||
| 		boolean performedVerification = false; | ||||
|  | ||||
| @ -353,10 +353,6 @@ public class SettingsActivity extends XmppActivity implements | ||||
| 				} | ||||
| 			} | ||||
| 		} else if (name.equals(KEEP_FOREGROUND_SERVICE)) { | ||||
| 			boolean foreground_service = preferences.getBoolean(KEEP_FOREGROUND_SERVICE,false); | ||||
| 			if (!foreground_service) { | ||||
| 				xmppConnectionService.clearStartTimeCounter(); | ||||
| 			} | ||||
| 			xmppConnectionService.toggleForegroundService(); | ||||
| 		} else if (resendPresence.contains(name)) { | ||||
| 			if (xmppConnectionServiceBound) { | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Daniel Gultsch
						Daniel Gultsch