/** DR Radio 2 is developed by Jacob Nordfalk, Hanafi Mughrabi and Frederik Aagaard. Some parts of the code are loosely based on Sveriges Radio Play for Android. DR Radio 2 for Android is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation. DR Radio 2 for Android 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 DR Radio 2 for Android. If not, see <http://www.gnu.org/licenses/>. */ package dk.dr.radio.skrald; import android.annotation.TargetApi; import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.preference.ListPreference; import android.preference.Preference; import android.preference.Preference.OnPreferenceChangeListener; import android.preference.PreferenceFragment; import android.preference.PreferenceScreen; import dk.dr.radio.data.DRData; import dk.dr.radio.diverse.Log; import dk.dr.radio.v3.R; /** * Bruges ikke p.t. * Se http://stackoverflow.com/questions/10186697/preferenceactivity-android-4-0-and-earlier/11336098#11336098 */ @TargetApi(Build.VERSION_CODES.HONEYCOMB) public class Indstillinger_frag_skrald extends PreferenceFragment implements OnPreferenceChangeListener, Runnable { public static final String åbn_formatindstilling = "åbn_formatindstilling"; private String aktueltLydformat; private ListPreference lydformatlp; Handler handler = new Handler(); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.indstillinger); try { // Find lydformat PreferenceScreen ps = this.getPreferenceScreen(); final int POS_lydformat = 1; lydformatlp = (ListPreference) ps.getRootAdapter().getItem(POS_lydformat); /* if (!DRData.NØGLE_lydformat.equals(lydformatlp.getKey())) { if (App.fejlsøgning) throw new InternalError("lydformat har skiftet plads, ret i koden"); return; // drop resten af initialiseringen i produktion }*/ // Udfyld med værdier der er passende for denne enhed // Er det Android 2.2 eller derunder kan vi godt fjerne HLS og HLS2 if (Build.VERSION.SDK_INT < 9) { lydformatlp.setEntries(lavDelarray(lydformatlp.getEntries(), 2)); lydformatlp.setEntryValues(lavDelarray(lydformatlp.getEntryValues(), 2)); } lydformatlp.setOnPreferenceChangeListener(this); aktueltLydformat = lydformatlp.getValue(); } catch (Exception ex) { Log.rapporterFejl(ex); } } private CharSequence[] lavDelarray(CharSequence[] entries, int antal) { CharSequence[] res = new CharSequence[antal]; for (int i = 0; i < antal; i++) res[i] = entries[i]; return res; } public boolean onPreferenceChange(Preference preference, Object newValue) { // På dette tidspunkt er indstillingen ikke gemt endnu, det bliver den // først når metoden har returneret true. // Vi venter derfor med at opdatere afspilleren med det nye lydformat // indtil GUI-tråden er færdig med kaldet til onPreferenceChange() og // klar igen handler.post(this); return true; } public void run() { String nytLydformat = lydformatlp.getValue(); if (nytLydformat.equals(aktueltLydformat)) return; Log.d("Lydformatet blev ændret fra " + aktueltLydformat + " til " + nytLydformat); aktueltLydformat = nytLydformat; DRData drdata = DRData.instans; //String url = drdata.findKanalUrlFraKode(drdata.aktuelKanal); //drdata.afspiller.setLydkilde(drdata.aktuelKanal.longName, url); } }