Skip to content

Instantly share code, notes, and snippets.

@ChandraniChatterjeeMolly
Created March 7, 2017 04:44
Show Gist options
  • Save ChandraniChatterjeeMolly/353bab9a3942cc4e0a88ae056f2e63aa to your computer and use it in GitHub Desktop.
Save ChandraniChatterjeeMolly/353bab9a3942cc4e0a88ae056f2e63aa to your computer and use it in GitHub Desktop.
miwok: name of class: FamilyFragment
package com.example.android.miwok;
import android.content.Context;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import java.util.ArrayList;
/**
* A simple {@link Fragment} subclass.
*/
public class FamilyFragment extends android.support.v4.app.Fragment {
public FamilyFragment() {
// Required empty public constructor
}
MediaPlayer mMediaPlayer;
private AudioManager audioManager;
private AudioManager.OnAudioFocusChangeListener mOnAudioFocusChangeListener ;
//release Mediaplayer resources
public void releaseMediaPlayerResource() {
if (mMediaPlayer != null) {
mMediaPlayer.release();
mMediaPlayer = null;
}
}
@Override
public void onStop() {
super.onStop();
releaseMediaPlayerResource();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.word_list, container, false);
// Create a list of words
final ArrayList<Word> words = new ArrayList<Word>();
words.add(new Word("father", "әpә", R.drawable.family_father, R.raw.family_father));
words.add(new Word("mother", "әṭa", R.drawable.family_mother, R.raw.family_mother));
words.add(new Word("son", "angsi", R.drawable.family_son, R.raw.family_son));
words.add(new Word("daughter", "tune", R.drawable.family_daughter, R.raw.family_daughter));
words.add(new Word("older brother", "taachi", R.drawable.family_older_brother, R.raw.family_older_brother));
words.add(new Word("younger brother", "chalitti", R.drawable.family_younger_brother, R.raw.family_younger_brother));
words.add(new Word("older sister", "teṭe", R.drawable.family_older_sister, R.raw.family_older_sister));
words.add(new Word("younger sister", "kolliti", R.drawable.family_younger_sister, R.raw.family_younger_sister));
words.add(new Word("grandmother ", "ama", R.drawable.family_grandmother, R.raw.family_grandmother));
words.add(new Word("grandfather", "paapa", R.drawable.family_grandfather, R.raw.family_grandfather));
// Create an {@link WordAdapter}, whose data source is a list of {@link Word}s. The
// adapter knows how to create list items for each item in the list.
WordAdapter adapter = new WordAdapter(getActivity(), words, R.color.category_family);
// Find the {@link ListView} object in the view hierarchy of the {@link Activity}.
// There should be a {@link ListView} with the view ID called list, which is declared in the
// word_list.xml layout file.
ListView listView = (ListView) rootView.findViewById(R.id.list);
// Make the {@link ListView} use the {@link WordAdapter} we created above, so that the
// {@link ListView} will display list items for each {@link Word} in the list.
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
releaseMediaPlayerResource();
mMediaPlayer = MediaPlayer.create(getActivity(), words.get(position).getMediaplayerId());
//request audiofocus
audioManager = (AudioManager) getActivity().getSystemService(Context.AUDIO_SERVICE);
int requestResult = audioManager.requestAudioFocus(mOnAudioFocusChangeListener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
if (requestResult == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
mMediaPlayer.start();
mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
releaseMediaPlayerResource();
}
});
}
}
});
return rootView;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment