[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