[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kdeconnect-android/sms-history] src/org/kde/kdeconnect/Plugins/TelephonyPlugin: Add basic support f
From:       Simon Redman <null () kde ! org>
Date:       2018-04-01 0:10:09
Message-ID: E1f2QZV-0005GY-5q () code ! kde ! org
[Download RAW message or body]

Git commit 41eac1aee80ca8fff9d2d4098dd2409ada8eec24 by Simon Redman.
Committed on 01/04/2018 at 00:09.
Pushed by sredman into branch 'sms-history'.

Add basic support for requesting all conversations

M  +46   -1    src/org/kde/kdeconnect/Plugins/TelephonyPlugin/TelephonyPlugin.java

https://commits.kde.org/kdeconnect-android/41eac1aee80ca8fff9d2d4098dd2409ada8eec24

diff --git a/src/org/kde/kdeconnect/Plugins/TelephonyPlugin/TelephonyPlugin.java \
b/src/org/kde/kdeconnect/Plugins/TelephonyPlugin/TelephonyPlugin.java index \
                1c5e58d..ba88d57 100644
--- a/src/org/kde/kdeconnect/Plugins/TelephonyPlugin/TelephonyPlugin.java
+++ b/src/org/kde/kdeconnect/Plugins/TelephonyPlugin/TelephonyPlugin.java
@@ -38,6 +38,9 @@ import android.telephony.TelephonyManager;
 import android.util.Log;
 
 import org.kde.kdeconnect.Helpers.ContactsHelper;
+import org.kde.kdeconnect.Helpers.SMSHelper;
+import org.kde.kdeconnect.Helpers.SMSHelper.ThreadID;
+import org.kde.kdeconnect.Helpers.SMSHelper.Message;
 import org.kde.kdeconnect.NetworkPacket;
 import org.kde.kdeconnect.Plugins.Plugin;
 import org.kde.kdeconnect_tp.BuildConfig;
@@ -54,6 +57,13 @@ public class TelephonyPlugin extends Plugin {
     public final static String PACKET_TYPE_TELEPHONY_REQUEST = \
                "kdeconnect.telephony.request";
     private static final String KEY_PREF_BLOCKED_NUMBERS = \
"telephony_blocked_numbers";  
+    /**
+     * Packet sent to request all conversations
+     *
+     * The request packet shall contain no body
+     */
+    public final static String PACKET_TYPE_TELEPHONY_REQUEST_CONVERSATIONS = \
"kdeconnect.telephony.request_conversations"; +
     private int lastState = TelephonyManager.CALL_STATE_IDLE;
     private NetworkPacket lastPacket = null;
     private boolean isMuted = false;
@@ -284,6 +294,9 @@ public class TelephonyPlugin extends Plugin {
 
     @Override
     public boolean onPacketReceived(NetworkPacket np) {
+        if (np.getType().equals(PACKET_TYPE_TELEPHONY_REQUEST_CONVERSATIONS)) {
+            return this.handleRequestConversations(np);
+        }
         if (np.getString("action").equals("mute")) {
             if (!isMuted) {
                 AudioManager am = (AudioManager) \
context.getSystemService(Context.AUDIO_SERVICE); @@ -311,9 +324,41 @@ public class \
TelephonyPlugin extends Plugin {  return false;
     }
 
+    /**
+     * Respond to a request for all conversations
+     *
+     * Send one packet of type PACKET_TYPE_TELEPHONY per message to be handled on \
the remote device +     */
+    protected boolean handleRequestConversations(NetworkPacket packet) {
+        Map<ThreadID, Message> conversations = \
SMSHelper.getConversations(this.context); +
+        for (Message message : conversations.values()) {
+            NetworkPacket reply = new NetworkPacket(PACKET_TYPE_TELEPHONY);
+
+            reply.set("event", "sms");
+
+            reply.set("messageBody", message.get(Message.BODY));
+
+            reply.set("phoneNumber", message.get(Message.ADDRESS));
+
+            reply.set("messageDate", message.get(Message.DATE));
+
+            reply.set("messageType", message.get(Message.TYPE));
+
+            reply.set("threadID", message.get(Message.THREAD_ID));
+
+            device.sendPacket(reply);
+        }
+
+        return true;
+    }
+
     @Override
     public String[] getSupportedPacketTypes() {
-        return new String[]{PACKET_TYPE_TELEPHONY_REQUEST};
+        return new String[]{
+                PACKET_TYPE_TELEPHONY_REQUEST,
+                PACKET_TYPE_TELEPHONY_REQUEST_CONVERSATIONS,
+        };
     }
 
     @Override


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic