Advertisement
JaimeMetano

FragmentSongByArtist

Aug 24th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.38 KB | None | 0 0
  1. package com.apps.onemusicmoz;
  2.  
  3. import android.content.Intent;
  4. import android.graphics.Bitmap;
  5. import android.graphics.drawable.BitmapDrawable;
  6. import android.graphics.drawable.Drawable;
  7. import android.os.AsyncTask;
  8. import android.os.Bundle;
  9. import android.support.v4.app.Fragment;
  10. import android.support.v4.view.MenuItemCompat;
  11. import android.support.v4.view.ViewPager;
  12. import android.support.v7.widget.DefaultItemAnimator;
  13. import android.support.v7.widget.LinearLayoutManager;
  14. import android.support.v7.widget.RecyclerView;
  15. import android.support.v7.widget.SearchView;
  16. import android.support.v7.widget.Toolbar;
  17. import android.view.LayoutInflater;
  18. import android.view.Menu;
  19. import android.view.MenuInflater;
  20. import android.view.MenuItem;
  21. import android.view.View;
  22. import android.view.ViewGroup;
  23. import android.widget.ImageView;
  24. import android.widget.RelativeLayout;
  25. import android.widget.TextView;
  26. import android.widget.Toast;
  27.  
  28. import com.apps.adapter.AdapterSongList;
  29. import com.apps.item.ItemSong;
  30. import com.apps.utils.BlurTransform;
  31. import com.apps.utils.Constant;
  32. import com.apps.utils.JsonUtils;
  33. import com.apps.utils.RecyclerItemClickListener;
  34. import com.apps.utils.ZProgressHUD;
  35. import com.google.android.gms.ads.AdListener;
  36. import com.google.android.gms.ads.AdRequest;
  37. import com.google.android.gms.ads.InterstitialAd;
  38. import com.squareup.picasso.Picasso;
  39. import com.squareup.picasso.Target;
  40.  
  41. import org.json.JSONArray;
  42. import org.json.JSONException;
  43. import org.json.JSONObject;
  44. import org.w3c.dom.Text;
  45.  
  46. import java.util.ArrayList;
  47.  
  48. public class FragmentSongByArtist extends Fragment {
  49.  
  50.  
  51. RecyclerView recyclerView;
  52. ArrayList<ItemSong> arrayList;
  53. public static AdapterSongList adapterSongList;
  54. ZProgressHUD progressHUD;
  55. LinearLayoutManager linearLayoutManager;
  56. SearchView searchView;
  57. String artist_name = "", image = "";
  58. TextView textView_empty;
  59. // InterstitialAd mInterstitial;
  60.  
  61. @Override
  62. public View onCreateView(LayoutInflater inflater, ViewGroup container,
  63. Bundle savedInstanceState) {
  64. // TODO Auto-generated method stub
  65.  
  66. View rootView = inflater.inflate(R.layout.activity_song_by_cat, container, false);
  67.  
  68.  
  69.  
  70. textView_empty = (TextView) rootView.findViewById(R.id.textView_empty_artist);
  71. ImageView imageView = (ImageView)rootView.findViewById(R.id.imageView_back);
  72. imageView.setVisibility(View.VISIBLE);
  73.  
  74. progressHUD = ZProgressHUD.getInstance(getActivity());
  75. progressHUD.setMessage(getResources().getString(R.string.loading));
  76. progressHUD.setSpinnerType(ZProgressHUD.FADED_ROUND_SPINNER);
  77.  
  78. artist_name = getArguments().getString("artist");
  79. image = getArguments().getString("image");
  80. ((MainActivity)getActivity()).getSupportActionBar().setTitle(artist_name);
  81. // rl = (RelativeLayout)rootView.findViewById(R.id.activity_song_by_cat);
  82. Picasso.with(getActivity())
  83. .load(image)
  84. .transform(new BlurTransform(getActivity()))
  85. .into(new Target() {
  86. @Override
  87. public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
  88. // rl.setBackground(new BitmapDrawable(bitmap));
  89. }
  90.  
  91. @Override
  92. public void onBitmapFailed(Drawable errorDrawable) {
  93.  
  94. }
  95.  
  96. @Override
  97. public void onPrepareLoad(Drawable placeHolderDrawable) {
  98.  
  99. }
  100. });
  101.  
  102. arrayList = new ArrayList<>();
  103. recyclerView = (RecyclerView)rootView.findViewById(R.id.recyclerView_songbycat);
  104. linearLayoutManager = new LinearLayoutManager(getActivity());
  105. recyclerView.setLayoutManager(linearLayoutManager);
  106. recyclerView.setItemAnimator(new DefaultItemAnimator());
  107. recyclerView.setHasFixedSize(true);
  108.  
  109. if (JsonUtils.isNetworkAvailable(getActivity())) {
  110. new LoadSongs().execute(Constant.URL_SONG_BY_ARTIST + artist_name.replace(" ","%20"));
  111. } else {
  112.  
  113. }
  114.  
  115. recyclerView.addOnItemTouchListener(new RecyclerItemClickListener(getActivity(), new RecyclerItemClickListener.OnItemClickListener() {
  116. @Override
  117. public void onItemClick(View view, int position) {
  118. showInter(position);
  119. }
  120. }));
  121.  
  122. setHasOptionsMenu(true);
  123. return rootView;
  124. }
  125.  
  126. @Override
  127. public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
  128. inflater.inflate(R.menu.menu_search, menu);
  129.  
  130. MenuItem item = menu.findItem(R.id.menu_search);
  131. MenuItemCompat.setShowAsAction(item, MenuItemCompat.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW | MenuItemCompat.SHOW_AS_ACTION_IF_ROOM);
  132. searchView =
  133. (SearchView) menu.findItem(R.id.menu_search).getActionView();
  134. searchView.setOnQueryTextListener(queryTextListener);
  135. }
  136.  
  137. SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() {
  138. @Override
  139. public boolean onQueryTextSubmit(String s) {
  140. return false;
  141. }
  142.  
  143. @Override
  144. public boolean onQueryTextChange(String s) {
  145.  
  146. if (searchView.isIconified()) {
  147. recyclerView.setAdapter(adapterSongList);
  148. adapterSongList.notifyDataSetChanged();
  149. } else {
  150. adapterSongList.getFilter().filter(s);
  151. adapterSongList.notifyDataSetChanged();
  152. }
  153. return true;
  154. }
  155. };
  156.  
  157. private class LoadSongs extends AsyncTask<String, String, String> {
  158.  
  159. @Override
  160. protected void onPreExecute() {
  161. progressHUD.show();
  162. super.onPreExecute();
  163. }
  164.  
  165. @Override
  166. protected String doInBackground(String... strings) {
  167. try {
  168. String json = JsonUtils.getJSONString(strings[0]);
  169.  
  170. JSONObject mainJson = new JSONObject(json);
  171. JSONArray jsonArray = mainJson.getJSONArray(Constant.TAG_ROOT);
  172. JSONObject objJson = null;
  173. for (int i = 0; i < jsonArray.length(); i++) {
  174. objJson = jsonArray.getJSONObject(i);
  175.  
  176. String id = objJson.getString(Constant.TAG_ID);
  177. String cid = objJson.getString(Constant.TAG_CAT_ID);
  178. String cname = objJson.getString(Constant.TAG_CAT_NAME);
  179. String artist = objJson.getString(Constant.TAG_ARTIST);
  180. String name = objJson.getString(Constant.TAG_SONG_NAME);
  181. String url = objJson.getString(Constant.TAG_MP3_URL);
  182. String desc = objJson.getString(Constant.TAG_DESC);
  183. String duration = objJson.getString(Constant.TAG_DURATION);
  184. String thumb = objJson.getString(Constant.TAG_THUMB_B).replace(" ","%20");
  185. String thumb_small = objJson.getString(Constant.TAG_THUMB_S).replace(" ","%20");
  186.  
  187.  
  188. ItemSong objItem = new ItemSong(id,cid,cname,artist,url,thumb,thumb_small,name,duration,desc);
  189. arrayList.add(objItem);
  190. }
  191.  
  192. return "1";
  193. } catch (JSONException e) {
  194. e.printStackTrace();
  195. return "0";
  196. } catch (Exception ee) {
  197. ee.printStackTrace();
  198. return "0";
  199. }
  200. }
  201.  
  202. @Override
  203. protected void onPostExecute(String s) {
  204. if(s.equals("1")) {
  205. progressHUD.dismissWithSuccess(getResources().getString(R.string.success));
  206.  
  207. adapterSongList = new AdapterSongList(getActivity(),arrayList);
  208. recyclerView.setAdapter(adapterSongList);
  209. } else {
  210. progressHUD.dismissWithFailure(getResources().getString(R.string.error));
  211. Toast.makeText(getActivity(), getResources().getString(R.string.server_no_conn), Toast.LENGTH_SHORT).show();
  212. }
  213.  
  214. if(arrayList.size() == 0) {
  215. textView_empty.setVisibility(View.VISIBLE);
  216. } else {
  217. textView_empty.setVisibility(View.GONE);
  218. }
  219. super.onPostExecute(s);
  220. }
  221. }
  222.  
  223. private int getPosition(String id) {
  224. int count=0;
  225. for(int i=0;i<arrayList.size();i++)
  226. {
  227. if(id.equals(arrayList.get(i).getId()))
  228. {
  229. count = i;
  230. break;
  231. }
  232. }
  233. return count;
  234. }
  235.  
  236. // private void loadInter() {
  237. // mInterstitial = new InterstitialAd(getActivity());
  238. // mInterstitial.setAdUnitId(getResources().getString(R.string.admob_intertestial_id));
  239. // mInterstitial.loadAd(new AdRequest.Builder().build());
  240. // }
  241.  
  242. private void showInter(final int pos) {
  243. Constant.adCount = Constant.adCount + 1;
  244. if(Constant.adCount % Constant.adDisplay == 0) {
  245. ((MainActivity)getActivity()).mInterstitial.setAdListener(new AdListener() {
  246.  
  247. @Override
  248. public void onAdClosed() {
  249. playIntent(pos);
  250. super.onAdClosed();
  251. }
  252. });
  253. if(((MainActivity)getActivity()).mInterstitial.isLoaded()) {
  254. ((MainActivity)getActivity()).mInterstitial.show();
  255. ((MainActivity)getActivity()).loadInter();
  256. } else {
  257. playIntent(pos);
  258. }
  259. } else {
  260. playIntent(pos);
  261. }
  262. }
  263.  
  264. private void playIntent(int position) {
  265. Constant.frag = "art";
  266. Constant.arrayList_play.clear();
  267. Constant.arrayList_play.addAll(arrayList);
  268. Constant.playPos = getPosition(adapterSongList.getID(position));;
  269. ((MainActivity)getActivity()).changeText(arrayList.get(position).getMp3Name(),arrayList.get(position).getCategoryName(),position+1,arrayList.size(),arrayList.get(position).getDuration(),arrayList.get(position).getImageBig(),"artist");
  270.  
  271. Constant.context = getActivity();
  272. Intent intent = new Intent(getActivity(), PlayerService.class);
  273. intent.setAction(PlayerService.ACTION_FIRST_PLAY);
  274. getActivity().startService(intent);
  275. }
  276. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement