36 lines
		
	
	
	
		
			917 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			917 B
		
	
	
	
		
			C++
		
	
	
	
	
	
/*
 | 
						|
This file is part of Telegram Desktop,
 | 
						|
the official desktop application for the Telegram messaging service.
 | 
						|
 | 
						|
For license and copyright information please follow this link:
 | 
						|
https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
 | 
						|
*/
 | 
						|
#include "chat_helpers/field_characters_count_manager.h"
 | 
						|
 | 
						|
FieldCharsCountManager::FieldCharsCountManager() = default;
 | 
						|
 | 
						|
void FieldCharsCountManager::setCount(int count) {
 | 
						|
	_previous = _current;
 | 
						|
	_current = count;
 | 
						|
	if (_previous != _current) {
 | 
						|
		constexpr auto kMax = 15;
 | 
						|
		const auto was = (_previous > kMax);
 | 
						|
		const auto now = (_current > kMax);
 | 
						|
		if (was != now) {
 | 
						|
			_isLimitExceeded = now;
 | 
						|
			_limitExceeds.fire({});
 | 
						|
		}
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
int FieldCharsCountManager::count() const {
 | 
						|
	return _current;
 | 
						|
}
 | 
						|
 | 
						|
bool FieldCharsCountManager::isLimitExceeded() const {
 | 
						|
	return _isLimitExceeded;
 | 
						|
}
 | 
						|
 | 
						|
rpl::producer<> FieldCharsCountManager::limitExceeds() const {
 | 
						|
	return _limitExceeds.events();
 | 
						|
}
 |