Example usage for android.media RingtoneManager setActualDefaultRingtoneUri

List of usage examples for android.media RingtoneManager setActualDefaultRingtoneUri

Introduction

In this page you can find the example usage for android.media RingtoneManager setActualDefaultRingtoneUri.

Prototype

public static void setActualDefaultRingtoneUri(Context context, int type, Uri ringtoneUri) 

Source Link

Document

Sets the Uri of the default sound for a given sound type.

Usage

From source file:com.SpeechEd.SpeechEdEditActivity.java

private void afterSavingRingtone(CharSequence title, String outPath, File outFile, int duration) {
    long length = outFile.length();
    if (length <= 512) {
        outFile.delete();//from   ww w.java  2  s.com
        new AlertDialog.Builder(this).setTitle(R.string.alert_title_failure)
                .setMessage(R.string.too_small_error).setPositiveButton(R.string.alert_ok_button, null)
                .setCancelable(false).show();
        return;
    }

    // Create the database record, pointing to the existing file path

    long fileSize = outFile.length();
    String mimeType = "audio/mpeg";

    String artist = "" + getResources().getText(R.string.artist_name);

    ContentValues values = new ContentValues();
    values.put(MediaStore.MediaColumns.DATA, outPath);
    values.put(MediaStore.MediaColumns.TITLE, title.toString());
    values.put(MediaStore.MediaColumns.SIZE, fileSize);
    values.put(MediaStore.MediaColumns.MIME_TYPE, mimeType);

    values.put(MediaStore.Audio.Media.ARTIST, artist);
    values.put(MediaStore.Audio.Media.DURATION, duration);

    values.put(MediaStore.Audio.Media.IS_RINGTONE, mNewFileKind == FileSaveDialog.FILE_KIND_RINGTONE);
    values.put(MediaStore.Audio.Media.IS_NOTIFICATION, mNewFileKind == FileSaveDialog.FILE_KIND_NOTIFICATION);
    values.put(MediaStore.Audio.Media.IS_ALARM, mNewFileKind == FileSaveDialog.FILE_KIND_ALARM);
    values.put(MediaStore.Audio.Media.IS_MUSIC, mNewFileKind == FileSaveDialog.FILE_KIND_MUSIC);

    // Insert it into the database
    Uri uri = MediaStore.Audio.Media.getContentUriForPath(outPath);
    final Uri newUri = getContentResolver().insert(uri, values);
    setResult(RESULT_OK, new Intent().setData(newUri));

    // Update a preference that counts how many times we've
    // successfully saved a ringtone or other audio
    SharedPreferences prefs = getPreferences(Context.MODE_PRIVATE);
    int successCount = prefs.getInt(PREF_SUCCESS_COUNT, 0);
    SharedPreferences.Editor prefsEditor = prefs.edit();
    prefsEditor.putInt(PREF_SUCCESS_COUNT, successCount + 1);
    prefsEditor.commit();

    // If SpeechEd was launched to get content, just return
    if (mWasGetContentIntent) {
        sendStatsToServerIfAllowedAndFinish();
        return;
    }

    // There's nothing more to do with music or an alarm.  Show a
    // success message and then quit.
    if (mNewFileKind == FileSaveDialog.FILE_KIND_MUSIC || mNewFileKind == FileSaveDialog.FILE_KIND_ALARM) {
        Toast.makeText(this, R.string.save_success_message, Toast.LENGTH_SHORT).show();
        sendStatsToServerIfAllowedAndFinish();
        return;
    }

    // If it's a notification, give the user the option of making
    // this their default notification.  If they say no, we're finished.
    if (mNewFileKind == FileSaveDialog.FILE_KIND_NOTIFICATION) {
        new AlertDialog.Builder(SpeechEdEditActivity.this).setTitle(R.string.alert_title_success)
                .setMessage(R.string.set_default_notification)
                .setPositiveButton(R.string.alert_yes_button, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                        RingtoneManager.setActualDefaultRingtoneUri(SpeechEdEditActivity.this,
                                RingtoneManager.TYPE_NOTIFICATION, newUri);
                        sendStatsToServerIfAllowedAndFinish();
                    }
                }).setNegativeButton(R.string.alert_no_button, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                        sendStatsToServerIfAllowedAndFinish();
                    }
                }).setCancelable(false).show();
        return;
    }

    // If we get here, that means the type is a ringtone.  There are
    // three choices: make this your default ringtone, assign it to a
    // contact, or do nothing.

    final Handler handler = new Handler() {
        public void handleMessage(Message response) {
            int actionId = response.arg1;
            switch (actionId) {
            case R.id.button_make_default:
                RingtoneManager.setActualDefaultRingtoneUri(SpeechEdEditActivity.this,
                        RingtoneManager.TYPE_RINGTONE, newUri);
                Toast.makeText(SpeechEdEditActivity.this, R.string.default_ringtone_success_message,
                        Toast.LENGTH_SHORT).show();
                sendStatsToServerIfAllowedAndFinish();
                break;
            case R.id.button_choose_contact:
                chooseContactForRingtone(newUri);
                break;
            default:
            case R.id.button_do_nothing:
                sendStatsToServerIfAllowedAndFinish();
                break;
            }
        }
    };
    Message message = Message.obtain(handler);
    AfterSaveActionDialog dlog = new AfterSaveActionDialog(this, message);
    dlog.show();
}

