[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