diff --git a/app/build.gradle b/app/build.gradle index a338209feb5e4a2937d7019985062f95e9a0dca7..e96887d2c5048bf2f158b8ca7c74d66274afde6b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -47,7 +47,7 @@ android { jvmTarget = '1.8' } buildFeatures { - viewBinding true + dataBinding = true } } diff --git a/app/src/main/java/com/example/android/unscramble/ui/game/GameFragment.kt b/app/src/main/java/com/example/android/unscramble/ui/game/GameFragment.kt index 5777f0d939ef5553960bb2979c38f21c64a3ec1f..e9ee27f86102090578d40264fc7cd8437d10cc98 100644 --- a/app/src/main/java/com/example/android/unscramble/ui/game/GameFragment.kt +++ b/app/src/main/java/com/example/android/unscramble/ui/game/GameFragment.kt @@ -21,6 +21,7 @@ import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.databinding.DataBindingUtil import androidx.fragment.app.Fragment import com.example.android.unscramble.R import com.example.android.unscramble.databinding.GameFragmentBinding @@ -48,7 +49,7 @@ class GameFragment : Fragment() { inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View { - binding = GameFragmentBinding.inflate(inflater, container, false) + binding = DataBindingUtil.inflate(inflater, R.layout.game_fragment, container, false) Log.d("GameFragment", "Word: ${viewModel.currentScrambledWord} " + "Score: ${viewModel.score} WordCount: ${viewModel.currentWordCount}") return binding.root diff --git a/app/src/main/res/layout/game_fragment.xml b/app/src/main/res/layout/game_fragment.xml index e06c618105b4654db99c0777e6c28c9ad2adf770..e9629ff22a420e375691a1ec57189651eb722ba9 100644 --- a/app/src/main/res/layout/game_fragment.xml +++ b/app/src/main/res/layout/game_fragment.xml @@ -14,107 +14,114 @@ ~ limitations under the License. --> -<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" +<layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" - xmlns:tools="http://schemas.android.com/tools" - android:layout_width="match_parent" - android:layout_height="match_parent"> + xmlns:tools="http://schemas.android.com/tools"> - <androidx.constraintlayout.widget.ConstraintLayout + <data> + + </data> + + <ScrollView android:layout_width="match_parent" - android:layout_height="wrap_content" - android:padding="@dimen/default_padding" - tools:context=".ui.game.GameFragment"> + android:layout_height="match_parent"> - <Button - android:id="@+id/skip" - style="?attr/materialButtonOutlinedStyle" - android:layout_width="0dp" + <androidx.constraintlayout.widget.ConstraintLayout + android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginStart="@dimen/default_padding" - android:layout_marginEnd="@dimen/default_padding" - android:text="@string/skip" - app:layout_constraintBaseline_toBaselineOf="@+id/submit" - app:layout_constraintEnd_toStartOf="@+id/submit" - app:layout_constraintStart_toStartOf="parent" /> + android:padding="@dimen/default_padding" + tools:context=".ui.game.GameFragment"> - <Button - android:id="@+id/submit" - android:layout_width="0dp" - android:layout_height="wrap_content" - android:layout_marginTop="@dimen/default_margin" - android:text="@string/submit" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toEndOf="@+id/skip" - app:layout_constraintTop_toBottomOf="@+id/textField" /> + <Button + android:id="@+id/skip" + style="?attr/materialButtonOutlinedStyle" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginStart="@dimen/default_padding" + android:layout_marginEnd="@dimen/default_padding" + android:text="@string/skip" + app:layout_constraintBaseline_toBaselineOf="@+id/submit" + app:layout_constraintEnd_toStartOf="@+id/submit" + app:layout_constraintStart_toStartOf="parent" /> - <TextView - android:id="@+id/textView_instructions" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="@string/instructions" - android:textSize="17sp" - app:layout_constraintBottom_toTopOf="@+id/textField" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/textView_unscrambled_word" /> + <Button + android:id="@+id/submit" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/default_margin" + android:text="@string/submit" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toEndOf="@+id/skip" + app:layout_constraintTop_toBottomOf="@+id/textField" /> - <TextView - android:id="@+id/textView_unscrambled_word" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginTop="@dimen/default_margin" - android:layout_marginBottom="@dimen/default_margin" - android:textAppearance="@style/TextAppearance.MaterialComponents.Headline3" - app:layout_constraintBottom_toTopOf="@+id/textView_instructions" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/word_count" - tools:text="Scramble word" /> + <TextView + android:id="@+id/textView_instructions" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/instructions" + android:textSize="17sp" + app:layout_constraintBottom_toTopOf="@+id/textField" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/textView_unscrambled_word" /> - <TextView - android:id="@+id/word_count" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="@string/word_count" - android:textAppearance="@style/TextAppearance.MaterialComponents.Headline6" - app:layout_constraintBottom_toTopOf="@+id/textView_unscrambled_word" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" - tools:text="3 of 10 words" /> + <TextView + android:id="@+id/textView_unscrambled_word" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/default_margin" + android:layout_marginBottom="@dimen/default_margin" + android:textAppearance="@style/TextAppearance.MaterialComponents.Headline3" + app:layout_constraintBottom_toTopOf="@+id/textView_instructions" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/word_count" + tools:text="Scramble word" /> - <TextView - android:id="@+id/score" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="@string/score" - android:textAllCaps="true" - android:textAppearance="@style/TextAppearance.MaterialComponents.Headline6" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintTop_toTopOf="parent" - tools:text="Score: 20" /> + <TextView + android:id="@+id/word_count" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/word_count" + android:textAppearance="@style/TextAppearance.MaterialComponents.Headline6" + app:layout_constraintBottom_toTopOf="@+id/textView_unscrambled_word" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" + tools:text="3 of 10 words" /> - <com.google.android.material.textfield.TextInputLayout - android:id="@+id/textField" - style="@style/Widget.Unscramble.TextInputLayout.OutlinedBox" - android:layout_width="0dp" - android:layout_height="wrap_content" - android:layout_marginTop="@dimen/default_margin" - android:hint="@string/enter_your_word" - app:errorIconDrawable="@drawable/ic_error" - app:helperTextTextAppearance="@style/TextAppearance.MaterialComponents.Subtitle1" - app:layout_constraintBottom_toTopOf="@+id/submit" - app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/textView_instructions"> + <TextView + android:id="@+id/score" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="@string/score" + android:textAllCaps="true" + android:textAppearance="@style/TextAppearance.MaterialComponents.Headline6" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" + tools:text="Score: 20" /> + + <com.google.android.material.textfield.TextInputLayout + android:id="@+id/textField" + style="@style/Widget.Unscramble.TextInputLayout.OutlinedBox" + android:layout_width="0dp" + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/default_margin" + android:hint="@string/enter_your_word" + app:errorIconDrawable="@drawable/ic_error" + app:helperTextTextAppearance="@style/TextAppearance.MaterialComponents.Subtitle1" + app:layout_constraintBottom_toTopOf="@+id/submit" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@+id/textView_instructions"> - <com.google.android.material.textfield.TextInputEditText - android:id="@+id/text_input_edit_text" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:inputType="textPersonName|textNoSuggestions" - android:maxLines="1" /> - </com.google.android.material.textfield.TextInputLayout> + <com.google.android.material.textfield.TextInputEditText + android:id="@+id/text_input_edit_text" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:inputType="textPersonName|textNoSuggestions" + android:maxLines="1" /> + </com.google.android.material.textfield.TextInputLayout> - </androidx.constraintlayout.widget.ConstraintLayout> -</ScrollView> \ No newline at end of file + </androidx.constraintlayout.widget.ConstraintLayout> + </ScrollView> +</layout> \ No newline at end of file