made grace period on a per account basis
This commit is contained in:
		
							parent
							
								
									5e3caf9626
								
							
						
					
					
						commit
						3372e50155
					
				|  | @ -10,7 +10,7 @@ public final class Config { | |||
| 	public static final int PING_MIN_INTERVAL = 30; | ||||
| 	public static final int PING_TIMEOUT = 10; | ||||
| 	public static final int CONNECT_TIMEOUT = 90; | ||||
| 	public static final int CARBON_GRACE_PERIOD = 120; | ||||
| 	public static final int CARBON_GRACE_PERIOD = 60; | ||||
| 
 | ||||
| 	public static final int AVATAR_SIZE = 192; | ||||
| 	public static final Bitmap.CompressFormat AVATAR_FORMAT = Bitmap.CompressFormat.WEBP; | ||||
|  |  | |||
|  | @ -11,6 +11,7 @@ import net.java.otr4j.crypto.OtrCryptoException; | |||
| import org.json.JSONException; | ||||
| import org.json.JSONObject; | ||||
| 
 | ||||
| import eu.siacs.conversations.Config; | ||||
| import eu.siacs.conversations.R; | ||||
| import eu.siacs.conversations.crypto.OtrEngine; | ||||
| import eu.siacs.conversations.persistance.FileBackend; | ||||
|  | @ -21,6 +22,7 @@ import android.content.ContentValues; | |||
| import android.content.Context; | ||||
| import android.database.Cursor; | ||||
| import android.graphics.Bitmap; | ||||
| import android.os.SystemClock; | ||||
| 
 | ||||
| public class Account extends AbstractEntity { | ||||
| 
 | ||||
|  | @ -64,16 +66,14 @@ public class Account extends AbstractEntity { | |||
| 
 | ||||
| 	protected boolean online = false; | ||||
| 
 | ||||
| 	transient OtrEngine otrEngine = null; | ||||
| 	transient XmppConnection xmppConnection = null; | ||||
| 	transient protected Presences presences = new Presences(); | ||||
| 
 | ||||
| 	private OtrEngine otrEngine = null; | ||||
| 	private XmppConnection xmppConnection = null; | ||||
| 	private Presences presences = new Presences(); | ||||
| 	private long mEndGracePeriod = 0L; | ||||
| 	private String otrFingerprint; | ||||
| 
 | ||||
| 	private Roster roster = null; | ||||
| 	 | ||||
| 	private List<Bookmark> bookmarks = new CopyOnWriteArrayList<Bookmark>(); | ||||
| 
 | ||||
| 	public List<Conversation> pendingConferenceJoins = new CopyOnWriteArrayList<Conversation>(); | ||||
| 	public List<Conversation> pendingConferenceLeaves = new CopyOnWriteArrayList<Conversation>(); | ||||
| 
 | ||||
|  | @ -401,4 +401,17 @@ public class Account extends AbstractEntity { | |||
| 			return R.string.account_status_unknown; | ||||
| 		} | ||||
| 	} | ||||
| 	 | ||||
| 	public void activateGracePeriod() { | ||||
| 		this.mEndGracePeriod = SystemClock.elapsedRealtime() | ||||
| 				+ (Config.CARBON_GRACE_PERIOD * 1000); | ||||
| 	} | ||||
| 
 | ||||
| 	public void deactivateGracePeriod() { | ||||
| 		this.mEndGracePeriod = 0L; | ||||
| 	} | ||||
| 
 | ||||
| 	public boolean inGracePeriod() { | ||||
| 		return SystemClock.elapsedRealtime() < this.mEndGracePeriod; | ||||
| 	} | ||||
| } | ||||
|  |  | |||
|  | @ -417,8 +417,7 @@ public class MessageParser extends AbstractParser implements | |||
| 				message = this.parseCarbonMessage(packet, account); | ||||
| 				if (message != null) { | ||||
| 					if (message.getStatus() == Message.STATUS_SEND) { | ||||
| 						mXmppConnectionService.getNotificationService() | ||||
| 								.activateGracePeriod(); | ||||
| 						account.activateGracePeriod(); | ||||
| 						notify = false; | ||||
| 						mXmppConnectionService.markRead( | ||||
| 								message.getConversation(), false); | ||||
|  | @ -440,8 +439,7 @@ public class MessageParser extends AbstractParser implements | |||
| 				} else { | ||||
| 					mXmppConnectionService.markRead(message.getConversation(), | ||||
| 							false); | ||||
| 					mXmppConnectionService.getNotificationService() | ||||
| 							.activateGracePeriod(); | ||||
| 					account.activateGracePeriod(); | ||||
| 					notify = false; | ||||
| 				} | ||||
| 			} | ||||
|  |  | |||
|  | @ -58,8 +58,7 @@ public class PresenceParser extends AbstractParser implements | |||
| 							Presences.parseShow(packet.findChild("show"))); | ||||
| 				} else if (type.equals("unavailable")) { | ||||
| 					account.removePresence(fromParts[1]); | ||||
| 					mXmppConnectionService.getNotificationService() | ||||
| 							.deactivateGracePeriod(); | ||||
| 					account.deactivateGracePeriod(); | ||||
| 				} | ||||
| 			} | ||||
| 		} else { | ||||
|  |  | |||
|  | @ -20,6 +20,7 @@ import android.text.Html; | |||
| 
 | ||||
| import eu.siacs.conversations.Config; | ||||
| import eu.siacs.conversations.R; | ||||
| import eu.siacs.conversations.entities.Account; | ||||
| import eu.siacs.conversations.entities.Conversation; | ||||
| import eu.siacs.conversations.entities.Message; | ||||
| import eu.siacs.conversations.ui.ConversationActivity; | ||||
|  | @ -35,8 +36,6 @@ public class NotificationService { | |||
| 	private Conversation mOpenConversation; | ||||
| 	private boolean mIsInForeground; | ||||
| 	 | ||||
| 	private long mEndGracePeriod = 0L; | ||||
| 
 | ||||
| 	public NotificationService(XmppConnectionService service) { | ||||
| 		this.mXmppConnectionService = service; | ||||
| 		this.mNotificationManager = (NotificationManager) service | ||||
|  | @ -62,8 +61,9 @@ public class NotificationService { | |||
| 				notifications.put(conversationUuid, mList); | ||||
| 			} | ||||
| 		} | ||||
| 		Account account = message.getConversation().getAccount(); | ||||
| 		updateNotification((!(this.mIsInForeground && this.mOpenConversation == null) || !isScreenOn) | ||||
| 				&& !inGracePeriod()); | ||||
| 				&& !account.inGracePeriod()); | ||||
| 	} | ||||
| 
 | ||||
