Skip to content

Commit 00d2e15

Browse files
committed
移动端可扫 tv 端二维码登录账号
1 parent 680a617 commit 00d2e15

File tree

8 files changed

+567
-80
lines changed

8 files changed

+567
-80
lines changed
Lines changed: 80 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,83 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
3-
<application>
4-
<activity
5-
android:name="dev.aaa1115910.bv.mobile.activities.MainActivity"
6-
android:exported="true"
7-
android:theme="@style/Theme.BV.Mobile.Splash">
8-
<intent-filter>
9-
<action android:name="android.intent.action.MAIN" />
10-
<category android:name="android.intent.category.LAUNCHER" />
11-
</intent-filter>
12-
</activity>
13-
<activity
14-
android:name=".activities.VideoPlayerActivity"
15-
android:configChanges="orientation|screenSize"
16-
android:exported="true"
17-
android:label="@string/title_mobile_activity_video_player"
18-
android:theme="@style/Theme.BV.Mobile" />
19-
<activity
20-
android:name=".activities.LoginActivity"
21-
android:exported="false"
22-
android:label="@string/title_mobile_activity_login"
23-
android:theme="@style/Theme.BV.Mobile" />
24-
<activity
25-
android:name=".activities.UserSpaceActivity"
26-
android:exported="false"
27-
android:label="@string/title_mobile_activity_user_space"
28-
android:theme="@style/Theme.BV.Mobile" />
29-
<activity
30-
android:name=".activities.SettingsActivity"
31-
android:exported="false"
32-
android:label="@string/title_mobile_activity_settings"
33-
android:theme="@style/Theme.BV.Mobile" />
34-
<activity
35-
android:name=".activities.DynamicDetailActivity"
36-
android:exported="false"
37-
android:label="@string/title_mobile_activity_dynamic_detail"
38-
android:theme="@style/Theme.BV.Mobile" />
39-
<activity
40-
android:name=".activities.FollowingUserActivity"
41-
android:exported="false"
42-
android:label="@string/title_mobile_activity_following_user"
43-
android:theme="@style/Theme.BV.Mobile" />
44-
<activity
45-
android:name=".activities.HistoryActivity"
46-
android:exported="false"
47-
android:label="@string/title_mobile_activity_history"
48-
android:theme="@style/Theme.BV.Mobile" />
49-
<activity
50-
android:name=".activities.FavoriteActivity"
51-
android:exported="false"
52-
android:label="@string/title_mobile_activity_favorite"
53-
android:theme="@style/Theme.BV.Mobile" />
54-
<activity
55-
android:name=".activities.FollowingSeasonActivity"
56-
android:exported="false"
57-
android:label="@string/title_mobile_activity_following_season"
58-
android:theme="@style/Theme.BV.Mobile" />
59-
</application>
3+
4+
<application>
5+
<activity
6+
android:name="dev.aaa1115910.bv.mobile.activities.MainActivity"
7+
android:exported="true"
8+
android:theme="@style/Theme.BV.Mobile.Splash">
9+
<intent-filter>
10+
<action android:name="android.intent.action.MAIN" />
11+
<category android:name="android.intent.category.LAUNCHER" />
12+
</intent-filter>
13+
</activity>
14+
<activity
15+
android:name=".activities.VideoPlayerActivity"
16+
android:configChanges="orientation|screenSize"
17+
android:exported="true"
18+
android:label="@string/title_mobile_activity_video_player"
19+
android:theme="@style/Theme.BV.Mobile" />
20+
<activity
21+
android:name=".activities.LoginActivity"
22+
android:exported="false"
23+
android:label="@string/title_mobile_activity_login"
24+
android:theme="@style/Theme.BV.Mobile" />
25+
<activity
26+
android:name=".activities.UserSpaceActivity"
27+
android:exported="false"
28+
android:label="@string/title_mobile_activity_user_space"
29+
android:theme="@style/Theme.BV.Mobile" />
30+
<activity
31+
android:name=".activities.SettingsActivity"
32+
android:exported="false"
33+
android:label="@string/title_mobile_activity_settings"
34+
android:theme="@style/Theme.BV.Mobile" />
35+
<activity
36+
android:name=".activities.DynamicDetailActivity"
37+
android:exported="false"
38+
android:label="@string/title_mobile_activity_dynamic_detail"
39+
android:theme="@style/Theme.BV.Mobile" />
40+
<activity
41+
android:name=".activities.FollowingUserActivity"
42+
android:exported="false"
43+
android:label="@string/title_mobile_activity_following_user"
44+
android:theme="@style/Theme.BV.Mobile" />
45+
<activity
46+
android:name=".activities.HistoryActivity"
47+
android:exported="false"
48+
android:label="@string/title_mobile_activity_history"
49+
android:theme="@style/Theme.BV.Mobile" />
50+
<activity
51+
android:name=".activities.FavoriteActivity"
52+
android:exported="false"
53+
android:label="@string/title_mobile_activity_favorite"
54+
android:theme="@style/Theme.BV.Mobile" />
55+
<activity
56+
android:name=".activities.FollowingSeasonActivity"
57+
android:exported="false"
58+
android:label="@string/title_mobile_activity_following_season"
59+
android:theme="@style/Theme.BV.Mobile" />
60+
<activity
61+
android:name=".activities.IntentHandlerActivity"
62+
android:exported="true"
63+
android:label="@string/title_mobile_activity_intent_handler"
64+
android:launchMode="singleTask"
65+
android:theme="@style/Theme.BV.Mobile">
66+
<intent-filter>
67+
<action android:name="android.intent.action.VIEW" />
68+
69+
<category android:name="android.intent.category.DEFAULT" />
70+
<category android:name="android.intent.category.BROWSABLE" />
71+
72+
<data
73+
android:host="qrtoken"
74+
android:scheme="bugvideo" />
75+
</intent-filter>
76+
</activity>
77+
<activity
78+
android:name=".activities.QrTokenResultActivity"
79+
android:exported="false"
80+
android:label="@string/title_mobile_activity_qr_token_result"
81+
android:theme="@style/Theme.BV.Mobile" />
82+
</application>
6083
</manifest>
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package dev.aaa1115910.bv.mobile.activities
2+
3+
import android.os.Bundle
4+
import androidx.activity.ComponentActivity
5+
import dev.aaa1115910.bv.entity.BvScheme
6+
import io.github.oshai.kotlinlogging.KotlinLogging
7+
8+
class IntentHandlerActivity : ComponentActivity() {
9+
companion object {
10+
private val logger = KotlinLogging.logger { }
11+
}
12+
13+
override fun onCreate(savedInstanceState: Bundle?) {
14+
super.onCreate(savedInstanceState)
15+
val uri = intent.data
16+
when (uri?.host) {
17+
BvScheme.QrToken.HOST -> QrTokenResultActivity.launch(this, uri)
18+
else -> {
19+
logger.info { "unknown uri: $uri" }
20+
finish()
21+
}
22+
}
23+
}
24+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package dev.aaa1115910.bv.mobile.activities
2+
3+
import android.content.Context
4+
import android.content.Intent
5+
import android.net.Uri
6+
import android.os.Bundle
7+
import androidx.activity.ComponentActivity
8+
import androidx.activity.compose.setContent
9+
import dev.aaa1115910.bv.mobile.screen.QrTokenResultScreen
10+
import io.github.oshai.kotlinlogging.KotlinLogging
11+
12+
class QrTokenResultActivity : ComponentActivity() {
13+
companion object {
14+
private val logger = KotlinLogging.logger { }
15+
16+
fun launch(context: Context, uri: Uri) {
17+
logger.info { "launch QrTokenResultActivity: uri=$uri" }
18+
context.startActivity(
19+
Intent(context, QrTokenResultActivity::class.java).apply {
20+
putExtra("uri", uri)
21+
}
22+
)
23+
}
24+
}
25+
26+
override fun onCreate(savedInstanceState: Bundle?) {
27+
super.onCreate(savedInstanceState)
28+
29+
setContent {
30+
QrTokenResultScreen()
31+
}
32+
}
33+
}

0 commit comments

Comments
 (0)