summaryrefslogtreecommitdiff
path: root/src/presenters/helpers.cpp
blob: ef4ea0239293e15f1b47af0e0fbd4a5013f40029 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/*
 * Copyright 2017 Samsung Electronics Co., Ltd
 *
 * Licensed under the Flora License, Version 1.1 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://floralicense.org/license/
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#include "common.h"

namespace callui { namespace { namespace himpl {

	const TString STR_HH_MM_SS_TIME{"%02d:%02d:%02d"};
	const TString STR_MM_SS_TIME{"%02d:%02d"};

}}}

namespace callui {

	using namespace ucl;

	void replaceSubstringInString(std::string &str,
			const std::string &from, const std::string &to)
	{
		if (from.empty()) {
			LOG_RETURN_VOID(RES_FAIL, "Parameter from is empty");
		}

		size_t start_pos = 0;
		while((start_pos = str.find(from, start_pos)) != std::string::npos) {
			str.replace(start_pos, from.length(), to);
			start_pos += to.length();
		}
	}

	void setCallDuration(const struct tm &time,
			EdjeWidget &widget,
			const EdjePart &part)
	{
		TString tmp;
		if (time.tm_hour > 0) {
			tmp = himpl::STR_HH_MM_SS_TIME.format(time.tm_hour, time.tm_min, time.tm_sec);
		} else {
			tmp = himpl::STR_MM_SS_TIME.format(time.tm_min, time.tm_sec);
		}
		widget.setText(tmp, part);
	}

	void tryUpdateCallDurationTime(
			struct tm &curTime,
			struct tm &compTime,
			EdjeWidget &widget,
			const EdjePart &part)
	{
		if ((compTime.tm_sec - curTime.tm_sec) != 0) {
			curTime = compTime;
			setCallDuration(curTime, widget, part);
		}
	}

}