diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 16b049f..ab10cfb 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,5 +1,6 @@
+ android:theme="@style/AppTheme"
+ tools:ignore="AllowBackup,GoogleAppIndexingWarning">
@@ -26,6 +28,9 @@
+
\ No newline at end of file
diff --git a/app/src/main/java/com/hossainkhan/android/demo/browse/LayoutBrowseActivity.kt b/app/src/main/java/com/hossainkhan/android/demo/browse/LayoutBrowseActivity.kt
index bb05836..4dd9436 100644
--- a/app/src/main/java/com/hossainkhan/android/demo/browse/LayoutBrowseActivity.kt
+++ b/app/src/main/java/com/hossainkhan/android/demo/browse/LayoutBrowseActivity.kt
@@ -23,6 +23,7 @@ import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.hossainkhan.android.demo.R
import com.hossainkhan.android.demo.layoutpreview.LayoutChainStyleActivity
+import com.hossainkhan.android.demo.layoutpreview.LayoutGuidelineBarrierActivity
import com.hossainkhan.android.demo.layoutpreview.LayoutPreviewBaseActivity
import com.hossainkhan.android.demo.layoutpreview.LayoutVisibilityGoneActivity
import com.hossainkhan.android.demo.viewmodel.LayoutPreviewViewModelFactory
@@ -79,10 +80,16 @@ class LayoutBrowseActivity : AppCompatActivity() {
when (layoutResId) {
R.layout.preview_visibility_gone -> {
- startActivity(LayoutVisibilityGoneActivity.createStartIntent(this))
+ startActivity(LayoutPreviewBaseActivity.createStartIntent(this,
+ LayoutVisibilityGoneActivity::class.java, R.layout.preview_visibility_gone))
}
R.layout.preview_chain_style_main -> {
- startActivity(LayoutChainStyleActivity.createStartIntent(this))
+ startActivity(LayoutPreviewBaseActivity.createStartIntent(this,
+ LayoutChainStyleActivity::class.java, R.layout.preview_chain_style_main))
+ }
+ R.layout.preview_virtual_helper_barrier -> {
+ startActivity(LayoutPreviewBaseActivity.createStartIntent(this,
+ LayoutGuidelineBarrierActivity::class.java, R.layout.preview_virtual_helper_barrier))
}
else -> {
startActivity(LayoutPreviewBaseActivity.createStartIntent(this, layoutResId))
diff --git a/app/src/main/java/com/hossainkhan/android/demo/dagger/ActivityBindingModule.kt b/app/src/main/java/com/hossainkhan/android/demo/dagger/ActivityBindingModule.kt
index cb45f6f..dea9c6a 100644
--- a/app/src/main/java/com/hossainkhan/android/demo/dagger/ActivityBindingModule.kt
+++ b/app/src/main/java/com/hossainkhan/android/demo/dagger/ActivityBindingModule.kt
@@ -17,6 +17,7 @@
package com.hossainkhan.android.demo.dagger
import com.hossainkhan.android.demo.layoutpreview.LayoutChainStyleActivity
+import com.hossainkhan.android.demo.layoutpreview.LayoutGuidelineBarrierActivity
import com.hossainkhan.android.demo.layoutpreview.LayoutPreviewBaseActivity
import com.hossainkhan.android.demo.layoutpreview.LayoutVisibilityGoneActivity
import dagger.Module
@@ -57,4 +58,8 @@ abstract class ActivityBindingModule {
@ActivityScope
@ContributesAndroidInjector
abstract fun layoutChainActivity(): LayoutChainStyleActivity
+
+ @ActivityScope
+ @ContributesAndroidInjector
+ abstract fun layoutGuidelineBarrierActivity(): LayoutGuidelineBarrierActivity
}
\ No newline at end of file
diff --git a/app/src/main/java/com/hossainkhan/android/demo/data/LayoutDataStore.kt b/app/src/main/java/com/hossainkhan/android/demo/data/LayoutDataStore.kt
index 600ac10..16528f1 100644
--- a/app/src/main/java/com/hossainkhan/android/demo/data/LayoutDataStore.kt
+++ b/app/src/main/java/com/hossainkhan/android/demo/data/LayoutDataStore.kt
@@ -124,7 +124,18 @@ class LayoutDataStore @Inject constructor(
title = "Virtual Helper: Guideline",
description = "The Guideline object allows you to create Horizontal and Vertical guidelines which " +
"are positioned relative to the ConstraintLayout container." +
- "Widgets can then be positioned by constraining them to such guidelines. ")
+ "Widgets can then be positioned by constraining them to such guidelines. "),
+
+ /*
+ * https://developer.android.com/training/constraint-layout/index.html#constrain-to-a-barrier
+ * https://constraintlayout.com/basics/barriers.html
+ */
+ LayoutInformation(
+ layoutResourceId = R.layout.preview_virtual_helper_barrier,
+ thumbnailResourceId = R.drawable.thumb_virtual_helper_barrier,
+ title = "Virtual Helper: Barrier",
+ description = "A Barrier references multiple widgets as input, and creates a virtual guideline " +
+ "based on the most extreme widget on the specified side.")
/*
diff --git a/app/src/main/java/com/hossainkhan/android/demo/layoutpreview/LayoutChainStyleActivity.kt b/app/src/main/java/com/hossainkhan/android/demo/layoutpreview/LayoutChainStyleActivity.kt
index d2c1c0b..0fd943b 100644
--- a/app/src/main/java/com/hossainkhan/android/demo/layoutpreview/LayoutChainStyleActivity.kt
+++ b/app/src/main/java/com/hossainkhan/android/demo/layoutpreview/LayoutChainStyleActivity.kt
@@ -16,20 +16,16 @@
package com.hossainkhan.android.demo.layoutpreview
-import android.content.Context
-import android.content.Intent
import android.os.Bundle
+import android.view.View
+import android.widget.RadioButton
+import android.widget.TextView
import androidx.annotation.StringRes
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.constraintlayout.widget.ConstraintSet
-import androidx.constraintlayout.widget.ConstraintSet.CHAIN_PACKED
-import androidx.constraintlayout.widget.ConstraintSet.CHAIN_SPREAD
-import androidx.constraintlayout.widget.ConstraintSet.CHAIN_SPREAD_INSIDE
+import androidx.constraintlayout.widget.ConstraintSet.*
import androidx.transition.TransitionManager
-import android.view.View
import com.hossainkhan.android.demo.R
-import android.widget.RadioButton
-import android.widget.TextView
import timber.log.Timber
/**
@@ -39,19 +35,6 @@ import timber.log.Timber
*/
class LayoutChainStyleActivity : LayoutPreviewBaseActivity() {
- companion object {
- /**
- * Creates an intent with required information to start this activity.
- *
- * @param context Activity context.
- */
- fun createStartIntent(context: Context): Intent {
- val intent = Intent(context, LayoutChainStyleActivity::class.java)
- intent.putExtra(BUNDLE_KEY_LAYOUT_RESID, R.layout.preview_chain_style_main)
- return intent
- }
- }
-
private lateinit var constraintLayout: ConstraintLayout
private lateinit var guideTextView: TextView
/**
diff --git a/app/src/main/java/com/hossainkhan/android/demo/layoutpreview/LayoutGuidelineBarrierActivity.kt b/app/src/main/java/com/hossainkhan/android/demo/layoutpreview/LayoutGuidelineBarrierActivity.kt
new file mode 100644
index 0000000..2ce5d44
--- /dev/null
+++ b/app/src/main/java/com/hossainkhan/android/demo/layoutpreview/LayoutGuidelineBarrierActivity.kt
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2019 Hossain Khan
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.hossainkhan.android.demo.layoutpreview
+
+import android.os.Bundle
+import android.widget.Button
+import android.widget.TextView
+import com.hossainkhan.android.demo.R
+
+/**
+ * Activity showcasing how virtual guideline barrier changes when a view length changes within the barrier.
+ *
+ * See https://developer.android.com/reference/android/support/constraint/Barrier
+ */
+class LayoutGuidelineBarrierActivity : LayoutPreviewBaseActivity() {
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ // Setup additional view that is only available in this screen.
+ val toggleButton = findViewById