Skip to content
This repository was archived by the owner on Feb 4, 2023. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,22 @@ public static boolean handleMenuClick(@NonNull FragmentActivity activity, @NonNu
ringtoneManager.setRingtone(activity, song.id);
}
return true;
case R.id.action_set_as_alarm:
if (RingtoneManager.requiresDialog(activity)) {
RingtoneManager.showDialog(activity);
} else {
RingtoneManager ringtoneManager = new RingtoneManager();
ringtoneManager.setAlarm(activity, song.id);
}
return true;
case R.id.action_set_as_notification:
if (RingtoneManager.requiresDialog(activity)) {
RingtoneManager.showDialog(activity);
} else {
RingtoneManager ringtoneManager = new RingtoneManager();
ringtoneManager.setNotifSound(activity, song.id);
}
return true;
case R.id.action_share:
activity.startActivity(Intent.createChooser(MusicUtil.createShareSongFileIntent(song, activity), null));
return true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -411,6 +411,8 @@ public void onFileMenuClicked(final File file, View view) {
case R.id.action_tag_editor:
case R.id.action_details:
case R.id.action_set_as_ringtone:
case R.id.action_set_as_alarm:
case R.id.action_set_as_notification:
case R.id.action_delete_from_device:
new ListSongsAsyncTask(getActivity(), null, (songs, extra) -> {
if (!songs.isEmpty()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public static MaterialDialog showDialog(Context context) {
.show();
}

public void setRingtone(@NonNull final Context context, final int id) {
public void setRingtone(@NonNull final Context context, final int id) {
final ContentResolver resolver = context.getContentResolver();
final Uri uri = MusicUtil.getSongFileUri(id);
try {
Expand Down Expand Up @@ -74,4 +74,72 @@ public void setRingtone(@NonNull final Context context, final int id) {
} catch (SecurityException ignored) {
}
}

public void setAlarm(@NonNull final Context context, final int id) {
final ContentResolver resolver = context.getContentResolver();
final Uri uri = MusicUtil.getSongFileUri(id);
try {
final ContentValues values = new ContentValues(2);
values.put(MediaStore.Audio.AudioColumns.IS_ALARM, "1");
resolver.update(uri, values, null, null);
} catch (@NonNull final UnsupportedOperationException ignored) {
return;
}

try {
Cursor cursor = resolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
new String[]{MediaStore.MediaColumns.TITLE},
BaseColumns._ID + "=?",
new String[]{String.valueOf(id)},
null);
try {
if (cursor != null && cursor.getCount() == 1) {
cursor.moveToFirst();
android.media.RingtoneManager.setActualDefaultRingtoneUri(context, android.media.RingtoneManager.TYPE_ALARM, uri);
Settings.System.putString(resolver, Settings.System.ALARM_ALERT, uri.toString());
final String message = context.getString(R.string.x_has_been_set_as_alarm, cursor.getString(0));
Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
}
} finally {
if (cursor != null) {
cursor.close();
}
}
} catch (SecurityException ignored) {
}
}

public void setNotifSound(@NonNull final Context context, final int id) {
final ContentResolver resolver = context.getContentResolver();
final Uri uri = MusicUtil.getSongFileUri(id);
try {
final ContentValues values = new ContentValues(2);
values.put(MediaStore.Audio.AudioColumns.IS_ALARM, "1");
resolver.update(uri, values, null, null);
} catch (@NonNull final UnsupportedOperationException ignored) {
return;
}

try {
Cursor cursor = resolver.query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
new String[]{MediaStore.MediaColumns.TITLE},
BaseColumns._ID + "=?",
new String[]{String.valueOf(id)},
null);
try {
if (cursor != null && cursor.getCount() == 1) {
cursor.moveToFirst();
android.media.RingtoneManager.setActualDefaultRingtoneUri(context, android.media.RingtoneManager.TYPE_NOTIFICATION, uri);
Settings.System.putString(resolver, Settings.System.NOTIFICATION_SOUND, uri.toString());
final String message = context.getString(R.string.x_has_been_set_as_notif, cursor.getString(0));
Toast.makeText(context, message, Toast.LENGTH_SHORT).show();
}
} finally {
if (cursor != null) {
cursor.close();
}
}
} catch (SecurityException ignored) {
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,24 @@
android:title="@string/action_details"
app:showAsAction="never" />
<item
android:id="@+id/action_set_as_ringtone"
android:title="@string/action_set_as_ringtone"
app:showAsAction="never" />
android:id="@+id/action_set_as"
android:title="@string/action_set_as"
app:showAsAction="never">
<menu>
<item
android:id="@+id/action_set_as_ringtone"
android:title="@string/action_set_as_ringtone"
app:showAsAction="never" />
<item
android:id="@+id/action_set_as_alarm"
android:title="@string/action_set_as_alarm"
app:showAsAction="never" />
<item
android:id="@+id/action_set_as_notification"
android:title="@string/action_set_as_notif"
app:showAsAction="never" />
</menu>
</item>
<item
android:id="@+id/action_delete_from_device"
android:title="@string/action_delete_from_device"
Expand Down
21 changes: 18 additions & 3 deletions app/src/main/res/menu/menu_item_file.xml
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,24 @@
android:title="@string/action_scan"
app:showAsAction="never" />
<item
android:id="@+id/action_set_as_ringtone"
android:title="@string/action_set_as_ringtone"
app:showAsAction="never" />
android:id="@+id/action_set_as"
android:title="@string/action_set_as"
app:showAsAction="never">
<menu>
<item
android:id="@+id/action_set_as_ringtone"
android:title="@string/action_set_as_ringtone"
app:showAsAction="never" />
<item
android:id="@+id/action_set_as_alarm"
android:title="@string/action_set_as_alarm"
app:showAsAction="never" />
<item
android:id="@+id/action_set_as_notification"
android:title="@string/action_set_as_notif"
app:showAsAction="never" />
</menu>
</item>
<item
android:id="@+id/action_delete_from_device"
android:title="@string/action_delete_from_device"
Expand Down
21 changes: 18 additions & 3 deletions app/src/main/res/menu/menu_item_playing_queue_song.xml
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,24 @@
android:title="@string/action_details"
app:showAsAction="never" />
<item
android:id="@+id/action_set_as_ringtone"
android:title="@string/action_set_as_ringtone"
app:showAsAction="never" />
android:id="@+id/action_set_as"
android:title="@string/action_set_as"
app:showAsAction="never">
<menu>
<item
android:id="@+id/action_set_as_ringtone"
android:title="@string/action_set_as_ringtone"
app:showAsAction="never" />
<item
android:id="@+id/action_set_as_alarm"
android:title="@string/action_set_as_alarm"
app:showAsAction="never" />
<item
android:id="@+id/action_set_as_notification"
android:title="@string/action_set_as_notif"
app:showAsAction="never" />
</menu>
</item>
<item
android:id="@+id/action_delete_from_device"
android:title="@string/action_delete_from_device"
Expand Down
21 changes: 18 additions & 3 deletions app/src/main/res/menu/menu_item_playlist_song.xml
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,24 @@
android:title="@string/action_details"
app:showAsAction="never" />
<item
android:id="@+id/action_set_as_ringtone"
android:title="@string/action_set_as_ringtone"
app:showAsAction="never" />
android:id="@+id/action_set_as"
android:title="@string/action_set_as"
app:showAsAction="never">
<menu>
<item
android:id="@+id/action_set_as_ringtone"
android:title="@string/action_set_as_ringtone"
app:showAsAction="never" />
<item
android:id="@+id/action_set_as_alarm"
android:title="@string/action_set_as_alarm"
app:showAsAction="never" />
<item
android:id="@+id/action_set_as_notification"
android:title="@string/action_set_as_notif"
app:showAsAction="never" />
</menu>
</item>
<item
android:id="@+id/action_delete_from_device"
android:title="@string/action_delete_from_device"
Expand Down
21 changes: 18 additions & 3 deletions app/src/main/res/menu/menu_item_song.xml
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,24 @@
android:title="@string/action_details"
app:showAsAction="never" />
<item
android:id="@+id/action_set_as_ringtone"
android:title="@string/action_set_as_ringtone"
app:showAsAction="never" />
android:id="@+id/action_set_as"
android:title="@string/action_set_as"
app:showAsAction="never">
<menu>
<item
android:id="@+id/action_set_as_ringtone"
android:title="@string/action_set_as_ringtone"
app:showAsAction="never" />
<item
android:id="@+id/action_set_as_alarm"
android:title="@string/action_set_as_alarm"
app:showAsAction="never" />
<item
android:id="@+id/action_set_as_notification"
android:title="@string/action_set_as_notif"
app:showAsAction="never" />
</menu>
</item>
<item
android:id="@+id/action_delete_from_device"
android:title="@string/action_delete_from_device"
Expand Down
5 changes: 5 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,12 @@
<string name="currently_listening_to_x_by_x">Currently listening to %1$s by %2$s.</string>
<string name="the_audio_file">The audio file</string>
<string name="x_has_been_set_as_ringtone">Set %1$s as your ringtone.</string>
<string name="x_has_been_set_as_alarm">Set %1$s as your default alarm.</string>
<string name="x_has_been_set_as_notif">Set %1$s as your default notification sound.</string>
<string name="action_set_as">Set as…</string>
<string name="action_set_as_ringtone">Set as ringtone</string>
<string name="action_set_as_alarm">Set as alarm ringtone</string>
<string name="action_set_as_notif">Set as default notification sound</string>
<string name="action_share">Share</string>
<string name="action_settings">"Settings"</string>
<string name="action_grant">Grant</string>
Expand Down