MWI icon when count is 0
Display MWI button if a voicemail URI is defined or MWI notification Fix MWI call button size
This commit is contained in:
parent
345c90d244
commit
b2d0c29d40
6 changed files with 53 additions and 17 deletions
3
Linphone/data/image/bell-mwi.svg
Normal file
3
Linphone/data/image/bell-mwi.svg
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
<svg width="11" height="12" viewBox="0 0 11 12" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M9.38604 7.46169C9.03394 6.85605 8.84694 5.98675 8.84694 4.9495C8.84694 4.04579 8.48794 3.17909 7.84892 2.54007C7.2099 1.90105 6.3432 1.54205 5.43949 1.54205C4.53577 1.54205 3.66907 1.90105 3.03005 2.54007C2.39103 3.17909 2.03203 4.04579 2.03203 4.9495C2.03203 5.98715 1.84584 6.85605 1.49374 7.46169C1.42189 7.58522 1.3838 7.72547 1.38331 7.86838C1.38281 8.01128 1.41991 8.1518 1.4909 8.27583C1.56143 8.39992 1.66381 8.50294 1.78746 8.57425C1.91111 8.64556 2.05156 8.68258 2.19429 8.68148H3.66193C3.70218 9.12511 3.90687 9.53765 4.23577 9.83807C4.56468 10.1385 4.99403 10.305 5.43949 10.305C5.88494 10.305 6.31429 10.1385 6.6432 9.83807C6.9721 9.53765 7.17679 9.12511 7.21704 8.68148H8.68468C8.82721 8.68236 8.9674 8.64524 9.09082 8.57394C9.21423 8.50264 9.31642 8.39974 9.38686 8.27583C9.45815 8.15198 9.4956 8.01155 9.49546 7.86865C9.49532 7.72575 9.45758 7.5854 9.38604 7.46169ZM5.43949 9.33051C5.25246 9.33055 5.07116 9.26597 4.92627 9.1477C4.78139 9.02942 4.68182 8.86473 4.64441 8.68148H6.23456C6.19715 8.86473 6.09758 9.02942 5.9527 9.1477C5.80781 9.26597 5.62651 9.33055 5.43949 9.33051ZM2.46446 7.70792C2.82345 6.97775 3.00559 6.05044 3.00559 4.9495C3.00559 4.304 3.26202 3.68493 3.71846 3.22848C4.17491 2.77204 4.79398 2.51561 5.43949 2.51561C6.08499 2.51561 6.70406 2.77204 7.16051 3.22848C7.61695 3.68493 7.87338 4.304 7.87338 4.9495C7.87338 6.05003 8.05511 6.97775 8.41411 7.70792H2.46446Z" fill="white"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 1.5 KiB |
|
|
@ -317,7 +317,7 @@ QString AccountModel::dialPlanAsString(const std::shared_ptr<linphone::DialPlan>
|
||||||
int AccountModel::getVoicemailCount() {
|
int AccountModel::getVoicemailCount() {
|
||||||
auto userData = getUserData(mMonitor);
|
auto userData = getUserData(mMonitor);
|
||||||
if (userData) return userData->voicemailCount;
|
if (userData) return userData->voicemailCount;
|
||||||
else return 1;
|
else return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AccountModel::getShowMwi() {
|
bool AccountModel::getShowMwi() {
|
||||||
|
|
|
||||||
|
|
@ -146,9 +146,11 @@ Control.Control{
|
||||||
Voicemail {
|
Voicemail {
|
||||||
Layout.leftMargin: 18 * DefaultStyle.dp
|
Layout.leftMargin: 18 * DefaultStyle.dp
|
||||||
Layout.rightMargin: 20 * DefaultStyle.dp
|
Layout.rightMargin: 20 * DefaultStyle.dp
|
||||||
Layout.preferredWidth: 27 * DefaultStyle.dp
|
Layout.preferredWidth: 30 * DefaultStyle.dp
|
||||||
Layout.preferredHeight: 28 * DefaultStyle.dp
|
Layout.preferredHeight: 26 * DefaultStyle.dp
|
||||||
visible: mainItem.account.core.showMwi
|
scaleFactor: 0.7
|
||||||
|
showMwi: mainItem.account.core.showMwi
|
||||||
|
visible: mainItem.account.core.voicemailAddress.length > 0 || mainItem.account.core.showMwi
|
||||||
voicemailCount: mainItem.account.core.voicemailCount
|
voicemailCount: mainItem.account.core.voicemailCount
|
||||||
onClicked: {
|
onClicked: {
|
||||||
if (mainItem.account.core.voicemailAddress.length > 0)
|
if (mainItem.account.core.voicemailAddress.length > 0)
|
||||||
|
|
|
||||||
|
|
@ -9,16 +9,22 @@ import SettingsCpp
|
||||||
Rectangle{
|
Rectangle{
|
||||||
id: mainItem
|
id: mainItem
|
||||||
property int voicemailCount: 0
|
property int voicemailCount: 0
|
||||||
width: 27 * DefaultStyle.dp
|
property bool showMwi: false
|
||||||
height: 28 * DefaultStyle.dp
|
width: 42 * DefaultStyle.dp * scaleFactor
|
||||||
|
height: 36 * DefaultStyle.dp * scaleFactor
|
||||||
|
property real scaleFactor: 1.0
|
||||||
signal clicked()
|
signal clicked()
|
||||||
color: 'transparent'
|
color: 'transparent'
|
||||||
Button {
|
Button {
|
||||||
anchors.bottom: parent.bottom
|
anchors.bottom: parent.bottom
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
icon.source: AppIcons.voicemail
|
icon.source: AppIcons.voicemail
|
||||||
width: 24 * DefaultStyle.dp
|
icon.color: DefaultStyle.main2_600
|
||||||
height: 24 * DefaultStyle.dp
|
width: 33 * DefaultStyle.dp * scaleFactor
|
||||||
|
height: width
|
||||||
|
icon.width: width
|
||||||
|
icon.height: width
|
||||||
|
padding: 0
|
||||||
background: Item {
|
background: Item {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
}
|
}
|
||||||
|
|
@ -29,11 +35,31 @@ Rectangle{
|
||||||
Text {
|
Text {
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
|
width: 14 * DefaultStyle.dp * scaleFactor
|
||||||
|
height: width
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
font.weight: 700 * DefaultStyle.dp
|
font.weight: 700 * DefaultStyle.dp
|
||||||
font.pixelSize: 10 * DefaultStyle.dp
|
font.pixelSize: 13 * DefaultStyle.dp * scaleFactor
|
||||||
color: DefaultStyle.danger_500main
|
color: DefaultStyle.danger_500main
|
||||||
text: voicemailCount >= 100 ? '99+' : voicemailCount
|
text: voicemailCount >= 100 ? '99+' : voicemailCount
|
||||||
visible: voicemailCount > 0
|
visible: showMwi && voicemailCount > 0
|
||||||
maximumLineCount: 1
|
maximumLineCount: 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
anchors.top: parent.top
|
||||||
|
anchors.right: parent.right
|
||||||
|
color: DefaultStyle.danger_500main
|
||||||
|
visible: showMwi && voicemailCount == 0
|
||||||
|
width: 14 * DefaultStyle.dp * scaleFactor
|
||||||
|
height: width
|
||||||
|
radius: width / 2
|
||||||
|
EffectImage {
|
||||||
|
anchors.fill: parent
|
||||||
|
anchors.margins: 1.5 * DefaultStyle.dp * scaleFactor
|
||||||
|
imageSource: AppIcons.bellMwi
|
||||||
|
colorizationColor: DefaultStyle.grey_0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -295,28 +295,32 @@ Item {
|
||||||
}
|
}
|
||||||
Voicemail {
|
Voicemail {
|
||||||
id: voicemail
|
id: voicemail
|
||||||
Layout.preferredWidth: 27 * DefaultStyle.dp
|
Layout.preferredWidth: 42 * DefaultStyle.dp
|
||||||
Layout.preferredHeight: 28 * DefaultStyle.dp
|
Layout.preferredHeight: 36 * DefaultStyle.dp
|
||||||
|
|
||||||
Repeater {
|
Repeater {
|
||||||
model: accountProxy
|
model: accountProxy
|
||||||
delegate: Item {
|
delegate: Item {
|
||||||
Connections {
|
Connections {
|
||||||
target: modelData.core
|
target: modelData.core
|
||||||
onShowMwiChanged: voicemail.updateCumulatedMwi()
|
onShowMwiChanged: voicemail.updateCumulatedMwi()
|
||||||
|
onVoicemailAddressChanged: voicemail.updateCumulatedMwi()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateCumulatedMwi() {
|
function updateCumulatedMwi() {
|
||||||
var count = 0
|
var count = 0
|
||||||
var show = false
|
var showMwi = false
|
||||||
|
var supportsVoiceMail = false
|
||||||
for (var i=0 ; i < accountProxy.count ; i++ ) {
|
for (var i=0 ; i < accountProxy.count ; i++ ) {
|
||||||
count += accountProxy.getAt(i).core.voicemailCount
|
var core = accountProxy.getAt(i).core
|
||||||
show |= accountProxy.getAt(i).core.showMwi
|
count += core.voicemailCount
|
||||||
|
showMwi |= core.showMwi
|
||||||
|
supportsVoiceMail |= core.voicemailAddress.length > 0
|
||||||
}
|
}
|
||||||
voicemail.visible = show
|
voicemail.showMwi = showMwi
|
||||||
voicemail.voicemailCount = count
|
voicemail.voicemailCount = count
|
||||||
|
voicemail.visible = showMwi || supportsVoiceMail
|
||||||
}
|
}
|
||||||
|
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
|
|
|
||||||
|
|
@ -124,4 +124,5 @@ QtObject {
|
||||||
property string power: "image://internal/power.svg"
|
property string power: "image://internal/power.svg"
|
||||||
property string resourcePackage: "image://internal/resource-package.svg"
|
property string resourcePackage: "image://internal/resource-package.svg"
|
||||||
property string appWindow: "image://internal/app-window.svg"
|
property string appWindow: "image://internal/app-window.svg"
|
||||||
|
property string bellMwi: "image://internal/bell-mwi.svg"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue