|  |  |  | @ -28,11 +28,10 @@ import kotlin.time.Duration.Companion.seconds | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | data class State(val duration: Duration) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | private val DONE_TIME = 1.seconds | 
		
	
		
			
				|  |  |  |  | private val DONE_ANIMATE_TIME = 500.milliseconds | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | private val TOTAL_ANIMATE_TIME = 14.seconds | 
		
	
		
			
				|  |  |  |  | private val TOTAL_TIME = 15.seconds | 
		
	
		
			
				|  |  |  |  | private val ANIMATE_TO_DONE_TIME = 500.milliseconds | 
		
	
		
			
				|  |  |  |  | private val IDLE_DONE_TIME = 1.seconds | 
		
	
		
			
				|  |  |  |  | private val TIMEOUT_TIME = 15.seconds | 
		
	
		
			
				|  |  |  |  | private val TOTAL_ANIMATION_TIME = TIMEOUT_TIME - IDLE_DONE_TIME | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | @HiltViewModel | 
		
	
		
			
				|  |  |  |  | class LoadingViewModel @Inject constructor( | 
		
	
	
		
			
				
					|  |  |  | @ -40,7 +39,7 @@ class LoadingViewModel @Inject constructor( | 
		
	
		
			
				|  |  |  |  |     private val prefs: TextSecurePreferences, | 
		
	
		
			
				|  |  |  |  | ) : ViewModel() { | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     private val state = MutableStateFlow(State(TOTAL_ANIMATE_TIME)) | 
		
	
		
			
				|  |  |  |  |     private val state = MutableStateFlow(State(TOTAL_ANIMATION_TIME)) | 
		
	
		
			
				|  |  |  |  |     val stateFlow = state.asStateFlow() | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     private val event = Channel<Event>() | 
		
	
	
		
			
				
					|  |  |  | @ -77,7 +76,7 @@ class LoadingViewModel @Inject constructor( | 
		
	
		
			
				|  |  |  |  |             } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |             val skipJob = launch(Dispatchers.IO) { | 
		
	
		
			
				|  |  |  |  |                 delay(TOTAL_TIME) | 
		
	
		
			
				|  |  |  |  |                 delay(TIMEOUT_TIME) | 
		
	
		
			
				|  |  |  |  |                 event.send(Event.TIMEOUT) | 
		
	
		
			
				|  |  |  |  |             } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
	
		
			
				
					|  |  |  | @ -87,8 +86,8 @@ class LoadingViewModel @Inject constructor( | 
		
	
		
			
				|  |  |  |  |                 // handle we've synced | 
		
	
		
			
				|  |  |  |  |                 skipJob.cancel() | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |                 state.value = State(DONE_ANIMATE_TIME) | 
		
	
		
			
				|  |  |  |  |                 delay(DONE_TIME) | 
		
	
		
			
				|  |  |  |  |                 state.value = State(ANIMATE_TO_DONE_TIME) | 
		
	
		
			
				|  |  |  |  |                 delay(IDLE_DONE_TIME) | 
		
	
		
			
				|  |  |  |  |                 event.send(Event.SUCCESS) | 
		
	
		
			
				|  |  |  |  |             } | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
	
		
			
				
					|  |  |  | 
 |