处理一部分activity的toolbar,已经处理完毕的标记为Deprecated,为了保持MTA数据上报兼容性,暂时未删除对应的Activity

This commit is contained in:
CsHeng
2017-12-14 17:56:54 +08:00
parent e0b70b26f3
commit bf7b0b0a82
67 changed files with 2251 additions and 2495 deletions

View File

@ -4,216 +4,33 @@ import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v4.util.ArrayMap;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.text.TextUtils;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.gh.base.BaseActivity;
import com.gh.common.util.DisplayUtils;
import com.gh.common.util.EntranceUtils;
import com.gh.gamecenter.adapter.GameNewsAdapter;
import com.gh.gamecenter.adapter.GameNewsTypeListAdapter;
import com.gh.gamecenter.eventbus.EBTypeChange;
import com.gh.gamecenter.retrofit.Response;
import com.gh.gamecenter.retrofit.RetrofitManager;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.List;
import butterknife.BindView;
import retrofit2.HttpException;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
import com.halo.assistant.fragment.game.GameNewsSearchFragment;
import com.halo.assistant.ui.IntentFactory;
/**
* Created by LGT on 2016/8/29.
* 游戏新闻界面
* 游戏新闻界面由于MTA界面统计未重新记录的原因暂留此傀儡连名字都不能改真是可怕
*/
public class GameNewsActivity extends BaseActivity implements View.OnClickListener {
@BindView(R.id.game_news_list)
RecyclerView mGameNewsRv;
@BindView(R.id.game_news_top_type_list)
RecyclerView mGameNewsTypeRv;
@BindView(R.id.reuse_none_data)
LinearLayout mNoDataLl;
@BindView(R.id.reuse_tv_none_data)
TextView mNoDataTv;
private GameNewsAdapter adapter;
private GameNewsTypeListAdapter typeListAdapter;
private LinearLayoutManager layoutManager;
private ImageView ivSearch;
private ArrayMap<String, GameNewsAdapter> adapterMap;
private List<String> typeList;
private String gameId;
private float startY = 0;
@Deprecated
public class GameNewsActivity extends CommonActivity {
@NonNull
public static Intent getIntent(Context context, String gameName, String gameId, String entrance) {
Intent intent = new Intent(context, GameNewsActivity.class);
intent.putExtra(EntranceUtils.KEY_GAMENAME, gameName);
intent.putExtra(EntranceUtils.KEY_GAMEID, gameId);
intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance);
return intent;
// Intent intent = new Intent(context, GameNewsActivity.class);
// intent.putExtra(EntranceUtils.KEY_GAMENAME, gameName);
// intent.putExtra(EntranceUtils.KEY_GAMEID, gameId);
// intent.putExtra(EntranceUtils.KEY_ENTRANCE, entrance);
// return intent;
final Bundle args = new Bundle();
args.putString(EntranceUtils.KEY_GAMENAME, gameName);
args.putString(EntranceUtils.KEY_GAMEID, gameId);
args.putString(EntranceUtils.KEY_ENTRANCE, entrance);
return new IntentFactory.Builder(context)
.setActivity(GameNewsActivity.class)
.setFragment(GameNewsSearchFragment.class).setArgs(args).build();
}
@Override
protected int getLayoutId() {
return R.layout.activity_game_news;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ivSearch = new ImageView(this);
ivSearch.setImageResource(R.drawable.ic_search_white);
RelativeLayout.LayoutParams ivSearchParams = new RelativeLayout.LayoutParams(
DisplayUtils.dip2px(this, 20), DisplayUtils.dip2px(this, 20));
ivSearchParams.addRule(RelativeLayout.CENTER_VERTICAL);
ivSearchParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
ivSearchParams.setMargins(0, 0, DisplayUtils.dip2px(this, 10), 0);
RelativeLayout reuse_actionbar = (RelativeLayout) mContentView.findViewById(R.id.reuse_actionbar);
reuse_actionbar.addView(ivSearch, ivSearchParams);
ivSearch.setOnClickListener(this);
ivSearch.setVisibility(View.GONE);
String gameName = getIntent().getStringExtra(EntranceUtils.KEY_GAMENAME);
setNavigationTitle(gameName);
mNoDataTv.setText("暂无内容");
adapterMap = new ArrayMap<>();
typeList = new ArrayList<>();
gameId = getIntent().getStringExtra(EntranceUtils.KEY_GAMEID);
mGameNewsRv.setHasFixedSize(true);
layoutManager = new LinearLayoutManager(this);
mGameNewsRv.setLayoutManager(layoutManager);
mGameNewsRv.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
super.onScrollStateChanged(recyclerView, newState);
if (adapter != null && newState == RecyclerView.SCROLL_STATE_IDLE
&& layoutManager.findLastVisibleItemPosition() == adapter.getItemCount() - 1) {
if (!adapter.isRemove() && !adapter.isLoading() && !adapter.isNetworkError()) {
adapter.addList(adapter.getNewsList().size());
}
}
}
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
if (layoutManager.findFirstVisibleItemPosition() >= 1) {
mGameNewsTypeRv.setVisibility(View.VISIBLE);
ivSearch.setVisibility(View.VISIBLE);
} else {
mGameNewsTypeRv.setVisibility(View.GONE);
ivSearch.setVisibility(View.GONE);
}
}
});
mGameNewsTypeRv.setHasFixedSize(true);
mGameNewsTypeRv.setLayoutManager(new GridLayoutManager(this, 5));
//禁止由于滑动出现的阴影
mGameNewsTypeRv.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
startY = event.getY();
} else if (event.getAction() == MotionEvent.ACTION_MOVE) {
if (Math.abs(startY - event.getY()) > 0) {
return true;
}
}
return false;
}
});
if (!TextUtils.isEmpty(gameId)) {
getGameArticleType();
}
}
private void getGameArticleType() {
RetrofitManager.getInstance(this).getApi()
.getGameArticleType(gameId)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Response<List<String>>() {
@Override
public void onResponse(List<String> response) {
super.onResponse(response);
typeList = response;
typeList.add(0, "全部");
adapter = new GameNewsAdapter(GameNewsActivity.this, typeList, mGameNewsRv, gameId, "全部", mEntrance, mNoDataLl);
adapterMap.put("全部", adapter);
mGameNewsRv.setAdapter(adapter);
typeListAdapter = new GameNewsTypeListAdapter(GameNewsActivity.this, typeList, "全部");
mGameNewsTypeRv.setAdapter(typeListAdapter);
ViewGroup.LayoutParams params = mGameNewsTypeRv.getLayoutParams();
params.height = (int) Math.ceil(typeList.size() / 5f) * DisplayUtils.dip2px(GameNewsActivity.this, 35)
+ DisplayUtils.dip2px(GameNewsActivity.this, 12);
mGameNewsTypeRv.setLayoutParams(params);
}
@Override
public void onFailure(HttpException e) {
super.onFailure(e);
}
});
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEventMainThread(EBTypeChange change) {
adapter = adapterMap.get(change.getType());
if (adapter == null) {
adapter = new GameNewsAdapter(GameNewsActivity.this, typeList, mGameNewsRv, gameId, change.getType(), mEntrance, mNoDataLl);
adapterMap.put(change.getType(), adapter);
}
mGameNewsRv.setAdapter(adapter);
mGameNewsTypeRv.setVisibility(View.GONE);
ivSearch.setVisibility(View.GONE);
typeListAdapter.setNewsType(change.getType(), change.getPosition());
}
@Override
public void onClick(View v) {
if (v == ivSearch) {
mGameNewsRv.scrollToPosition(0);
mGameNewsTypeRv.setVisibility(View.GONE);
ivSearch.setVisibility(View.GONE);
adapter.openKeyBoard();
}
}
}