mobile suggest

pull/301/head
okjack 2 years ago
parent c151a013ff
commit ce69b84d00
  1. 104
      app/src/main/java/com/fongmi/android/tv/bean/SuggestTwo.java
  2. 12
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/CollectActivity.java
  3. 9
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/WordAdapter.java

@ -0,0 +1,104 @@
package com.fongmi.android.tv.bean;
import com.fongmi.android.tv.App;
import com.google.gson.annotations.SerializedName;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class SuggestTwo {
@SerializedName("data")
private SuggestTwo.Data data;
private static SuggestTwo objectFrom(String str) {
return App.gson().fromJson(str, SuggestTwo.class);
}
public static List<String> get(String str) {
try {
List<String> items = new ArrayList<>();
for (SuggestTwo.GroupData item : objectFrom(str).getGroupData()) items.add(item.getAction().getActionArgs().getSearchKeyword().getStrVal());
return items;
} catch (Exception e) {
return Collections.emptyList();
}
}
private List<SuggestTwo.GroupData> getGroupData() {
return data.getSearchData().getVecGroupData().get(0).getGroupData();
}
static class Data {
@SerializedName("search_data")
private SearchData searchData;
private SearchData getSearchData() {
return searchData;
}
}
static class SearchData {
@SerializedName("vecGroupData")
private List<VecGroupData> vecGroupData;
private List<VecGroupData> getVecGroupData() {
return vecGroupData;
}
}
static class VecGroupData {
@SerializedName("group_data")
private List<GroupData> groupData;
private List<GroupData> getGroupData() {
return groupData;
}
}
static class GroupData {
@SerializedName("action")
private Action action;
private Action getAction() {
return action;
}
}
static class Action {
@SerializedName("actionArgs")
private ActionArgs actionArgs;
private ActionArgs getActionArgs() {
return actionArgs;
}
}
static class ActionArgs {
@SerializedName("search_keyword")
private SearchKeyword searchKeyword;
private SearchKeyword getSearchKeyword() {
return searchKeyword;
}
}
static class SearchKeyword {
@SerializedName("strVal")
private String strVal;
private String getStrVal() {
return strVal;
}
}
}

@ -24,6 +24,7 @@ import com.fongmi.android.tv.bean.Hot;
import com.fongmi.android.tv.bean.Result;
import com.fongmi.android.tv.bean.Site;
import com.fongmi.android.tv.bean.Suggest;
import com.fongmi.android.tv.bean.SuggestTwo;
import com.fongmi.android.tv.bean.Vod;
import com.fongmi.android.tv.databinding.ActivityCollectBinding;
import com.fongmi.android.tv.impl.Callback;
@ -210,12 +211,21 @@ public class CollectActivity extends BaseActivity implements CustomScroller.Call
private void getSuggest(String text) {
mBinding.word.setText(R.string.search_suggest);
mWordAdapter.clear();
OkHttp.newCall("https://tv.aiseet.atianqi.com/i-tvbin/qtv_video/search/get_search_smart_box?format=json&page_num=0&page_size=20&key=" + text).enqueue(new Callback() {
@Override
public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
if (mBinding.keyword.getText().toString().trim().isEmpty()) return;
List<String> items = SuggestTwo.get(response.body().string());
App.post(() -> mWordAdapter.appendAll(items));
}
});
OkHttp.newCall("https://suggest.video.iqiyi.com/?if=mobile&key=" + text).enqueue(new Callback() {
@Override
public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
if (mBinding.keyword.getText().toString().trim().isEmpty()) return;
List<String> items = Suggest.get(response.body().string());
App.post(() -> mWordAdapter.addAll(items));
App.post(() -> mWordAdapter.appendAll(items), 200);
}
});
}

@ -32,6 +32,15 @@ public class WordAdapter extends RecyclerView.Adapter<WordAdapter.ViewHolder> {
notifyDataSetChanged();
}
public void clear() {
mItems.clear();
}
public void appendAll(List<String> items) {
mItems.addAll(items.subList(0, Math.min(items.size(), 20)));
notifyDataSetChanged();
}
@Override
public int getItemCount() {
return mItems.size();

Loading…
Cancel
Save