diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 54b31752..ac0118b4 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -114,6 +114,13 @@
-->
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/res/values/strings.xml b/res/values/strings.xml
index d8bc8379..80cd2942 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -156,5 +156,7 @@
Send SMS
Send text messages from your desktop
This plugin is not supported by the device
-
+ Find My Phone
+ Rings this phone so you can find it.
+ Found
diff --git a/src/org/kde/kdeconnect/NetworkPackage.java b/src/org/kde/kdeconnect/NetworkPackage.java
index e404be44..919d1579 100644
--- a/src/org/kde/kdeconnect/NetworkPackage.java
+++ b/src/org/kde/kdeconnect/NetworkPackage.java
@@ -60,6 +60,7 @@ public class NetworkPackage {
public final static String PACKAGE_TYPE_MOUSEPAD = "kdeconnect.mousepad";
public final static String PACKAGE_TYPE_SHARE = "kdeconnect.share";
public static final String PACKAGE_TYPE_CAPABILITIES = "kdeconnect.capabilities";
+ public final static String PACKAGE_TYPE_FINDMYPHONE = "kdeconnect.findmyphone" ;
private long mId;
private String mType;
diff --git a/src/org/kde/kdeconnect/Plugins/FindMyPhonePlugin/FindMyPhoneActivity.java b/src/org/kde/kdeconnect/Plugins/FindMyPhonePlugin/FindMyPhoneActivity.java
new file mode 100644
index 00000000..a526d644
--- /dev/null
+++ b/src/org/kde/kdeconnect/Plugins/FindMyPhonePlugin/FindMyPhoneActivity.java
@@ -0,0 +1,55 @@
+package org.kde.kdeconnect.Plugins.FindMyPhonePlugin;
+
+import android.app.Activity;
+import android.media.AudioAttributes;
+import android.media.AudioManager;
+import android.media.Ringtone;
+import android.media.RingtoneManager;
+import android.net.Uri;
+import android.os.Bundle;
+import android.view.View;
+import android.view.Window;
+import android.view.WindowManager;
+
+import org.kde.kdeconnect_tp.R;
+
+public class FindMyPhoneActivity extends Activity {
+ Ringtone ringtone;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_find_my_phone);
+
+ Window window = this.getWindow();
+ window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
+ WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
+ WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
+
+ Uri notification = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
+ ringtone = RingtoneManager.getRingtone(getApplicationContext(), notification);
+
+ if (android.os.Build.VERSION.SDK_INT >= 21) {
+ AudioAttributes.Builder b = new AudioAttributes.Builder();
+ b.setUsage(AudioAttributes.USAGE_ALARM);
+ ringtone.setAudioAttributes(b.build());
+ } else {
+ ringtone.setStreamType(AudioManager.STREAM_ALARM);
+ }
+
+ ringtone.play();
+
+ findViewById(R.id.bFindMyPhone).setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ finish();
+ }
+ });
+ }
+
+ @Override
+ public void finish() {
+ ringtone.stop();
+ super.finish();
+ }
+}
diff --git a/src/org/kde/kdeconnect/Plugins/FindMyPhonePlugin/FindMyPhonePlugin.java b/src/org/kde/kdeconnect/Plugins/FindMyPhonePlugin/FindMyPhonePlugin.java
new file mode 100644
index 00000000..949fbb50
--- /dev/null
+++ b/src/org/kde/kdeconnect/Plugins/FindMyPhonePlugin/FindMyPhonePlugin.java
@@ -0,0 +1,54 @@
+package org.kde.kdeconnect.Plugins.FindMyPhonePlugin;
+
+import android.app.Activity;
+import android.app.AlertDialog;
+import android.content.Intent;
+import android.graphics.drawable.Drawable;
+import android.util.Log;
+import android.widget.Button;
+
+import org.kde.kdeconnect.NetworkPackage;
+import org.kde.kdeconnect.Plugins.Plugin;
+import org.kde.kdeconnect_tp.R;
+
+
+/**
+ * Created by vineet on 1/11/14.
+ * and David Edmundson 2015
+ */
+public class FindMyPhonePlugin extends Plugin {
+ @Override
+ public String getDisplayName() {
+ return context.getString(R.string.findmyphone_title);
+ }
+
+ @Override
+ public String getDescription() {
+ return context.getString(R.string.findmyphone_description);
+ }
+
+ @Override
+ public boolean onPackageReceived(NetworkPackage np) {
+ Log.e("FindMyPhonePR", "onPackageReceived");
+ if (np.getType().equals(NetworkPackage.PACKAGE_TYPE_FINDMYPHONE)) {
+ //Log.e("PingPackageReceiver", "was a find my phone!");
+
+ Intent intent = new Intent(context,FindMyPhoneActivity.class);
+ intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+ context.startActivity(intent);
+ return true;
+
+ }
+ return false;
+ }
+
+ @Override
+ public String[] getSupportedPackageTypes() {
+ return new String[]{NetworkPackage.PACKAGE_TYPE_FINDMYPHONE};
+ }
+
+ @Override
+ public String[] getOutgoingPackageTypes() {
+ return new String[0];
+ }
+}
diff --git a/src/org/kde/kdeconnect/Plugins/PluginFactory.java b/src/org/kde/kdeconnect/Plugins/PluginFactory.java
index 1d3b0010..80e40f3c 100644
--- a/src/org/kde/kdeconnect/Plugins/PluginFactory.java
+++ b/src/org/kde/kdeconnect/Plugins/PluginFactory.java
@@ -26,6 +26,7 @@ import android.util.Log;
import org.kde.kdeconnect.Device;
import org.kde.kdeconnect.Plugins.BatteryPlugin.BatteryPlugin;
+import org.kde.kdeconnect.Plugins.FindMyPhonePlugin.FindMyPhonePlugin;
import org.kde.kdeconnect.Plugins.MousePadPlugin.MousePadPlugin;
import org.kde.kdeconnect.Plugins.SftpPlugin.SftpPlugin;
import org.kde.kdeconnect.Plugins.ClibpoardPlugin.ClipboardPlugin;
@@ -121,6 +122,7 @@ public class PluginFactory {
PluginFactory.registerPlugin(MousePadPlugin.class);
PluginFactory.registerPlugin(SharePlugin.class);
PluginFactory.registerPlugin(TelepathyPlugin.class);
+ PluginFactory.registerPlugin(FindMyPhonePlugin.class);
}
public static PluginInfo getPluginInfo(Context context, String pluginKey) {