From source file:com.Beat.RingdroidEditActivity.java

private void afterSavingRingtone(CharSequence title, String outPath, File outFile, int duration) {
    long length = outFile.length();
    if (length <= 512) {
        outFile.delete();/*from   w  w  w  . j a v a2 s .co  m*/
        new AlertDialog.Builder(this).setTitle(R.string.alert_title_failure)
                .setMessage(R.string.too_small_error).setPositiveButton(R.string.alert_ok_button, null)
                .setCancelable(false).show();
        return;
    }

    // Create the database record, pointing to the existing file path

    long fileSize = outFile.length();
    String mimeType = "audio/mpeg";

    String artist = "" + getResources().getText(R.string.artist_name);

    ContentValues values = new ContentValues();
    values.put(MediaStore.MediaColumns.DATA, outPath);
    values.put(MediaStore.MediaColumns.TITLE, title.toString());
    values.put(MediaStore.MediaColumns.SIZE, fileSize);
    values.put(MediaStore.MediaColumns.MIME_TYPE, mimeType);

    values.put(MediaStore.Audio.Media.ARTIST, artist);
    values.put(MediaStore.Audio.Media.DURATION, duration);

    values.put(MediaStore.Audio.Media.IS_RINGTONE, mNewFileKind == FileSaveDialog.FILE_KIND_RINGTONE);
    values.put(MediaStore.Audio.Media.IS_NOTIFICATION, mNewFileKind == FileSaveDialog.FILE_KIND_NOTIFICATION);
    values.put(MediaStore.Audio.Media.IS_ALARM, mNewFileKind == FileSaveDialog.FILE_KIND_ALARM);
    values.put(MediaStore.Audio.Media.IS_MUSIC, mNewFileKind == FileSaveDialog.FILE_KIND_MUSIC);

    // Insert it into the database
    Uri uri = MediaStore.Audio.Media.getContentUriForPath(outPath);
    final Uri newUri = getContentResolver().insert(uri, values);
    setResult(RESULT_OK, new Intent().setData(newUri));

    // Update a preference that counts how many times we've
    // successfully saved a ringtone or other audio
    SharedPreferences prefs = getPreferences(Context.MODE_PRIVATE);
    int successCount = prefs.getInt(PREF_SUCCESS_COUNT, 0);
    SharedPreferences.Editor prefsEditor = prefs.edit();
    prefsEditor.putInt(PREF_SUCCESS_COUNT, successCount + 1);
    prefsEditor.commit();

    // If Ringdroid was launched to get content, just return
    if (mWasGetContentIntent) {
        sendStatsToServerIfAllowedAndFinish();
        return;
    }

    // There's nothing more to do with music or an alarm.  Show a
    // success message and then quit.
    if (mNewFileKind == FileSaveDialog.FILE_KIND_MUSIC || mNewFileKind == FileSaveDialog.FILE_KIND_ALARM) {
        Toast.makeText(this, R.string.save_success_message, Toast.LENGTH_SHORT).show();
        sendStatsToServerIfAllowedAndFinish();
        return;
    }

    // If it's a notification, give the user the option of making
    // this their default notification.  If they say no, we're finished.
    if (mNewFileKind == FileSaveDialog.FILE_KIND_NOTIFICATION) {
        new AlertDialog.Builder(RingdroidEditActivity.this).setTitle(R.string.alert_title_success)
                .setMessage(R.string.set_default_notification)
                .setPositiveButton(R.string.alert_yes_button, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                        RingtoneManager.setActualDefaultRingtoneUri(RingdroidEditActivity.this,
                                RingtoneManager.TYPE_NOTIFICATION, newUri);
                        sendStatsToServerIfAllowedAndFinish();
                    }
                }).setNegativeButton(R.string.alert_no_button, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                        sendStatsToServerIfAllowedAndFinish();
                    }
                }).setCancelable(false).show();
        return;
    }

    // If we get here, that means the type is a ringtone.  There are
    // three choices: make this your default ringtone, assign it to a
    // contact, or do nothing.

    final Handler handler = new Handler() {
        public void handleMessage(Message response) {
            int actionId = response.arg1;
            switch (actionId) {
            case R.id.button_make_default:
                RingtoneManager.setActualDefaultRingtoneUri(RingdroidEditActivity.this,
                        RingtoneManager.TYPE_RINGTONE, newUri);
                Toast.makeText(RingdroidEditActivity.this, R.string.default_ringtone_success_message,
                        Toast.LENGTH_SHORT).show();
                sendStatsToServerIfAllowedAndFinish();
                break;
            case R.id.button_choose_contact:
                chooseContactForRingtone(newUri);
                break;
            default:
            case R.id.button_do_nothing:
                sendStatsToServerIfAllowedAndFinish();
                break;
            }
        }
    };
    Message message = Message.obtain(handler);
    AfterSaveActionDialog dlog = new AfterSaveActionDialog(this, message);
    dlog.show();
}

