求助大神们提供实现移植搜索功能的可行方案代码。能最早完成要求的大神,将获得额外的两百CB!
回答要求:
1.提供实现该搜索功能的classes修改方案及步骤(给出对下面的代码的可行修改方案),而不是改好的文件!
2.经实测按步骤操作后,移植后的搜索功能完全正常可用、无明显bug,且提供方案的时间比其他有效回答更早。
3.只需将 下方的第六个“自动”按钮 改为 跟 右上方的第三个“搜索”按钮 功能完全一致即可。(不需要管按钮图标或文字是否相符)
以下是我对搜索按钮功能移植的过程及分析:
进入到Lcom/iBookStar/activityComm/ls,将第94行到99行的 #0x5 按钮功能(就是下方的第六个“自动”按钮)区间改为了以下搜索功能的activity:
[Java] 纯文本查看 复制代码 :pswitch_2a #0x5
# 创建启动GlobalTextSearch的Intent
new-instance v1, Landroid/content/Intent;
iget-object v0, p0, Lcom/iBookStar/activityComm/ls;->a:Lcom/iBookStar/activityComm/TextReader;
const-class v2, Lcom/iBookStar/activityComm/GlobalTextSearch;
invoke-direct {v1, v0, v2}, Landroid/content/Intent;-><init>(Landroid/content/Context;Ljava/lang/Class;)V
# 设置搜索类型参数
const-string v2, "readtype"
const/4 v3, 0x2 # readtype=1为umd、=2为txt,=3为epub (需要增加自动判断格式,否则不对应搜索时会崩)
invoke-virtual {v1, v2, v3}, Landroid/content/Intent;->putExtra(Ljava/lang/String;I)Landroid/content/Intent;
# 启动搜索Activity
invoke-virtual {v0, v1}, Lcom/iBookStar/activityComm/TextReader;->startActivity(Landroid/content/Intent;)V
# (需要增加启动时记录当前阅读页面进度的代码,否则复位功能没效果,跳转不回去)
goto :goto_b
功能实现要求:
1.readtype参数需要增加自动判断格式的能力,否则书籍文件格式不对应在搜索时会崩。
2.需要增加启动时记录当前阅读页面进度的功能,否则复位功能没效果,跳转不回去"没反应"。
提示:可参考右上角原搜索功能的逻辑,二者并存方便测试移植功能的实现情况。
额外的CB领取处:悬赏帖
已知的信息如下:
下方第六个“自动”按钮对应的执行代码在:Lcom/iBookStar/activityComm/ls的第94行到99行 #0x5部分
右上方第三个“搜索”按钮对应的执行代码在:Lcom/iBookStar/activityComm/TextReader的第16032行到16040行 附近
其调用了当前文件内的m(Z)V方法
而搜索功能的主要代码应该是由位于:Lcom/iBookStar/activityComm/GlobalTextSearch的相关代码来实现Activity的主体功能的
软件文件:
https://www.123pan.com/s/7zBkjv-GV4Jv
密码:52PJ
希望大神们踊跃提供实现此移植按钮功能的完整实现方案!!!用心讨论,共获提升!望大神们传授经验,吾爱有你更精彩!!非常感谢!!! |