Merge branch 'dev' of gitlab.ghzhushou.com:halo/assistant-android into dev
This commit is contained in:
@ -172,6 +172,7 @@ public class SplashScreenActivity extends BaseActivity {
|
||||
GidHelper.getInstance().registerDevice(new GidCallback() {
|
||||
@Override
|
||||
public void onSuccess(String s) {
|
||||
Utils.log("Gid", s);
|
||||
Utils.toast(SplashScreenActivity.this, "光环ID -> " + s);
|
||||
}
|
||||
|
||||
|
||||
@ -89,6 +89,12 @@ class GameEntity : Parcelable {
|
||||
@SerializedName("download_complete_type")
|
||||
var downloadCompleteType: String? = ""
|
||||
|
||||
// 用于开服表标记是否为置顶项目
|
||||
@SerializedName("is_fixed_top")
|
||||
var fixedTop: Boolean? = false
|
||||
|
||||
var fixedTopHint: Boolean? = false
|
||||
|
||||
fun getTag(): ArrayList<String> {
|
||||
if (tag == null) tag = ArrayList()
|
||||
if (!Config.isShowPlugin(id)) return ArrayList()
|
||||
@ -171,6 +177,7 @@ class GameEntity : Parcelable {
|
||||
gameEntity.platform = platform
|
||||
gameEntity.downloadType = downloadType
|
||||
gameEntity.downloadCompleteType = downloadCompleteType
|
||||
gameEntity.fixedTop = fixedTop
|
||||
return gameEntity
|
||||
}
|
||||
|
||||
|
||||
@ -49,7 +49,6 @@ import retrofit2.HttpException;
|
||||
/**
|
||||
* Created by khy on 18/08/17.
|
||||
*/
|
||||
|
||||
public class KaiFuVpAdapter extends BaseRecyclerAdapter {
|
||||
|
||||
private OnRequestCallBackListener mOnCallBackListener;
|
||||
@ -67,6 +66,10 @@ public class KaiFuVpAdapter extends BaseRecyclerAdapter {
|
||||
private boolean mIsNetworkError;
|
||||
private boolean mIsLoaded;
|
||||
|
||||
private static final int VIEW_TYPE_TOP = 0;
|
||||
private static final int VIEW_TYPE_ITEM = 1;
|
||||
private static final int VIEW_TYPE_FOOTER = 2;
|
||||
|
||||
public KaiFuVpAdapter(Context context, OnRequestCallBackListener onCallBackListener, String gameId, String day, String entrance) {
|
||||
super(context);
|
||||
|
||||
@ -89,8 +92,6 @@ public class KaiFuVpAdapter extends BaseRecyclerAdapter {
|
||||
.subscribe(new Response<List<GameEntity>>() {
|
||||
@Override
|
||||
public void onResponse(List<GameEntity> response) {
|
||||
super.onResponse(response);
|
||||
|
||||
GameManager manager = new GameManager(mContext);
|
||||
for (int i = 0; i < response.size(); i++) {
|
||||
// 初始化游戏状态
|
||||
@ -98,6 +99,29 @@ public class KaiFuVpAdapter extends BaseRecyclerAdapter {
|
||||
entity.setEntryMap(DownloadManager.getInstance(mContext).getEntryMap(entity.getName()));
|
||||
manager.addOrUpdate(entity);
|
||||
ApkActiveUtils.filterHideApk(entity); // 过滤隐藏apk
|
||||
|
||||
// 设置置顶部分
|
||||
if (i == 0) {
|
||||
// 列表顶部,若有设置置顶应用就增加置顶头部
|
||||
if (mEntityList.size() == 0 && entity.getFixedTop()) {
|
||||
GameEntity fixedTopItem = new GameEntity();
|
||||
fixedTopItem.setFixedTopHint(true);
|
||||
fixedTopItem.setFixedTop(true);
|
||||
response.add(i, fixedTopItem);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
// 归零置顶游戏的开服时间避免找当前开服游戏时找到
|
||||
if (entity.getFixedTop()) {
|
||||
if (entity.getServerEntity() == null) {
|
||||
KaiFuCalendarEntity emptyCalendarEntity = new KaiFuCalendarEntity();
|
||||
emptyCalendarEntity.setTime(0);
|
||||
entity.setServerEntity(emptyCalendarEntity);
|
||||
}
|
||||
entity.getServerEntity().setTime(0);
|
||||
}
|
||||
|
||||
// 设置时间断点
|
||||
if (i == 0) {
|
||||
if (mEntityList.size() == 0) { // 列表page == 0 && position=0 默认添加时间断点
|
||||
@ -137,7 +161,6 @@ public class KaiFuVpAdapter extends BaseRecyclerAdapter {
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
mEntityList.addAll(response);
|
||||
@ -197,23 +220,22 @@ public class KaiFuVpAdapter extends BaseRecyclerAdapter {
|
||||
|
||||
@Override
|
||||
public int getItemViewType(int position) {
|
||||
|
||||
if (mEntityList.size() == position) {
|
||||
return 0;
|
||||
return VIEW_TYPE_FOOTER;
|
||||
}
|
||||
|
||||
GameEntity gameEntity = mEntityList.get(position);
|
||||
if (gameEntity.getKaifuTimeHint() != null && gameEntity.getKaifuTimeHint() != 0) {
|
||||
return 1;
|
||||
if ((gameEntity.getKaifuTimeHint() != null && gameEntity.getKaifuTimeHint() != 0) || gameEntity.getFixedTopHint()) {
|
||||
return VIEW_TYPE_TOP;
|
||||
}
|
||||
return 2;
|
||||
return VIEW_TYPE_ITEM;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
||||
if (viewType == 0) {
|
||||
if (viewType == VIEW_TYPE_FOOTER) {
|
||||
return new FooterViewHolder(mLayoutInflater.inflate(R.layout.refresh_footerview, parent, false));
|
||||
} else if (viewType == 1) {
|
||||
} else if (viewType == VIEW_TYPE_TOP) {
|
||||
return new KaiFuTimeViewHolder(mLayoutInflater.inflate(R.layout.kaifu_item_time, parent, false));
|
||||
} else {
|
||||
return new GameTestViewHolder(mLayoutInflater.inflate(R.layout.game_test_item, parent, false));
|
||||
@ -222,22 +244,24 @@ public class KaiFuVpAdapter extends BaseRecyclerAdapter {
|
||||
|
||||
@Override
|
||||
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
|
||||
|
||||
if (holder instanceof GameTestViewHolder) {
|
||||
GameEntity gameEntity = mEntityList.get(position);
|
||||
GameTestViewHolder viewHolder = (GameTestViewHolder) holder;
|
||||
initGameTestViewHolder(gameEntity, viewHolder);
|
||||
} else if (holder instanceof KaiFuTimeViewHolder) {
|
||||
GameEntity gameEntity = mEntityList.get(position);
|
||||
SimpleDateFormat dateFm = new SimpleDateFormat("yyyy-MM-dd (EEEE) HH:mm", Locale.CHINA);
|
||||
((KaiFuTimeViewHolder) holder).time.setText(dateFm.format(gameEntity.getKaifuTimeHint() * 1000));
|
||||
if (gameEntity.getFixedTopHint()) {
|
||||
((KaiFuTimeViewHolder) holder).time.setText("热门开服");
|
||||
} else {
|
||||
SimpleDateFormat dateFm = new SimpleDateFormat("yyyy-MM-dd (EEEE) HH:mm", Locale.CHINA);
|
||||
((KaiFuTimeViewHolder) holder).time.setText(dateFm.format(gameEntity.getKaifuTimeHint() * 1000));
|
||||
}
|
||||
} else if (holder instanceof FooterViewHolder) {
|
||||
FooterViewHolder viewHolder = (FooterViewHolder) holder;
|
||||
initFooterViewHolder(viewHolder);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public int getItemCount() {
|
||||
if (mEntityList.size() == 0) {
|
||||
@ -250,7 +274,7 @@ public class KaiFuVpAdapter extends BaseRecyclerAdapter {
|
||||
viewHolder.gameName.setText(gameEntity.getName());
|
||||
ImageUtils.display(viewHolder.gameThumb, gameEntity.getIcon());
|
||||
|
||||
if (TextUtils.isEmpty(gameEntity.getServerEntity().getRemark())) {
|
||||
if (gameEntity.getServerEntity() == null || TextUtils.isEmpty(gameEntity.getServerEntity().getRemark())) {
|
||||
viewHolder.gameTestTime.setVisibility(View.GONE);
|
||||
} else {
|
||||
viewHolder.gameTestTime.setVisibility(View.VISIBLE);
|
||||
@ -258,25 +282,31 @@ public class KaiFuVpAdapter extends BaseRecyclerAdapter {
|
||||
viewHolder.gameTestTime.setBackgroundColor(ContextCompat.getColor(mContext, R.color.tag_orange));
|
||||
}
|
||||
|
||||
|
||||
String type = gameEntity.getServerEntity().getType();
|
||||
if (TextUtils.isEmpty(type)) {
|
||||
viewHolder.gameTestType.setVisibility(View.GONE);
|
||||
} else if (("不删档内测".equals(type) || "删档内测".equals(type) || "公测".equals(type))
|
||||
&& TextUtils.isEmpty(gameEntity.getServerEntity().getNote())) {
|
||||
if (!TextUtils.isEmpty(gameEntity.getServerEntity().getNote())) {
|
||||
viewHolder.gameTestType.setVisibility(View.VISIBLE);
|
||||
if ("公测".equals(type)) {
|
||||
KaiFuUtils.setKaiFuType(viewHolder.gameTestType, gameEntity.getServerEntity().getType() + ":" + gameEntity.getServerEntity().getNote());
|
||||
if (gameEntity.getFixedTop()) {
|
||||
String tag = "today".equals(mDay) ? "今日开服" : "明日开服";
|
||||
viewHolder.gameTestType.setVisibility(View.VISIBLE);
|
||||
viewHolder.gameTestType.setText(tag);
|
||||
viewHolder.gameTestType.setBackgroundColor(ContextCompat.getColor(viewHolder.gameTestType.getContext(), R.color.tag_yellow));
|
||||
} else {
|
||||
String type = gameEntity.getServerEntity().getType();
|
||||
if (TextUtils.isEmpty(type)) {
|
||||
viewHolder.gameTestType.setVisibility(View.GONE);
|
||||
} else if (("不删档内测".equals(type) || "删档内测".equals(type) || "公测".equals(type))
|
||||
&& TextUtils.isEmpty(gameEntity.getServerEntity().getNote())) {
|
||||
if (!TextUtils.isEmpty(gameEntity.getServerEntity().getNote())) {
|
||||
viewHolder.gameTestType.setVisibility(View.VISIBLE);
|
||||
if ("公测".equals(type)) {
|
||||
KaiFuUtils.setKaiFuType(viewHolder.gameTestType, gameEntity.getServerEntity().getType() + ":" + gameEntity.getServerEntity().getNote());
|
||||
} else {
|
||||
KaiFuUtils.setKaiFuType(viewHolder.gameTestType, gameEntity.getServerEntity().getNote());
|
||||
}
|
||||
} else {
|
||||
KaiFuUtils.setKaiFuType(viewHolder.gameTestType, gameEntity.getServerEntity().getNote());
|
||||
viewHolder.gameTestType.setVisibility(View.GONE);
|
||||
}
|
||||
} else {
|
||||
viewHolder.gameTestType.setVisibility(View.GONE);
|
||||
KaiFuUtils.setKaiFuType(viewHolder.gameTestType, gameEntity.getServerEntity().getNote());
|
||||
viewHolder.gameTestType.setVisibility(View.VISIBLE);
|
||||
}
|
||||
} else {
|
||||
KaiFuUtils.setKaiFuType(viewHolder.gameTestType, gameEntity.getServerEntity().getNote());
|
||||
viewHolder.gameTestType.setVisibility(View.VISIBLE);
|
||||
}
|
||||
|
||||
if (gameEntity.getApk() == null || gameEntity.getApk().isEmpty()) {
|
||||
@ -292,12 +322,13 @@ public class KaiFuVpAdapter extends BaseRecyclerAdapter {
|
||||
|
||||
DownloadItemUtils.updateItem(mContext, gameEntity, viewHolder, true);
|
||||
|
||||
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
showSkipDialog(gameEntity, viewHolder.getAdapterPosition() + 1);
|
||||
}
|
||||
});
|
||||
if (gameEntity.getFixedTop()) {
|
||||
viewHolder.itemView.setOnClickListener(v ->
|
||||
GameDetailActivity.startGameDetailActivity(mContext, gameEntity,
|
||||
StringUtils.buildString(entrance, "+(开服表[", String.valueOf(viewHolder.getAdapterPosition() + 1), "])")));
|
||||
} else {
|
||||
viewHolder.itemView.setOnClickListener(v -> showSkipDialog(gameEntity, viewHolder.getAdapterPosition() + 1));
|
||||
}
|
||||
}
|
||||
|
||||
private void showSkipDialog(final GameEntity gameEntity, final int position) {
|
||||
@ -331,22 +362,19 @@ public class KaiFuVpAdapter extends BaseRecyclerAdapter {
|
||||
0, DisplayUtils.dip2px(mContext, 12));
|
||||
container.addView(skipTv);
|
||||
|
||||
skipTv.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
dialog.cancel();
|
||||
switch (skipTv.getText().toString()) {
|
||||
case "只看这个游戏":
|
||||
EventBus.getDefault().post(new EBKaiFuReset(KaiFuWrapperFragment.SINGLE_GAME_KAIFU, gameEntity.getId()));
|
||||
break;
|
||||
case "进入游戏详情":
|
||||
GameDetailActivity.startGameDetailActivity(mContext, gameEntity,
|
||||
StringUtils.buildString(entrance, "+(开服表[", String.valueOf(position), "])"));
|
||||
break;
|
||||
case "返回所有游戏":
|
||||
EventBus.getDefault().post(new EBKaiFuReset(KaiFuWrapperFragment.ALL_GAME_KAIFU, gameEntity.getId()));
|
||||
break;
|
||||
}
|
||||
skipTv.setOnClickListener(v -> {
|
||||
dialog.cancel();
|
||||
switch (skipTv.getText().toString()) {
|
||||
case "只看这个游戏":
|
||||
EventBus.getDefault().post(new EBKaiFuReset(KaiFuWrapperFragment.SINGLE_GAME_KAIFU, gameEntity.getId()));
|
||||
break;
|
||||
case "进入游戏详情":
|
||||
GameDetailActivity.startGameDetailActivity(mContext, gameEntity,
|
||||
StringUtils.buildString(entrance, "+(开服表[", String.valueOf(position), "])"));
|
||||
break;
|
||||
case "返回所有游戏":
|
||||
EventBus.getDefault().post(new EBKaiFuReset(KaiFuWrapperFragment.ALL_GAME_KAIFU, gameEntity.getId()));
|
||||
break;
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -359,14 +387,11 @@ public class KaiFuVpAdapter extends BaseRecyclerAdapter {
|
||||
|
||||
private void initFooterViewHolder(FooterViewHolder viewHolder) {
|
||||
viewHolder.initFooterViewHolder(!mIsLoaded, mIsNetworkError, mIsRemove, R.string.ask_loadover_hint);
|
||||
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
if (mIsNetworkError) {
|
||||
mIsNetworkError = false;
|
||||
notifyItemChanged(getItemCount() - 1);
|
||||
addList();
|
||||
}
|
||||
viewHolder.itemView.setOnClickListener(v -> {
|
||||
if (mIsNetworkError) {
|
||||
mIsNetworkError = false;
|
||||
notifyItemChanged(getItemCount() - 1);
|
||||
addList();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -44,7 +44,6 @@ import butterknife.OnClick;
|
||||
/**
|
||||
* Created by khy on 18/08/17.
|
||||
*/
|
||||
|
||||
public class KaiFuVpFragment extends BaseFragment {
|
||||
|
||||
@BindView(R.id.kaifu_rv)
|
||||
@ -105,7 +104,6 @@ public class KaiFuVpFragment extends BaseFragment {
|
||||
mGameId = "";
|
||||
}
|
||||
|
||||
|
||||
mLlparams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
DisplayUtils.dip2px(getContext(), 40));
|
||||
|
||||
@ -141,17 +139,23 @@ public class KaiFuVpFragment extends BaseFragment {
|
||||
|
||||
// 悬挂的文案
|
||||
GameEntity timeGameEntity = dataList.get(position);
|
||||
Long timeHint = timeGameEntity.getKaifuTimeHint();
|
||||
SimpleDateFormat dateFm = new SimpleDateFormat("yyyy-MM-dd (EEEE) HH:mm", Locale.CHINA);
|
||||
if (timeHint == null || timeHint == 0) {
|
||||
KaiFuCalendarEntity serverEntity = timeGameEntity.getServerEntity();
|
||||
if (serverEntity != null) {
|
||||
mKaifuItemTimeTv.setText(dateFm.format(serverEntity.getTime() * 1000));
|
||||
mKaifuItemTimeTv.setTag(serverEntity.getTime());
|
||||
}
|
||||
boolean fixedTopHint = timeGameEntity.getFixedTop();
|
||||
|
||||
if (fixedTopHint) {
|
||||
mKaifuItemTimeTv.setText("热门开服");
|
||||
} else {
|
||||
mKaifuItemTimeTv.setText(dateFm.format(timeHint * 1000));
|
||||
mKaifuItemTimeTv.setTag(timeHint);
|
||||
Long timeHint = timeGameEntity.getKaifuTimeHint();
|
||||
SimpleDateFormat dateFm = new SimpleDateFormat("yyyy-MM-dd (EEEE) HH:mm", Locale.CHINA);
|
||||
if (timeHint == null || timeHint == 0) {
|
||||
KaiFuCalendarEntity serverEntity = timeGameEntity.getServerEntity();
|
||||
if (serverEntity != null) {
|
||||
mKaifuItemTimeTv.setText(dateFm.format(serverEntity.getTime() * 1000));
|
||||
mKaifuItemTimeTv.setTag(serverEntity.getTime());
|
||||
}
|
||||
} else {
|
||||
mKaifuItemTimeTv.setText(dateFm.format(timeHint * 1000));
|
||||
mKaifuItemTimeTv.setTag(timeHint);
|
||||
}
|
||||
}
|
||||
|
||||
// 悬挂界面移动
|
||||
|
||||
@ -60,7 +60,6 @@ public class KaiFuWrapperFragment extends NormalFragment {
|
||||
private Map<Integer, String> mKaiFuHintMap = new HashMap<>();
|
||||
|
||||
@Override
|
||||
|
||||
protected int getLayoutId() {
|
||||
return R.layout.fragment_kaifu_wrapper;
|
||||
}
|
||||
@ -89,12 +88,15 @@ public class KaiFuWrapperFragment extends NormalFragment {
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setHasOptionsMenu(true);
|
||||
FragmentTransaction fragmentTransaction = getChildFragmentManager().beginTransaction();
|
||||
mKaiFuFragment = new KaiFuFragment();
|
||||
|
||||
Bundle args = new Bundle();
|
||||
SimpleDateFormat format = new SimpleDateFormat("HH", Locale.CHINA);
|
||||
args.putInt(KEY_INDEX_PAGE, Integer.valueOf(format.format(new Date(System.currentTimeMillis()))) >= 18 ? 1 : -1);
|
||||
|
||||
mKaiFuFragment = new KaiFuFragment();
|
||||
mKaiFuFragment.setArguments(args);
|
||||
|
||||
FragmentTransaction fragmentTransaction = getChildFragmentManager().beginTransaction();
|
||||
fragmentTransaction.add(R.id.layout_fragment_content, mKaiFuFragment);
|
||||
fragmentTransaction.commit();
|
||||
|
||||
|
||||
@ -1,2 +1,2 @@
|
||||
configurations.maybeCreate("default")
|
||||
artifacts.add("default", file('gid.aar'))
|
||||
artifacts.add("default", file('gid_1.0_beta.aar'))
|
||||
Binary file not shown.
BIN
libraries/gid/gid_1.0_beta.aar
Normal file
BIN
libraries/gid/gid_1.0_beta.aar
Normal file
Binary file not shown.
Reference in New Issue
Block a user