<?xml version="1.0" encoding="utf-8"?>
<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">

    <data>

        <import type="com.topjohnwu.magisk.Info" />

        <import type="com.topjohnwu.magisk.BuildConfig" />

        <import type="com.topjohnwu.magisk.ui.home.MagiskState" />

        <variable
            name="viewModel"
            type="com.topjohnwu.magisk.redesign.home.HomeViewModel" />

    </data>

    <androidx.core.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clipToPadding="false"
        android:paddingTop="@{viewModel.insets.top + (int) @dimen/internal_action_bar_size + (int) @dimen/l2}"
        android:paddingBottom="@{viewModel.insets.bottom + (int) @dimen/l2}"
        tools:layout_marginTop="24dp">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:clipToPadding="false"
            android:orientation="vertical"
            android:paddingStart="@dimen/l1"
            android:paddingEnd="@dimen/l1">

            <androidx.constraintlayout.widget.ConstraintLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:paddingTop="@dimen/l1">

                <com.google.android.material.card.MaterialCardView
                    android:id="@+id/home_magisk_wrapper"
                    style="?styleCardVariant"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:maxWidth="200dp"
                    app:layout_constrainedWidth="true"
                    app:layout_constraintEnd_toStartOf="@+id/home_manager_wrapper"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent">

                    <androidx.constraintlayout.widget.ConstraintLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:animateLayoutChanges="true"
                        android:background="@drawable/bg_card"
                        android:padding="@dimen/l1"
                        app:layout_constraintEnd_toStartOf="@+id/home_manager_wrapper"
                        app:layout_constraintStart_toStartOf="parent"
                        app:layout_constraintTop_toTopOf="parent">

                        <androidx.appcompat.widget.AppCompatImageView
                            android:id="@+id/home_magisk_icon"
                            style="?styleIconPrimary"
                            isEnabled="@{viewModel.stateMagisk != MagiskState.LOADING}"
                            onSelectClick="@{() -> viewModel.onDeletePressed()}"
                            onSelectReset="@{7000L}"
                            android:padding="@dimen/l_25"
                            app:layout_constraintEnd_toEndOf="parent"
                            app:layout_constraintStart_toStartOf="parent"
                            app:layout_constraintTop_toTopOf="parent"
                            app:srcCompat="@drawable/ic_magisk_delete"
                            app:tint="@color/color_primary_delete_transient" />

                        <androidx.appcompat.widget.AppCompatTextView
                            android:id="@+id/home_magisk_title"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="@dimen/l1"
                            android:gravity="center"
                            android:text="@string/magisk"
                            android:textAppearance="?appearanceTextTitleNormal"
                            app:layout_constrainedWidth="true"
                            app:layout_constraintEnd_toEndOf="parent"
                            app:layout_constraintStart_toStartOf="parent"
                            app:layout_constraintTop_toBottomOf="@+id/home_magisk_icon" />

                        <TextSwitcher
                            android:id="@+id/home_magisk_status"
                            textCaptionVariant="@{viewModel.stateTextMagisk}"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            app:layout_constrainedWidth="true"
                            app:layout_constraintEnd_toEndOf="@+id/home_magisk_title"
                            app:layout_constraintStart_toStartOf="@+id/home_magisk_title"
                            app:layout_constraintTop_toBottomOf="@+id/home_magisk_title" />

                        <TextSwitcher
                            android:id="@+id/home_magisk_version"
                            textCaptionVariant="@{viewModel.stateVersionUpdateMagisk}"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            app:layout_constrainedWidth="true"
                            app:layout_constraintEnd_toEndOf="@+id/home_magisk_title"
                            app:layout_constraintStart_toStartOf="@+id/home_magisk_title"
                            app:layout_constraintTop_toBottomOf="@+id/home_magisk_status" />

                        <FrameLayout
                            gone="@{viewModel.stateMagisk == MagiskState.LOADING || !viewModel.isConnected}"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="@dimen/l1"
                            android:animateLayoutChanges="true"
                            app:layout_constraintEnd_toEndOf="parent"
                            app:layout_constraintStart_toStartOf="parent"
                            app:layout_constraintTop_toBottomOf="@+id/home_magisk_version">

                            <com.google.android.material.button.MaterialButton
                                style="?styleButtonDefault"
                                gone="@{viewModel.stateMagisk != MagiskState.OBSOLETE}"
                                isEnabled="@{viewModel.stateManager == MagiskState.UP_TO_DATE}"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_gravity="center"
                                android:onClick="@{() -> viewModel.onMagiskPressed()}"
                                android:text="@string/update"
                                app:icon="@drawable/ic_update_md2"
                                app:iconGravity="textEnd"
                                app:iconPadding="@dimen/l_50"
                                app:iconSize="18dp"
                                tools:visibility="gone" />

                            <com.google.android.material.button.MaterialButton
                                style="?styleButtonText"
                                gone="@{viewModel.stateMagisk == MagiskState.OBSOLETE}"
                                isEnabled="@{viewModel.stateManager == MagiskState.UP_TO_DATE}"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_gravity="center"
                                android:onClick="@{() -> viewModel.onMagiskPressed()}"
                                android:text="@string/install"
                                app:icon="@drawable/ic_install"
                                app:iconGravity="textEnd"
                                app:iconPadding="@dimen/l_50"
                                app:iconSize="18dp" />

                        </FrameLayout>

                    </androidx.constraintlayout.widget.ConstraintLayout>

                </com.google.android.material.card.MaterialCardView>

                <com.google.android.material.card.MaterialCardView
                    android:id="@+id/home_manager_wrapper"
                    style="?styleCardVariant"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="@dimen/l1"
                    android:maxWidth="200dp"
                    app:layout_constrainedWidth="true"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintStart_toEndOf="@+id/home_magisk_wrapper"
                    app:layout_constraintTop_toTopOf="parent">

                    <androidx.constraintlayout.widget.ConstraintLayout
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:background="@drawable/bg_card"
                        android:padding="@dimen/l1"
                        app:layout_constraintEnd_toEndOf="parent"
                        app:layout_constraintStart_toEndOf="@+id/home_magisk_wrapper"
                        app:layout_constraintTop_toTopOf="parent">

                        <androidx.appcompat.widget.AppCompatImageView
                            android:id="@+id/home_manager_icon"
                            style="?styleIconPrimary"
                            android:padding="@dimen/l_50"
                            app:layout_constraintEnd_toEndOf="parent"
                            app:layout_constraintStart_toStartOf="parent"
                            app:layout_constraintTop_toTopOf="parent"
                            app:srcCompat="@drawable/ic_manager" />

                        <androidx.appcompat.widget.AppCompatTextView
                            android:id="@+id/home_manager_title"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="@dimen/l1"
                            android:gravity="center"
                            android:text="@{viewModel.stateHideManagerName}"
                            android:textAppearance="?appearanceTextTitleNormal"
                            app:layout_constrainedWidth="true"
                            app:layout_constraintEnd_toEndOf="parent"
                            app:layout_constraintStart_toStartOf="parent"
                            app:layout_constraintTop_toBottomOf="@+id/home_manager_icon"
                            tools:text="@string/manager" />

                        <TextSwitcher
                            android:id="@+id/home_manager_status"
                            textCaptionVariant="@{viewModel.stateTextManager}"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            app:layout_constrainedWidth="true"
                            app:layout_constraintEnd_toEndOf="@+id/home_manager_title"
                            app:layout_constraintStart_toStartOf="@+id/home_manager_title"
                            app:layout_constraintTop_toBottomOf="@+id/home_manager_title" />

                        <TextSwitcher
                            android:id="@+id/home_manager_version"
                            textCaptionVariant="@{viewModel.stateVersionUpdateManager}"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            app:layout_constrainedWidth="true"
                            app:layout_constraintEnd_toEndOf="@+id/home_manager_title"
                            app:layout_constraintStart_toStartOf="@+id/home_manager_title"
                            app:layout_constraintTop_toBottomOf="@+id/home_manager_status" />

                        <FrameLayout
                            gone="@{viewModel.stateManager == MagiskState.LOADING || !viewModel.isConnected}"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:layout_marginTop="@dimen/l1"
                            app:layout_constraintTop_toBottomOf="@+id/home_manager_version">

                            <com.google.android.material.button.MaterialButton
                                style="?styleButtonDefault"
                                gone="@{viewModel.stateManager != MagiskState.OBSOLETE}"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_gravity="center"
                                android:onClick="@{() -> viewModel.onManagerPressed()}"
                                android:text="@string/update"
                                app:icon="@drawable/ic_update_md2"
                                app:iconGravity="textEnd"
                                app:iconPadding="@dimen/l_50"
                                app:iconSize="18dp" />

                            <com.google.android.material.button.MaterialButton
                                style="?styleButtonText"
                                gone="@{viewModel.stateManager == MagiskState.OBSOLETE}"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_gravity="center"
                                android:onClick="@{() -> viewModel.onManagerPressed()}"
                                android:text="@string/install"
                                app:icon="@drawable/ic_install"
                                app:iconGravity="textEnd"
                                app:iconPadding="@dimen/l_50"
                                app:iconSize="18dp"
                                tools:visibility="gone" />

                        </FrameLayout>

                    </androidx.constraintlayout.widget.ConstraintLayout>

                </com.google.android.material.card.MaterialCardView>


            </androidx.constraintlayout.widget.ConstraintLayout>

            <androidx.constraintlayout.widget.ConstraintLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="@dimen/l2">

                <androidx.appcompat.widget.AppCompatImageView
                    android:id="@+id/support_icon_mainline"
                    style="?styleIconNormal"
                    android:padding="@dimen/l_50"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent"
                    app:srcCompat="@drawable/ic_mainline_dev" />

                <com.google.android.material.card.MaterialCardView
                    style="?styleCardNormal"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="@dimen/l1"
                    app:layout_constrainedWidth="true"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintHorizontal_bias="0"
                    app:layout_constraintStart_toEndOf="@+id/support_icon_mainline"
                    app:layout_constraintTop_toTopOf="parent">

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:orientation="vertical"
                        android:padding="@dimen/l1">

                        <androidx.appcompat.widget.AppCompatTextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="\@topjohnwu"
                            android:textAppearance="?appearanceTextCaptionNormal"
                            android:textStyle="bold"
                            tools:ignore="HardcodedText" />

                        <androidx.recyclerview.widget.RecyclerView
                            itemBinding="@{viewModel.itemBinding}"
                            items="@{viewModel.itemsMainline}"
                            nestedScrollingEnabled="@{false}"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:clipToPadding="false"
                            android:fadingEdgeLength="@dimen/l1"
                            android:orientation="horizontal"
                            android:paddingTop="@dimen/l1"
                            android:requiresFadingEdge="horizontal"
                            app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
                            tools:listitem="@layout/item_developer" />

                    </LinearLayout>

                </com.google.android.material.card.MaterialCardView>

            </androidx.constraintlayout.widget.ConstraintLayout>

            <androidx.constraintlayout.widget.ConstraintLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="@dimen/l1">

                <androidx.appcompat.widget.AppCompatImageView
                    android:id="@+id/support_icon_app"
                    style="?styleIconNormal"
                    android:padding="@dimen/l_50"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintTop_toTopOf="parent"
                    app:srcCompat="@drawable/ic_app_dev" />

                <com.google.android.material.card.MaterialCardView
                    style="?styleCardNormal"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginEnd="@dimen/l1"
                    app:layout_constrainedWidth="true"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toStartOf="@+id/support_icon_app"
                    app:layout_constraintHorizontal_bias="1"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent">

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:orientation="vertical"
                        android:padding="@dimen/l1">

                        <androidx.appcompat.widget.AppCompatTextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="end"
                            android:text="\@diareuse"
                            android:textAppearance="?appearanceTextCaptionNormal"
                            android:textStyle="bold"
                            tools:ignore="HardcodedText" />

                        <androidx.recyclerview.widget.RecyclerView
                            itemBinding="@{viewModel.itemBinding}"
                            items="@{viewModel.itemsApp}"
                            nestedScrollingEnabled="@{false}"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:clipToPadding="false"
                            android:fadingEdgeLength="@dimen/l1"
                            android:orientation="horizontal"
                            android:paddingTop="@dimen/l1"
                            android:requiresFadingEdge="horizontal"
                            app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
                            app:reverseLayout="true"
                            tools:listitem="@layout/item_developer" />

                    </LinearLayout>

                </com.google.android.material.card.MaterialCardView>

            </androidx.constraintlayout.widget.ConstraintLayout>

            <androidx.constraintlayout.widget.ConstraintLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="@dimen/l1">

                <androidx.appcompat.widget.AppCompatImageView
                    android:id="@+id/support_icon_common"
                    style="?styleIconNormal"
                    android:padding="@dimen/l_50"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent"
                    app:srcCompat="@drawable/ic_project" />

                <com.google.android.material.card.MaterialCardView
                    style="?styleCardNormal"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="@dimen/l1"
                    app:layout_constrainedWidth="true"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintHorizontal_bias="0"
                    app:layout_constraintStart_toEndOf="@+id/support_icon_common"
                    app:layout_constraintTop_toTopOf="parent">

                    <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:orientation="vertical"
                        android:padding="@dimen/l1">

                        <androidx.appcompat.widget.AppCompatTextView
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:text="@string/home_links_project"
                            android:textAppearance="?appearanceTextCaptionNormal"
                            android:textStyle="bold" />

                        <androidx.recyclerview.widget.RecyclerView
                            itemBinding="@{viewModel.itemBinding}"
                            items="@{viewModel.itemsProject}"
                            nestedScrollingEnabled="@{false}"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:clipToPadding="false"
                            android:fadingEdgeLength="@dimen/l1"
                            android:orientation="horizontal"
                            android:paddingTop="@dimen/l1"
                            android:requiresFadingEdge="horizontal"
                            app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
                            tools:listitem="@layout/item_developer" />

                    </LinearLayout>

                </com.google.android.material.card.MaterialCardView>

            </androidx.constraintlayout.widget.ConstraintLayout>

            <androidx.appcompat.widget.AppCompatTextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="@dimen/l2"
                android:gravity="center"
                android:text="@{String.format(`%s (%s)`, BuildConfig.VERSION_NAME, BuildConfig.VERSION_CODE)}"
                android:textAppearance="?appearanceTextCaptionVariant"
                tools:text="7.3.4 (12345)" />

            <androidx.appcompat.widget.AppCompatTextView
                gone="@{Info.magiskVersionCode &lt; 0}"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:text="@{String.format(`%s (%s)`, Info.magiskVersionString, Info.magiskVersionCode)}"
                android:textAppearance="?appearanceTextCaptionVariant"
                tools:text="19.5 (12345)" />

            <androidx.appcompat.widget.AppCompatTextView
                gone="@{viewModel.statePackageOriginal}"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:text="@{viewModel.statePackageManager}"
                android:textAppearance="?appearanceTextCaptionVariant"
                tools:text="com.soqspa.xmclaeixl" />

        </LinearLayout>

    </androidx.core.widget.NestedScrollView>

</layout>