[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [phoneblocker] frontends/blackberry/headless: Merge the call and sms numbers into one map
From: Laszlo Papp <lpapp () kde ! org>
Date: 2015-01-19 22:13:42
Message-ID: E1YDKZq-0007Ac-6T () scm ! kde ! org
[Download RAW message or body]
Git commit 9f9fd27f9bf75c047f11ac0b12e012549015cb7a by Laszlo Papp.
Committed on 19/01/2015 at 09:03.
Pushed by lpapp into branch 'master'.
Merge the call and sms numbers into one map
M +22 -39 frontends/blackberry/headless/blocker.cpp
M +12 -9 frontends/blackberry/headless/blocker.h
http://commits.kde.org/phoneblocker/9f9fd27f9bf75c047f11ac0b12e012549015cb7a
diff --git a/frontends/blackberry/headless/blocker.cpp \
b/frontends/blackberry/headless/blocker.cpp index 36f2ab8..c2951c2 100644
--- a/frontends/blackberry/headless/blocker.cpp
+++ b/frontends/blackberry/headless/blocker.cpp
@@ -41,8 +41,7 @@ Blocker::Blocker(QObject *parent)
connect(&m_messageService, SIGNAL(void messageAdded(AccountKey, ConversationKey, \
MessageKey)), SLOT(checkNewMessage(AccountKey, ConversationKey, \
MessageKey)));
connect(&m_server, SIGNAL(newConnection()), SLOT(handleNewConnection()));
QSettings settings(m_authorName, m_applicationName);
- m_blockedCallNumbers = settings.value(m_blockedCallNumbersKey, \
QStringList()).toStringList();
- m_blockedSmsNumbers = settings.value(m_blockedSmsNumbersKey, \
QStringList()).toStringList(); + m_blockedNumbers = \
settings.value(m_blockedNumbersKey).value<BlockedNumbers>();
m_blockPrivateCallNumbers = settings.value(m_blockPrivateCallNumbersKey, \
false).toBool();
m_blockAllCallNumbers = settings.value(m_blockAllCallNumbersKey, \
false).toBool();
m_blockOutsideContactsCallNumbers = \
settings.value(m_blockOutsideContactsCallNumbersKey, false).toBool(); @@ -54,22 \
+53,25 @@ Blocker::~Blocker() {
}
-void Blocker::blockCall(const QString &phoneNumber)
+void Blocker::block(const QString &phoneNumber, bool call, bool sms)
{
- if (!m_blockedCallNumbers.contains(phoneNumber)) {
- m_blockedCallNumbers.push_back(phoneNumber);
+ if (!m_blockedNumbers.contains(phoneNumber)) {
+ m_blockedNumbers[phoneNumber] = qMakePair(call, sms);
QSettings settings(m_authorName, m_applicationName);
- settings.setValue(m_blockedCallNumbersKey, m_blockedCallNumbers);
+ settings.setValue(m_blockedNumbersKey, \
QVariant::fromValue<BlockedNumbers>(m_blockedNumbers)); settings.sync();
}
}
-void Blocker::unblockCall(const QString &phoneNumber)
+void Blocker::unblock(const QString &phoneNumber, bool call, bool sms)
{
- if (m_blockedCallNumbers.contains(phoneNumber)) {
- m_blockedCallNumbers.removeOne(phoneNumber);
+ if (m_blockedNumbers.contains(phoneNumber)) {
+ if (call and sms)
+ m_blockedNumbers.remove(phoneNumber);
+ else
+ m_blockedNumbers[phoneNumber] = qMakePair(call, sms);
QSettings settings(m_authorName, m_applicationName);
- settings.setValue(m_blockedCallNumbersKey, m_blockedCallNumbers);
+ settings.setValue(m_blockedNumbersKey, \
QVariant::fromValue<BlockedNumbers>(m_blockedNumbers)); settings.sync();
}
}
@@ -92,7 +94,7 @@ void Blocker::blockAllCall()
void Blocker::unblockAllCall()
{
m_blockAllCallNumbers = false;
- m_blockedCallNumbers.clear();
+ m_blockedNumbers.clear();
}
void Blocker::blockOutsideContactsCall()
@@ -105,31 +107,10 @@ void Blocker::unblockOutsideContactsCall()
m_blockOutsideContactsCallNumbers = false;
}
-void Blocker::blockSms(const QString &phoneNumber)
-{
- if (!m_blockedSmsNumbers.contains(phoneNumber)) {
- m_blockedSmsNumbers.push_back(phoneNumber);
- QSettings settings(m_authorName, m_applicationName);
- settings.setValue(m_blockedCallNumbersKey, m_blockedCallNumbers);
- settings.sync();
- }
-}
-
-void Blocker::unblockSms(const QString &phoneNumber)
-{
- if (m_blockedSmsNumbers.contains(phoneNumber)) {
- m_blockedSmsNumbers.removeOne(phoneNumber);
- QSettings settings(m_authorName, m_applicationName);
- settings.setValue(m_blockedCallNumbersKey, m_blockedCallNumbers);
- settings.sync();
- }
-}
-
void Blocker::blockAllSms()
{
m_blockAllSmsNumbers = true;
QSettings settings(m_authorName, m_applicationName);
- settings.setValue(m_blockedSmsNumbersKey, QStringList());
settings.setValue(m_blockAllSmsNumbersKey, true);
settings.sync();
}
@@ -137,7 +118,7 @@ void Blocker::blockAllSms()
void Blocker::unblockAllSms()
{
m_blockAllSmsNumbers = false;
- m_blockedSmsNumbers.clear();
+ m_blockedNumbers.clear();
QSettings settings(m_authorName, m_applicationName);
settings.setValue(m_blockAllSmsNumbersKey, false);
settings.sync();
@@ -164,7 +145,7 @@ void Blocker::checkNewMessage(AccountKey /*account_key*/, \
ConversationKey /*conv
Message message = m_messageService.message(m_smsAccountIdentifier, message_key);
MessageContact senderMessageContact = message.sender();
// TODO: Add check for m_blockOutsideContactsSmsNumbers and contact list
- if ((message.mimeType() == MimeTypes::Sms) and message.isInbound() and \
(m_blockAllSmsNumbers or \
m_blockedSmsNumbers.contains(senderMessageContact.address()))) + if \
((message.mimeType() == MimeTypes::Sms) and message.isInbound() and \
(m_blockAllSmsNumbers or m_blockedNumbers.contains(senderMessageContact.address()))) \
m_messageService.remove(m_smsAccountIdentifier, message_key); }
@@ -172,7 +153,7 @@ void Blocker::checkNewCall(const bb::system::phone::Call &call)
{
// TODO(1): Add check for m_blockOutsideContactsCallNumbers and contact list
// TODO(2): Add check for m_blockPrivateCallNumbers and private numbers
- if (m_phone.activeLine().isValid() and \
m_blockedCallNumbers.contains(call.phoneNumber())) + if \
(m_phone.activeLine().isValid() and m_blockedNumbers.contains(call.phoneNumber())) \
m_phone.endCall(call.callId()); }
@@ -235,10 +216,12 @@ void Blocker::read()
}
} else {
QByteArray phoneNumber = data.mid(2, sdata-3);
- if (csms == 'b') blockSms(phoneNumber);
- else if (csms == 'u') unblockSms(phoneNumber);
- if (ccall == 'b') blockCall(phoneNumber);
- else if (ccall == 'u') unblockCall(phoneNumber);
+ bool call = (ccall == 'b'), sms = (csms == 'b');
+ if (call or sms) block(phoneNumber, call, sms);
+ else {
+ call = (ccall == 'u'); sms = (csms == 'u');
+ if (call or sms) unblock(phoneNumber, call, sms);
+ }
}
}
}
diff --git a/frontends/blackberry/headless/blocker.h \
b/frontends/blackberry/headless/blocker.h index fe1ac4d..94bb14d 100644
--- a/frontends/blackberry/headless/blocker.h
+++ b/frontends/blackberry/headless/blocker.h
@@ -28,10 +28,14 @@
#include <QTcpServer>
#include <QObject>
-#include <QStringList>
+#include <QMap>
+#include <QPair>
+#include <QString>
class QTcpSocket;
+typedef QMap<QString, QPair<bool, bool>> BlockedNumbers;
+
class Blocker : public QObject
{
Q_OBJECT
@@ -41,8 +45,9 @@ public:
~Blocker();
private Q_SLOTS:
- void blockCall(const QString& phoneNumber);
- void unblockCall(const QString& phoneNumber);
+ void block(const QString& phoneNumber, bool call, bool sms);
+ void unblock(const QString& phoneNumber, bool call, bool sms);
+
void blockPrivateCall();
void unblockPrivateCall();
void blockAllCall();
@@ -50,8 +55,6 @@ private Q_SLOTS:
void blockOutsideContactsCall();
void unblockOutsideContactsCall();
- void blockSms(const QString& phoneNumber);
- void unblockSms(const QString& phoneNumber);
void blockAllSms();
void unblockAllSms();
void blockOutsideContactsSms();
@@ -72,8 +75,8 @@ private:
int m_smsAccountIdentifier;
const int m_portNumber{9987};
- QStringList m_blockedCallNumbers;
- QStringList m_blockedSmsNumbers;
+ BlockedNumbers m_blockedNumbers;
+
QTcpServer m_server;
QTcpSocket *m_socket{nullptr};
@@ -84,8 +87,7 @@ private:
bool m_blockAllCallNumbers{false};
bool m_blockOutsideContactsCallNumbers{false};
- const QString m_blockedCallNumbersKey{"blockedCallNumbers"};
- const QString m_blockedSmsNumbersKey{"blockedSmsNumbers"};
+ const QString m_blockedNumbersKey{"blockedNumbers"};
const QString m_blockAllCallNumbersKey{"blockAllCallNumbers"};
const QString m_blockAllSmsNumbersKey{"blockAllSmsNumbers"};
const QString m_blockOutsideContactsCallNumbersKey{"blockOutsideContactsCallNumbers"};
@@ -95,5 +97,6 @@ private:
const QString m_authorName{"Laszlo Papp"};
const QString m_applicationName{"PhoneBlocker"};
};
+Q_DECLARE_METATYPE(BlockedNumbers)
#endif
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic