修复搜索列表页面预约游戏点击无效的问题

This commit is contained in:
chenjuntao
2019-07-16 11:54:25 +08:00
parent d5a23f5239
commit 522dac5c6b
3 changed files with 76 additions and 55 deletions

View File

@ -336,6 +336,22 @@ public class DownloadItemUtils {
final String location,
final ExposureEvent traceEvent) {
setOnClickListener(context, downloadBtn, gameEntity, position, adapter, entrance, location, traceEvent, null);
}
/**
* @param clickCallback 供那些需要知道点击回调的地方使用
*/
public static void setOnClickListener(final Context context,
final TextView downloadBtn,
final GameEntity gameEntity,
final int position,
final RecyclerView.Adapter<? extends RecyclerView.ViewHolder> adapter,
final String entrance,
final String location,
final ExposureEvent traceEvent,
@Nullable final EmptyCallback clickCallback) {
if (gameEntity.isReservable()) {
if (!ReservationRepository.thisGameHasBeenReserved(gameEntity.getId())) {
downloadBtn.setOnClickListener(v -> {
@ -346,19 +362,35 @@ public class DownloadItemUtils {
);
dialogFragment.show(((AppCompatActivity) context).getSupportFragmentManager(), "reserve");
});
if (clickCallback != null) {
clickCallback.onCallback();
}
});
} else {
downloadBtn.setOnClickListener(v -> {
context.startActivity(MyGameActivity.getIntentWithConfig(context, 2));
if (clickCallback != null) {
clickCallback.onCallback();
}
});
}
return;
}
if (gameEntity.getApk().size() == 1) {
downloadBtn.setOnClickListener(v -> onNormalClick(context, downloadBtn, gameEntity, position, adapter, entrance, location, traceEvent));
downloadBtn.setOnClickListener(v -> {
onNormalClick(context, downloadBtn, gameEntity, position, adapter, entrance, location, traceEvent);
if (clickCallback != null) {
clickCallback.onCallback();
}
});
} else {
downloadBtn.setOnClickListener(v -> DownloadDialog.getInstance(context).showPopupWindow(v, gameEntity, entrance, location, traceEvent));
downloadBtn.setOnClickListener(v -> {
DownloadDialog.getInstance(context).showPopupWindow(v, gameEntity, entrance, location, traceEvent);
if (clickCallback != null) {
clickCallback.onCallback();
}
});
}
}