JavascriptProva

lunedì 4 luglio 2016

Suoneria specifica per un'applicazione.

Analizziamo...

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // Load the preferences from an XML resource
        addPreferencesFromResource(R.xml.preferences);
Quell'addPreferencesFromResource, seguito da un file xml, mi giunge completamente nuovo.
Credo che faccia riferimento a SharedPreferences, e credo di aver cominciato a capire come si fa a conservare la suoneria personalizzata.
Andiamo avanti...

Uri defaultRingtoneUri = RingtoneManager.getDefaultUri(ringTonePref.getRingtoneType());
Viene definita una variabile di tipo Uri.
Viene rilevato un Uri di default.
Ho visto una similitudine con un codice che ho imparato oggi...
Uri uri=RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE);
Non so bene dove siano state prese quelle variabili... ringTonePref e il suo metodo getRingtoneType().
Comunque questa mi sembra una riga di codice che abbia lo scopo di rilevare l'Uri della suoneria di default.
E questo Uri viene convertito in stringa:
String defaultRingtone = defaultRingtoneUri.toString();
Ora:
String selectedRingtone = ringTonePref.getPreferenceManager().getSharedPreferences().getString(NOTIFICATION_RINGTONE,defaultRingtone);
Sempre dal fantomatico ringTonePref viene presa una stringa che dovrebbe essere la suoneria selezionata.
Ora si opera un confronto:
         if (defaultRingtone.equals(selectedRingtone)) {
                ringtoneUri = defaultRingtoneUri;
            } else {
                ringtoneUri = (TextUtils.isEmpty(selectedRingtone)) ? null : Uri.parse(selectedRingtone);
            }
Se la suoneria di default è uguale alla suoneria selezionata, allora la variabile ringtoneUri viene eguagliata all'Uri di default; se invece è diversa, allora se la suoneria selezionata è vuota non suona niente (non è stata selezionata nessuna suoneria per l'applicazione specifica), altrimenti ringtoneUri viene eguagliata all'Uri corrispondente alla stringa selezionata.

Posso usare quindi SharedPreferences per impostare una suoneria personalizzata, ma prima devo impratichirmi nell'uso di SharedPreferences, appunto.

Nessun commento:

Posta un commento