@@ -6,6 +6,8 @@ import android.content.ComponentName
6
6
import android.content.Intent
7
7
import android.net.Uri
8
8
import android.os.Bundle
9
+ import me.iacn.biliroaming.BiliBiliPackage
10
+ import me.iacn.biliroaming.BiliBiliPackage.Companion.instance
9
11
import me.iacn.biliroaming.utils.Log
10
12
import me.iacn.biliroaming.utils.hookBeforeAllMethods
11
13
import me.iacn.biliroaming.utils.hookBeforeMethod
@@ -40,35 +42,44 @@ class StartActivityHook(classLoader: ClassLoader) : BaseHook(classLoader) {
40
42
false
41
43
) && uri.startsWith(" bilibili://story/" )
42
44
) {
43
- intent.data?.let {
44
- try {
45
- val cid = intent.data?.getQueryParameter(" player_preload" ).toJSONObject().getLong(" cid" )
46
- intent.data = fixIntentUri(Uri .parse(intent.dataString))
47
- // fix extra
48
- val pre = Uri .parse(intent.dataString).buildUpon().clearQuery().build().toString()
49
- val aid = pre.split(" /" ).last().toLong()
50
- intent.removeExtra(" player_preload" )
51
- intent.putExtra(" player_preload" , floor(Math .random()* 1000000000 ).toInt().toString())
52
- intent.putExtra(" blrouter.targeturl" , pre)
53
- intent.putExtra(" blrouter.pagename" , " bilibili://united_video/" )
54
- intent.putExtra(" jumpFrom" , 7 )
55
- intent.putExtra(" " , aid)
56
- intent.putExtra(" aid" , aid)
57
- intent.putExtra(" cid" , cid)
58
- intent.putExtra(" bvid" , " " )
59
- intent.putExtra(" from" , 7 )
60
- intent.putExtra(" blrouter.targeturl" , pre)
61
- intent.putExtra(" blrouter.matchrule" , " bilibili://united_video/" )
62
- // fix component
63
- intent.component = ComponentName (
64
- intent.component?.packageName ? : packageName,
65
- " com.bilibili.ship.theseus.detail.UnitedBizDetailsActivity"
66
- )
67
- } catch (e: Exception ) {
68
- Log .e(" replaceStoryVideo fix intent failed!!!" )
69
- Log .e(e)
45
+ if (instance.hasUnitedVideoActivity) {
46
+ intent.data?.let {
47
+ try {
48
+ val cid = intent.data?.getQueryParameter(" player_preload" ).toJSONObject().getLong(" cid" )
49
+ intent.data = fixIntentUri(Uri .parse(intent.dataString))
50
+ // fix extra
51
+ val pre = Uri .parse(intent.dataString).buildUpon().clearQuery().build().toString()
52
+ val aid = pre.split(" /" ).last().toLong()
53
+ intent.removeExtra(" player_preload" )
54
+ intent.putExtra(" player_preload" , floor(Math .random()* 1000000000 ).toInt().toString())
55
+ intent.putExtra(" blrouter.targeturl" , pre)
56
+ intent.putExtra(" blrouter.pagename" , " bilibili://united_video/" )
57
+ intent.putExtra(" jumpFrom" , 7 )
58
+ intent.putExtra(" " , aid)
59
+ intent.putExtra(" aid" , aid)
60
+ intent.putExtra(" cid" , cid)
61
+ intent.putExtra(" bvid" , " " )
62
+ intent.putExtra(" from" , 7 )
63
+ intent.putExtra(" blrouter.targeturl" , pre)
64
+ intent.putExtra(" blrouter.matchrule" , " bilibili://united_video/" )
65
+ // fix component
66
+ intent.component = ComponentName (
67
+ intent.component?.packageName ? : packageName,
68
+ " com.bilibili.ship.theseus.detail.UnitedBizDetailsActivity"
69
+ )
70
+ } catch (e: Exception ) {
71
+ Log .e(" replaceStoryVideo fix intent failed!!!" )
72
+ Log .e(e)
73
+ }
70
74
}
75
+ return @hookBeforeAllMethods
71
76
}
77
+ // 兼容旧版
78
+ intent.component = ComponentName (
79
+ intent.component?.packageName ? : packageName,
80
+ " com.bilibili.video.videodetail.VideoDetailsActivity"
81
+ )
82
+ intent.data = Uri .parse(uri.replace(" bilibili://story/" , " bilibili://video/" ))
72
83
}
73
84
if (sPrefs.getBoolean(" force_browser" , false )) {
74
85
if (intent.component?.className?.endsWith(" MWebActivity" ) == true &&
0 commit comments