Kotlin / Android Studio 3.0 Development Essentials - Android 8 Edition Errata

Kotlin / Android Studio 3.0 Development Essentials - Android 8 Edition was published on November 7, 2017. The current revision is 1.0a. The revision of your copy of the book can be found in the copyright page at the start of the book.

Known Issues with Revision 1.0a

Section 25.12 - Adding Barriers

In order to use barriers it will be necessary to use a recent beta of the constraint layout library within the project. This can be achieved by following these steps:

- Select and open the Gradle Scripts -> build.gradle (Module: app) file using the project explorer tool window.

- Edit the constraint layout dependency to use the 1.1.0-beta5 or later, for example:

    implementation 'com.android.support.constraint:constraint-layout:1.1.0-beta5'
- Sync the project by clicking on the Sync Now button.

The barrier options should now appear in the layout editor Guidelines toolbar menu has shown the book.

Known Issues with Revision 1.0

Section 2.6.3 - Windows 10

On recent updates to WIndows 10, the Advanced system settings option has moved and can be located using the following steps:

Right-click on the Start menu, select Settings from the resulting menu and enter “Edit the system environment variables” into the Find a setting text field. In the System Properties dialog, click the Environment Variables... button. Follow the steps outlined for Windows 7 starting from step 3.

Section 40.3 - Implementing beginDelayedTransition Animation

The final code example was omitted from this section and should read as follows:

import android.transition.TransitionManager
    private fun handleTouch() {
        myButton.minWidth = 500
        myButton.minHeight = 350
        val set = ConstraintSet()
        set.connect(R.id.myButton, ConstraintSet.BOTTOM,
                ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM, 0)
        set.connect(R.id.myButton, ConstraintSet.RIGHT,
                ConstraintSet.PARENT_ID, ConstraintSet.RIGHT, 0)
        set.constrainWidth(R.id.myButton, ConstraintSet.WRAP_CONTENT)

Section 40.4 - Customizing the Transition

The example code in this section should read as follows:

import android.view.animation.BounceInterpolator
import android.transition.ChangeBounds
    private fun handleTouch() {

        val changeBounds = ChangeBounds()
        changeBounds.duration = 3000
        changeBounds.interpolator = BounceInterpolator()

        TransitionManager.beginDelayedTransition(myLayout, changeBounds)

        myButton.minWidth = 500
        myButton.minHeight = 350
        val set = ConstraintSet()
        set.connect(R.id.myButton, ConstraintSet.BOTTOM,
                ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM, 0)
        set.connect(R.id.myButton, ConstraintSet.RIGHT,
                ConstraintSet.PARENT_ID, ConstraintSet.RIGHT, 0)
        set.constrainWidth(R.id.myButton, ConstraintSet.WRAP_CONTENT)

Section 58.9 - Bundled Notifications

The incorrect image was included for Figure 58-13. The figure should have appeared as follows:

Section 71.7 - Adding the PiP Action

The final code fragment in this section is missing from the book and should read as follows:

override fun onPictureInPictureModeChanged(
  isInPictureInPictureMode: Boolean, newConfig: Configuration?) {
    super.onPictureInPictureModeChanged(isInPictureInPictureMode, newConfig)
        registerReceiver(receiver, filter)
    } else {
        pipButton.visibility = View.VISIBLE

If you have encountered an issue with the book not listed above please contact us as at [email protected] and we will work to resolve the issue for you as quickly as possible.

Featured Titles

Tell me more... Tell me more... Tell me more... Tell me more...

Tell me more... Tell me more... Tell me more... Tell me more...