feat: 适配 Activity 嵌入

This commit is contained in:
HuanCheng65 2022-04-10 10:08:58 +08:00
parent 2a44a4fb1c
commit 310ed1dbae
5 changed files with 69 additions and 8 deletions

View File

@ -103,6 +103,9 @@ dependencies {
implementation "androidx.browser:browser:1.3.0" implementation "androidx.browser:browser:1.3.0"
implementation "androidx.viewpager2:viewpager2:1.0.0" implementation "androidx.viewpager2:viewpager2:1.0.0"
implementation "androidx.palette:palette-ktx:1.0.0" implementation "androidx.palette:palette-ktx:1.0.0"
implementation "androidx.window:window:1.0.0-beta03"
implementation "androidx.startup:startup-runtime:1.1.0"
//Test //Test
testImplementation "junit:junit:4.13.2" testImplementation "junit:junit:4.13.2"

View File

@ -277,6 +277,16 @@
android:name="android.support.FILE_PROVIDER_PATHS" android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths_share_img" /> android:resource="@xml/file_paths_share_img" />
</provider> </provider>
<provider
android:name="androidx.startup.InitializationProvider"
android:authorities="com.huanchengfly.tieba.post.androidx-startup"
android:exported="false"
tools:node="merge">
<meta-data
android:name="com.huanchengfly.tieba.post.components.WindowInitializer"
android:value="androidx.startup" />
</provider>
</application> </application>
</manifest> </manifest>

View File

@ -30,21 +30,17 @@
"from": "com.huanchengfly.tieba.post.activities.MessageActivity", "from": "com.huanchengfly.tieba.post.activities.MessageActivity",
"to": "com.huanchengfly.tieba.post.activities.FloorActivity" "to": "com.huanchengfly.tieba.post.activities.FloorActivity"
}, },
{
"from": "com.huanchengfly.tieba.post.activities.HistoryActivity",
"to": "com.huanchengfly.tieba.post.activities.ThreadActivity"
},
{ {
"from": "com.huanchengfly.tieba.post.activities.UserCollectActivity", "from": "com.huanchengfly.tieba.post.activities.UserCollectActivity",
"to": "com.huanchengfly.tieba.post.activities.ThreadActivity" "to": "com.huanchengfly.tieba.post.activities.ThreadActivity"
}, },
{ {
"from": "com.huanchengfly.tieba.post.activities.UserActivity", "from": "com.huanchengfly.tieba.post.activities.UserCollectActivity",
"to": "com.huanchengfly.tieba.post.activities.ThreadActivity" "to": "com.huanchengfly.tieba.post.activities.UserActivity"
}, },
{ {
"from": "com.huanchengfly.tieba.post.activities.HistoryActivity", "from": "com.huanchengfly.tieba.post.activities.UserActivity",
"to": "com.huanchengfly.tieba.post.activities.UserCollectActivity" "to": "com.huanchengfly.tieba.post.activities.ThreadActivity"
} }
], ],
"transActivities": [], "transActivities": [],

View File

@ -0,0 +1,19 @@
package com.huanchengfly.tieba.post.components
import android.content.Context
import androidx.startup.Initializer
import androidx.window.core.ExperimentalWindowApi
import androidx.window.embedding.SplitController
import com.huanchengfly.tieba.post.R
@ExperimentalWindowApi
class WindowInitializer : Initializer<SplitController> {
override fun create(context: Context): SplitController {
SplitController.initialize(context, R.xml.main_split_config)
return SplitController.getInstance()
}
override fun dependencies(): List<Class<out Initializer<*>>> {
return emptyList()
}
}

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:window="http://schemas.android.com/apk/res-auto">
<SplitPairRule
window:splitRatio="0.5"
window:splitMinWidth="600dp"
window:finishPrimaryWithSecondary="false"
window:finishSecondaryWithPrimary="true">
<SplitPairFilter
window:primaryActivityName=".activities.MainActivity"
window:secondaryActivityName="*/*" />
<SplitPairFilter
window:primaryActivityName=".activities.NewSearchActivity"
window:secondaryActivityName="*/*" />
<SplitPairFilter
window:primaryActivityName=".activities.ForumActivity"
window:secondaryActivityName="*/*" />
<SplitPairFilter
window:primaryActivityName=".activities.ThreadActivity"
window:secondaryActivityName="*/*" />
<SplitPairFilter
window:primaryActivityName=".activities.MessageActivity"
window:secondaryActivityName=".activities.FloorActivity" />
<SplitPairFilter
window:primaryActivityName=".activities.UserCollectActivity"
window:secondaryActivityName=".activities.ThreadActivity" />
<SplitPairFilter
window:primaryActivityName=".activities.UserCollectActivity"
window:secondaryActivityName=".activities.UserActivity" />
<SplitPairFilter
window:primaryActivityName=".activities.UserActivity"
window:secondaryActivityName=".activities.ThreadActivity" />
</SplitPairRule>
</resources>