package com.felkertech.cumulustv.activities; import android.annotation.TargetApi; import android.content.DialogInterface; import android.os.Build; import android.os.Bundle; import android.preference.PreferenceActivity; import android.preference.PreferenceFragment; import android.support.v7.app.AlertDialog; import android.view.View; import android.widget.Toast; import com.felkertech.cumulustv.utils.DriveSettingsManager; import com.felkertech.cumulustv.services.CumulusDreams; import com.felkertech.n.cumulustv.R; import com.felkertech.cumulustv.model.ChannelDatabase; import org.json.JSONException; /** * A settings Activity for {@link CumulusDreams}. * <p/> * A DreamService can only be used on devices with API v17+, so it is safe * for us to use a {@link PreferenceFragment} here. */ @TargetApi(Build.VERSION_CODES.HONEYCOMB) public class CumulusDreamsSettingsActivity extends PreferenceActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getFragmentManager().beginTransaction() .replace(android.R.id.content, new DreamPreferenceFragment()).commit(); } public static class DreamPreferenceFragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // addPreferencesFromResource(R.xml.cumulus_dreams_prefs); final ChannelDatabase channelDatabase = ChannelDatabase.getInstance(getActivity()); new AlertDialog.Builder(getActivity()) .setTitle(R.string.daydream_select_channel) .setItems(channelDatabase.getChannelNames(), new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int which) { DriveSettingsManager sm = new DriveSettingsManager(getActivity()); try { sm.setString(R.string.daydream_url, channelDatabase.getJsonChannels().get(which).getMediaUrl()); Toast.makeText(getActivity(), R.string.daydream_success, Toast.LENGTH_SHORT).show(); } catch (JSONException e) { e.printStackTrace(); } getActivity().finish(); } }) .show(); } } }