diff --git a/misc/src/main/java/com/example/snippets/ActivityEmbeddingJavaSnippets.java b/misc/src/main/java/com/example/snippets/ActivityEmbeddingJavaSnippets.java index 61dd91cee..b7ea3e165 100644 --- a/misc/src/main/java/com/example/snippets/ActivityEmbeddingJavaSnippets.java +++ b/misc/src/main/java/com/example/snippets/ActivityEmbeddingJavaSnippets.java @@ -42,9 +42,7 @@ public class ActivityEmbeddingJavaSnippets { - static class SnippetsActivity extends Activity { - - private Context context; + static class SplitAttributesCalculatorSnippetsActivity extends AppCompatActivity { @RequiresApi(api=VERSION_CODES.N) @Override @@ -115,6 +113,17 @@ else if (parentConfiguration.screenWidthDp >= 840) { } // [END android_activity_embedding_split_attributes_calculator_tabletop_java] + } + } + + static class SplitRuleSnippetsActivity extends AppCompatActivity { + + private Context context; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + // [START android_activity_embedding_splitPairFilter_java] SplitPairFilter splitPairFilter = new SplitPairFilter( new ComponentName(this, ListActivity.class), @@ -204,13 +213,30 @@ else if (parentConfiguration.screenWidthDp >= 840) { ruleController.addRule(activityRule); // [END android_activity_embedding_addRuleActivityRule_java] + } + + + // [START android_activity_embedding_isActivityEmbedded_java] + boolean isActivityEmbedded(Activity activity) { + return ActivityEmbeddingController.getInstance(context).isActivityEmbedded(activity); + } + // [END android_activity_embedding_isActivityEmbedded_java] + + } + + static class SplitAttributesBuilderSnippetsActivity extends AppCompatActivity { + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + // [START android_activity_embedding_splitAttributesBuilder_java] - SplitAttributes.Builder _splitAttributesBuilder = new SplitAttributes.Builder() + SplitAttributes.Builder splitAttributesBuilder = new SplitAttributes.Builder() .setSplitType(SplitAttributes.SplitType.ratio(0.33f)) .setLayoutDirection(SplitAttributes.LayoutDirection.LEFT_TO_RIGHT); if (WindowSdkExtensions.getInstance().getExtensionVersion() >= 6) { - _splitAttributesBuilder.setDividerAttributes( + splitAttributesBuilder.setDividerAttributes( new DividerAttributes.DraggableDividerAttributes.Builder() .setColor(ContextCompat.getColor(this, R.color.divider_color)) .setWidthDp(4) @@ -218,21 +244,12 @@ else if (parentConfiguration.screenWidthDp >= 840) { .build() ); } - SplitAttributes _splitAttributes = _splitAttributesBuilder.build(); + SplitAttributes _splitAttributes = splitAttributesBuilder.build(); // [END android_activity_embedding_splitAttributesBuilder_java] } - - - // [START android_activity_embedding_isActivityEmbedded_java] - boolean isActivityEmbedded(Activity activity) { - return ActivityEmbeddingController.getInstance(context).isActivityEmbedded(activity); - } - // [END android_activity_embedding_isActivityEmbedded_java] - } - /** @noinspection InnerClassMayBeStatic */ // [START android_activity_embedding_DetailActivity_class_java] public class DetailActivity extends AppCompatActivity { @@ -291,7 +308,7 @@ void onOpenC() { // [END android_activity_embedding_B_class_java] - static class SnippetActivity2 extends Activity { + static class RuleControllerSnippetsActivity extends Activity { private Set filterSet = new HashSet<>(); @@ -308,7 +325,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { } - static class SnippetActivity3 extends AppCompatActivity { + static class SplitDeviceActivity extends AppCompatActivity { @OptIn(markerClass = ExperimentalWindowApi.class) // [START android_activity_embedding_onCreate_SplitControllerCallbackAdapter_java] @@ -329,7 +346,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { } - static class SnippetActivity4 extends Activity { + static class ActivityPinningSnippetsActivity extends Activity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { @@ -349,16 +366,15 @@ protected void onCreate(@Nullable Bundle savedInstanceState) { .setDefaultSplitAttributes(splitAttributes) .build(); - SplitController.getInstance( - getApplicationContext()).pinTopActivityStack(getTaskId(), - pinSplitRule); + SplitController.getInstance(getApplicationContext()) + .pinTopActivityStack(getTaskId(), pinSplitRule); }); // [END android_activity_embedding_pinButton_java] // [START android_activity_embedding_getSplitSupportStatus_java] if (SplitController.getInstance(this).getSplitSupportStatus() == - SplitController.SplitSupportStatus.SPLIT_AVAILABLE) { - // Device supports split activity features. + SplitController.SplitSupportStatus.SPLIT_AVAILABLE) { + // Device supports split activity features. } // [END android_activity_embedding_getSplitSupportStatus_java] diff --git a/misc/src/main/java/com/example/snippets/ActivityEmbeddingKotlinSnippets.kt b/misc/src/main/java/com/example/snippets/ActivityEmbeddingKotlinSnippets.kt index a2c90e0f4..909672387 100644 --- a/misc/src/main/java/com/example/snippets/ActivityEmbeddingKotlinSnippets.kt +++ b/misc/src/main/java/com/example/snippets/ActivityEmbeddingKotlinSnippets.kt @@ -31,7 +31,6 @@ import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import androidx.startup.Initializer import androidx.window.WindowSdkExtensions -import androidx.window.core.ExperimentalWindowApi import androidx.window.embedding.ActivityEmbeddingController import androidx.window.embedding.ActivityFilter import androidx.window.embedding.ActivityRule @@ -52,11 +51,8 @@ import kotlinx.coroutines.launch class ActivityEmbeddingKotlinSnippets { - class SnippetActivity : Activity() { + class SplitAttributesCalculatorSnippetsActivity : AppCompatActivity() { - private val context = this - - @RequiresApi(api = VERSION_CODES.N) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -122,6 +118,16 @@ class ActivityEmbeddingKotlinSnippets { } } // [END android_activity_embedding_split_attributes_calculator_tabletop_kotlin] + } + } + + class SplitRuleSnippetsActivity : AppCompatActivity() { + + private val context = this + + @RequiresApi(api = VERSION_CODES.N) + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) // [START android_activity_embedding_splitPairFilter_kotlin] val splitPairFilter = SplitPairFilter( @@ -207,14 +213,28 @@ class ActivityEmbeddingKotlinSnippets { // [START android_activity_embedding_addRuleActivityRule_kotlin] ruleController.addRule(activityRule) // [END android_activity_embedding_addRuleActivityRule_kotlin] + } + + // [START android_activity_embedding_isActivityEmbedded_kotlin] + fun isActivityEmbedded(activity: Activity): Boolean { + return ActivityEmbeddingController.getInstance(this).isActivityEmbedded(activity) + } + // [END android_activity_embedding_isActivityEmbedded_kotlin] + } + + class SplitAttributesBuilderSnippetsActivity : AppCompatActivity() { + + @RequiresApi(VERSION_CODES.M) + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) // [START android_activity_embedding_splitAttributesBuilder_kotlin] - val _splitAttributesBuilder: SplitAttributes.Builder = SplitAttributes.Builder() + val splitAttributesBuilder: SplitAttributes.Builder = SplitAttributes.Builder() .setSplitType(SplitAttributes.SplitType.ratio(0.33f)) .setLayoutDirection(SplitAttributes.LayoutDirection.LEFT_TO_RIGHT) if (WindowSdkExtensions.getInstance().extensionVersion >= 6) { - _splitAttributesBuilder.setDividerAttributes( + splitAttributesBuilder.setDividerAttributes( DividerAttributes.DraggableDividerAttributes.Builder() .setColor(getColor(R.color.divider_color)) .setWidthDp(4) @@ -222,14 +242,8 @@ class ActivityEmbeddingKotlinSnippets { .build() ) } - val _splitAttributes: SplitAttributes = _splitAttributesBuilder.build() + val splitAttributes: SplitAttributes = splitAttributesBuilder.build() // [END android_activity_embedding_splitAttributesBuilder_kotlin] - - // [START android_activity_embedding_isActivityEmbedded_kotlin] - fun isActivityEmbedded(activity: Activity): Boolean { - return ActivityEmbeddingController.getInstance(this).isActivityEmbedded(activity) - } - // [END android_activity_embedding_isActivityEmbedded_kotlin] } } @@ -277,7 +291,7 @@ class ActivityEmbeddingKotlinSnippets { } // [END android_activity_embedding_B_class_kotlin] - class SnippetActivity2 : Activity() { + class RuleControllerSnippetsActivity : Activity() { private val filterSet = HashSet() @@ -293,9 +307,9 @@ class ActivityEmbeddingKotlinSnippets { class SplitDeviceActivity : AppCompatActivity() { - @OptIn(ExperimentalWindowApi::class) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + val splitController = SplitController.getInstance(this) // [START android_activity_embedding_onCreate_SplitControllerCallbackAdapter_kotlin] val layout = layoutInflater.inflate(R.layout.activity_main, null) @@ -312,10 +326,11 @@ class ActivityEmbeddingKotlinSnippets { } } - class SnippetActivity3 : AppCompatActivity() { + class ActivityPinningSnippetsActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) + // [START android_activity_embedding_pinButton_kotlin] val pinButton: Button = findViewById(R.id.pinButton) pinButton.setOnClickListener { @@ -329,7 +344,8 @@ class ActivityEmbeddingKotlinSnippets { .setDefaultSplitAttributes(splitAttributes) .build() - SplitController.getInstance(applicationContext).pinTopActivityStack(taskId, pinSplitRule) + SplitController.getInstance(applicationContext) + .pinTopActivityStack(taskId, pinSplitRule) } // [END android_activity_embedding_pinButton_kotlin]