parent
							
								
									3cd5ee34c7
								
							
						
					
					
						commit
						7cb9be422f
					
				| @ -0,0 +1,6 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project version="4"> | ||||
|   <component name="RenderSettings"> | ||||
|     <option name="quality" value="0.4" /> | ||||
|   </component> | ||||
| </project> | ||||
| @ -0,0 +1,93 @@ | ||||
| package xyz.fycz.dynamic | ||||
| 
 | ||||
| import android.os.Handler | ||||
| import me.fycz.maple.MapleBridge | ||||
| import me.fycz.maple.MapleUtils | ||||
| import me.fycz.maple.MethodHook | ||||
| import me.fycz.maple.MethodReplacement | ||||
| import xyz.fycz.myreader.greendao.DbManager | ||||
| import xyz.fycz.myreader.greendao.entity.rule.BookSource | ||||
| import xyz.fycz.myreader.greendao.gen.BookSourceDao | ||||
| import xyz.fycz.myreader.model.sourceAnalyzer.BookSourceManager | ||||
| import xyz.fycz.myreader.ui.activity.SplashActivity | ||||
| import xyz.fycz.myreader.util.SharedPreAdUtils | ||||
| import xyz.fycz.myreader.util.utils.AdUtils | ||||
| 
 | ||||
| /** | ||||
|  * @author fengyue | ||||
|  * @date 2022/3/31 9:21 | ||||
|  */ | ||||
| object App243Fix { | ||||
|     private fun getAllNoLocalSource(): List<BookSource> { | ||||
|         return DbManager.getDaoSession().bookSourceDao.queryBuilder() | ||||
|             .where(BookSourceDao.Properties.SourceEName.isNull) | ||||
|             .where(BookSourceDao.Properties.SourceType.isNotNull) | ||||
|             .orderAsc(BookSourceDao.Properties.OrderNum) | ||||
|             .list() | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     fun fixGetAllNoLocalSource() { | ||||
|         MapleUtils.findAndHookMethod( | ||||
|             BookSourceManager::class.java, | ||||
|             "getAllNoLocalSource", | ||||
|             object : MethodReplacement() { | ||||
|                 override fun replaceHookedMethod(param: MapleBridge.MethodHookParam): Any { | ||||
|                     return getAllNoLocalSource() | ||||
|                 } | ||||
|             } | ||||
|         ) | ||||
|     } | ||||
| 
 | ||||
|     private fun adTimeOut(param: MapleBridge.MethodHookParam) { | ||||
|         val time = param.args[0] as Int | ||||
|         val obj = param.thisObject | ||||
|         if (time == 0) { | ||||
|             MapleUtils.setStaticIntField(SplashActivity::class.java, "WAIT_INTERVAL", 0) | ||||
|             SharedPreAdUtils.getInstance() | ||||
|                 .putLong("splashAdTime", System.currentTimeMillis()) | ||||
|             MapleUtils.callMethod(obj, "startNormal") | ||||
|             SharedPreAdUtils.getInstance().putBoolean("adTimeOut", true) | ||||
|         } else { | ||||
|             if (time > 5){ | ||||
|                 MapleUtils.setIntField(obj, "timeOut", 5) | ||||
|             } | ||||
|             val handler = MapleUtils.getObjectField(obj, "handler") as Handler | ||||
|             val adTimeOutRunnable = MapleUtils.getObjectField(obj, "adTimeOutRunnable") as Runnable | ||||
|             handler.postDelayed(adTimeOutRunnable, 1000) | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     fun fixAdTimeout() { | ||||
|         MapleUtils.findAndHookMethod( | ||||
|             SplashActivity::class.java, | ||||
|             "adTimeout", | ||||
|             Int::class.javaPrimitiveType, | ||||
|             object : MethodReplacement() { | ||||
|                 override fun replaceHookedMethod(param: MapleBridge.MethodHookParam) { | ||||
|                     adTimeOut(param) | ||||
|                 } | ||||
|             } | ||||
|         ) | ||||
|         MapleUtils.findAndHookMethod( | ||||
|             SplashActivity::class.java, | ||||
|             "countTodayAd", | ||||
|             object : MethodHook(){ | ||||
|                 override fun afterHookedMethod(param: MapleBridge.MethodHookParam) { | ||||
|                     SharedPreAdUtils.getInstance().putBoolean("adTimeOut", false) | ||||
|                 } | ||||
|             } | ||||
|         ) | ||||
|         MapleUtils.findAndHookMethod( | ||||
|             AdUtils::class.java, | ||||
|             "backSplashAd", | ||||
|             object : MethodHook(){ | ||||
|                 override fun beforeHookedMethod(param: MapleBridge.MethodHookParam) { | ||||
|                     if (SharedPreAdUtils.getInstance().getBoolean("adTimeOut")){ | ||||
|                         param.result = false | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         ) | ||||
|     } | ||||
| } | ||||
					Loading…
					
					
				
		Reference in new issue