Merge branch 'dev' of gitlab.ghzhushou.com:halo/assistant-android into dev

This commit is contained in:
kehaoyuan
2018-09-28 16:58:39 +08:00
8 changed files with 116 additions and 77 deletions

View File

@ -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);
}

View File

@ -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
}

View File

@ -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();
}
});
}

View File

@ -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);
}
}
// 悬挂界面移动

View File

@ -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();

View File

@ -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.

Binary file not shown.