Guest User

Untitled

a guest
Jun 12th, 2016
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 26.83 KB | None | 0 0
  1. package com.ci.riadalsaliheenradio;
  2.  
  3. import java.util.LinkedList;
  4. import java.util.concurrent.ExecutionException;
  5.  
  6. import org.apache.http.HttpEntity;
  7. import org.apache.http.HttpResponse;
  8. import org.apache.http.client.HttpClient;
  9. import org.apache.http.client.methods.HttpGet;
  10. import org.apache.http.impl.client.DefaultHttpClient;
  11. import org.apache.http.params.BasicHttpParams;
  12. import org.apache.http.params.HttpConnectionParams;
  13. import org.apache.http.params.HttpParams;
  14. import org.apache.http.util.EntityUtils;
  15. import org.json.JSONArray;
  16. import org.json.JSONException;
  17. import org.json.JSONObject;
  18.  
  19. import com.riadalsaliheenradio.R;
  20. import com.nostra13.universalimageloader.core.ImageLoader;
  21. import com.nostra13.universalimageloader.core.assist.FailReason;
  22. import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener;
  23. import com.spoledge.aacdecoder.MultiPlayer;
  24. import com.spoledge.aacdecoder.PlayerCallback;
  25.  
  26. import android.app.Activity;
  27. import android.app.Notification;
  28. import android.app.NotificationManager;
  29. import android.app.PendingIntent;
  30. import android.app.PendingIntent.CanceledException;
  31. import android.content.BroadcastReceiver;
  32. import android.content.ContentResolver;
  33. import android.content.Context;
  34. import android.content.Intent;
  35. import android.content.res.Resources;
  36. import android.graphics.Bitmap;
  37. import android.media.AudioTrack;
  38. import android.net.Uri;
  39. import android.os.AsyncTask;
  40. import android.os.Bundle;
  41. import android.os.Environment;
  42. import android.os.Handler;
  43. import android.support.v4.app.NotificationCompat;
  44. import android.support.v4.view.PagerAdapter;
  45. import android.support.v4.view.ViewPager;
  46. import android.support.v4.view.ViewPager.OnPageChangeListener;
  47. import android.view.LayoutInflater;
  48. import android.view.View;
  49. import android.view.View.OnClickListener;
  50. import android.view.ViewGroup;
  51. import android.widget.ImageView;
  52. import android.widget.LinearLayout;
  53. import android.widget.ProgressBar;
  54. import android.widget.RelativeLayout;
  55. import android.widget.RemoteViews;
  56. import android.widget.ScrollView;
  57. import android.widget.TextView;
  58. import android.widget.Toast;
  59.  
  60. public class RadioMainActivity extends Activity implements OnClickListener, PlayerCallback {
  61.  
  62.     public static NotificationManager mNotificationManager;
  63.     public static Notification notification;
  64.     public static RemoteViews contentView;
  65.     ViewPager viewpager;
  66.     MyPager adpt;
  67.     ImageView imgStationList, iv_exit;
  68.     ScrollView rel_right_pannel;
  69.     static ImageView imgPlayPause;
  70.     ImageView img_right_menu;
  71.     ImageView record_btn, sharebtn;
  72.     String share_text = "Share this text";
  73.     static MultiPlayer multiPlayer;
  74.     static boolean isMusicPlaying = false;
  75.     static String PLAY = "play";
  76.     static String STOP = "stop";
  77.     ProgressBar progressLoading;
  78.     LinearLayout ll_pannel;
  79.     RelativeLayout rel_root;
  80.     Handler uiHandler = new Handler();
  81.  
  82.     // TextView txtStationName, text_songtitle, text_song_artist,
  83.     // txtListercount;
  84.     //static boolean is_playing = false;
  85.     Boolean recordFlag = true;
  86.     boolean is_reset = false;
  87.     ImageLoader imageLoader = ImageLoader.getInstance();
  88.     private String filepath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Radio/RecordList/";
  89.     static String current_btn = PLAY;
  90.     String value;
  91.     boolean flag = false;
  92.     static Intent notification_intent = null;
  93.     LinearLayout view_pager_indicator;
  94.  
  95.     String url = "";
  96.  
  97.     // static MyNotification notification;
  98.  
  99.     @Override
  100.     protected void onCreate(Bundle savedInstanceState) {
  101.  
  102.         super.onCreate(savedInstanceState);
  103.  
  104.         setContentView(R.layout.radio_activity_main);
  105.         imageLoader.init(GetOption.getConfig(RadioMainActivity.this));
  106.         imgStationList = (ImageView) findViewById(R.id.imgStationList);
  107.         img_right_menu = (ImageView) findViewById(R.id.img_right_menu);
  108.         iv_exit = (ImageView) findViewById(R.id.iv_exit);
  109.         ll_pannel = (LinearLayout) findViewById(R.id.ll_pannel);
  110.         viewpager = (ViewPager) findViewById(R.id.viewpager);
  111.         view_pager_indicator = (LinearLayout) findViewById(R.id.view_pager_indicator);
  112.         viewpager.setOffscreenPageLimit(3);
  113.  
  114.         viewpager.setOnPageChangeListener(new OnPageChangeListener() {
  115.  
  116.             @Override
  117.             public void onPageSelected(int position) {
  118.  
  119.                 RadioListActivity.stationPosition = position;
  120.  
  121.        
  122.             stop();
  123.                
  124.            
  125.  
  126.                 ViewPagerIndicator.createDotScrollBar(RadioMainActivity.this, view_pager_indicator,
  127.                         viewpager.getCurrentItem(), adpt.getCount());
  128.             }
  129.  
  130.             @Override
  131.             public void onPageScrolled(int arg0, float arg1, int arg2) {
  132.  
  133.             }
  134.  
  135.             @Override
  136.             public void onPageScrollStateChanged(int arg0) {
  137.  
  138.             }
  139.         });
  140.  
  141.         rel_right_pannel = (ScrollView) findViewById(R.id.rel_right_pannel);
  142.         rel_root = (RelativeLayout) findViewById(R.id.rel_root);
  143.         new MyNotification(this);
  144.         imgPlayPause = (ImageView) findViewById(R.id.imgPlayPause);
  145.         progressLoading = (ProgressBar) findViewById(R.id.progressLoading);
  146.         record_btn = (ImageView) findViewById(R.id.recordBtn);
  147.         sharebtn = (ImageView) findViewById(R.id.sharebtn);
  148.  
  149.         imgPlayPause.setVisibility(View.VISIBLE);
  150.         progressLoading.setVisibility(View.GONE);
  151.  
  152.         if (isMusicPlaying) {
  153.             setTooglePlayPause(PLAY, imgPlayPause);
  154.         } else {
  155.             setTooglePlayPause(STOP, imgPlayPause);
  156.         }
  157.  
  158.         imgStationList.setOnClickListener(this);
  159.         imgPlayPause.setOnClickListener(this);
  160.         record_btn.setOnClickListener(this);
  161.         sharebtn.setOnClickListener(this);
  162.         img_right_menu.setOnClickListener(this);
  163.  
  164.         iv_exit.setOnClickListener(this);
  165.  
  166.         setLoadView(Constant.CallGetStation);
  167.  
  168.         if (RadioListActivity.stationList == null || RadioListActivity.stationList.size() <= 0) {
  169.             WebAPIHelper helper = new WebAPIHelper(Constant.CallGetStation, RadioMainActivity.this, true);
  170.             helper.callRequest(Constant.streaming + "?device=1&device_id=" + Constant.device_id);
  171.  
  172.         } else {
  173.             WebAPIHelper helper = new WebAPIHelper(Constant.CallGetStation, RadioMainActivity.this, false);
  174.             helper.callRequest(Constant.streaming + "?device=1&device_id=" + Constant.device_id);
  175.         }
  176.  
  177.         new GetImageList().execute();
  178.  
  179.     }
  180.  
  181.     @Override
  182.     protected void onDestroy() {
  183.         mNotificationManager.cancel(548853);
  184.         super.onDestroy();
  185.     }
  186.  
  187.     public void setTooglePlayPause(String btn, ImageView img) {
  188.         img.setImageBitmap(null);
  189.         current_btn = btn;
  190.         if (btn.equals(PLAY)) {
  191.             img.setImageResource(R.drawable.stop);
  192.         } else {
  193.             img.setImageResource(R.drawable.play);
  194.         }
  195.         setNotificationContent(RadioMainActivity.this);
  196.     }
  197.  
  198.     @Override
  199.     public void onClick(View v) {
  200.  
  201.         switch (v.getId()) {
  202.         case R.id.imgStationList:
  203.             Intent inStationList = new Intent(RadioMainActivity.this, RadioListActivity.class);
  204.             startActivity(inStationList);
  205.             overridePendingTransition(R.anim.back_slide_in, R.anim.back_slide_out);
  206.             break;
  207.         case R.id.imgPlayPause:
  208.             if (isMusicPlaying) {
  209.                 stop();
  210.             } else {
  211.                 start();
  212.             }
  213.             break;
  214.  
  215.         case R.id.iv_exit:
  216.             stop();
  217.             finish();
  218.             break;
  219.         case R.id.sharebtn:
  220.             Intent intent = null;
  221.             Resources resources = getResources();
  222.             Uri uri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://"
  223.                     + resources.getResourcePackageName(R.drawable.share_image) + '/'
  224.                     + resources.getResourceTypeName(R.drawable.share_image) + '/'
  225.                     + resources.getResourceEntryName(R.drawable.share_image));
  226.             intent = new Intent(Intent.ACTION_SEND);
  227.             intent.putExtra(Intent.EXTRA_STREAM, uri);
  228.             intent.setType("image/*");
  229.             intent.putExtra(Intent.EXTRA_SUBJECT, "تطبيق إذاعة مركز رياض الصالحين");
  230.             intent.putExtra(Intent.EXTRA_TEXT, "http://bit.ly/riadalsaliheenapk \nhttp://bit.ly/riadalsaliheenios");
  231.             startActivity(Intent.createChooser(intent, "شارك التطبيق"));
  232.  
  233.             break;
  234.         // case R.id.iv_share_icon:
  235.         // Intent sharingIntent = new Intent(
  236.         // android.content.Intent.ACTION_SEND);
  237.         // sharingIntent.setType("text/plain");
  238.         // sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,
  239.         // "Radio");
  240.         // sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT,
  241.         // share_text);
  242.         // startActivity(Intent.createChooser(sharingIntent,
  243.         // "حصة هذا باستخدام"));
  244.         // break;
  245.         case R.id.img_right_menu:
  246.             if (rel_right_pannel.getVisibility() == View.VISIBLE) {
  247.                 rel_right_pannel.setVisibility(View.GONE);
  248.                 RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
  249.                         RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
  250.                 params.setMargins(0, 0, 0, 0);
  251.                 params.addRule(RelativeLayout.LEFT_OF, R.id.rel_right_pannel);
  252.                 rel_root.setLayoutParams(params);
  253.             } else {
  254.                 rel_right_pannel.setVisibility(View.VISIBLE);
  255.                 RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
  256.                         RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
  257.                 params.setMargins(-(getResources().getDimensionPixelSize(R.dimen.six_zero)), 0, 0, 0);
  258.                 params.addRule(RelativeLayout.LEFT_OF, R.id.rel_right_pannel);
  259.                 rel_root.setLayoutParams(params);
  260.             }
  261.             break;
  262.         }
  263.  
  264.     }
  265.  
  266.     private void start() {
  267.         try {
  268.             if (multiPlayer != null && isMusicPlaying) {
  269.                 imgPlayPause.setVisibility(View.VISIBLE);
  270.                 progressLoading.setVisibility(View.GONE);
  271.  
  272.             } else {
  273.                 stop();
  274.                 multiPlayer = new MultiPlayer(this);
  275.                 imgPlayPause.setVisibility(View.GONE);
  276.                 progressLoading.setVisibility(View.VISIBLE);
  277.                 multiPlayer.setAudioBufferCapacityMs(3000);
  278.                 multiPlayer.playAsync(getUrl());
  279.                 // multiPlayer.setOnPreparedListener(new OnPreparedListener() {
  280.                 // @Override
  281.                 // public void onPrepared(MediaPlayer mp) {
  282.                 // if (multiPlayer != null) {
  283.                 // setTooglePlayPause(PLAY, imgPlayPause);
  284.                 // imgPlayPause.setVisibility(View.VISIBLE);
  285.                 // progressLoading.setVisibility(View.GONE);
  286.                 // multiPlayer.start();
  287.                 // isMusicPlaying = true;
  288.                 // }
  289.                 // }
  290.                 // });
  291.  
  292.                 // multiPlayer.setOnErrorListener(new OnErrorListener() {
  293.                 // @Override
  294.                 // public boolean onError(MediaPlayer mp, int what, int extra) {
  295.                 // if (what != -38) {
  296.                 // progressLoading.setVisibility(View.GONE);
  297.                 // imgPlayPause.setVisibility(View.VISIBLE);
  298.                 // new AlertDialog.Builder(RadioMainActivity.this)
  299.                 // .setTitle("لم يتم تشغيل الإذاعة")
  300.                 // .setMessage("البث متوقف أو مشكلة في الإتصال. المرجو إعادة
  301.                 // المحاولة")
  302.                 // .setNeutralButton(
  303.                 // "إغلاق",
  304.                 // new DialogInterface.OnClickListener() {
  305.                 // public void onClick(
  306.                 // DialogInterface dialog,
  307.                 // int id) {
  308.                 // dialog.cancel();
  309.                 // }
  310.                 // }).show();
  311.                 // }
  312.                 // return false;
  313.                 // }
  314.                 // });
  315.  
  316.             }
  317.         } catch (Exception e) {
  318.  
  319.         }
  320.     }
  321.  
  322.     private void stop() {
  323.         if (multiPlayer != null) {
  324.             isMusicPlaying = false;
  325.             multiPlayer.stop();
  326.             multiPlayer = null;
  327.        
  328.         }
  329.  
  330.     }
  331.  
  332.     private String getUrl() {
  333.  
  334.         if (RadioListActivity.stationList == null || RadioListActivity.stationList.size() <= 0) {
  335.             return "";
  336.         }
  337.  
  338.         if (RadioListActivity.stationList.get(RadioListActivity.stationPosition).pls_url.equals("")) {
  339.  
  340.             LinkedList<String> urls = null;
  341.             GetStreamingUrl oGetStreamingUrl = new GetStreamingUrl(RadioMainActivity.this,
  342.                     RadioListActivity.stationList.get(RadioListActivity.stationPosition).getStreaming_url());
  343.             try {
  344.                 urls = oGetStreamingUrl.execute().get();
  345.             } catch (InterruptedException e) {
  346.                 e.printStackTrace();
  347.             } catch (ExecutionException e) {
  348.                 e.printStackTrace();
  349.             }
  350.  
  351.             if (urls != null && urls.size() > 0) {
  352.                 Station staion = RadioListActivity.stationList.get(RadioListActivity.stationPosition);
  353.                 staion.pls_url = urls.get(0);
  354.                 RadioListActivity.stationList.set(RadioListActivity.stationPosition, staion);
  355.                 return urls.get(0);
  356.             } else
  357.                 return "";
  358.  
  359.         } else {
  360.             return RadioListActivity.stationList.get(RadioListActivity.stationPosition).pls_url;
  361.         }
  362.  
  363.     }
  364.  
  365.     private String getImage(int position) {
  366.         if (RadioListActivity.stationList == null || RadioListActivity.stationList.size() <= 0) {
  367.             return "";
  368.         }
  369.         String ret = RadioListActivity.stationList.get(position).getLogo();
  370.  
  371.         return ret;
  372.     }
  373.  
  374.     @Override
  375.     protected void onResume() {
  376.         super.onResume();
  377.         if (RadioListActivity.stationList != null && RadioListActivity.stationList.size() > 0) {
  378.  
  379.             if (viewpager != null && adpt != null && adpt.getCount() > RadioListActivity.stationPosition) {
  380.                 viewpager.setCurrentItem(RadioListActivity.stationPosition, true);
  381.                 // start();
  382.             } else {
  383.                 start();
  384.             }
  385.         }
  386.     }
  387.  
  388.     public class GetImageList extends AsyncTask<Void, Void, Void> {
  389.  
  390.         String jsonResponse;
  391.  
  392.         // String stationUrl = "http://sunnapod.com/service/icon.php";
  393.  
  394.         public GetImageList() {
  395.         }
  396.  
  397.         @Override
  398.         protected Void doInBackground(Void... params) {
  399.             try {
  400.                 HttpParams httpParameters = new BasicHttpParams();
  401.                 HttpConnectionParams.setConnectionTimeout(httpParameters, 10000);
  402.                 HttpConnectionParams.setSoTimeout(httpParameters, 10000);
  403.                 HttpClient client = new DefaultHttpClient(httpParameters);
  404.                 HttpResponse response = client.execute(new HttpGet(Constant.icon_Url));
  405.                 HttpEntity resEntity = response.getEntity();
  406.                 jsonResponse = EntityUtils.toString(resEntity);
  407.  
  408.             } catch (Exception e) {
  409.  
  410.             }
  411.             return null;
  412.         }
  413.  
  414.         @Override
  415.         protected void onPostExecute(Void result) {
  416.  
  417.             super.onPostExecute(result);
  418.  
  419.             try {
  420.                 JSONArray jArray = new JSONArray(jsonResponse);
  421.                 for (int i = 0; i < jArray.length(); i++) {
  422.                     JSONObject jobj = jArray.getJSONObject(i);
  423.                     if (jobj.getString("status").equals("Active")) {
  424.                         if (jobj.getString("type").equals("web")) {
  425.                             final String url_call = jobj.getString("url");
  426.                             record_btn.setVisibility(View.VISIBLE);
  427.                             if (GetOption.check(jobj.optString("logo"))) {
  428.                                 imageLoader.displayImage(jobj.optString("logo"), record_btn, GetOption.getOption());
  429.                             }
  430.                             record_btn.setOnClickListener(new OnClickListener() {
  431.                                 @Override
  432.                                 public void onClick(View v) {
  433.                                     if (url_call != null && !url_call.equals("")) {
  434.                                         Intent intent_youtube = new Intent(RadioMainActivity.this, OpenSharing.class);
  435.                                         intent_youtube.putExtra("url", url_call);
  436.                                         startActivity(intent_youtube);
  437.                                         overridePendingTransition(R.anim.slide_in, R.anim.slide_out);
  438.                                     }
  439.  
  440.                                 }
  441.                             });
  442.                         } else {
  443.                             ll_pannel.addView(getView(jobj), ll_pannel.getChildCount() - 2);
  444.                         }
  445.                     }
  446.                 }
  447.  
  448.             } catch (Exception e) {
  449.                 e.printStackTrace();
  450.             }
  451.         }
  452.     }
  453.  
  454.     private View getView(JSONObject jobj) {
  455.         View child = getLayoutInflater().inflate(R.layout.row_layout, null);
  456.         ImageView iv_icon = (ImageView) child.findViewById(R.id.iv_icon);
  457.         if (GetOption.check(jobj.optString("logo"))) {
  458.             imageLoader.displayImage(jobj.optString("logo"), iv_icon, GetOption.getOption());
  459.         }
  460.         try {
  461.             final String mode = jobj.getString("type");
  462.             final String url_call = jobj.getString("url");
  463.             iv_icon.setOnClickListener(new OnClickListener() {
  464.                 @Override
  465.                 public void onClick(View v) {
  466.                     if (mode.equals("mail")) {
  467.                         try {
  468.                             Intent emailIntent = new Intent(Intent.ACTION_SENDTO,
  469.                                     Uri.fromParts("mailto", "[email protected]", null));
  470.                             emailIntent.putExtra(Intent.EXTRA_SUBJECT, "تطبيق إذاعة مركز رياض الصالحين");
  471.                             startActivity(Intent.createChooser(emailIntent, "إرسال بريد عن طريق ..."));
  472.                         } catch (Exception e) {
  473.                             Toast.makeText(getApplicationContext(), "لايوجد تطبيق بريدي", Toast.LENGTH_LONG).show();
  474.                         }
  475.                     } else {
  476.                         Intent intent_youtube = new Intent(RadioMainActivity.this, OpenSharing.class);
  477.                         intent_youtube.putExtra("url", url_call);
  478.                         startActivity(intent_youtube);
  479.                         overridePendingTransition(R.anim.slide_in, R.anim.slide_out);
  480.                     }
  481.  
  482.                 }
  483.             });
  484.         } catch (JSONException e) {
  485.             e.printStackTrace();
  486.         }
  487.         return child;
  488.     }
  489.  
  490.     public class MyNotification extends Notification {
  491.         private Context ctx;
  492.  
  493.         public MyNotification(Context ctx) {
  494.             super();
  495.             this.ctx = ctx;
  496.             String ns = Context.NOTIFICATION_SERVICE;
  497.             mNotificationManager = (NotificationManager) ctx.getSystemService(ns);
  498.             // app name bar status
  499.             CharSequence tickerText = "إذاعة مركز رياض الصالحين";
  500.             // CharSequence tickerText="@string/app_name";
  501.             long when = System.currentTimeMillis();
  502.             notification = new NotificationCompat.Builder(ctx).build();
  503.             notification.when = when;
  504.             notification.tickerText = tickerText;
  505.             notification.icon = R.drawable.ic_launcher;
  506.             setNotificationContent(ctx);
  507.  
  508.         }
  509.  
  510.     }
  511.  
  512.     public static void setNotificationContent(Context ctx) {
  513.         // TODO Auto-generated method stub
  514.  
  515.         if (notification_intent == null) {
  516.             contentView = new RemoteViews(ctx.getPackageName(), R.layout.notification_layout);
  517.  
  518.             Intent notificationIntent = new Intent(ctx, RadioMainActivity.class);
  519.  
  520.             PendingIntent pendingNotificationIntent = PendingIntent.getActivity(ctx, 0, notificationIntent, 0);
  521.  
  522.             // for play pause
  523.  
  524.             Intent notification_intent = new Intent(ctx, switchButtonListener.class);
  525.             notification_intent.setAction("com.application.RADIO_UPDATE");
  526.             PendingIntent penPlay = PendingIntent.getBroadcast(ctx, 0, notification_intent,
  527.                     PendingIntent.FLAG_UPDATE_CURRENT);
  528.  
  529.             Intent notification_intent_click = new Intent(ctx, switchButtonListener.class);
  530.             notification_intent_click.setAction("com.application.RADIO_UPDATE_CLICK");
  531.             PendingIntent penPlay_click = PendingIntent.getBroadcast(ctx, 0, notification_intent_click,
  532.                     PendingIntent.FLAG_UPDATE_CURRENT);
  533.  
  534.             contentView.setOnClickPendingIntent(R.id.radio_notification_play_pause, penPlay_click);
  535.  
  536.             try {
  537.                 penPlay.send();
  538.             } catch (CanceledException e) {
  539.  
  540.                 e.printStackTrace();
  541.             }
  542.             notification.contentIntent = pendingNotificationIntent;
  543.             notification.contentView = contentView;
  544.  
  545.             mNotificationManager.notify(548853, notification);
  546.         } else {
  547.             PendingIntent penPlay = PendingIntent.getBroadcast(ctx, 0, notification_intent,
  548.                     PendingIntent.FLAG_UPDATE_CURRENT);
  549.             try {
  550.                 penPlay.send();
  551.             } catch (CanceledException e) {
  552.                 e.printStackTrace();
  553.             }
  554.         }
  555.     }
  556.  
  557.     public static class switchButtonListener extends BroadcastReceiver {
  558.         @Override
  559.         public void onReceive(Context context, Intent intent) {
  560.  
  561.             if (intent.getAction().equals("com.application.RADIO_UPDATE") && contentView != null) {
  562.                 if (current_btn.equals(PLAY)) {
  563.                     contentView.setImageViewResource(R.id.radio_notification_play_pause, R.drawable.stop);
  564.                 } else {
  565.                     contentView.setImageViewResource(R.id.radio_notification_play_pause, R.drawable.play);
  566.                 }
  567.  
  568.                 if (RadioListActivity.stationList != null
  569.                         && RadioListActivity.stationList.size() > RadioListActivity.stationPosition) {
  570.  
  571.                     contentView.setTextViewText(R.id.text_notification_radio_station,
  572.                             RadioListActivity.stationList.get(RadioListActivity.stationPosition).getTrack_title());
  573.                     contentView.setTextViewText(R.id.text_notification_radio_songtitle,
  574.                             RadioListActivity.stationList.get(RadioListActivity.stationPosition).getArtist_name());
  575.  
  576.                     notification.contentView = contentView;
  577.  
  578.                     mNotificationManager.notify(548853, notification);
  579.                 }
  580.  
  581.             } else if (intent.getAction().equals("com.application.RADIO_UPDATE_CLICK")) {
  582.                 if (imgPlayPause != null) {
  583.                     imgPlayPause.performClick();
  584.                 } else {
  585.                     mNotificationManager.cancel(548853);
  586.                 }
  587.             }
  588.         }
  589.     }
  590.  
  591.     public void setLoadView(int requestNumber) {
  592.         try {
  593.             RadioListActivity.stationList.clear();
  594.             JSONArray jArray = new JSONArray(
  595.                     SecurePreferences.getPreference(String.valueOf(requestNumber), "", RadioMainActivity.this));
  596.             for (int i = 0; i < jArray.length(); i++) {
  597.                 Station station = new Station();
  598.                 JSONObject jobj = jArray.getJSONObject(i);
  599.                 station.id = jobj.optString("url");
  600.                 station.name = jobj.optString("name");
  601.                 station.streaming_url = jobj.optString("streaming_url");
  602.                 station.json_url = jobj.optString("json_url");
  603.  
  604.                 WebAPIHelper helper = new WebAPIHelper(Constant.call_json_url, RadioMainActivity.this, false, i);
  605.                 helper.callRequest(station.json_url);
  606.  
  607.                 station.description = jobj.optString("description");
  608.                 station.logo = jobj.optString("logo");
  609.                 RadioListActivity.stationList.add(station);
  610.             }
  611.  
  612.             final Handler handler = new Handler();
  613.             handler.postDelayed(new Runnable() {
  614.                 @Override
  615.                 public void run() {
  616.                     if (RadioListActivity.stationList.size() > 0
  617.                             && RadioListActivity.stationList.size() > RadioListActivity.stationPosition) {
  618.                         WebAPIHelper helper = new WebAPIHelper(Constant.call_json_url, RadioMainActivity.this, false,
  619.                                 RadioListActivity.stationPosition);
  620.                         helper.callRequest(
  621.                                 RadioListActivity.stationList.get(RadioListActivity.stationPosition).json_url);
  622.                         System.out.println("service call"
  623.                                 + RadioListActivity.stationList.get(RadioListActivity.stationPosition).json_url);
  624.                     }
  625.                     handler.postDelayed(this, 60000);
  626.                 }
  627.             }, 60000);
  628.             adpt = new MyPager();
  629.             viewpager.setAdapter(adpt);
  630.             ViewPagerIndicator.createDotScrollBar(RadioMainActivity.this, view_pager_indicator, 0,
  631.                     this.adpt.getCount());
  632.  
  633.         } catch (Exception e) {
  634.             System.out.println(e.getMessage());
  635.         }
  636.     }
  637.  
  638.     public void setResponse(String response, int postion) {
  639.  
  640.         try {
  641.             JSONObject j_obj = new JSONObject(response).getJSONArray("data").getJSONObject(0);
  642.             Station staion = RadioListActivity.stationList.get(postion);
  643.             staion.song_title = j_obj.optString("song");
  644.             staion.artist_name = j_obj.getJSONObject("track").optString("artist");
  645.             staion.track_title = j_obj.getJSONObject("track").optString("title");
  646.             staion.listner = j_obj.optString("listeners");
  647.             RadioListActivity.stationList.set(postion, staion);
  648.  
  649.             if (viewpager.getCurrentItem() == RadioListActivity.stationPosition) {
  650.  
  651.                 if (adpt != null)
  652.                     adpt.notifyDataSetChanged();
  653.  
  654.                 // txtStationName.setText(RadioListActivity.stationList.get(
  655.                 // RadioListActivity.stationPosition).getName());
  656.                 // text_songtitle.setText(RadioListActivity.stationList.get(
  657.                 // RadioListActivity.stationPosition).getTrack_title());
  658.                 // text_song_artist.setText(RadioListActivity.stationList.get(
  659.                 // RadioListActivity.stationPosition).getArtist_name());
  660.                 // txtListercount.setText(RadioListActivity.stationList.get(
  661.                 // RadioListActivity.stationPosition).getListner()
  662.                 // + " المستمع");
  663.             }
  664.  
  665.         } catch (JSONException e) {
  666.             e.printStackTrace();
  667.         }
  668.  
  669.     }
  670.  
  671.     public class MyPager extends PagerAdapter {
  672.         @Override
  673.         public int getCount() {
  674.             if (RadioListActivity.stationList == null || RadioListActivity.stationList.size() <= 0) {
  675.                 return 0;
  676.  
  677.             } else {
  678.                 return RadioListActivity.stationList.size();
  679.             }
  680.         }
  681.  
  682.         @Override
  683.         public boolean isViewFromObject(View arg0, Object arg1) {
  684.             return arg0 == arg1;
  685.         }
  686.  
  687.         @Override
  688.         public Object instantiateItem(ViewGroup container, final int position) {
  689.  
  690.             LayoutInflater inflate = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  691.  
  692.             View pager_layout = inflate.inflate(R.layout.viewpager_row, null);
  693.  
  694.             TextView txtStationName = (TextView) pager_layout.findViewById(R.id.txtStationName);
  695.             TextView text_songtitle = (TextView) pager_layout.findViewById(R.id.text_songtitle);
  696.             TextView text_song_artist = (TextView) pager_layout.findViewById(R.id.text_song_artist);
  697.             TextView txtListercount = (TextView) pager_layout.findViewById(R.id.txtListercount);
  698.             final ImageView radio_icon = (ImageView) pager_layout.findViewById(R.id.radio_icon);
  699.             txtStationName.setText(RadioListActivity.stationList.get(position).getName());
  700.  
  701.             if (GetOption.check(getImage(position))) {
  702.                 imageLoader.displayImage(getImage(position), radio_icon, GetOption.getOption(),
  703.                         new SimpleImageLoadingListener() {
  704.                             @Override
  705.                             public void onLoadingStarted(String imageUri, View view) {
  706.                                 radio_icon.setImageBitmap(null);
  707.                             }
  708.  
  709.                             @Override
  710.                             public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
  711.                             }
  712.  
  713.                             @Override
  714.                             public void onLoadingComplete(String imageUri, View view, final Bitmap loadedImage) {
  715.                             }
  716.                         });
  717.             }
  718.             txtStationName.setText(RadioListActivity.stationList.get(position).getName());
  719.             text_songtitle.setText(RadioListActivity.stationList.get(position).getTrack_title());
  720.             text_song_artist.setText(RadioListActivity.stationList.get(position).getArtist_name());
  721.             txtListercount.setText("المستمعين: " + RadioListActivity.stationList.get(position).getListner());
  722.  
  723.             container.addView(pager_layout);
  724.             return pager_layout;
  725.         }
  726.  
  727.         public int getItemPosition(Object object) {
  728.             return POSITION_NONE;
  729.         }
  730.  
  731.         @Override
  732.         public void destroyItem(ViewGroup container, int position, Object object) {
  733.             container.removeView((RelativeLayout) object);
  734.         }
  735.     }
  736.  
  737.     @Override
  738.     public void playerAudioTrackCreated(AudioTrack arg0) {
  739.         // TODO Auto-generated method stub
  740.  
  741.     }
  742.  
  743.     @Override
  744.     public void playerException(Throwable arg0) {
  745.         start();
  746.         // progressLoading.setVisibility(View.GONE);
  747.         // imgPlayPause.setVisibility(View.VISIBLE);
  748.         // new AlertDialog.Builder(RadioMainActivity.this)
  749.         // .setTitle("لم يتم تشغيل الإذاعة")
  750.         // .setMessage(
  751.         // "البث متوقف أو مشكلة في الإتصال. المرجو إعادة المحاولة")
  752.         // .setNeutralButton("إغلاق",
  753.         // new DialogInterface.OnClickListener() {
  754.         // public void onClick(DialogInterface dialog, int id) {
  755.         // dialog.cancel();
  756.         // }
  757.         // }).show();
  758.  
  759.     }
  760.  
  761.     @Override
  762.     public void playerMetadata(String arg0, String arg1) {
  763.  
  764.     }
  765.  
  766.     // @Override
  767.     // public void playerPCMFeedBuffer(boolean arg0, int arg1, int arg2) {
  768.     // System.out.println("Buffer");
  769.     //
  770.     // }
  771.  
  772.     @Override
  773.     public void playerStarted() {
  774.  
  775.         uiHandler.post(new Runnable() {
  776.             public void run() {
  777.                 setTooglePlayPause(PLAY, imgPlayPause);
  778.                 imgPlayPause.setVisibility(View.VISIBLE);
  779.                 progressLoading.setVisibility(View.GONE);
  780.                 isMusicPlaying = true;
  781.             //  is_playing = true;
  782.             }
  783.         });
  784.     }
  785.  
  786.     @Override
  787.     public void playerPCMFeedBuffer(final boolean isPlaying, final int audioBufferSizeMs,
  788.             final int audioBufferCapacityMs) {
  789.     //  if (is_playing) {
  790.             uiHandler.post(new Runnable() {
  791.                 public void run() {
  792.                     isMusicPlaying = isPlaying;
  793.                     progressLoading.setVisibility(View.GONE);
  794.                     imgPlayPause.setVisibility(View.VISIBLE);
  795.                     if (isMusicPlaying) {
  796.                         setTooglePlayPause(PLAY, imgPlayPause);
  797.                     }
  798.                     else
  799.                     {
  800.                         progressLoading.setVisibility(View.VISIBLE);
  801.                         imgPlayPause.setVisibility(View.GONE);
  802.                     }
  803.                 }
  804.             });
  805.     //  }
  806.     }
  807.  
  808.     @Override
  809.     public void playerStopped(final int perf) {
  810.         uiHandler.post(new Runnable() {
  811.             public void run() {
  812.                 isMusicPlaying = false;
  813.             //  is_playing = false;
  814.                 setTooglePlayPause(STOP, imgPlayPause);
  815.             }
  816.         });
  817.  
  818.     }
  819.  
  820. }
Advertisement
Add Comment
Please, Sign In to add comment