content: package com.wm.remusic.fragmentnet;
  
  import android.content.Context;
  import android.os.AsyncTask;
  import android.os.Bundle;
  import android.support.annotation.Nullable;
  import android.support.v4.app.Fragment;
  import android.support.v7.widget.LinearLayoutManager;
  import android.support.v7.widget.RecyclerView;
  import android.view.LayoutInflater;
  import android.view.View;
  import android.view.ViewGroup;
  import android.widget.FrameLayout;
  import android.widget.TextView;
  
  import com.google.gson.JsonArray;
  import com.wm.remusic.R;
  import com.wm.remusic.adapter.RecentSearchAdapter;
  import com.wm.remusic.fragment.AttachFragment;
  import com.wm.remusic.json.SearchSongInfo;
  import com.wm.remusic.net.BMA;
  import com.wm.remusic.net.HttpUtil;
  import com.wm.remusic.net.NetworkUtils;
  import com.wm.remusic.widget.WidgetController;
  
  import java.util.ArrayList;
  import java.util.Collections;
  import java.util.List;
  
  /**
   * Created by wm on 2016/5/21.
   */
  public class SearchHotWordFragment extends AttachFragment implements View.OnClickListener, SearchWords {
      String[] texts = new String[10];
      ArrayList<TextView> views = new ArrayList<>();
      SearchWords searchWords;
      private RecentSearchAdapter adapter;
      private RecyclerView recyclerView;
      private boolean isFromCache = true;
  
      private List searchResults = Collections.emptyList();
      private ArrayList<SearchSongInfo> songList = new ArrayList<>();
      View loadview;
      FrameLayout frameLayout;
  
      @Nullable
      @Override
      public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
          View view = inflater.inflate(R.layout.load_framelayout, container, false);
          frameLayout = (FrameLayout) view.findViewById(R.id.loadframe);
          loadview = LayoutInflater.from(mContext).inflate(R.layout.loading, frameLayout, false);
          frameLayout.addView(loadview);
          loadWords();
  
          return view;
      }
  
      public static int px2dip(Context context, float pxValue) {
          final float scale = context.getResources().getDisplayMetrics().density;
          return (int) (pxValue / scale + 0.5f);
      }
  
      public static int dip2px(Context context, float dipValue) {
          final float scale = context.getResources().getDisplayMetrics().density;
          return (int) (dipValue * scale + 0.5f);
      }
  
      private void loadWords() {
          new AsyncTask<Boolean, Void, Boolean>() {
  
              @Override
              protected Boolean doInBackground(Boolean... params) {
                  if (NetworkUtils.isConnectInternet(mContext)) {
                      isFromCache = false;
                  }
  
  
                  try {
                      JsonArray jsonArray = HttpUtil.getResposeJsonObject(BMA.Search.hotWord(), mContext, isFromCache).get("result").getAsJsonArray();
                      for (int i = 0; i < 10; i++) {
                          texts[i] = jsonArray.get(i).getAsJsonObject().get("word").getAsString();
                      }
                  } catch (Exception e) {
                      e.printStackTrace();
                      return false;
                  }
  
                  return true;
              }
  
              @Override
              protected void onPostExecute(Boolean load) {
                  super.onPostExecute(load);
                  if (!load && mContext == null) {
  
                      return;
                  }
                  View view = LayoutInflater.from(mContext).inflate(R.layout.fragment_search_hot_words, frameLayout, false);
                  recyclerView = (RecyclerView) view.findViewById(R.id.recyclerview);
                  recyclerView.setLayoutManager(new LinearLayoutManager(mContext));
                  recyclerView.setHasFixedSize(true);
                  adapter = new RecentSearchAdapter(mContext);
                  adapter.setListenter(SearchHotWordFragment.this);
                  recyclerView.setAdapter(adapter);
  
                  TextView text1 = (TextView) view.findViewById(R.id.text1);
                  TextView text2 = (TextView) view.findViewById(R.id.text2);
                  TextView text3 = (TextView) view.findViewById(R.id.text3);
                  TextView text4 = (TextView) view.findViewById(R.id.text4);
                  TextView text5 = (TextView) view.findViewById(R.id.text5);
                  TextView text6 = (TextView) view.findViewById(R.id.text6);
                  TextView text7 = (TextView) view.findViewById(R.id.text7);
                  TextView text8 = (TextView) view.findViewById(R.id.text8);
                  TextView text9 = (TextView) view.findViewById(R.id.text9);
                  TextView text10 = (TextView) view.findViewById(R.id.text10);
                  views.add(text1);
                  views.add(text2);
                  views.add(text3);
                  views.add(text4);
                  views.add(text5);
                  views.add(text6);
                  views.add(text7);
                  views.add(text8);
                  views.add(text9);
                  views.add(text10);
  
  
                  frameLayout.removeAllViews();
                  frameLayout.addView(view);
  
                  int w = mContext.getResources().getDisplayMetrics().widthPixels;
                  int xdistance = -1;
                  int ydistance = 0;
                  int distance = dip2px(mContext, 16);
                  for (int i = 0; i < 10; i++) {
                      views.get(i).setOnClickListener(SearchHotWordFragment.this);
                      views.get(i).setText(texts[i]);
                      if (xdistance == -1) {
                          xdistance = 0;
                          WidgetController.setLayout(views.get(i), xdistance, ydistance);
                          continue;
                      }
                      xdistance += WidgetController.getWidth(views.get(i - 1)) + distance;
                      if (xdistance + WidgetController.getWidth(views.get(i)) + distance > w) {
                          xdistance = -1;
                          ydistance += 120;
                          i--;
                          continue;
                      }
                      WidgetController.setLayout(views.get(i), xdistance, ydistance);
                  }
              }
          }.execute();
  
      }
  
      public void searchWords(SearchWords searchWords) {
          this.searchWords = searchWords;
      }
  
  
      @Override
      public void onClick(View v) {
          switch (v.getId()) {
              case R.id.text1:
                  searchWords.onSearch(texts[0]);
                  break;
              case R.id.text2:
                  searchWords.onSearch(texts[1]);
                  break;
              case R.id.text3:
                  searchWords.onSearch(texts[2]);
                  break;
              case R.id.text4:
                  searchWords.onSearch(texts[3]);
                  break;
              case R.id.text5:
                  searchWords.onSearch(texts[4]);
                  break;
              case R.id.text6:
                  searchWords.onSearch(texts[5]);
                  break;
              case R.id.text7:
                  searchWords.onSearch(texts[6]);
                  break;
              case R.id.text8:
                  searchWords.onSearch(texts[7]);
                  break;
              case R.id.text9:
                  searchWords.onSearch(texts[8]);
                  break;
              case R.id.text10:
                  searchWords.onSearch(texts[9]);
                  break;
          }
      }
  
      @Override
      public void onSearch(String t) {
          if (searchWords != null)
              searchWords.onSearch(t);
      }
  }
  