mirror of https://github.com/iSoron/uhabits.git
parent
6f80a9c030
commit
3783fd8506
@ -1,112 +0,0 @@
|
||||
/*
|
||||
* Copyright (C) 2017 Álinson Santos Xavier <isoron@gmail.com>
|
||||
*
|
||||
* This file is part of Loop Habit Tracker.
|
||||
*
|
||||
* Loop Habit Tracker 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 3 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* Loop Habit Tracker 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.isoron.uhabits.notifications;
|
||||
|
||||
import android.content.*;
|
||||
import android.media.*;
|
||||
import android.net.*;
|
||||
import android.preference.*;
|
||||
import android.provider.*;
|
||||
import android.support.annotation.*;
|
||||
|
||||
import org.isoron.uhabits.*;
|
||||
import org.isoron.uhabits.core.*;
|
||||
|
||||
import javax.inject.*;
|
||||
|
||||
import static android.media.RingtoneManager.EXTRA_RINGTONE_PICKED_URI;
|
||||
import static android.media.RingtoneManager.getRingtone;
|
||||
|
||||
@AppScope
|
||||
public class RingtoneManager
|
||||
{
|
||||
@Inject
|
||||
public RingtoneManager()
|
||||
{
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static String getRingtoneName(Context context)
|
||||
{
|
||||
try
|
||||
{
|
||||
Uri ringtoneUri = getRingtoneUri(context);
|
||||
String ringtoneName =
|
||||
context.getResources().getString(R.string.none);
|
||||
|
||||
if (ringtoneUri != null)
|
||||
{
|
||||
Ringtone ringtone = getRingtone(context, ringtoneUri);
|
||||
if (ringtone != null)
|
||||
{
|
||||
ringtoneName = ringtone.getTitle(context);
|
||||
ringtone.stop();
|
||||
}
|
||||
}
|
||||
|
||||
return ringtoneName;
|
||||
}
|
||||
catch (RuntimeException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static Uri getRingtoneUri(Context context)
|
||||
{
|
||||
Uri ringtoneUri = null;
|
||||
Uri defaultRingtoneUri = Settings.System.DEFAULT_NOTIFICATION_URI;
|
||||
|
||||
SharedPreferences prefs =
|
||||
PreferenceManager.getDefaultSharedPreferences(context);
|
||||
String prefRingtoneUri =
|
||||
prefs.getString("pref_ringtone_uri", defaultRingtoneUri.toString());
|
||||
if (prefRingtoneUri.length() > 0)
|
||||
ringtoneUri = Uri.parse(prefRingtoneUri);
|
||||
|
||||
return ringtoneUri;
|
||||
}
|
||||
|
||||
public static void parseRingtoneData(Context context, @Nullable Intent data)
|
||||
{
|
||||
if (data == null) return;
|
||||
|
||||
Uri ringtoneUri = data.getParcelableExtra(EXTRA_RINGTONE_PICKED_URI);
|
||||
|
||||
if (ringtoneUri != null)
|
||||
{
|
||||
SharedPreferences prefs =
|
||||
PreferenceManager.getDefaultSharedPreferences(context);
|
||||
prefs
|
||||
.edit()
|
||||
.putString("pref_ringtone_uri", ringtoneUri.toString())
|
||||
.apply();
|
||||
}
|
||||
else
|
||||
{
|
||||
SharedPreferences prefs =
|
||||
PreferenceManager.getDefaultSharedPreferences(context);
|
||||
prefs.edit().putString("pref_ringtone_uri", "").apply();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,74 @@
|
||||
/*
|
||||
* Copyright (C) 2017 Álinson Santos Xavier <isoron@gmail.com>
|
||||
*
|
||||
* This file is part of Loop Habit Tracker.
|
||||
*
|
||||
* Loop Habit Tracker 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 3 of the License, or (at your
|
||||
* option) any later version.
|
||||
*
|
||||
* Loop Habit Tracker 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.isoron.uhabits.notifications
|
||||
|
||||
import android.content.*
|
||||
import android.media.RingtoneManager.*
|
||||
import android.net.*
|
||||
import android.preference.*
|
||||
import android.provider.*
|
||||
import org.isoron.androidbase.*
|
||||
import org.isoron.uhabits.R
|
||||
import org.isoron.uhabits.core.*
|
||||
import javax.inject.*
|
||||
|
||||
@AppScope
|
||||
class RingtoneManager
|
||||
@Inject constructor(@AppContext private val context: Context) {
|
||||
|
||||
val prefs: SharedPreferences =
|
||||
PreferenceManager.getDefaultSharedPreferences(context)
|
||||
|
||||
fun getName(): String? {
|
||||
try {
|
||||
var ringtoneName = context.resources.getString(R.string.none)
|
||||
val ringtoneUri = getURI()
|
||||
if (ringtoneUri != null) {
|
||||
val ringtone = getRingtone(context, ringtoneUri)
|
||||
if (ringtone != null) ringtoneName = ringtone.getTitle(context)
|
||||
}
|
||||
return ringtoneName
|
||||
} catch (e: RuntimeException) {
|
||||
e.printStackTrace()
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
fun getURI(): Uri? {
|
||||
var ringtoneUri: Uri? = null
|
||||
val defaultRingtoneUri = Settings.System.DEFAULT_NOTIFICATION_URI
|
||||
val prefRingtoneUri = prefs.getString("pref_ringtone_uri",
|
||||
defaultRingtoneUri.toString())
|
||||
if (prefRingtoneUri.isNotEmpty())
|
||||
ringtoneUri = Uri.parse(prefRingtoneUri)
|
||||
|
||||
return ringtoneUri
|
||||
}
|
||||
|
||||
fun update(data: Intent?) {
|
||||
if (data == null) return
|
||||
val ringtoneUri = data.getParcelableExtra<Uri>(EXTRA_RINGTONE_PICKED_URI)
|
||||
if (ringtoneUri != null) {
|
||||
prefs.edit().putString("pref_ringtone_uri", ringtoneUri.toString()).apply()
|
||||
} else {
|
||||
prefs.edit().putString("pref_ringtone_uri", "").apply()
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in new issue