From source file:com.ringdroid.RingdroidEditActivity.java

@Override
protected Dialog onCreateDialog(int id) {
    if (id == DIALOG_USE_ALL) {
        return new AlertDialog.Builder(this).setIcon(android.R.drawable.ic_dialog_alert)
                .setTitle(R.string.ring_picker_title)
                .setSingleChoiceItems(R.array.set_ring_option, 0, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                        ring_button_type = whichButton;
                    }/*from  w  ww .j  a  v  a  2 s  . c  om*/
                }).setPositiveButton(R.string.alert_ok_button, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                        int ring_type = 0;
                        if (ring_button_type == 3) {
                            Intent intent = new Intent();
                            Uri currentFileUri = Uri.parse(mFilename);
                            intent.setData(currentFileUri);
                            intent.setClass(RingdroidEditActivity.this,
                                    com.ringdroid.ChooseContactActivity.class);
                            RingdroidEditActivity.this.startActivity(intent);
                            return;
                        } else if (ring_button_type == 0) {
                            ring_type = RingtoneManager.TYPE_RINGTONE;
                        } else if (ring_button_type == 1) {
                            ring_type = RingtoneManager.TYPE_NOTIFICATION;
                        } else if (ring_button_type == 2) {
                            ring_type = RingtoneManager.TYPE_ALARM;
                        }
                        // u = Const.mp3dir + ring.getString(Const.mp3);
                        Uri currentFileUri = null;
                        if (!mFilename.startsWith("content:")) {
                            String selection;
                            selection = MediaStore.Audio.Media.DATA + "=?";//+"='"+DatabaseUtils.sqlEscapeString(mFilename)+"'";
                            String[] selectionArgs = new String[1];
                            selectionArgs[0] = mFilename;

                            Uri head = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
                            Cursor c = getExternalAudioCursor(selection, selectionArgs);
                            if (c == null || c.getCount() == 0) {
                                head = MediaStore.Audio.Media.INTERNAL_CONTENT_URI;
                                c = getInternalAudioCursor(selection, selectionArgs);
                            }
                            startManagingCursor(c);
                            if (c == null || c.getCount() == 0)
                                return;
                            c.moveToFirst();
                            String itemUri = head.toString() + "/"
                                    + c.getString(c.getColumnIndexOrThrow(MediaStore.Audio.Media._ID));
                            currentFileUri = Uri.parse(itemUri);
                        } else {
                            currentFileUri = Uri.parse(mFilename);
                        }
                        RingtoneManager.setActualDefaultRingtoneUri(RingdroidEditActivity.this, ring_type,
                                currentFileUri);
                        Toast.makeText(RingdroidEditActivity.this,
                                "" + getResources().getStringArray(R.array.set_ring_option)[ring_button_type],
                                Toast.LENGTH_SHORT).show();
                    }
                }).setNegativeButton(R.string.alertdialog_cancel, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) {
                    }
                }).create();
    }
    return super.onCreateDialog(id);
}