| 	public void clear() { | ||||
|  | @ -170,9 +170,7 @@ public class NotificationService { | |||
| 				} | ||||
| 			} | ||||
| 			mBuilder.setDeleteIntent(createDeleteIntent()); | ||||
| 			if (!inGracePeriod()) { | ||||
| 				mBuilder.setLights(0xffffffff, 2000, 4000); | ||||
| 			} | ||||
| 			mBuilder.setLights(0xffffffff, 2000, 4000); | ||||
| 			Notification notification = mBuilder.build(); | ||||
| 			mNotificationManager.notify(NOTIFICATION_ID, notification); | ||||
| 		} | ||||
|  | @ -231,17 +229,4 @@ public class NotificationService { | |||
| 	public void setIsInForeground(boolean foreground) { | ||||
| 		this.mIsInForeground = foreground; | ||||
| 	} | ||||
| 
 | ||||
| 	public void activateGracePeriod() { | ||||
| 		this.mEndGracePeriod = SystemClock.elapsedRealtime() | ||||
| 				+ (Config.CARBON_GRACE_PERIOD * 1000); | ||||
| 	} | ||||
| 
 | ||||
| 	public void deactivateGracePeriod() { | ||||
| 		this.mEndGracePeriod = 0L; | ||||
| 	} | ||||
| 
 | ||||
| 	private boolean inGracePeriod() { | ||||
| 		return SystemClock.elapsedRealtime() < this.mEndGracePeriod; | ||||
| 	} | ||||
| } | ||||
|  |  | |||
|  | @ -529,6 +529,7 @@ public class XmppConnectionService extends Service { | |||
| 
 | ||||
| 	synchronized public void sendMessage(Message message) { | ||||
| 		Account account = message.getConversation().getAccount(); | ||||
| 		account.deactivateGracePeriod(); | ||||
| 		Conversation conv = message.getConversation(); | ||||
| 		MessagePacket packet = null; | ||||
| 		boolean saveInDb = true; | ||||
|  | @ -1019,7 +1020,6 @@ public class XmppConnectionService extends Service { | |||
| 			return; | ||||
| 		} | ||||
| 		synchronized (this.convChangedListenerCount) { | ||||
| 			this.mNotificationService.deactivateGracePeriod(); | ||||
| 			if (checkListeners()) { | ||||
| 				switchToForeground(); | ||||
| 			} | ||||
|  | @ -1049,7 +1049,6 @@ public class XmppConnectionService extends Service { | |||
| 			return; | ||||
| 		} | ||||
| 		synchronized (this.accountChangedListenerCount) { | ||||
| 			this.mNotificationService.deactivateGracePeriod(); | ||||
| 			if (checkListeners()) { | ||||
| 				switchToForeground(); | ||||
| 			} | ||||
|  | @ -1077,7 +1076,6 @@ public class XmppConnectionService extends Service { | |||
| 			return; | ||||
| 		} | ||||
| 		synchronized (this.rosterChangedListenerCount) { | ||||
| 			this.mNotificationService.deactivateGracePeriod(); | ||||
| 			if (checkListeners()) { | ||||
| 				switchToForeground(); | ||||
| 			} | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 iNPUTmice
						iNPUTmice