Skip to content

Commit 9e98c35

Browse files
authored
Add files via upload
1 parent 80d6013 commit 9e98c35

File tree

2 files changed

+63
-68
lines changed

2 files changed

+63
-68
lines changed

misc/src/main/java/com/example/snippets/ActivityEmbeddingJavaSnippets.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -349,9 +349,8 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
349349
.setDefaultSplitAttributes(splitAttributes)
350350
.build();
351351

352-
SplitController.getInstance(
353-
getApplicationContext()).pinTopActivityStack(getTaskId(),
354-
pinSplitRule);
352+
SplitController.getInstance(getApplicationContext())
353+
.pinTopActivityStack(getTaskId(), pinSplitRule);
355354
});
356355
// [END android_activity_embedding_pinButton_java]
357356

misc/src/main/java/com/example/snippets/ActivityEmbeddingKotlinSnippets.kt

Lines changed: 61 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,3 @@
1-
/*
2-
* Copyright 2025 The Android Open Source Project
3-
*
4-
* Licensed under the Apache License, Version 2.0 (the "License");
5-
* you may not use this file except in compliance with the License.
6-
* You may obtain a copy of the License at
7-
*
8-
* https://www.apache.org/licenses/LICENSE-2.0
9-
*
10-
* Unless required by applicable law or agreed to in writing, software
11-
* distributed under the License is distributed on an "AS IS" BASIS,
12-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13-
* See the License for the specific language governing permissions and
14-
* limitations under the License.
15-
*/
16-
171
package com.example.snippets
182

193
import android.app.Activity
@@ -52,11 +36,11 @@ import kotlinx.coroutines.launch
5236

5337
class ActivityEmbeddingKotlinSnippets {
5438

55-
class SnippetActivity : Activity() {
39+
class SnippetActivity: Activity() {
5640

5741
private val context = this
5842

59-
@RequiresApi(api = VERSION_CODES.N)
43+
@RequiresApi(api=VERSION_CODES.N)
6044
override fun onCreate(savedInstanceState: Bundle?) {
6145
super.onCreate(savedInstanceState)
6246

@@ -105,8 +89,7 @@ class ActivityEmbeddingKotlinSnippets {
10589
SplitAttributes.LayoutDirection.BOTTOM_TO_TOP
10690
} else {
10791
SplitAttributes.LayoutDirection.LOCALE
108-
}
109-
)
92+
})
11093
.build()
11194
} else if (parentConfiguration.screenWidthDp >= 840) {
11295
// Side-by-side dual-pane layout for wide displays.
@@ -172,15 +155,15 @@ class ActivityEmbeddingKotlinSnippets {
172155

173156
// [START android_activity_embedding_splitPlaceholderRule_kotlin]
174157
val splitPlaceholderRule = SplitPlaceholderRule.Builder(
175-
placeholderActivityFilterSet,
176-
Intent(context, PlaceholderActivity::class.java)
177-
).setDefaultSplitAttributes(splitAttributes)
178-
.setMinWidthDp(840)
179-
.setMinSmallestWidthDp(600)
180-
.setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ratio(1.5f))
181-
.setFinishPrimaryWithPlaceholder(SplitRule.FinishBehavior.ALWAYS)
182-
.setSticky(false)
183-
.build()
158+
placeholderActivityFilterSet,
159+
Intent(context, PlaceholderActivity::class.java)
160+
).setDefaultSplitAttributes(splitAttributes)
161+
.setMinWidthDp(840)
162+
.setMinSmallestWidthDp(600)
163+
.setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ratio(1.5f))
164+
.setFinishPrimaryWithPlaceholder(SplitRule.FinishBehavior.ALWAYS)
165+
.setSticky(false)
166+
.build()
184167
// [END android_activity_embedding_splitPlaceholderRule_kotlin]
185168

186169
// [START android_activity_embedding_addRuleSplitPlaceholderRule_kotlin]
@@ -208,39 +191,26 @@ class ActivityEmbeddingKotlinSnippets {
208191
ruleController.addRule(activityRule)
209192
// [END android_activity_embedding_addRuleActivityRule_kotlin]
210193

211-
// [START android_activity_embedding_splitAttributesBuilder_kotlin]
212-
val _splitAttributesBuilder: SplitAttributes.Builder = SplitAttributes.Builder()
213-
.setSplitType(SplitAttributes.SplitType.ratio(0.33f))
214-
.setLayoutDirection(SplitAttributes.LayoutDirection.LEFT_TO_RIGHT)
215-
216-
if (WindowSdkExtensions.getInstance().extensionVersion >= 6) {
217-
_splitAttributesBuilder.setDividerAttributes(
218-
DividerAttributes.DraggableDividerAttributes.Builder()
219-
.setColor(getColor(R.color.divider_color))
220-
.setWidthDp(4)
221-
.setDragRange(DividerAttributes.DragRange.DRAG_RANGE_SYSTEM_DEFAULT)
222-
.build()
223-
)
224-
}
225-
val _splitAttributes: SplitAttributes = _splitAttributesBuilder.build()
226-
// [END android_activity_embedding_splitAttributesBuilder_kotlin]
194+
}
227195

228-
// [START android_activity_embedding_isActivityEmbedded_kotlin]
229-
fun isActivityEmbedded(activity: Activity): Boolean {
230-
return ActivityEmbeddingController.getInstance(this).isActivityEmbedded(activity)
231-
}
232-
// [END android_activity_embedding_isActivityEmbedded_kotlin]
196+
// [START android_activity_embedding_isActivityEmbedded_kotlin]
197+
fun isActivityEmbedded(activity: Activity): Boolean {
198+
return ActivityEmbeddingController.getInstance(this).isActivityEmbedded(activity)
233199
}
200+
// [END android_activity_embedding_isActivityEmbedded_kotlin]
201+
234202
}
235203

