From 4294e9f98df7fa76807744ca7b856b8f08566d89 Mon Sep 17 00:00:00 2001 From: kehaoyuan Date: Thu, 7 Sep 2017 16:13:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=80=E6=96=B0=E7=A4=BC=E5=8C=85=E5=90=88?= =?UTF-8?q?=E5=B9=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/gh/gamecenter/LibaoActivity.java | 4 +- .../gh/gamecenter/libao/Libao1Fragment.java | 374 ++++++------------ .../gh/gamecenter/libao/Libao1Fragment2.java | 160 -------- .../libao/Libao1FragmentAdapter.java | 370 ----------------- .../gh/gamecenter/libao/LibaoNewAdapter.kt | 5 +- .../gh/gamecenter/libao/LibaoNewFragment.java | 4 +- .../gh/gamecenter/libao/LibaoSearchAdapter.kt | 7 +- .../gamecenter/libao/LibaoSearchFragment.java | 4 +- 8 files changed, 123 insertions(+), 805 deletions(-) delete mode 100644 app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment2.java delete mode 100644 app/src/main/java/com/gh/gamecenter/libao/Libao1FragmentAdapter.java diff --git a/app/src/main/java/com/gh/gamecenter/LibaoActivity.java b/app/src/main/java/com/gh/gamecenter/LibaoActivity.java index 18652c9a28..f16b0a0bd0 100644 --- a/app/src/main/java/com/gh/gamecenter/LibaoActivity.java +++ b/app/src/main/java/com/gh/gamecenter/LibaoActivity.java @@ -18,7 +18,7 @@ import com.gh.common.util.DisplayUtils; import com.gh.common.util.EntranceUtils; import com.gh.gamecenter.eventbus.EBReuse; import com.gh.gamecenter.eventbus.EBUISwitch; -import com.gh.gamecenter.libao.Libao1Fragment2; +import com.gh.gamecenter.libao.Libao1Fragment; import com.gh.gamecenter.libao.Libao2Fragment; import com.gh.gamecenter.libao.Libao3Fragment; import com.lightgame.view.NoScrollableViewPager; @@ -80,7 +80,7 @@ public class LibaoActivity extends BaseActivity implements View.OnClickListener, mZuixinTv.setSelected(true); List list = new ArrayList<>(); - list.add(new Libao1Fragment2()); + list.add(new Libao1Fragment()); list.add(new Libao2Fragment()); list.add(new Libao3Fragment()); mLibaoVp.setAdapter(new FragmentAdapter(getSupportFragmentManager(), list)); diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java b/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java index 8ea4b2d459..ae29301705 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java +++ b/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment.java @@ -1,314 +1,160 @@ package com.gh.gamecenter.libao; -import android.content.Intent; +import android.content.Context; import android.os.Bundle; import android.support.annotation.Nullable; +import android.support.design.widget.AppBarLayout; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentTransaction; import android.support.v4.widget.SwipeRefreshLayout; -import android.support.v7.widget.LinearLayoutManager; -import android.support.v7.widget.RecyclerView; +import android.text.TextUtils; import android.view.View; -import android.widget.LinearLayout; +import android.view.inputmethod.InputMethodManager; +import android.widget.EditText; import android.widget.TextView; -import com.gc.materialdesign.views.ProgressBarCircularIndeterminate; import com.gh.base.fragment.BaseFragment; -import com.gh.common.util.EntranceUtils; -import com.gh.common.view.SwipeLayout; -import com.gh.common.view.VerticalItemDecoration; -import com.gh.gamecenter.LibaoActivity; import com.gh.gamecenter.R; -import com.gh.gamecenter.eventbus.EBReuse; -import com.gh.gamecenter.eventbus.EBUISwitch; -import org.greenrobot.eventbus.EventBus; -import org.greenrobot.eventbus.Subscribe; -import org.greenrobot.eventbus.ThreadMode; +import java.util.List; import butterknife.BindView; import butterknife.OnClick; /** - * Created by khy on 2016/12/12. + * Created by khy on 5/09/17. */ -public class Libao1Fragment extends BaseFragment implements SwipeRefreshLayout.OnRefreshListener, - OnSearchCallBackListener { - @BindView(R.id.libao1_srl_refresh) +public class Libao1Fragment extends BaseFragment implements SwipeRefreshLayout.OnRefreshListener { + + @BindView(R.id.libao_appbar) + AppBarLayout mAppBar; + @BindView(R.id.libao_refresh) SwipeRefreshLayout mRefreshLayout; - @BindView(R.id.libao1_rv_list) - RecyclerView mRecyclerView; - @BindView(R.id.libao1_rv_history) - RecyclerView mHistoryRv; - @BindView(R.id.libao1_pb_loading) - ProgressBarCircularIndeterminate mLoadingLayout; - @BindView(R.id.reuse_no_connection) - LinearLayout mNoConnectionLayout; - @BindView(R.id.reuse_none_data) - LinearLayout mEmptyLayout; - @BindView(R.id.reuse_tv_none_data) - TextView mEmptyTv; - @BindView(R.id.godfather) - SwipeLayout swipeLayout; + @BindView(R.id.libao_et_search) + EditText mLibaoEtSearch; + @BindView(R.id.libao_tv_back) + TextView mLibaoTvBack; + @BindView(R.id.libao_tv_search) + TextView mLibaoTvSearch; - private TextView mFooterHint; + private LibaoSearchFragment mSearchFragment; + private LibaoNewFragment mNewFragment; - private LinearLayoutManager mLayoutManager; - private Libao1FragmentAdapter adapter; - private Libao1FragmentAdapter mNormalAdapter; - private LibaoHistoryAdapter historyAdapter; - - private boolean mIsSearch; // 记录页面状态 搜索页面/普通页面 - private boolean isDone; - private boolean historyIsEmpty; - private String mSearckKey; // 记录搜索关键字 - - Runnable runnable = new Runnable() { - @Override - public void run() { - changeAdapter(true); - } - }; - private LinearLayoutManager mHistoryLm; + private boolean mIsSearch; @Override protected int getLayoutId() { - return R.layout.fragment_libao1; - } - - @Override - protected void initView(View view) { - super.initView(view); - mRefreshLayout.setColorSchemeResources(R.color.theme); - mRefreshLayout.setOnRefreshListener(this); - - swipeLayout.setDragEdge(SwipeLayout.DragEdge.Bottom); - swipeLayout.setSwipeEnabled(false); - mRecyclerView.setHasFixedSize(true); - mLayoutManager = new LinearLayoutManager(getActivity()); - mRecyclerView.setLayoutManager(mLayoutManager); - - adapter = new Libao1FragmentAdapter(this, this, this, mIsSearch, mSearckKey, mEntrance); - mNormalAdapter = adapter; - mRecyclerView.addItemDecoration(new VerticalItemDecoration(getContext(), 8, false)); - mRecyclerView.setAdapter(adapter); - - historyAdapter = new LibaoHistoryAdapter(getContext(), this); - mHistoryLm = new LinearLayoutManager(getActivity()); - mHistoryRv.setLayoutManager(mHistoryLm); - mHistoryRv.setAdapter(historyAdapter); - - mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { - @Override - public void onScrollStateChanged(RecyclerView recyclerView, int newState) { - if (newState == RecyclerView.SCROLL_STATE_IDLE - && mLayoutManager.findLastVisibleItemPosition() + 1 == adapter.getItemCount()) { - if (historyIsEmpty && mFooterHint != null) { - mFooterHint.setText("加载完毕"); - } - if (!adapter.isOver() && !adapter.isLoading() && !adapter.isNetworkError()) { - isDone = false; - adapter.addLibaoList(mIsSearch, adapter.getLibaoListSize()); - } - } - - if (mIsSearch) return; - - if (mLayoutManager.findFirstVisibleItemPosition() == 0) { - swipeLayout.setDragEdge(SwipeLayout.DragEdge.Left); - } else { - if (swipeLayout.getDragEdge() != SwipeLayout.DragEdge.Bottom) - swipeLayout.setDragEdge(SwipeLayout.DragEdge.Bottom); - } - - if (mLayoutManager.findLastCompletelyVisibleItemPosition() + 1 != adapter.getItemCount()) { - swipeLayout.setSwipeEnabled(false); - } else { - if (isDone && !historyIsEmpty) { - swipeLayout.setSwipeEnabled(true); - } - } - } - }); - - swipeLayout.addSwipeListener(new SwipeLayout.SwipeListener() { - @Override - public void onStartOpen(SwipeLayout layout) { - - } - - @Override - public void onOpen(SwipeLayout layout) { -// swipeLayout.setSwipeTrue(true); - swipeLayout.setSwipeEnabled(true); - EventBus.getDefault().post(new EBReuse("openPage")); - if (mFooterHint != null) { - mFooterHint.setText("下拉回到最新礼包"); - } - } - - @Override - public void onStartClose(SwipeLayout layout) { - - } - - @Override - public void onClose(SwipeLayout layout) { - EventBus.getDefault().post(new EBReuse("closePage")); -// swipeLayout.setSwipeTrue(false); - swipeLayout.setSwipeEnabled(false); - adapter.notifyItemChanged(adapter.getItemCount() - 1); - } - - @Override - public void onUpdate(SwipeLayout layout, int leftOffset, int topOffset) { - } - - @Override - public void onHandRelease(SwipeLayout layout, float xvel, float yvel) { - } - }); - - mHistoryRv.addOnScrollListener(new RecyclerView.OnScrollListener() { - @Override - public void onScrollStateChanged(RecyclerView recyclerView, int newState) { - if (newState == RecyclerView.SCROLL_STATE_IDLE - && mHistoryLm.findLastVisibleItemPosition() + 1 == historyAdapter.getItemCount()) { - if (!historyAdapter.isOver() && !historyAdapter.isLoading() && !historyAdapter.isNetworkError()) { - isDone = false; - historyAdapter.loadList(historyAdapter.getLibaoListSize()); - } - } - } - - @Override - public void onScrolled(RecyclerView recyclerView, int dx, int dy) { - swipeLayout.setEnabled(mHistoryLm.findFirstCompletelyVisibleItemPosition() == 0); - } - }); + return R.layout.fragment_libao12; } @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); + mRefreshLayout.setColorSchemeResources(R.color.theme); + mRefreshLayout.setOnRefreshListener(this); + mRefreshLayout.setEnabled(false); - mIsSearch = false; - isDone = false; - historyIsEmpty = false; - mSearckKey = null; + changeFragment(); + mAppBar.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() { + @Override + public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { + if (verticalOffset == 0) { + mRefreshLayout.setEnabled(true); + } else { + mRefreshLayout.setEnabled(false); + } + int totalScrollRange = appBarLayout.getTotalScrollRange(); + if (totalScrollRange == -verticalOffset) { + InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); + imm.hideSoftInputFromWindow(getActivity().getWindow().getDecorView().getWindowToken(), 0); + } + } + }); } - @Override - public void loadDone() { // 数据加载成功回调 - mRefreshLayout.setRefreshing(false); - mLoadingLayout.setVisibility(View.GONE); - } - - // 数据加载完毕 - @Override - public void loadDone(Object obj) { - super.loadDone(obj); - if (obj.toString().equals("NULL")) { - historyIsEmpty = true; - return; - } - - isDone = true; - int i = mRecyclerView.getChildCount() - 1; - if (!mIsSearch && i > 0) { - View view = mRecyclerView.getChildAt(i); - mFooterHint = (TextView) view.findViewById(R.id.footerview_hint); - } - } - - @Override - public void loadError() { // 数据加载失败回调 - mRefreshLayout.setRefreshing(false); - mLoadingLayout.setVisibility(View.GONE); - mRecyclerView.setVisibility(View.GONE); - mNoConnectionLayout.setVisibility(View.VISIBLE); - } - - @Override - public void loadEmpty() { - mRefreshLayout.setRefreshing(false); - mLoadingLayout.setVisibility(View.GONE); -// mRecyclerView.setVisibility(View.GONE); - mEmptyLayout.setVisibility(View.VISIBLE); -// mRefreshLayout.setEnabled(false); - + private void changeFragment() { + FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); + hideFragments(transaction); if (mIsSearch) { - mEmptyTv.setText("很抱歉,没找到相关礼包"); + mSearchFragment = alterFragment(transaction, LibaoSearchFragment.class); } else { - mEmptyTv.setText("这里还没有东西哦"); + mNewFragment = alterFragment(transaction, LibaoNewFragment.class); + } + + transaction.commit(); + } + + // 将所有的Fragment都置为隐藏状态。 + private void hideFragments(FragmentTransaction transaction) { + List list = getChildFragmentManager().getFragments(); + if (list != null) { + for (Fragment fragment : list) { + transaction.hide(fragment); + } } } - @Override - public void onActivityResult(int requestCode, int resultCode, Intent data) { - if (requestCode == 0x123 && adapter.getSkipPosition() != -1) { - // 更新对应位置 - adapter.notifyItemChanged(adapter.getSkipPosition()); - adapter.setSkipPosition(-1); + private T alterFragment(FragmentTransaction transaction, Class cls) { + T fragmentByTag = (T) getChildFragmentManager().findFragmentByTag(cls.getSimpleName()); + try { + if (fragmentByTag != null) { + transaction.show(fragmentByTag); + if (fragmentByTag instanceof LibaoSearchFragment) { + ((LibaoSearchFragment) fragmentByTag).search(); + } + } else { + fragmentByTag = cls.newInstance(); + transaction.add(R.id.layout_fragment_content, fragmentByTag, cls.getSimpleName()); + } + } catch (Exception e) { + e.printStackTrace(); } + return fragmentByTag; + } + + @OnClick({R.id.libao_tv_back, R.id.libao_tv_search}) + public void onViewClicked(View view) { + switch (view.getId()) { + case R.id.libao_tv_back: + mIsSearch = false; + break; + case R.id.libao_tv_search: + String key = mLibaoEtSearch.getText().toString(); + if (TextUtils.isEmpty(key)) { + toast("请输入关键字"); + return; + } else if (!mIsSearch){ + mIsSearch = true; + } + break; + } + if (mIsSearch) { + mLibaoTvBack.setVisibility(View.VISIBLE); + } else { + mLibaoTvBack.setVisibility(View.GONE); + } + InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); + imm.hideSoftInputFromWindow(getActivity().getWindow().getDecorView().getWindowToken(), 0); + changeFragment(); + } + + public String getSearchKey() { + return mLibaoEtSearch.getText().toString(); } @Override public void onRefresh() { - postDelayedRunnable(runnable, 1000); - } - - @OnClick(R.id.reuse_no_connection) - public void reconnection() { // 重新连接 - mRefreshLayout.setRefreshing(true); - mRecyclerView.setVisibility(View.VISIBLE); - mLoadingLayout.setVisibility(View.VISIBLE); - mNoConnectionLayout.setVisibility(View.GONE); - postDelayedRunnable(runnable, 1000); - } - - @Override - public void search(boolean isSearch, String searchKey) { //搜索回调 - if (mEmptyLayout.getVisibility() == View.VISIBLE) { - mEmptyLayout.setVisibility(View.GONE); - } - mIsSearch = isSearch; - mSearckKey = searchKey; - changeAdapter(false); - -// if (isSearch) { -// swipeLayout.setSwipeEnabled(false); -// } else { -// swipeLayout.setSwipeEnabled(true); -// } - } - - private void changeAdapter(boolean isRefresh) { - String entrance = getActivity().getIntent().getStringExtra(EntranceUtils.KEY_ENTRANCE); if (mIsSearch) { - adapter = new Libao1FragmentAdapter(this, this, this, mIsSearch, mSearckKey, entrance); + mSearchFragment.onRefresh(); } else { - if (mNormalAdapter != null && !isRefresh) { - adapter = mNormalAdapter; -// adapter.setSearchKey(mSearckKey); - } else { - adapter = new Libao1FragmentAdapter(this, this, this, mIsSearch, null, entrance); - mNormalAdapter = adapter; - adapter.addLibaoList(false, 0); - } + mNewFragment.onRefresh(); } - mRecyclerView.setAdapter(adapter); } - // Fragment界面切换事件 - @Subscribe(threadMode = ThreadMode.MAIN) - public void onEventMainThread(EBUISwitch busNine) { - if (LibaoActivity.EB_LIBAOACTIVITY_TAG.equals(busNine.getFrom())) { - if (busNine.getPosition() == 0) { - if (mLoadingLayout.getVisibility() == View.VISIBLE) { - adapter.addLibaoList(false, 0); - } - } - } + public void colseRefresh() { + mRefreshLayout.setRefreshing(false); } + } diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment2.java b/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment2.java deleted file mode 100644 index 8265e7f106..0000000000 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao1Fragment2.java +++ /dev/null @@ -1,160 +0,0 @@ -package com.gh.gamecenter.libao; - -import android.content.Context; -import android.os.Bundle; -import android.support.annotation.Nullable; -import android.support.design.widget.AppBarLayout; -import android.support.v4.app.Fragment; -import android.support.v4.app.FragmentTransaction; -import android.support.v4.widget.SwipeRefreshLayout; -import android.text.TextUtils; -import android.view.View; -import android.view.inputmethod.InputMethodManager; -import android.widget.EditText; -import android.widget.TextView; - -import com.gh.base.fragment.BaseFragment; -import com.gh.gamecenter.R; - -import java.util.List; - -import butterknife.BindView; -import butterknife.OnClick; - -/** - * Created by khy on 5/09/17. - */ - -public class Libao1Fragment2 extends BaseFragment implements SwipeRefreshLayout.OnRefreshListener { - - @BindView(R.id.libao_appbar) - AppBarLayout mAppBar; - @BindView(R.id.libao_refresh) - SwipeRefreshLayout mRefreshLayout; - @BindView(R.id.libao_et_search) - EditText mLibaoEtSearch; - @BindView(R.id.libao_tv_back) - TextView mLibaoTvBack; - @BindView(R.id.libao_tv_search) - TextView mLibaoTvSearch; - - private LibaoSearchFragment mSearchFragment; - private LibaoNewFragment mNewFragment; - - private boolean mIsSearch; - - @Override - protected int getLayoutId() { - return R.layout.fragment_libao12; - } - - @Override - public void onCreate(@Nullable Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - mRefreshLayout.setColorSchemeResources(R.color.theme); - mRefreshLayout.setOnRefreshListener(this); - mRefreshLayout.setEnabled(false); - - changeFragment(); - - mAppBar.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() { - @Override - public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) { - if (verticalOffset == 0) { - mRefreshLayout.setEnabled(true); - } else { - mRefreshLayout.setEnabled(false); - } - int totalScrollRange = appBarLayout.getTotalScrollRange(); - if (totalScrollRange == -verticalOffset) { - InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); - imm.hideSoftInputFromWindow(getActivity().getWindow().getDecorView().getWindowToken(), 0); - } - } - }); - } - - private void changeFragment() { - FragmentTransaction transaction = getChildFragmentManager().beginTransaction(); - hideFragments(transaction); - if (mIsSearch) { - mSearchFragment = alterFragment(transaction, LibaoSearchFragment.class); - } else { - mNewFragment = alterFragment(transaction, LibaoNewFragment.class); - } - - transaction.commit(); - } - - // 将所有的Fragment都置为隐藏状态。 - private void hideFragments(FragmentTransaction transaction) { - List list = getChildFragmentManager().getFragments(); - if (list != null) { - for (Fragment fragment : list) { - transaction.hide(fragment); - } - } - } - - private T alterFragment(FragmentTransaction transaction, Class cls) { - T fragmentByTag = (T) getChildFragmentManager().findFragmentByTag(cls.getSimpleName()); - try { - if (fragmentByTag != null) { - transaction.show(fragmentByTag); - if (fragmentByTag instanceof LibaoSearchFragment) { - ((LibaoSearchFragment) fragmentByTag).search(); - } - } else { - fragmentByTag = cls.newInstance(); - transaction.add(R.id.layout_fragment_content, fragmentByTag, cls.getSimpleName()); - } - } catch (Exception e) { - e.printStackTrace(); - } - return fragmentByTag; - } - - @OnClick({R.id.libao_tv_back, R.id.libao_tv_search}) - public void onViewClicked(View view) { - switch (view.getId()) { - case R.id.libao_tv_back: - mIsSearch = false; - break; - case R.id.libao_tv_search: - String key = mLibaoEtSearch.getText().toString(); - if (TextUtils.isEmpty(key)) { - toast("请输入关键字"); - return; - } else if (!mIsSearch){ - mIsSearch = true; - } - break; - } - if (mIsSearch) { - mLibaoTvBack.setVisibility(View.VISIBLE); - } else { - mLibaoTvBack.setVisibility(View.GONE); - } - InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE); - imm.hideSoftInputFromWindow(getActivity().getWindow().getDecorView().getWindowToken(), 0); - changeFragment(); - } - - public String getSearchKey() { - return mLibaoEtSearch.getText().toString(); - } - - @Override - public void onRefresh() { - if (mIsSearch) { - mSearchFragment.onRefresh(); - } else { - mNewFragment.onRefresh(); - } - } - - public void colseRefresh() { - mRefreshLayout.setRefreshing(false); - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/libao/Libao1FragmentAdapter.java b/app/src/main/java/com/gh/gamecenter/libao/Libao1FragmentAdapter.java deleted file mode 100644 index fd7ac3b173..0000000000 --- a/app/src/main/java/com/gh/gamecenter/libao/Libao1FragmentAdapter.java +++ /dev/null @@ -1,370 +0,0 @@ -package com.gh.gamecenter.libao; - -import android.content.Context; -import android.content.Intent; -import android.support.v7.widget.RecyclerView; -import android.support.v7.widget.RecyclerView.ViewHolder; -import android.text.TextUtils; -import android.view.View; -import android.view.ViewGroup; -import android.view.inputmethod.InputMethodManager; - -import com.gh.base.OnRequestCallBackListener; -import com.lightgame.adapter.BaseRecyclerAdapter; -import com.gh.common.constant.ItemViewType; -import com.gh.common.util.ImageUtils; -import com.gh.common.util.LibaoUtils; -import com.gh.common.util.PlatformUtils; -import com.lightgame.utils.Utils; -import com.gh.gamecenter.LibaoDetailActivity; -import com.gh.gamecenter.R; -import com.gh.gamecenter.adapter.viewholder.FooterViewHolder; -import com.gh.gamecenter.adapter.viewholder.LibaoNormalViewHolder; -import com.gh.gamecenter.adapter.viewholder.LibaoSearchViewHolder; -import com.gh.gamecenter.db.LibaoDao; -import com.gh.gamecenter.entity.LibaoEntity; -import com.gh.gamecenter.entity.LibaoStatusEntity; -import com.gh.gamecenter.retrofit.Response; -import com.gh.gamecenter.retrofit.RetrofitManager; - -import java.util.ArrayList; -import java.util.List; - -import retrofit2.HttpException; -import rx.Observable; -import rx.android.schedulers.AndroidSchedulers; -import rx.functions.Func1; -import rx.schedulers.Schedulers; - -/** - * Created by khy on 2016/12/12. - */ -class Libao1FragmentAdapter extends BaseRecyclerAdapter { - - private final static int ITEM_SEARCH = 1; - private final static int ITEM_FOOTER = 1; - private Libao1Fragment mLibao1Fragment; - private OnRequestCallBackListener mCallBackListener; - private OnSearchCallBackListener mSearchListener; - private List mLibaoList; - private LibaoDao mLibaoDao; - private String mSerchKey; - private String mEntrance; - private int skipPosition; - private boolean mIsSearch; - private boolean isLoading; - private boolean isOver; - private boolean isNetworkError; - - Libao1FragmentAdapter(Libao1Fragment libao1Fragment,OnRequestCallBackListener requestCallBackListener, - OnSearchCallBackListener searchListener, boolean isSearch, String key, String entrance) { - super(libao1Fragment.getActivity()); - mLibao1Fragment = libao1Fragment; - mCallBackListener = requestCallBackListener; - mSearchListener = searchListener; - mIsSearch = isSearch; - mSerchKey = key; - - mEntrance = entrance; - - mLibaoList = new ArrayList<>(); - - mLibaoDao = new LibaoDao(mContext); - - skipPosition = -1; - - if (isSearch) { - addLibaoList(true, 0); - } - } - - void addLibaoList(boolean isSearch, int offset) { - if (isLoading) return; - - isLoading = true; - - final Observable> libaoApi; - if (isSearch) { - libaoApi = RetrofitManager.getLibao().getLibaoBySearch(mSerchKey, offset); - } else { - libaoApi = RetrofitManager.getLibao().getLibao(offset); - } - - libaoApi.map(new Func1, List>() { - @Override - public List call(List list) { - // 去掉重复数据 - return LibaoUtils.removeDuplicateData(mLibaoList, list); - } - }) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new Response>() { - @Override - public void onResponse(List response) { - mLibaoList.addAll(response); - notifyDataSetChanged(); - - if (response.size() < 20) { - isOver = true; - mCallBackListener.loadDone("TAG"); - } - - if (mLibaoList.size() == 0) { - mCallBackListener.loadEmpty(); - } else { - mCallBackListener.loadDone(); - } - - isLoading = false; - isNetworkError = false; - - if (response.size() != 0) { - getLibaoStatus(response); - } - } - - @Override - public void onFailure(HttpException e) { - mCallBackListener.loadError(); - isNetworkError = true; - isLoading = false; - } - }); - } - - /** - * 重复领取实现 在可重复领取的情况下 - * 1.判断当前礼包是否可以领取或淘号,否,有领取记录以淘号优先,没领取记录则按照原来的规则显示 - * 2.记录最后一个领取时间,没有领取过则按照原来的规则显示 - * 3.判断最后领取时间是不是当天,不是则按照原来的规则显示 - * 4.定时刷新-游戏详情 - * 4-1:每次进来都要获取服务器时间 - * 4-2:获取当前时间到凌晨12点的差值 定时刷新 - */ - - //获取礼包状态 - private void getLibaoStatus(List response) { - StringBuilder builder = new StringBuilder(); - for (int i = 0, size = response.size(); i < size; i++) { - builder.append(response.get(i).getId()); - builder.append("-"); - } - if (builder.length() == 0) return; - builder.deleteCharAt(builder.length() - 1); - String ids = builder.toString(); - - LibaoUtils.getLibaoStatus(ids, new LibaoUtils.PostLibaoListener() { - @Override - public void postSucced(Object response) { - List statusList = (List) response; - - LibaoUtils.initLiBaoEntity(mLibaoDao, statusList, mLibaoList, mContext); - - notifyDataSetChanged(); - } - - @Override - public void postFailed(Throwable error) { - - } - }); - } - - @Override - public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { - View view; - switch (viewType) { - case ItemViewType.SEARCH_NORMAL: - view = mLayoutInflater.inflate(R.layout.libao_item_search, parent, false); - return new LibaoSearchViewHolder(view); - case ItemViewType.LOADING: - view = mLayoutInflater.inflate(R.layout.refresh_footerview, parent, false); - return new FooterViewHolder(view); - default: - view = mLayoutInflater.inflate(R.layout.libao_item, parent, false); - return new LibaoNormalViewHolder(view); - } - } - - @Override - public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) { - if (holder instanceof LibaoNormalViewHolder) { - initLibaoViewHolder((LibaoNormalViewHolder) holder, position); - } else if (holder instanceof LibaoSearchViewHolder) { - initSearchViewHolder((LibaoSearchViewHolder) holder); - } else if (holder instanceof FooterViewHolder) { - initFooterViewHolder((FooterViewHolder) holder); - } - } - - @Override - public int getItemViewType(int position) { - if (position == 0) { - return ItemViewType.SEARCH_NORMAL; - } else if (position == getItemCount() - 1) { - return ItemViewType.LOADING; - } else { - return ItemViewType.LIBAO_NORMAL; - } - } - - @Override - public int getItemCount() { - if (mLibaoList.size() == 0) { - return 1; - } - return mLibaoList.size() + ITEM_FOOTER + ITEM_SEARCH; - } - - private void initLibaoViewHolder(final LibaoNormalViewHolder holder, final int position) { - final LibaoEntity libaoEntity = mLibaoList.get(position - 1); - holder.libaoName.setText(libaoEntity.getName()); - if (TextUtils.isEmpty(libaoEntity.getPlatform())) { - holder.libaoGameName.setText(libaoEntity.getGame().getName()); - } else { - holder.libaoGameName.setText(libaoEntity.getGame().getName() + " - " + PlatformUtils.getInstance(mContext) - .getPlatformName(libaoEntity.getPlatform())); - } -// holder.libaoGameIcon.setImageURI(libaoEntity.getIcon()); - ImageUtils.Companion.display(holder.libaoGameIcon, libaoEntity.getIcon()); - - String content; - if (libaoEntity.getContent().contains("
")) { - content = libaoEntity.getContent().replaceAll("
", " "); - } else { - content = libaoEntity.getContent(); - } - holder.libaoDes.setText(content); - - if (libaoEntity.getStatus() != null) { - LibaoUtils.initLibaoBtn(mContext, holder.libaoBtnStatus, libaoEntity, mLibaoDao, false, null, - mEntrance + "+(礼包中心:最新)"); -// holder.libaoBtnStatus.setClickable(false); - String tv = holder.libaoBtnStatus.getText().toString(); - if ("已结束".equals(tv) || "已领光".equals(tv)) { - holder.libaoBtnStatus.setClickable(true); - } else { - holder.libaoBtnStatus.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - startLibaoDetailActivity(position, libaoEntity); - } - }); - } - } - - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - startLibaoDetailActivity(position, libaoEntity); - } - }); - } - - public void startLibaoDetailActivity(int position, LibaoEntity libaoEntity) { - skipPosition = position; - Intent intent = LibaoDetailActivity.getIntent(mContext, libaoEntity, mEntrance + "+(礼包中心:最新)"); - mLibao1Fragment.startActivityForResult(intent, 0x123); - } - - private void initSearchViewHolder(final LibaoSearchViewHolder holder) { - if (mSerchKey != null) { - holder.searchEt.setText(mSerchKey); - } - - if (mIsSearch) { - holder.backTv.setVisibility(View.VISIBLE); - } else { - holder.backTv.setVisibility(View.GONE); - } - - holder.backTv.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - mSearchListener.search(false, holder.searchEt.getText().toString()); - } - }); - - holder.searchTv.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - - if (TextUtils.isEmpty(holder.searchEt.getText().toString())) { - Utils.toast(mContext, "请输入关键字"); - return; - } - mSearchListener.search(true, holder.searchEt.getText().toString()); - - } - }); - - holder.searchEt.setOnFocusChangeListener(new View.OnFocusChangeListener() { - @Override - public void onFocusChange(View v, boolean hasFocus) { - if (!hasFocus) { - InputMethodManager imm = (InputMethodManager) mContext.getSystemService(Context.INPUT_METHOD_SERVICE); - imm.hideSoftInputFromWindow(mLibao1Fragment.getActivity().getWindow().getDecorView().getWindowToken(), 0); - } - } - }); - } - - private void initFooterViewHolder(FooterViewHolder holder) { - holder.initItemPadding(); - if (isNetworkError) { - holder.loading.setVisibility(View.GONE); - holder.hint.setText("加载失败,点击重试"); - holder.itemView.setClickable(true); - holder.itemView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - isNetworkError = false; - notifyItemChanged(getItemCount() - 1); - addLibaoList(mIsSearch, mLibaoList.size()); - } - }); - } else if (isOver) { - holder.loading.setVisibility(View.GONE); - holder.itemView.setClickable(false); - if (mIsSearch) { - holder.hint.setText("加载完毕"); - } else { - holder.hint.setText("上拉查看历史礼包"); - } - } else { - holder.loading.setVisibility(View.VISIBLE); - holder.hint.setText(R.string.loading); - holder.itemView.setClickable(false); - } - } - - public boolean isNetworkError() { - return isNetworkError; - } - - public void setNetworkError(boolean networkError) { - isNetworkError = networkError; - } - - public boolean isOver() { - return isOver; - } - - public boolean isLoading() { - return isLoading; - } - - public int getLibaoListSize() { - return mLibaoList.size(); - } - - public int getSkipPosition() { - return skipPosition; - } - - public void setSkipPosition(int position) { - skipPosition = position; - } - -} diff --git a/app/src/main/java/com/gh/gamecenter/libao/LibaoNewAdapter.kt b/app/src/main/java/com/gh/gamecenter/libao/LibaoNewAdapter.kt index 8fbbe61b99..040bab582e 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/LibaoNewAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/libao/LibaoNewAdapter.kt @@ -205,7 +205,8 @@ class LibaoNewAdapter(callBackListener: OnRequestCallBackListener, holder.libaoDes.text = content if (libaoEntity.status != null) { - LibaoUtils.initLibaoBtn(mContext, holder.libaoBtnStatus, libaoEntity, mLibaoDao, false, null, "(礼包中心-最新)") + LibaoUtils.initLibaoBtn(mContext, holder.libaoBtnStatus, libaoEntity, mLibaoDao, false, null, + mEntrance + "+(礼包中心:最新)") val tv = holder.libaoBtnStatus.text.toString() if ("已结束" == tv || "已领光" == tv) { holder.libaoBtnStatus.isClickable = true @@ -219,7 +220,7 @@ class LibaoNewAdapter(callBackListener: OnRequestCallBackListener, fun startLibaoDetailActivity(position: Int, libaoEntity: LibaoEntity) { skipPosition = position - val intent = LibaoDetailActivity.getIntent(mContext, libaoEntity, mEntrance + "+(礼包中心-最新)") + val intent = LibaoDetailActivity.getIntent(mContext, libaoEntity, mEntrance + "+(礼包中心:最新)") mFragment.startActivityForResult(intent, 0x123) } diff --git a/app/src/main/java/com/gh/gamecenter/libao/LibaoNewFragment.java b/app/src/main/java/com/gh/gamecenter/libao/LibaoNewFragment.java index 0095e2b439..5a824dfb0d 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/LibaoNewFragment.java +++ b/app/src/main/java/com/gh/gamecenter/libao/LibaoNewFragment.java @@ -247,8 +247,8 @@ public class LibaoNewFragment extends BaseFragment implements SwipeRefreshLayout private void colseRefresh() { Fragment parentFragment = getParentFragment(); - if (parentFragment instanceof Libao1Fragment2) { - ((Libao1Fragment2) parentFragment).colseRefresh(); + if (parentFragment instanceof Libao1Fragment) { + ((Libao1Fragment) parentFragment).colseRefresh(); } } } diff --git a/app/src/main/java/com/gh/gamecenter/libao/LibaoSearchAdapter.kt b/app/src/main/java/com/gh/gamecenter/libao/LibaoSearchAdapter.kt index 590c8a473d..d854a1082b 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/LibaoSearchAdapter.kt +++ b/app/src/main/java/com/gh/gamecenter/libao/LibaoSearchAdapter.kt @@ -53,7 +53,7 @@ class LibaoSearchAdapter(fragment: LibaoSearchFragment, fun addLibaoList(offset: Int) { val parentFragment = mFragment.parentFragment var searchKey: String? = null - if (parentFragment is Libao1Fragment2) { + if (parentFragment is Libao1Fragment) { searchKey = parentFragment.searchKey } @@ -217,7 +217,8 @@ class LibaoSearchAdapter(fragment: LibaoSearchFragment, holder.libaoDes.text = content if (libaoEntity.status != null) { - LibaoUtils.initLibaoBtn(mContext, holder.libaoBtnStatus, libaoEntity, mLibaoDao, false, null, "(礼包中心-最新)") + LibaoUtils.initLibaoBtn(mContext, holder.libaoBtnStatus, libaoEntity, mLibaoDao, false, null, + mEntrance + "+(礼包中心:最新)") val tv = holder.libaoBtnStatus.text.toString() if ("已结束" == tv || "已领光" == tv) { holder.libaoBtnStatus.isClickable = true @@ -231,7 +232,7 @@ class LibaoSearchAdapter(fragment: LibaoSearchFragment, fun startLibaoDetailActivity(position: Int, libaoEntity: LibaoEntity) { skipPosition = position - val intent = LibaoDetailActivity.getIntent(mContext, libaoEntity, mEntrance + "+(礼包中心-最新)") + val intent = LibaoDetailActivity.getIntent(mContext, libaoEntity, mEntrance + "+(礼包中心:最新)") mFragment.startActivityForResult(intent, 0x123) } diff --git a/app/src/main/java/com/gh/gamecenter/libao/LibaoSearchFragment.java b/app/src/main/java/com/gh/gamecenter/libao/LibaoSearchFragment.java index 342433b0db..d758d6f02c 100644 --- a/app/src/main/java/com/gh/gamecenter/libao/LibaoSearchFragment.java +++ b/app/src/main/java/com/gh/gamecenter/libao/LibaoSearchFragment.java @@ -117,8 +117,8 @@ public class LibaoSearchFragment extends BaseFragment implements SwipeRefreshLay private void colseRefresh() { Fragment parentFragment = getParentFragment(); - if (parentFragment instanceof Libao1Fragment2) { - ((Libao1Fragment2) parentFragment).colseRefresh(); + if (parentFragment instanceof Libao1Fragment) { + ((Libao1Fragment) parentFragment).colseRefresh(); } }