| | |
| | | import android.graphics.Typeface; |
| | | import android.graphics.drawable.Drawable; |
| | | import android.os.Bundle; |
| | | import android.support.v4.widget.SwipeRefreshLayout; |
| | | import android.support.v7.widget.LinearLayoutManager; |
| | | import android.support.v7.widget.RecyclerView; |
| | | |
| | | import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; |
| | | import androidx.recyclerview.widget.LinearLayoutManager; |
| | | import androidx.recyclerview.widget.RecyclerView; |
| | | |
| | | import android.text.Editable; |
| | | import android.text.TextUtils; |
| | | import android.text.TextWatcher; |
| | |
| | | import com.google.gson.Gson; |
| | | import com.google.gson.GsonBuilder; |
| | | import com.google.gson.reflect.TypeToken; |
| | | import com.lcjian.library.util.ManifestDataUtil; |
| | | import com.lcjian.library.util.common.SoftKeyboardUtils; |
| | | import com.lcjian.library.util.common.StringUtils; |
| | | import com.qq.e.ads.cfg.VideoOption; |
| | |
| | | import com.weikou.beibeivideo.ui.BaseActivity; |
| | | import com.weikou.beibeivideo.ui.video.SearchResultAdapter; |
| | | import com.weikou.beibeivideo.util.DimenUtils; |
| | | import com.weikou.beibeivideo.util.JsonUtil; |
| | | import com.weikou.beibeivideo.util.UmengEventUtil; |
| | | import com.weikou.beibeivideo.util.ad.ExpressAdManager; |
| | | import com.weikou.beibeivideo.util.ad.GDTConstant; |
| | | import com.weikou.beibeivideo.util.ad.manager.SearchResultAdManager; |
| | | import com.weikou.beibeivideo.util.goldcorn.GoldCornUtil; |
| | | import com.weikou.beibeivideo.util.ui.DividerItemDecoration; |
| | | import com.weikou.beibeivideo.util.ui.TopStatusSettings; |
| | | |
| | |
| | | private SearchSuggestFragment suggestFragment; |
| | | |
| | | private FrameLayout fl_suggest; |
| | | |
| | | //赚影视豆 |
| | | private Runnable makeGoldCornRunnable; |
| | | |
| | | |
| | | @Override |
| | |
| | | |
| | | rv_video_search.setLayoutManager(new MyLinearLayoutManager(getApplicationContext())); |
| | | DividerItemDecoration decoration = new DividerItemDecoration(); |
| | | decoration.setSize(DimenUtils.dip2px(rv_video_search.getContext(), 6)); |
| | | decoration.setSize(DimenUtils.dip2px(rv_video_search.getContext(), 15)); |
| | | rv_video_search.addItemDecoration(decoration); |
| | | |
| | | adapter = new SearchResultAdapter(this, mVideoInfos, new SearchResultAdapter.VideoAlbumNavClickListener() { |
| | |
| | | } else { |
| | | mCurrentKey = et_search_key.getEditableText().toString(); |
| | | } |
| | | |
| | | SoftKeyboardUtils.hideSoftInput(SearchResultActivity.this); |
| | | mCurrentPage = 1; |
| | | rl_search_result.setRefreshing(true); |
| | |
| | | private void setTopBarSelect(TextView tv_name, boolean selected) { |
| | | if (selected) { |
| | | tv_name.setBackgroundResource(R.drawable.vpi__tab_selected_focused_holo); |
| | | tv_name.setTextSize(17); |
| | | tv_name.setTextSize(19); |
| | | tv_name.setTextColor(getResources().getColor(R.color.search_nav_highlight_text_color)); |
| | | tv_name.setPadding(0, 0, 0, DimenUtils.dip2px(getApplicationContext(), 5)); |
| | | tv_name.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD)); |
| | | } else { |
| | | tv_name.setBackground(null); |
| | | tv_name.setTextSize(12); |
| | | tv_name.setTextSize(14); |
| | | tv_name.setTextColor(getResources().getColor(R.color.nav_text_color)); |
| | | tv_name.setPadding(0, 0, 0, 0); |
| | | tv_name.setTypeface(Typeface.defaultFromStyle(Typeface.NORMAL)); |
| | |
| | | }); |
| | | } |
| | | |
| | | private void fillAD(List<ExpressAdContainer> adList) { |
| | | if (adList != null) { |
| | | SearchResultActivity.this.adList.addAll(adList); |
| | | } |
| | | private synchronized void fillAD(List<ExpressAdContainer> adList) { |
| | | |
| | | if (adList.size() > 0) { |
| | | boolean hasAd = false; |
| | | if (mVideoInfos != null && mVideoInfos.size() > 0) |
| | | for (VideoContent vc : mVideoInfos) { |
| | | if (vc.getType() == VideoContent.TYPE_AD) { |
| | | hasAd = true; |
| | | break; |
| | | } |
| | | //判断当前页面是否需要广告 |
| | | int albumCount = 0; |
| | | if (mVideoInfos != null && mVideoInfos.size() > 0) |
| | | for (int i = 0; i < mVideoInfos.size(); i++) { |
| | | VideoContent vc = mVideoInfos.get(i); |
| | | if (vc.getType() == VideoContent.TYPE_AD) { |
| | | //更新广告 |
| | | vc.setAd(adList.get(0)); |
| | | adapter.notifyItemChanged(i); |
| | | return; |
| | | } else if (vc.getVideo().getShowType() == 1) { |
| | | albumCount++; |
| | | } |
| | | //不存在广告 |
| | | if (!hasAd && mVideoInfos.size() > 2) { |
| | | //TODO 测试 |
| | | VideoContent videoContent = VideoContent.createAdContent(SearchResultActivity.this.adList.get(0)); |
| | | mVideoInfos.add(2, videoContent); |
| | | SearchResultActivity.this.adList.remove(0); |
| | | adapter.notifyDataSetChanged(); |
| | | } |
| | | |
| | | if (albumCount >= 2) { |
| | | VideoContent videoContent = VideoContent.createAdContent(adList.get(0)); |
| | | mVideoInfos.add(2, videoContent); |
| | | adapter.notifyItemInserted(2); |
| | | } |
| | | |
| | | } |
| | | |
| | | //拉取2.0的自渲染广告 |
| | | private void loadAd() { |
| | | //vivo无广告 |
| | | // if ("vivo".equalsIgnoreCase(ManifestDataUtil.getAppMetaData(getApplicationContext(), "UMENG_CHANNEL"))) { |
| | | // return; |
| | | // } |
| | | |
| | | String pid = GDTConstant.PID_2_SEARCH_RESULT_ALBUM; |
| | | NativeUnifiedAD mAdManager = new NativeUnifiedAD(this, pid, new NativeADUnifiedListener() { |
| | | |
| | |
| | | } |
| | | } |
| | | }); |
| | | mAdManager.setVideoPlayPolicy(VideoOption.VideoPlayPolicy.AUTO); |
| | | mAdManager.loadData(1); |
| | | } |
| | | |
| | |
| | | // SearchResultAdManager.getInstance(getApplicationContext()).autoLoadAd(); |
| | | // } |
| | | |
| | | private List<ExpressAdContainer> adList = new ArrayList<>(); |
| | | |
| | | private void search(String key, String videoType) { |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | UmengEventUtil.search(getApplicationContext(), videoType); |
| | | |
| | |
| | | new BasicTextHttpResponseHandler() { |
| | | |
| | | @Override |
| | | public void onStart() { |
| | | super.onStart(); |
| | | hiddenSuggestFragment(); |
| | | } |
| | | |
| | | @Override |
| | | public void onSuccessPerfect(int statusCode, |
| | | Header[] headers, JSONObject jsonObject) |
| | | throws Exception { |
| | | |
| | | //挣影视豆 |
| | | if (makeGoldCornRunnable == null) |
| | | makeGoldCornRunnable = GoldCornUtil.makeGoldCorn(getIntent(), et_search_key, null, null, 2, null); |
| | | |
| | | if (jsonObject.getBoolean("IsPost")) { |
| | | Gson gson = new GsonBuilder().setFieldNamingPolicy( |
| | | FieldNamingPolicy.UPPER_CAMEL_CASE) |
| | | .create(); |
| | | |
| | | JSONObject rootData = jsonObject.getJSONObject("Data"); |
| | | List<VideoInfo> videoInfos = gson.fromJson( |
| | | List<VideoInfo> videoInfos = JsonUtil.videoGson.fromJson( |
| | | |
| | | rootData.getJSONArray("data").toString(), |
| | | new TypeToken<List<VideoInfo>>() { |
| | |
| | | //设置导航栏 |
| | | if (rootData.opt("typeList") != null) { |
| | | if (typeList == null) { |
| | | typeList = gson.fromJson( |
| | | typeList = JsonUtil.videoGson.fromJson( |
| | | rootData |
| | | .getJSONArray("typeList").toString(), |
| | | new TypeToken<List<VideoType>>() { |
| | |
| | | } |
| | | |
| | | |
| | | if (adList.size() > 0) { |
| | | int adPosition = (int) (videoContentList.size() * Math.random()); |
| | | if (mCurrentPage == 1) |
| | | adPosition = 0; |
| | | videoContentList.add(adPosition, VideoContent.createAdContent(adList.get(0))); |
| | | adList.remove(0); |
| | | } |
| | | //记录当前的广告信息 |
| | | VideoContent adContent = null; |
| | | int adContentP = -1; |
| | | if (mCurrentPage <= 1) { |
| | | for (int i = 0; i < mVideoInfos.size(); i++) { |
| | | if (mVideoInfos.get(i).getType() == VideoContent.TYPE_AD) { |
| | | adContent = mVideoInfos.get(i); |
| | | adContentP = i; |
| | | } |
| | | } |
| | | mVideoInfos.clear(); |
| | | } |
| | | |
| | | mVideoInfos.addAll(videoContentList); |
| | | if (adContent != null && mVideoInfos.size() >= adContentP) { |
| | | mVideoInfos.add(adContentP, adContent); |
| | | } |
| | | adapter.notifyDataSetChanged(); |
| | | |
| | | if (mVideoInfos != null && mVideoInfos.size() > 0) { |
| | |
| | | rl_search_result.setVisibility(View.GONE); |
| | | } |
| | | |
| | | //加载下一次要用的广告 |
| | | if (videoInfos.size() > 0) { |
| | | if (adList.size() < 1) |
| | | loadAd(); |
| | | if (mCurrentPage == 1) { |
| | | loadAd(); |
| | | } |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | protected void onDestroy() { |
| | | super.onDestroy(); |
| | | GoldCornUtil.removeCallbacks(et_search_key, makeGoldCornRunnable); |
| | | } |
| | | } |