2
0
mirror of https://github.com/KDE/kdeconnect-android synced 2025-08-30 21:55:10 +00:00

Allow choosing a ringtone for FindMyPhone

Summary:
BUG: 379023

Let users choose a ring tone in the settings.

Test Plan: Open settings, choose a ringtone, search for device.

Reviewers: #kde_connect, albertvaka

Reviewed By: #kde_connect, albertvaka

Subscribers: mtijink, andyholmes, albertvaka, apol, #kde_connect

Tags: #kde_connect

Differential Revision: https://phabricator.kde.org/D10332
This commit is contained in:
Nicolas Fella
2018-02-22 00:50:11 +01:00
parent 82db080a51
commit 4d5d744920
4 changed files with 62 additions and 12 deletions

View File

@@ -216,5 +216,6 @@
<string name="telepathy_permission_explanation">To read and write SMS from your desktop you need to give permission to SMS</string> <string name="telepathy_permission_explanation">To read and write SMS from your desktop you need to give permission to SMS</string>
<string name="telephony_permission_explanation">To see phone calls and SMS from the desktop you need to give permission to phone calls and SMS</string> <string name="telephony_permission_explanation">To see phone calls and SMS from the desktop you need to give permission to phone calls and SMS</string>
<string name="telephony_optional_permission_explanation">To see a contact name instead of a phone number you need to give access to the phone\'s contacts</string> <string name="telephony_optional_permission_explanation">To see a contact name instead of a phone number you need to give access to the phone\'s contacts</string>
<string name="select_ringtone">Select a ringtone</string>
</resources> </resources>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RingtonePreference
android:key="select_ringtone"
android:showSilent="false"
android:title="@string/select_ringtone"></RingtonePreference>
</PreferenceScreen>

View File

@@ -1,13 +1,34 @@
/* Copyright 2018 Nicolas Fella <nicolas.fella@gmx.de>
* Copyright 2015 David Edmundson <david@davidedmundson.co.uk>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License or (at your option) version 3 or any later version
* accepted by the membership of KDE e.V. (or its successor approved
* by the membership of KDE e.V.), which shall act as a proxy
* defined in Section 14 of version 3 of the license.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.kde.kdeconnect.Plugins.FindMyPhonePlugin; package org.kde.kdeconnect.Plugins.FindMyPhonePlugin;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.SharedPreferences;
import android.media.AudioManager; import android.media.AudioManager;
import android.media.MediaPlayer; import android.media.MediaPlayer;
import android.media.RingtoneManager; import android.media.RingtoneManager;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.preference.PreferenceManager;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import android.view.Window; import android.view.Window;
@@ -61,13 +82,11 @@ public class FindMyPhoneActivity extends Activity {
previousVolume = audioManager.getStreamVolume(AudioManager.STREAM_ALARM); previousVolume = audioManager.getStreamVolume(AudioManager.STREAM_ALARM);
audioManager.setStreamVolume(AudioManager.STREAM_ALARM, audioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM), 0); audioManager.setStreamVolume(AudioManager.STREAM_ALARM, audioManager.getStreamMaxVolume(AudioManager.STREAM_ALARM), 0);
Uri alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if (alert == null) { String ringtone = prefs.getString("select_ringtone", "");
alert = RingtoneManager.getValidRingtoneUri(getApplicationContext());
}
mediaPlayer = new MediaPlayer(); mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(this, alert); mediaPlayer.setDataSource(this, Uri.parse(ringtone));
mediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM); mediaPlayer.setAudioStreamType(AudioManager.STREAM_ALARM);
mediaPlayer.setLooping(true); mediaPlayer.setLooping(true);
mediaPlayer.prepare(); mediaPlayer.prepare();

View File

@@ -1,3 +1,23 @@
/*
* Copyright 2015 David Edmundson <david@davidedmundson.co.uk>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License or (at your option) version 3 or any later version
* accepted by the membership of KDE e.V. (or its successor approved
* by the membership of KDE e.V.), which shall act as a proxy
* defined in Section 14 of version 3 of the license.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.kde.kdeconnect.Plugins.FindMyPhonePlugin; package org.kde.kdeconnect.Plugins.FindMyPhonePlugin;
import android.content.Intent; import android.content.Intent;
@@ -7,14 +27,8 @@ import org.kde.kdeconnect.NetworkPackage;
import org.kde.kdeconnect.Plugins.Plugin; import org.kde.kdeconnect.Plugins.Plugin;
import org.kde.kdeconnect_tp.R; import org.kde.kdeconnect_tp.R;
/**
* Created by vineet on 1/11/14.
* and David Edmundson 2015
*/
public class FindMyPhonePlugin extends Plugin { public class FindMyPhonePlugin extends Plugin {
public final static String PACKAGE_TYPE_FINDMYPHONE = "kdeconnect.findmyphone";
public final static String PACKAGE_TYPE_FINDMYPHONE_REQUEST = "kdeconnect.findmyphone.request"; public final static String PACKAGE_TYPE_FINDMYPHONE_REQUEST = "kdeconnect.findmyphone.request";
@Override @Override
@@ -30,7 +44,7 @@ public class FindMyPhonePlugin extends Plugin {
@Override @Override
public boolean onPackageReceived(NetworkPackage np) { public boolean onPackageReceived(NetworkPackage np) {
Intent intent = new Intent(context,FindMyPhoneActivity.class); Intent intent = new Intent(context, FindMyPhoneActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent); context.startActivity(intent);
return true; return true;
@@ -46,4 +60,10 @@ public class FindMyPhonePlugin extends Plugin {
public String[] getOutgoingPackageTypes() { public String[] getOutgoingPackageTypes() {
return new String[0]; return new String[0];
} }
@Override
public boolean hasSettings() {
return true;
}
} }