204+
236205
// [START android_activity_embedding_DetailActivity_class_kotlin]
237-
class DetailActivity : AppCompatActivity() {
206+
class DetailActivity: AppCompatActivity() {
238207
fun onOpenSubdetail() {
239208
startActivity(Intent(this, SubdetailActivity::class.java))
240209
}
241210
}
242211
// [END android_activity_embedding_DetailActivity_class_kotlin]
243212

213+
244214
// [START android_activity_embedding_SplitInitializer_class_kotlin]
245215
class SplitInitializer : Initializer<RuleController> {
246216

@@ -256,28 +226,31 @@ class ActivityEmbeddingKotlinSnippets {
256226
}
257227
// [END android_activity_embedding_SplitInitializer_class_kotlin]
258228

229+
259230
/**
260231
* Function used by snippet.
261232
*/
262233
fun classForItem(item: Int): Class<*> { return Class::class.java }
263234

264235
// [START android_activity_embedding_MenuActivity_class_kotlin]
265-
inner class MenuActivity : AppCompatActivity() {
236+
inner class MenuActivity: AppCompatActivity() {
266237
fun onMenuItemSelected(selectedMenuItem: Int) {
267238
startActivity(Intent(this, classForItem(selectedMenuItem)))
268239
}
269240
}
270241
// [END android_activity_embedding_MenuActivity_class_kotlin]
271242

243+
272244
// [START android_activity_embedding_B_class_kotlin]
273-
class B : AppCompatActivity() {
245+
class B: AppCompatActivity() {
274246
fun onOpenC() {
275247
startActivity(Intent(this, C::class.java))
276248
}
277249
}
278250
// [END android_activity_embedding_B_class_kotlin]
279251

280-
class SnippetActivity2 : Activity() {
252+
253+
class SnippetActivity2: Activity() {
281254

282255
private val filterSet = HashSet<SplitPairFilter>()
283256

@@ -291,11 +264,31 @@ class ActivityEmbeddingKotlinSnippets {
291264
// [END android_activity_embedding_onCreate_RuleController_kotlin]
292265
}
293266

294-
class SplitDeviceActivity : AppCompatActivity() {
295267

268+
class SplitDeviceActivity: AppCompatActivity() {
269+
270+
@RequiresApi(VERSION_CODES.N)
296271
@OptIn(ExperimentalWindowApi::class)
297272
override fun onCreate(savedInstanceState: Bundle?) {
298273
super.onCreate(savedInstanceState)
274+
275+
// [START android_activity_embedding_splitAttributesBuilder_kotlin]
276+
val splitAttributesBuilder: SplitAttributes.Builder = SplitAttributes.Builder()
277+
.setSplitType(SplitAttributes.SplitType.ratio(0.33f))
278+
.setLayoutDirection(SplitAttributes.LayoutDirection.LEFT_TO_RIGHT)
279+
280+
if (WindowSdkExtensions.getInstance().extensionVersion >= 6) {
281+
splitAttributesBuilder.setDividerAttributes(
282+
DividerAttributes.DraggableDividerAttributes.Builder()
283+
.setColor(getColor(R.color.divider_color))
284+
.setWidthDp(4)
285+
.setDragRange(DividerAttributes.DragRange.DRAG_RANGE_SYSTEM_DEFAULT)
286+
.build()
287+
)
288+
}
289+
val splitAttributes: SplitAttributes = splitAttributesBuilder.build()
290+
// [END android_activity_embedding_splitAttributesBuilder_kotlin]
291+
299292
val splitController = SplitController.getInstance(this)
300293
// [START android_activity_embedding_onCreate_SplitControllerCallbackAdapter_kotlin]
301294
val layout = layoutInflater.inflate(R.layout.activity_main, null)
@@ -312,7 +305,8 @@ class ActivityEmbeddingKotlinSnippets {
312305
}
313306
}
314307

315-
class SnippetActivity3 : AppCompatActivity() {
308+
309+
class SnippetActivity3: AppCompatActivity() {
316310
override fun onCreate(savedInstanceState: Bundle?) {
317311
super.onCreate(savedInstanceState)
318312
setContentView(R.layout.activity_main)
@@ -329,24 +323,26 @@ class ActivityEmbeddingKotlinSnippets {
329323
.setDefaultSplitAttributes(splitAttributes)
330324
.build()
331325

332-
SplitController.getInstance(applicationContext).pinTopActivityStack(taskId, pinSplitRule)
326+
SplitController.getInstance(applicationContext)
327+
.pinTopActivityStack(taskId, pinSplitRule)
333328
}
334329
// [END android_activity_embedding_pinButton_kotlin]
335330

336331
// [START android_activity_embedding_getSplitSupportStatus_kotlin]
337332
if (SplitController.getInstance(this).splitSupportStatus ==
338-
SplitController.SplitSupportStatus.SPLIT_AVAILABLE
339-
) {
340-
// Device supports split activity features.
333+
SplitController.SplitSupportStatus.SPLIT_AVAILABLE) {
334+
// Device supports split activity features.
341335
}
342336
// [END android_activity_embedding_getSplitSupportStatus_kotlin]
343337
}
344338
}
345339

340+
346341
// Classes used by snippets.
347-
class ListActivity
348-
class SubdetailActivity
349-
class PlaceholderActivity
350-
class ExpandedActivity
351-
class C
342+
class ListActivity {}
343+
class SubdetailActivity {}
344+
class PlaceholderActivity {}
345+
class ExpandedActivity {}
346+
class C {}
347+
352348
}

0 commit comments

Comments
 (0)