package it.fdev.unisaconnect; import it.fdev.unisaconnect.R; import it.fdev.utils.MySimpleFragment; import java.io.File; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.graphics.Color; import android.graphics.drawable.Drawable; import android.net.Uri; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.View.OnLongClickListener; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; public class FragmentWebRadio extends MySimpleFragment { private final String STREAMING_URL = "http://streamingradio.unisa.it/stream"; private final String STREAMING_URL_64 = "http://streamingradio.unisa.it/stream64"; private final String UNISOUND_WEB_PAGE = "http://iunisa.unisa.it/WEBRADIO-6.html"; private ImageView unisoundLogoBig, albumArtView, btnPlayView, btnStopView; private TextView titleView, artistView; private ProgressBar bufferingSpinnerView; IntentFilter mPlayerFilter = new IntentFilter(); private final BroadcastReceiver mHandlerPlayerReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { Bundle extras = intent.getExtras(); boolean isPlaying, isBuffering; String title, artist; Drawable albumArt = null; isPlaying = extras.getBoolean("is_playing"); isBuffering = extras.getBoolean("is_buffering"); title = extras.getString("title"); artist = extras.getString("artist"); String imageFile = extras.getString("imageFile"); if (imageFile != null) { File filePath = mActivity.getFileStreamPath(imageFile); albumArt = Drawable.createFromPath(filePath.toString()); } if (isBuffering && !isPlaying) { btnPlayView.setVisibility(View.GONE); btnStopView.setVisibility(View.GONE); bufferingSpinnerView.setVisibility(View.VISIBLE); } else { if (isPlaying) { btnPlayView.setVisibility(View.GONE); btnStopView.setVisibility(View.VISIBLE); bufferingSpinnerView.setVisibility(View.GONE); } else { btnPlayView.setVisibility(View.VISIBLE); btnStopView.setVisibility(View.GONE); bufferingSpinnerView.setVisibility(View.GONE); } } if (!isBuffering) { titleView.setText(title); artistView.setText(artist); if (albumArt != null) { albumArtView.setImageDrawable(albumArt); } else { albumArtView.setImageResource(R.drawable.music_note_dark); } } if (isBuffering || title.isEmpty()) { titleView.setText(R.string.unisound); artistView.setText(""); albumArtView.setImageResource(R.drawable.music_note_dark); } } }; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View mainView = (View) inflater.inflate(R.layout.fragment_web_radio, container, false); mPlayerFilter.addAction(WebRadioPlayerService.BROADCAST_STATUS_CHANGED); return mainView; } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); unisoundLogoBig = (ImageView) view.findViewById(R.id.unisound_logo_big); albumArtView = (ImageView) view.findViewById(R.id.song_album_art); btnPlayView = (ImageView) view.findViewById(R.id.button_play); btnStopView = (ImageView) view.findViewById(R.id.button_stop); bufferingSpinnerView = (ProgressBar) view.findViewById(R.id.buffering_spinner); titleView = (TextView) view.findViewById(R.id.song_name); artistView = (TextView) view.findViewById(R.id.song_artist); // Set spinner color bufferingSpinnerView.getIndeterminateDrawable().setColorFilter(Color.GRAY, android.graphics.PorterDuff.Mode.MULTIPLY); unisoundLogoBig.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View v) { Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(UNISOUND_WEB_PAGE)); startActivity(i); return true; } }); btnPlayView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent playerService = new Intent(mActivity, WebRadioPlayerService.class); playerService.setAction(WebRadioPlayerService.ACTION_PLAY); playerService.putExtra("streamingURL", STREAMING_URL); mActivity.startService(playerService); } }); btnStopView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent playerService = new Intent(mActivity, WebRadioPlayerService.class); playerService.setAction(WebRadioPlayerService.ACTION_STOP); mActivity.startService(playerService); } }); } @Override public void onResume() { super.onResume(); mActivity.registerReceiver(mHandlerPlayerReceiver, mPlayerFilter); requestUpdateFromService(); } @Override public void onPause() { super.onPause(); mActivity.unregisterReceiver(mHandlerPlayerReceiver); } @Override public int getTitleResId() { return R.string.unisound; } private void requestUpdateFromService() { Intent playerService = new Intent(mActivity, WebRadioPlayerService.class); playerService.setAction(WebRadioPlayerService.ACTION_UPDATE); mActivity.startService(playerService); } }