package com.garethevans.church.opensongtablet; import android.app.DialogFragment; import android.database.Cursor; import android.media.MediaPlayer; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; import android.support.v4.content.CursorLoader; import android.support.v4.widget.CursorAdapter; import android.support.v4.widget.SimpleCursorAdapter; import android.support.v7.widget.SwitchCompat; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.CompoundButton; import android.widget.ImageButton; import android.widget.ListAdapter; import android.widget.ListView; import android.widget.TextView; import java.io.IOException; public class PopUpMediaStoreFragment extends DialogFragment { ListView mediaStore_ListView; static ImageButton startPlay; //Switch externalSwitch; SwitchCompat externalSwitch; TextView mediaSelected; MediaPlayer mp; String[] from; int[] to; static PopUpMediaStoreFragment newInstance() { PopUpMediaStoreFragment frag; frag = new PopUpMediaStoreFragment(); return frag; } Uri sourceUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { getDialog().setTitle(getActivity().getResources().getString(R.string.media_chooser)); View V = inflater.inflate(R.layout.popup_mediastore, container, false); from = new String[] {MediaStore.MediaColumns.TITLE}; to = new int[] {android.R.id.text1}; mp = new MediaPlayer(); mediaStore_ListView = (ListView) V.findViewById(R.id.mediaStore_ListView); mediaSelected = (TextView) V.findViewById(R.id.mediaSelected); mediaSelected.setText(PresenterMode.mpTitle); //externalSwitch = (Switch) V.findViewById(R.id.externalSwitch); externalSwitch = (SwitchCompat) V.findViewById(R.id.externalSwitch); if (FullscreenActivity.mediaStore.equals("ext")) { externalSwitch.setChecked(true); } else { externalSwitch.setChecked(false); } externalSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if (isChecked) { FullscreenActivity.mediaStore = "ext"; } else { FullscreenActivity.mediaStore = "int"; } Preferences.savePreferences(); updateMedia(); } }); startPlay = (ImageButton) V.findViewById(R.id.startPlay); startPlay.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startPlay(); } }); updateMedia(); return V; } public void updateMedia() { if (FullscreenActivity.mediaStore.equals("ext")) { sourceUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI; } else { sourceUri = MediaStore.Audio.Media.INTERNAL_CONTENT_URI; } CursorLoader cursorLoader = new CursorLoader( getActivity(), sourceUri, null, null, null, MediaStore.Audio.Media.TITLE); Cursor cursor = cursorLoader.loadInBackground(); ListAdapter adapter = new SimpleCursorAdapter( getActivity(), android.R.layout.simple_list_item_1, cursor, from, to, CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER); mediaStore_ListView.setAdapter(adapter); mediaStore_ListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Cursor cursor = ((SimpleCursorAdapter) mediaStore_ListView.getAdapter()).getCursor(); cursor.moveToPosition(position); String fullname = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE)); String data = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA)); mediaSelected.setText(fullname); startPlay.setImageDrawable(getResources().getDrawable(R.drawable.ic_action_play)); PresenterMode.mpTitle = fullname; if (PresenterMode.mp.isPlaying()) { PresenterMode.mp.stop(); } PresenterMode.mp.reset(); try { PresenterMode.mp.setDataSource(data); PresenterMode.mp.prepare(); } catch (IOException e) { e.printStackTrace(); } } }); } public void startPlay() { if (PresenterMode.mp.isPlaying()) { // Stop the media player PresenterMode.mp.pause(); PresenterMode.mp.seekTo(0); startPlay.setImageDrawable(getResources().getDrawable(R.drawable.ic_action_play)); } else { if (!mediaSelected.getText().toString().equals("")) { PresenterMode.mp.start(); startPlay.setImageDrawable(getResources().getDrawable(R.drawable.ic_action_stop)); } } } }