parent
							
								
									7724964a36
								
							
						
					
					
						commit
						8de695585d
					
				| @ -1,50 +0,0 @@ | |||||||
| /** |  | ||||||
|  * Copyright (C) 2011 Whisper Systems |  | ||||||
|  * |  | ||||||
|  * This program 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. |  | ||||||
|  * |  | ||||||
|  * This program 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 this program.  If not, see <http://www.gnu.org/licenses/>.
 |  | ||||||
|  */ |  | ||||||
| package org.thoughtcrime.securesms.util; |  | ||||||
| 
 |  | ||||||
| import org.thoughtcrime.securesms.sms.SmsTransportDetails; |  | ||||||
| 
 |  | ||||||
| public class EncryptedSmsCharacterCalculator extends CharacterCalculator { |  | ||||||
| 
 |  | ||||||
|   private CharacterState calculateSingleRecordCharacters(int charactersSpent) { |  | ||||||
|     int charactersRemaining = SmsTransportDetails.ENCRYPTED_SINGLE_MESSAGE_BODY_MAX_SIZE - charactersSpent; |  | ||||||
| 
 |  | ||||||
|     return new CharacterState(1, charactersRemaining, SmsTransportDetails.ENCRYPTED_SINGLE_MESSAGE_BODY_MAX_SIZE); |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   private CharacterState calculateMultiRecordCharacters(int charactersSpent) { |  | ||||||
|     int charactersInFirstRecord = SmsTransportDetails.ENCRYPTED_SINGLE_MESSAGE_BODY_MAX_SIZE; |  | ||||||
|     int spillover               = charactersSpent - charactersInFirstRecord; |  | ||||||
|     int spilloverMessagesSpent  = spillover / SmsTransportDetails.MULTI_MESSAGE_MAX_BYTES; |  | ||||||
| 
 |  | ||||||
|     if ((spillover % SmsTransportDetails.MULTI_MESSAGE_MAX_BYTES) > 0) |  | ||||||
|       spilloverMessagesSpent++; |  | ||||||
| 
 |  | ||||||
|     int charactersRemaining = (SmsTransportDetails.MULTI_MESSAGE_MAX_BYTES * spilloverMessagesSpent) - spillover; |  | ||||||
| 
 |  | ||||||
|     return new CharacterState(spilloverMessagesSpent+1, charactersRemaining, SmsTransportDetails.MULTI_MESSAGE_MAX_BYTES); |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   @Override |  | ||||||
|   public CharacterState calculateCharacters(int charactersSpent) { |  | ||||||
|     if (charactersSpent <= SmsTransportDetails.ENCRYPTED_SINGLE_MESSAGE_BODY_MAX_SIZE) { |  | ||||||
|       return calculateSingleRecordCharacters(charactersSpent); |  | ||||||
|     } else { |  | ||||||
|       return calculateMultiRecordCharacters(charactersSpent); |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| } |  | ||||||
					Loading…
					
					
				
		Reference in New Issue