基线备份:thirdparty 变体完成 + Android 4.2 兼容改造前

包含内容:
- thirdparty flavor 独立 applicationId + Intent 入口(ThirdPartyEntryActivity)
- 58 后端接口适配(单 /api 路径、code 0/200、camelCase 字段、UNBOUND 轮询)
- MAC 硬件锚定校验(防一凭证多设备共用)
- EPG mac 覆盖 SDK init(sMacOverride)+ ChannelManger 初始化对齐
- 提示文案优化(设备未注册/权益未绑定)
This commit is contained in:
zhaogd
2026-08-25 11:16:40 +08:00
commit d11464d466
1287 changed files with 154945 additions and 0 deletions

View File

@@ -0,0 +1,118 @@
package com.pukka.jiecheng.base;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.leanback.widget.Presenter;
import com.pukka.libcore.utils.LogUtils;
import java.util.List;
public abstract class BasePresenter<VH extends BasePresenterViewHolder, D> extends Presenter {
/**
* item 点击事件
*/
protected OnItemClickListener<D> onItemClickListener = null;
public void setOnItemClickListener(OnItemClickListener<D> onItemClickListener) {
this.onItemClickListener = onItemClickListener;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup) {
// long time = System.currentTimeMillis();
View view;
int layoutResId = getLayoutResId();
if (layoutResId <= 0) {
view = new View(viewGroup.getContext());
} else {
view = LayoutInflater.from(viewGroup.getContext()).inflate(getLayoutResId(), viewGroup, false);
}
ViewHolder viewHolder = createViewHolder(view);
return viewHolder;
}
@Override
public void onBindViewHolder(ViewHolder viewHolder, Object o) {
}
@Override
public void onBindViewHolder(ViewHolder viewHolder, Object item, List<Object> payloads) {
try {
((VH) viewHolder).bindViewHolderPayloads(item,payloads);
if (onItemClickListener != null) {
((VH) viewHolder).view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onItemClickListener.onItemClick(viewHolder.view, (D) item);
}
});
}
} catch (ClassCastException e) {
LogUtils.e(getLogTag() + "onBindViewHolder, cast param failed. " +e);
}
}
@Override
public void onViewAttachedToWindow(ViewHolder viewHolder) {
super.onViewAttachedToWindow(viewHolder);
try {
((VH) viewHolder).setAttachedToWindow(true);
} catch (ClassCastException e) {
LogUtils.e(getLogTag() + "onViewAttachedToWindow, cast param failed." + e);
}
}
@Override
public void onViewDetachedFromWindow(ViewHolder viewHolder) {
super.onViewDetachedFromWindow(viewHolder);
try {
((VH) viewHolder).setAttachedToWindow(false);
} catch (ClassCastException e) {
LogUtils.e(getLogTag() + "onViewDetachedFromWindow, cast param failed." + e);
}
}
@Override
public void onUnbindViewHolder(ViewHolder viewHolder) {
try {
// long time = System.currentTimeMillis();
((VH) viewHolder).unBindViewHolder();
// Logger.d(getLogTag(), "onUnbindViewHolder. cost: " + (System.currentTimeMillis() - time));
} catch (ClassCastException e) {
LogUtils.e(getLogTag() + "onUnbindViewHolder, cast param failed." + e);
}
}
/**
* 获取布局的资源Id
*
* @return 布局的资源Id
*/
protected abstract int getLayoutResId();
/**
* 创建一个ViewHolder的实例
*
* @param view view对象
* @return viewHolder的实例
*/
protected abstract VH createViewHolder(View view);
/**
* 获取日志的TAG
*
* @return 日志的TAG
*/
protected abstract String getLogTag();
public interface OnItemClickListener<D> {
void onItemClick(View view, D d);
}
}