[
  {
    "path": ".gitignore",
    "content": "*.iml\n.gradle\n/local.properties\n/.idea/caches/build_file_checksums.ser\n/.idea/libraries\n/.idea/modules.xml\n/.idea/workspace.xml\n.DS_Store\n/build\n/captures\n.externalNativeBuild\n.idea\napp/release/\n"
  },
  {
    "path": "LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2018 Alexander Kolpakov\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE."
  },
  {
    "path": "README.md",
    "content": "# DroidMotion\n\n<img src=\"/art/preview.gif\" alt=\"sample\" title=\"sample\" width=\"320\" height=\"600\" align=\"right\"/>\n\n[![Platform](https://img.shields.io/badge/platform-android-green.svg)](http://developer.android.com/index.html)\n[![API](https://img.shields.io/badge/API-19%2B-brightgreen.svg?style=flat)](https://android-arsenal.com/api?level=19)\n[![GitHub license](https://img.shields.io/github/license/mashape/apistatus.svg)](/LICENSE)\n\nThis is an Android sample project that shows how to implement a simple android motion.\n\n#\n\nYou can see the description of the implementation on medium and get the sample app with similar motions on Google Play.\n\n<a href=\"https://play.google.com/store/apps/details?id=com.skycodetech.codingquiz\">\n  <img alt=\"Android app on Google Play\" src=\"/art/google_play.png\" width=\"172\" height=\"70\"/>\n</a>\n\n<a href=\"https://medium.com/@bitvale/from-dribbble-template-to-android-motion-74fe03282c88\">\n  <img alt=\"Read on Medium\" src=\"/art/medium.png\" width=\"172\" height=\"70\" hspace=\"8\" />\n</a>\n\n<a href=\"https://dribbble.com/shots/5613604-Mobile-app-motion\">\n  <img alt=\"Design on Dribbble\" src=\"/art/dribbble.png\" width=\"172\" height=\"70\"/>\n</a>\n\n#"
  },
  {
    "path": "app/.gitignore",
    "content": "/build\n"
  },
  {
    "path": "app/build.gradle",
    "content": "apply plugin: 'com.android.application'\n\napply plugin: 'kotlin-android'\n\napply plugin: 'kotlin-android-extensions'\n\nandroid {\n    compileSdkVersion rootProject.compileSdkVersion\n    defaultConfig {\n        applicationId \"com.bitvale.droidmotion\"\n        minSdkVersion rootProject.minSdkVersion\n        targetSdkVersion rootProject.targetSdkVersion\n        versionCode 1\n        versionName \"1.0\"\n        testInstrumentationRunner \"androidx.test.runner.AndroidJUnitRunner\"\n\n        vectorDrawables.useSupportLibrary = true\n    }\n    buildTypes {\n        debug {\n            applicationIdSuffix '.debug'\n            versionNameSuffix '-DEBUG'\n            useProguard false\n            minifyEnabled false\n        }\n        release {\n            minifyEnabled true\n            useProguard true\n            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'\n        }\n    }\n    androidExtensions {\n        experimental = true\n    }\n}\n\ndependencies {\n    implementation fileTree(dir: 'libs', include: ['*.jar'])\n    // Testing dependencies\n    testImplementation \"junit:junit:$rootProject.junitVersion\"\n\n    implementation \"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$rootProject.kotlinVersion\"\n    implementation \"androidx.appcompat:appcompat:$rootProject.androidxVersion\"\n    implementation \"androidx.recyclerview:recyclerview:$rootProject.androidxVersion\"\n    implementation \"androidx.cardview:cardview:$rootProject.androidxVersion\"\n    implementation \"com.google.android.material:material:$rootProject.materialVersion\"\n    implementation \"androidx.constraintlayout:constraintlayout:$rootProject.constraintLayoutVersion\"\n    implementation \"androidx.core:core-ktx:$rootProject.androidxVersion\"\n}\n"
  },
  {
    "path": "app/proguard-rules.pro",
    "content": "# Add project specific ProGuard rules here.\n# You can control the set of applied configuration files using the\n# proguardFiles setting in build.gradle.\n#\n# For more details, see\n#   http://developer.android.com/guide/developing/tools/proguard.html\n\n# If your project uses WebView with JS, uncomment the following\n# and specify the fully qualified class name to the JavaScript interface\n# class:\n#-keepclassmembers class fqcn.of.javascript.interface.for.webview {\n#   public *;\n#}\n\n# Uncomment this to preserve the line number information for\n# debugging stack traces.\n#-keepattributes SourceFile,LineNumberTable\n\n# If you keep the line number information, uncomment this to\n# hideBottomNavigationView the original source file name.\n#-renamesourcefileattribute SourceFile\n"
  },
  {
    "path": "app/src/androidTest/java/com/bitvale/droidmotion/ExampleInstrumentedTest.kt",
    "content": "package com.bitvale.droidmotion\n\nimport androidx.test.InstrumentationRegistry\nimport androidx.test.runner.AndroidJUnit4\n\nimport org.junit.Test\nimport org.junit.runner.RunWith\n\nimport org.junit.Assert.*\n\n/**\n * Instrumented test, which will execute on an Android device.\n *\n * See [testing documentation](http://d.android.com/tools/testing).\n */\n@RunWith(AndroidJUnit4::class)\nclass ExampleInstrumentedTest {\n    @Test\n    fun useAppContext() {\n        // Context of the app under test.\n        val appContext = InstrumentationRegistry.getTargetContext()\n        assertEquals(\"com.bitvale.animation\", appContext.packageName)\n    }\n}\n"
  },
  {
    "path": "app/src/main/AndroidManifest.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    package=\"com.bitvale.androidmotion\">\n\n    <application\n        android:allowBackup=\"true\"\n        android:icon=\"@mipmap/ic_launcher\"\n        android:label=\"@string/app_name\"\n        android:roundIcon=\"@mipmap/ic_launcher_round\"\n        android:supportsRtl=\"true\"\n        android:theme=\"@style/AppTheme.Launcher\">\n        <activity android:name=\"com.bitvale.droidmotion.MainActivity\">\n            <intent-filter>\n                <action android:name=\"android.intent.action.MAIN\" />\n\n                <category android:name=\"android.intent.category.LAUNCHER\" />\n            </intent-filter>\n        </activity>\n    </application>\n\n</manifest>"
  },
  {
    "path": "app/src/main/java/com/bitvale/droidmotion/MainActivity.kt",
    "content": "package com.bitvale.droidmotion\n\nimport android.os.Bundle\nimport androidx.appcompat.app.AppCompatActivity\nimport androidx.fragment.app.Fragment\nimport com.bitvale.androidmotion.R\nimport com.bitvale.droidmotion.common.replaceFragmentInActivity\nimport com.bitvale.droidmotion.fragment.RecyclerFragment\nimport com.bitvale.droidmotion.listener.BottomNavigationViewListener\nimport com.bitvale.droidmotion.listener.OnBackPressedListener\nimport kotlinx.android.synthetic.main.activity_main.*\n\n/**\n * Created by Alexander Kolpakov on 25.07.2018\n */\nclass MainActivity : AppCompatActivity(), BottomNavigationViewListener {\n\n    override fun onCreate(savedInstanceState: Bundle?) {\n        setTheme(R.style.AppTheme)\n        super.onCreate(savedInstanceState)\n        setContentView(R.layout.activity_main)\n        setupFragment(RecyclerFragment.newInstance())\n    }\n\n    private fun setupFragment(fragment: Fragment) {\n        supportFragmentManager.findFragmentById(R.id.fragment_container)\n                ?: fragment.let {\n                    replaceFragmentInActivity(it, R.id.fragment_container)\n                }\n    }\n\n    override fun hideBottomNavigationView() {\n        if (bottom_navigation.translationY == 0f)\n            bottom_navigation.animate()\n                    .translationY(bottom_navigation.height.toFloat())\n                    .setDuration(250)\n                    .start()\n    }\n\n    override fun showBottomNavigationView() {\n        if (bottom_navigation.translationY >= bottom_navigation.height.toFloat())\n            bottom_navigation.animate()\n                    .translationY(0f)\n                    .setDuration(400)\n                    .start()\n    }\n\n    override fun onBackPressed() {\n        val fragmentList = supportFragmentManager.fragments\n        var proceedToSuper = true\n        for (fragment in fragmentList) {\n            if (fragment is OnBackPressedListener) {\n                proceedToSuper = false\n                (fragment as OnBackPressedListener).onBackPressed()\n            }\n        }\n        if (proceedToSuper) super.onBackPressed()\n    }\n}\n"
  },
  {
    "path": "app/src/main/java/com/bitvale/droidmotion/adapter/BaseViewHolder.kt",
    "content": "package com.bitvale.droidmotion.adapter\n\nimport android.os.Build\nimport androidx.recyclerview.widget.RecyclerView\nimport android.view.View\nimport android.view.ViewGroup\nimport com.bitvale.androidmotion.R\nimport com.bitvale.droidmotion.common.inflate\nimport com.bitvale.droidmotion.model.DataProvider.BaseData\nimport com.bitvale.droidmotion.model.DataProvider.Card\nimport com.bitvale.droidmotion.model.DataProvider.Details\nimport com.bitvale.droidmotion.common.TRANSITION_CARD\nimport kotlinx.android.extensions.LayoutContainer\nimport kotlinx.android.synthetic.main.item_card.*\nimport kotlinx.android.synthetic.main.item_details.*\n\n/**\n * Created by Alexander Kolpakov on 29.07.2018\n */\nabstract class BaseViewHolder<T : BaseData>(view: View) : RecyclerView.ViewHolder(view), LayoutContainer {\n\n    override val containerView: View?\n        get() = itemView\n\n    abstract fun bind(data: T, listener: View.OnClickListener? = null)\n\n\n    class CardViewHolder(parent: ViewGroup) : BaseViewHolder<Card>(parent.inflate(R.layout.item_card)) {\n\n        override fun bind(data: Card, listener: View.OnClickListener?) {\n            containerView?.setOnClickListener(listener)\n\n            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {\n                containerView?.transitionName = TRANSITION_CARD + adapterPosition\n            }\n\n            tv_title.text = data.name\n            tv_amount.text = data.amount\n            tv_date.text = data.date\n            tv_status.text = data.status.code\n            img_status.setImageResource(data.status.iconId)\n            img_card.setImageResource(data.imageId)\n        }\n    }\n\n    class DetailsViewHolder(parent: ViewGroup) : BaseViewHolder<Details>(parent.inflate(R.layout.item_details)) {\n\n        override fun bind(data: Details, listener: View.OnClickListener?) {\n            tv_details_title.text = data.title\n            tv_details_subtitle.text = data.subtitle\n            tv_details_amount.text = data.amount\n        }\n\n    }\n}\n\n\n"
  },
  {
    "path": "app/src/main/java/com/bitvale/droidmotion/adapter/RecyclerAdapter.kt",
    "content": "package com.bitvale.droidmotion.adapter\n\nimport androidx.recyclerview.widget.RecyclerView\nimport android.view.View\nimport android.view.ViewGroup\nimport com.bitvale.droidmotion.model.DataProvider.BaseData\nimport com.bitvale.droidmotion.model.DataProvider.Details\nimport com.bitvale.droidmotion.adapter.BaseViewHolder.DetailsViewHolder\nimport com.bitvale.droidmotion.adapter.BaseViewHolder.CardViewHolder\n\n\n/**\n * Created by Alexander Kolpakov on 17.07.2018\n */\nclass RecyclerAdapter<T : BaseData>(private var dataSet: List<T>, private var listener: View.OnClickListener? = null)\n    : RecyclerView.Adapter<BaseViewHolder<T>>() {\n\n    @Suppress(\"UNCHECKED_CAST\")\n    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BaseViewHolder<T> {\n        return when (viewType) {\n            0 -> DetailsViewHolder(parent) as BaseViewHolder<T>\n            else -> CardViewHolder(parent) as BaseViewHolder<T>\n        }\n    }\n\n    override fun getItemCount() = dataSet.size\n\n    override fun getItemViewType(position: Int): Int {\n        val type = dataSet[0].javaClass\n        return when (type) {\n            Details::class.java -> 0\n            else -> 1\n        }\n    }\n\n    override fun onBindViewHolder(holder: BaseViewHolder<T>, position: Int) = holder.bind(dataSet[position], listener)\n}"
  },
  {
    "path": "app/src/main/java/com/bitvale/droidmotion/common/Constants.kt",
    "content": "package com.bitvale.droidmotion.common\n\n\nconst val TRANSITION_CARD = \"card_transition_\"\nconst val TRANSITION_TOOLBAR = \"toolbar_transition\"\n\nconst val EXTRA_COORDINATES = \"coordinates\"\nconst val EXTRA_POSITION = \"position\""
  },
  {
    "path": "app/src/main/java/com/bitvale/droidmotion/common/Extensions.kt",
    "content": "package com.bitvale.droidmotion.common\n\nimport android.animation.Animator\nimport android.animation.AnimatorListenerAdapter\nimport android.content.Context\nimport android.os.Build\nimport android.util.TypedValue\nimport android.view.LayoutInflater\nimport android.view.View\nimport android.view.ViewGroup\nimport android.widget.ImageView\nimport androidx.annotation.LayoutRes\nimport androidx.appcompat.app.AppCompatActivity\nimport androidx.cardview.widget.CardView\nimport androidx.core.view.drawToBitmap\nimport androidx.fragment.app.Fragment\nimport androidx.fragment.app.FragmentManager\nimport androidx.fragment.app.FragmentTransaction\nimport com.bitvale.androidmotion.R\n\n/**\n * Created by Alexander Kolpakov on 17.07.2018\n */\nfun ViewGroup.inflate(@LayoutRes layoutId: Int, attachToRoot: Boolean = false): View {\n    return LayoutInflater.from(context).inflate(layoutId, this, attachToRoot)\n}\n\nfun Context.getStatusBarHeight(): Int {\n    val resourceId = resources.getIdentifier(\"status_bar_height\", \"dimen\", \"android\")\n    return if (resourceId > 0) resources.getDimensionPixelSize(resourceId)\n    else 0\n}\n\nfun Context.getToolbarHeight(): Int {\n    val tv = TypedValue()\n    return if (theme.resolveAttribute(android.R.attr.actionBarSize, tv, true))\n        TypedValue.complexToDimensionPixelSize(tv.data, resources.displayMetrics)\n    else 0\n}\n\nfun AppCompatActivity.replaceFragmentInActivity(fragment: Fragment, frameId: Int) {\n    supportFragmentManager.transact {\n        replace(frameId, fragment)\n    }\n}\n\nprivate inline fun FragmentManager.transact(action: FragmentTransaction.() -> Unit) {\n    beginTransaction().apply {\n        action()\n    }.commit()\n}\n\nfun View.copyViewImage(): View {\n    val copy = ImageView(context)\n\n    val bitmap = drawToBitmap()\n    copy.setImageBitmap(bitmap)\n\n    // On pre-Lollipop when we create a copy, the card view's shadow is copied too as content and\n    // we do not need an additional card view.\n\n    return (if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {\n        CardView(context).apply {\n            cardElevation = resources.getDimension(R.dimen.card_elevation)\n            radius = resources.getDimension(R.dimen.card_corner_radius)\n            addView(copy)\n        }\n    } else {\n        copy\n    }).apply {\n        layoutParams = this@copyViewImage.layoutParams\n        layoutParams.height = this@copyViewImage.height\n        layoutParams.width = this@copyViewImage.width\n        x = this@copyViewImage.x\n        y = this@copyViewImage.y\n    }\n}\n\nfun Animator.withEndAction(action: () -> Unit): Animator {\n    addListener(object : AnimatorListenerAdapter() {\n        override fun onAnimationEnd(animation: Animator?) {\n            action()\n        }\n    })\n    return this\n}\n\nfun Animator.withStartAction(action: () -> Unit): Animator {\n    addListener(object : AnimatorListenerAdapter() {\n        override fun onAnimationStart(animation: Animator?) {\n            action()\n        }\n    })\n    return this\n}\n\ninline fun supportsLollipop(action: () -> Unit) {\n    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {\n        action()\n    }\n}"
  },
  {
    "path": "app/src/main/java/com/bitvale/droidmotion/fragment/BaseFragment.kt",
    "content": "package com.bitvale.droidmotion.fragment\n\nimport android.os.Bundle\nimport android.view.View\nimport android.view.ViewGroup\nimport androidx.cardview.widget.CardView\nimport androidx.core.view.updatePadding\nimport androidx.fragment.app.Fragment\nimport com.bitvale.androidmotion.R\nimport com.bitvale.droidmotion.common.getStatusBarHeight\n\n/**\n * Created by Alexander Kolpakov on 26.07.2018\n */\nopen class BaseFragment : Fragment() {\n\n    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {\n        setupToolbarMargin(view)\n    }\n\n    private fun setupToolbarMargin(view: View) {\n        val toolbar = view.findViewById<View?>(R.id.toolbar)\n        toolbar?.let {\n            val statusBarHeight = context?.getStatusBarHeight()\n            val lp = it.layoutParams as ViewGroup.LayoutParams\n            lp.height += statusBarHeight as Int\n            if (it is CardView) {\n                it.setContentPadding(0, statusBarHeight, 0, 0)\n            } else {\n                it.updatePadding(top = statusBarHeight)\n            }\n        }\n    }\n}"
  },
  {
    "path": "app/src/main/java/com/bitvale/droidmotion/fragment/DetailsFragment.kt",
    "content": "package com.bitvale.droidmotion.fragment\n\nimport android.animation.AnimatorInflater\nimport android.os.Bundle\nimport android.view.LayoutInflater\nimport android.view.View\nimport android.view.ViewGroup\nimport android.view.animation.AnticipateInterpolator\nimport android.view.animation.OvershootInterpolator\nimport androidx.core.view.doOnLayout\nimport androidx.core.view.updatePadding\nimport com.bitvale.androidmotion.R\nimport com.bitvale.droidmotion.common.*\nimport com.bitvale.droidmotion.listener.OnBackPressedListener\nimport com.bitvale.droidmotion.model.DataProvider\nimport kotlinx.android.synthetic.main.fragment_details.*\nimport kotlinx.android.synthetic.main.item_card.*\n\n\n/**\n * Created by Alexander Kolpakov on 25.07.2018\n */\nclass DetailsFragment : BaseFragment(), OnBackPressedListener {\n\n    private lateinit var coordinates: FloatArray\n\n    companion object {\n        const val TAG = \"DetailsFragment\"\n\n        fun newInstance(coordinates: FloatArray, adapterPosition: Int): DetailsFragment {\n\n            val bundle = Bundle().apply {\n                putFloatArray(EXTRA_COORDINATES, coordinates)\n                putInt(EXTRA_POSITION, adapterPosition)\n            }\n\n            return DetailsFragment().apply { arguments = bundle }\n        }\n    }\n\n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n        arguments?.let {\n            coordinates = it.getFloatArray(EXTRA_COORDINATES)\n        }\n    }\n\n    override fun onCreateView(\n            inflater: LayoutInflater,\n            container: ViewGroup?,\n            savedInstanceState: Bundle?\n    ): View? = inflater.inflate(R.layout.fragment_details, container, false)\n\n    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {\n        super.onViewCreated(view, savedInstanceState)\n\n        val position = if (arguments != null) (arguments as Bundle).getInt(EXTRA_POSITION)\n        else 0\n\n        setupViews(position)\n\n        if (savedInstanceState == null) {\n            animateToolbar()\n            fab_negative.animate()\n                    .translationY(0f)\n                    .setDuration(650)\n                    .setInterpolator(OvershootInterpolator(4f))\n                    .start()\n            fab_positive.animate()\n                    .translationY(0f)\n                    .setStartDelay(100)\n                    .setDuration(650)\n                    .setInterpolator(OvershootInterpolator(4f))\n                    .start()\n        } else {\n            toolbar.alpha = 1f\n        }\n    }\n\n    private fun setupViews(position: Int) {\n        supportsLollipop {\n            details_card.transitionName = TRANSITION_CARD + position\n            toolbar_container.transitionName = TRANSITION_TOOLBAR\n        }\n\n        (details_card.layoutParams as ViewGroup.MarginLayoutParams).topMargin = coordinates[2].toInt()\n\n        val data = DataProvider.getCardData()[position]\n        tv_title.text = data.name\n        tv_amount.text = data.amount\n        tv_date.text = data.date\n        tv_status.text = data.status.code\n        img_status.setImageResource(data.status.iconId)\n        img_card.setImageResource(data.imageId)\n\n        fab_negative.setOnClickListener { onBackPressed() }\n\n        with(recycler_view) {\n            adapter = com.bitvale.droidmotion.adapter.RecyclerAdapter(DataProvider.getDetailsData())\n            setHasFixedSize(true)\n            fab_negative.doOnLayout {\n                val paddingBottom = (paddingBottom + fab_negative.height * 1.5).toInt()\n                updatePadding(bottom = paddingBottom)\n            }\n        }\n    }\n\n    override fun onBackPressed() {\n        animateViewsOut()\n    }\n\n    private fun animateViewsOut() {\n        val translateTo = fab_negative.height * 2f\n        AnimatorInflater.loadAnimator(activity, R.animator.main_list_animator).apply {\n            setTarget(recycler_view)\n            start()\n        }\n\n        fab_negative.animate()\n                .translationY(translateTo)\n                .setDuration(350)\n                .setInterpolator(AnticipateInterpolator(2f))\n                .start()\n        fab_positive.animate()\n                .translationY(translateTo)\n                .setStartDelay(50)\n                .setDuration(350)\n                .withEndAction {\n                    activity?.supportFragmentManager?.popBackStack()\n                }\n                .setInterpolator(AnticipateInterpolator(2f))\n                .start()\n\n        animateToolbar(0f, 350)\n    }\n\n    private fun animateToolbar(alphaTo: Float = 1f, duration: Long = 200) {\n        toolbar.animate().alpha(alphaTo).setDuration(duration).start()\n    }\n}"
  },
  {
    "path": "app/src/main/java/com/bitvale/droidmotion/fragment/RecyclerFragment.kt",
    "content": "package com.bitvale.droidmotion.fragment\n\nimport android.animation.AnimatorInflater\nimport android.animation.ValueAnimator\nimport android.os.Bundle\nimport android.transition.TransitionInflater\nimport android.view.LayoutInflater\nimport android.view.View\nimport android.view.ViewGroup\nimport androidx.core.view.doOnLayout\nimport androidx.fragment.app.FragmentTransaction\nimport androidx.recyclerview.widget.LinearLayoutManager\nimport androidx.recyclerview.widget.RecyclerView\nimport com.bitvale.androidmotion.R\nimport com.bitvale.droidmotion.adapter.RecyclerAdapter\nimport com.bitvale.droidmotion.common.*\nimport com.bitvale.droidmotion.listener.BottomNavigationViewListener\nimport com.bitvale.droidmotion.model.DataProvider\nimport kotlinx.android.synthetic.main.fragment_recycler.*\n\n\n/**\n * Created by Alexander Kolpakov on 25.07.2018\n */\nclass RecyclerFragment : BaseFragment(), View.OnClickListener {\n\n    companion object {\n        const val TAG = \"RecyclerFragment\"\n\n        fun newInstance(): RecyclerFragment {\n            return RecyclerFragment()\n        }\n    }\n\n    var bottomNavListener: BottomNavigationViewListener? = null\n\n    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {\n        return inflater.inflate(R.layout.fragment_recycler, container, false)\n    }\n\n    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {\n        super.onViewCreated(view, savedInstanceState)\n\n        setupViews()\n\n        if (savedInstanceState == null) {\n            root.doOnLayout {\n                toolbar.animate()\n                        .translationY(0f)\n                        .alpha(1f)\n                        .setDuration(400)\n                        .start()\n                bottomNavListener?.showBottomNavigationView()\n            }\n        } else {\n            toolbar.alpha = 1f\n            toolbar.translationY = 0f\n        }\n    }\n\n    private fun setupViews() {\n        supportsLollipop {\n            details_toolbar_transition_helper.transitionName = TRANSITION_TOOLBAR\n        }\n\n        details_toolbar_transition_helper.translationY = -resources.getDimension(R.dimen.details_toolbar_container_height)\n        toolbar.translationY = -toolbar.context.getToolbarHeight().toFloat()\n\n        val elevation = resources.getDimension(R.dimen.toolbar_elevation)\n\n        with(recycler_view) {\n            adapter = RecyclerAdapter(DataProvider.getCardData(), this@RecyclerFragment)\n            setHasFixedSize(true)\n            val lm = layoutManager as LinearLayoutManager\n            addOnScrollListener(object : RecyclerView.OnScrollListener() {\n                override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {\n                    if (dy > 0) bottomNavListener?.hideBottomNavigationView()\n                    if (dy < 0) bottomNavListener?.showBottomNavigationView()\n\n                    if (lm.findFirstCompletelyVisibleItemPosition() == 0) {\n                        if (toolbar.cardElevation == 0f) return\n                        animateToolbarElevation(true)\n\n                    } else {\n                        if (toolbar.cardElevation > 0f) return\n                        toolbar.cardElevation = elevation\n                    }\n                }\n            })\n        }\n    }\n\n    override fun onActivityCreated(savedInstanceState: Bundle?) {\n        super.onActivityCreated(savedInstanceState)\n        if (activity is BottomNavigationViewListener) {\n            bottomNavListener = activity as BottomNavigationViewListener\n        } else {\n            throw ClassCastException(\"$activity must implement BottomNavigationViewListener\")\n        }\n    }\n\n    override fun onClick(view: View) {\n        val fragmentTransaction = initFragmentTransaction(view)\n        val copy = view.copyViewImage()\n        copy.y += toolbar.height\n        root.addView(copy)\n        view.visibility = View.INVISIBLE\n        startAnimation(copy, fragmentTransaction)\n    }\n\n    private fun initFragmentTransaction(view: View): FragmentTransaction? {\n        val toY = view.resources.getDimensionPixelOffset(R.dimen.details_toolbar_container_height) - view.height / 2f\n\n        val positions = FloatArray(3)\n        positions[0] = view.x\n        positions[1] = view.y + toolbar.height\n        positions[2] = toY\n\n        val adapterPosition = recycler_view.getChildAdapterPosition(view)\n        val detailsFragment = DetailsFragment.newInstance(positions, adapterPosition)\n\n        val transaction = fragmentManager?.beginTransaction()\n                ?.replace(R.id.fragment_container, detailsFragment, DetailsFragment.TAG)\n                ?.addToBackStack(null)\n\n        supportsLollipop {\n            val transition = TransitionInflater.from(context)\n                    .inflateTransition(R.transition.shared_element_transition)\n            detailsFragment.sharedElementEnterTransition = transition\n\n            transaction\n                    ?.addSharedElement(view, view.transitionName)\n                    ?.addSharedElement(details_toolbar_transition_helper, details_toolbar_transition_helper.transitionName)\n        }\n\n        return transaction\n    }\n\n    private fun startAnimation(view: View, fragmentTransaction: FragmentTransaction?) {\n        AnimatorInflater.loadAnimator(activity, R.animator.main_list_animator).apply {\n            setTarget(recycler_view)\n            withStartAction { if (toolbar.cardElevation > 0) animateToolbarElevation(true) }\n            withEndAction {\n                recycler_view.visibility = View.INVISIBLE\n\n                val toY = view.resources.getDimensionPixelOffset(R.dimen.details_toolbar_container_height) - view.height / 2f\n\n                view.animate().y(toY).start()\n\n                toolbar.animate()\n                        .translationY(-toolbar.height.toFloat())\n                        .alpha(0f)\n                        .setDuration(600)\n                        .withStartAction {\n                            bottomNavListener?.hideBottomNavigationView()\n                            details_toolbar_transition_helper.animate().translationY(0f).setDuration(500).start()\n                        }\n                        .withEndAction {\n                            fragmentTransaction?.commitAllowingStateLoss()\n                        }\n                        .start()\n            }\n            start()\n        }\n    }\n\n    private fun animateToolbarElevation(animateOut: Boolean) {\n        var valueFrom = resources.getDimension(R.dimen.toolbar_elevation)\n        var valueTo = 0f\n        if (!animateOut) {\n            valueTo = valueFrom\n            valueFrom = 0f\n        }\n        ValueAnimator.ofFloat(valueFrom, valueTo).setDuration(250).apply {\n            startDelay = 0\n            addUpdateListener { toolbar.cardElevation = it.animatedValue as Float }\n            start()\n        }\n    }\n}"
  },
  {
    "path": "app/src/main/java/com/bitvale/droidmotion/listener/BottomNavigationViewListener.kt",
    "content": "package com.bitvale.droidmotion.listener\n\n/**\n * Created by Alexander Kolpakov on 29.07.2018\n */\ninterface BottomNavigationViewListener {\n    fun hideBottomNavigationView()\n    fun showBottomNavigationView()\n}"
  },
  {
    "path": "app/src/main/java/com/bitvale/droidmotion/listener/OnBackPressedListener.kt",
    "content": "package com.bitvale.droidmotion.listener\n\n/**\n * Created by Alexander Kolpakov on 26.07.2018\n */\ninterface OnBackPressedListener {\n    fun onBackPressed()\n}"
  },
  {
    "path": "app/src/main/java/com/bitvale/droidmotion/model/DataProvider.kt",
    "content": "package com.bitvale.droidmotion.model\n\nimport androidx.annotation.DrawableRes\nimport com.bitvale.androidmotion.R\n\n/**\n * Created by Alexander Kolpakov on 24.07.2018\n */\nobject DataProvider {\n\n    fun getCardData(): List<Card> {\n        val data = ArrayList<Card>()\n        data.add(Card(0, \"Google Play\", \"28.07.2018\", \"$38,456.78\", Status.COMPLAINT, R.drawable.img_google_play))\n        data.add(Card(1, \"Twitter\", \"27.07.2018\", \"$1,550.60\", Status.RECEIVED, R.drawable.img_twitter))\n        data.add(Card(2, \"YouTube\", \"27.07.2018\", \"$14,340.00\", Status.CORRECT, R.drawable.img_youtube))\n        data.add(Card(3, \"Dribbble\", \"26.07.2018\", \"$2,678.27\", Status.ERROR, R.drawable.img_dribble))\n        data.add(Card(4, \"Apple Store\", \"26.07.2018\", \"$20,479.12\", Status.CORRECT, R.drawable.img_apple))\n        data.add(Card(5, \"VK\", \"25.07.2018\", \"$13,846.13\", Status.INCORRECT, R.drawable.img_vk))\n        data.add(Card(6, \"Instagram\", \"25.07.2018\", \"$24,856.17\", Status.NOT_RECEIVED, R.drawable.img_instagram))\n        data.add(Card(7, \"Github\", \"24.07.2018\", \"$376.90\", Status.COMPLAINT, R.drawable.img_github))\n        data.add(Card(8, \"Vimeo\", \"23.07.2018\", \"$7,568.02\", Status.RECEIVED, R.drawable.img_vimeo))\n        data.add(Card(9, \"Facebook\", \"10.07.2018\", \"$18,347.32\", Status.INCORRECT, R.drawable.img_facebook))\n        return data\n    }\n\n    fun getDetailsData(): List<Details> {\n        val data = ArrayList<Details>()\n        data.add(Details(0, \"In App purchase\\\"Gem\\\"\", \"$14,340.00 X1 (including VAT 10%)\", \"$14,340.00\"))\n        data.add(Details(0, \"In App purchase \\\"Money\\\"\", \"$2,456.78 X1 (including VAT 10%)\", \"$2,456.78\"))\n        data.add(Details(0, \"Interstitial Ads\", \"$1,150.15 X1 (including VAT 10%)\", \"$1,150.15\"))\n        data.add(Details(0, \"Rewarded video\", \"$566.20 X1 (including VAT 10%)\", \"$566.20\"))\n        return data\n    }\n\n    interface BaseData\n\n    data class Card(val id: Int, val name: String, val date: String, val amount: String, val status: Status,\n                    @DrawableRes val imageId: Int) : BaseData\n\n    data class Details(val id: Int, val title: String, val subtitle: String, val amount: String) : BaseData\n\n    enum class Status(val code: String, @DrawableRes val iconId: Int) {\n        CORRECT(\"Correct\", R.drawable.ic_correct),\n        INCORRECT(\"Incorrect\", R.drawable.ic_incorrect),\n        COMPLAINT(\"Complaint\", R.drawable.ic_complaint),\n        ERROR(\"Error\", R.drawable.ic_error),\n        RECEIVED(\"Received\", R.drawable.ic_received),\n        NOT_RECEIVED(\"Not received\", R.drawable.ic_not_received)\n    }\n}"
  },
  {
    "path": "app/src/main/res/anim/item_animation_fall_down.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<set xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:duration=\"@android:integer/config_longAnimTime\">\n\n    <translate\n        android:fromYDelta=\"-20%\"\n        android:interpolator=\"@android:anim/decelerate_interpolator\"\n        android:toYDelta=\"0\" />\n\n    <alpha\n        android:fromAlpha=\"0\"\n        android:interpolator=\"@android:anim/decelerate_interpolator\"\n        android:toAlpha=\"1\" />\n\n    <scale\n        android:fromXScale=\"105%\"\n        android:fromYScale=\"105%\"\n        android:interpolator=\"@android:anim/decelerate_interpolator\"\n        android:pivotX=\"50%\"\n        android:pivotY=\"50%\"\n        android:toXScale=\"100%\"\n        android:toYScale=\"100%\" />\n\n</set>"
  },
  {
    "path": "app/src/main/res/anim/layout_animation_fall_down.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<layoutAnimation xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:animation=\"@anim/item_animation_fall_down\"\n    android:animationOrder=\"normal\"\n    android:delay=\"15%\" />"
  },
  {
    "path": "app/src/main/res/animator/main_list_animator.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<set xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:ordering=\"together\">\n\n    <objectAnimator\n        android:propertyName=\"translationY\"\n        android:valueType=\"floatType\"\n        android:duration=\"300\"\n        android:valueTo=\"-40\"/>\n\n    <objectAnimator\n        android:propertyName=\"alpha\"\n        android:valueType=\"floatType\"\n        android:duration=\"300\"\n        android:valueTo=\"0\"/>\n\n    <objectAnimator\n        android:propertyName=\"scaleX\"\n        android:valueType=\"floatType\"\n        android:duration=\"300\"\n        android:valueTo=\"0.96\"/>\n\n    <objectAnimator\n        android:propertyName=\"scaleY\"\n        android:valueType=\"floatType\"\n        android:duration=\"300\"\n        android:valueTo=\"0.96\"/>\n\n</set>"
  },
  {
    "path": "app/src/main/res/drawable/bottom_navigation_selector.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<selector xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <item android:color=\"@color/colorAccent\" android:state_checked=\"true\" />\n    <item android:color=\"@color/color_disabled\" android:state_checked=\"false\" />\n</selector>"
  },
  {
    "path": "app/src/main/res/drawable/ic_complaint.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\"\n    android:width=\"24dp\"\n    android:height=\"24dp\">\n    <path\n        android:pathData=\"M12 2C6.5 2 2 6.5 2 12 2 17.5 6.5 22 12 22 17.5 22 22 17.5 22 12 22 6.5 17.5 2 12 2Zm0.617065 16l-1.799987 0 0 -1.799988 1.799987 0 0 1.799988zm2.100037 -6.197998c-0.498047 0.599976 -1.302002 0.995972 -1.697998 1.5C12.617065 13.799988 12.617065 14.400024 12.617065 15l-1.799987 0c0 -1.002014 0 -1.848022 0.401977 -2.447998 0.396057 -0.599976 1.200012 -0.95398 1.698059 -1.349976 1.451965 -1.3440548 1.09198 -3.2460323 -0.900024 -3.4020382 -0.994141 0 -1.799988 0.8059082 -1.799988 1.7999878l-1.7999877 0C8.4171143 7.6117554 10.02887 6 12.01709 6c3.210022 0.132019 4.607971 3.3720093 2.700012 5.802002z\"\n        android:fillColor=\"#a4a4a4\" />\n</vector>"
  },
  {
    "path": "app/src/main/res/drawable/ic_correct.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\"\n    android:width=\"24dp\"\n    android:height=\"24dp\">\n    <path\n        android:pathData=\"M12 2C6.5 2 2 6.5 2 12 2 17.5 6.5 22 12 22 17.5 22 22 17.5 22 12 22 6.5 17.5 2 12 2Zm-1.8 15.1l-4.4 -4.4 1.5 -1.5 2.9 2.9 6.6 -6.6 1.5 1.5 -8.1 8.1z\"\n        android:fillColor=\"#008dff\" />\n</vector>"
  },
  {
    "path": "app/src/main/res/drawable/ic_error.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\"\n    android:width=\"24dp\"\n    android:height=\"24dp\">\n    <path\n        android:pathData=\"M21.711304 11.5L17.288696 3.8397217c-0.17865 -0.3093872 -0.508789 -0.5 -0.866028 -0.5l-8.8453365 0c-0.3572388 0 -0.6873779 0.1906128 -0.8660278 0.5L2.2886963 11.5c-0.1786499 0.309387 -0.1786499 0.690613 0 1l4.4226074 7.660278c0.1786499 0.309388 0.5087891 0.5 0.8660278 0.5l8.8453365 0c0.357239 0 0.687378 -0.190612 0.866028 -0.5L21.711304 12.5c0.17865 -0.309387 0.17865 -0.690613 0 -1zM16.5 15.231018L15.231018 16.5 12 13.268982 8.7689819 16.5 7.5 15.231018 10.731018 12 7.5 8.7689819 8.7689819 7.5 12 10.731018 15.231018 7.5 16.5 8.7689819 13.268982 12 16.5 15.231018Z\"\n        android:fillColor=\"#ff4d6a\" />\n</vector>"
  },
  {
    "path": "app/src/main/res/drawable/ic_export.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#eee\"\n        android:pathData=\"M19.229492 22.19043l-14.479492 0c-1.5991211 0 -2.8999023 -1.254883 -2.8999023 -2.796875l0 -4.810547c0 -0.497071 0.402832 -0.900391 0.8999023 -0.900391 0.4970703 0 0.8999023 0.403321 0.8999023 0.900391l0 4.810547c0 0.549804 0.4936523 0.996093 1.1000977 0.996093l14.479492 0c0.606445 0 1.09961 -0.446289 1.09961 -0.996093l0 -4.810547c0 -0.497071 0.40332 -0.900391 0.90039 -0.900391 0.49707 0 0.900391 0.403321 0.900391 0.900391l0 4.810547c0 1.541992 -1.301758 2.796875 -2.900391 2.796875z\" />\n    <path\n        android:fillColor=\"#eee\"\n        android:pathData=\"M16.414062 6.4287109L12.813477 2.5649414c-0.338379 -0.362793 -0.906739 -0.3828125 -1.271973 -0.044434 -0.01617 0.015076 -0.02216 0.035706 -0.03693 0.051636 -0.06421 0.035095 -0.131653 0.062866 -0.187683 0.1148682l-3.723145 3.46875C7.2299765 6.4946288 7.2094687 7.064453 7.548336 7.4277343 7.7255821 7.618164 7.9663048 7.7143554 8.2070274 7.7143554c0.2197266 0 0.4399414 -0.080078 0.6132813 -0.2412109l2.2797853 -2.1240234 0 11.2133789c0 0.49707 0.402832 0.900391 0.899902 0.900391 0.49707 0 0.899902 -0.403321 0.899902 -0.900391l0 -11.2646485 2.197754 2.3583984c0.176758 0.1899414 0.416993 0.2861328 0.658203 0.2861328 0.219727 0 0.44043 -0.080078 0.613282 -0.2416992 0.364257 -0.3388672 0.383789 -0.9082031 0.04492 -1.2719727z\" />\n</vector>"
  },
  {
    "path": "app/src/main/res/drawable/ic_file.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\"\n    android:width=\"24dp\"\n    android:height=\"24dp\">\n    <path\n        android:pathData=\"M14 2L6 2C4.8900146 2 4 2.8900146 4 4l0 16c0 1.099976 0.8900146 2 2 2l12 0c1.104553 0 2 -0.895447 2 -2L20 8 14 2Zm0 15.408386c0 0.395874 -0.323852 0.719727 -0.719727 0.719727l-6.5605464 0C6.3238525 18.128113 6 17.80426 6 17.408386L6 17.247864C6 16.85199 6.3238525 16.528137 6.7197266 16.528137l6.5605474 0C13.676148 16.528137 14 16.85199 14 17.247864l0 0.160522zm2 -4.029724c0 0.429382 -0.351318 0.780701 -0.780701 0.780701l-8.4385983 0C6.3513184 14.159363 6 13.808044 6 13.378662l0 -0.03857C6 12.91071 6.3513184 12.559391 6.7807007 12.559391l8.4385983 0C15.648682 12.559387 16 12.910706 16 13.340088l0 0.03857zM13 9L13 3.5 18.5 9 13 9Z\"\n        android:fillColor=\"#008dff\" />\n</vector>"
  },
  {
    "path": "app/src/main/res/drawable/ic_incorrect.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\"\n    android:width=\"24dp\"\n    android:height=\"24dp\">\n    <path\n        android:pathData=\"M21.829163 18.935974L13.092102 3.8029785c-0.485351 -0.8407593 -1.698852 -0.8407593 -2.184204 0L2.1708374 18.935974c-0.4854126 0.840698 0.1213379 1.891602 1.0921021 1.891602l17.4741215 0c0.970764 0 1.577514 -1.050904 1.092102 -1.891602zm-9.094361 -0.588135c-0.207885 0.184815 -0.4505 0.277161 -0.727966 0.277161 -0.281982 0 -0.528565 -0.09082 -0.738525 -0.273682 -0.210511 -0.182312 -0.315491 -0.437683 -0.315491 -0.766174 0 -0.286804 0.100647 -0.530823 0.30133 -0.731995 0.201111 -0.20111 0.44751 -0.301513 0.73877 -0.301513 0.291382 0 0.539612 0.100403 0.745483 0.301513 0.20575 0.201172 0.308777 0.445313 0.308777 0.731995 0 0.323364 -0.104004 0.577576 -0.312378 0.762695zM12.998779 10.656433L12.70044 14.0755c-0.03229 0.407227 -0.101563 0.719056 -0.208252 0.936646 -0.106385 0.217041 -0.282227 0.3255 -0.526978 0.3255 -0.249939 0 -0.423035 -0.104736 -0.520081 -0.31549 -0.09717 -0.2099 -0.166809 -0.530457 -0.208129 -0.960388l-0.222107 -3.321961c-0.04169 -0.647278 -0.06207 -1.1119383 -0.06207 -1.3938597 0 -0.383728 0.100647 -0.6832886 0.30133 -0.8978882C11.455261 8.2324829 11.720276 8.125 12.048157 8.125c0.397827 0 0.664062 0.1376343 0.797851 0.4127808 0.133789 0.2753906 0.201172 0.671875 0.201172 1.189209 0 0.3052982 -0.01642 0.6155392 -0.0484 0.9294432z\"\n        android:fillColor=\"#ff4d6a\" />\n</vector>"
  },
  {
    "path": "app/src/main/res/drawable/ic_left.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\"\n    android:width=\"24dp\"\n    android:height=\"24dp\">\n    <path\n        android:pathData=\"M14.90628 18.719482c-0.256835 0 -0.513671 -0.09863 -0.708984 -0.294921l-5.8124999 -5.84375c-0.2416992 -0.243165 -0.3330078 -0.57959 -0.2734375 -0.893067 0.03418 -0.195312 0.1264648 -0.383301 0.2773438 -0.53418L13.954132 5.5744628c0.390625 -0.3916016 1.023438 -0.3916016 1.414063 -0.00195 0.391601 0.3901367 0.391601 1.0234375 0.002 1.4140625l-4.871582 4.8837887 5.116699 5.144043c0.389648 0.391602 0.387695 1.024414 -0.0039 1.414063 -0.195313 0.194336 -0.450196 0.291015 -0.705079 0.291015z\"\n        android:fillColor=\"#eee\" />\n</vector>"
  },
  {
    "path": "app/src/main/res/drawable/ic_menu_account.xml",
    "content": "<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#eee\"\n        android:pathData=\"M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z\" />\n</vector>"
  },
  {
    "path": "app/src/main/res/drawable/ic_menu_dialog.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\"\n    android:width=\"24dp\"\n    android:height=\"24dp\">\n    <path\n        android:pathData=\"M15.078125 3.0178833l-5.78125 0c-3.9101563 0 -7.109375 3.1992188 -7.109375 7.1093747 0 3.910156 3.1992188 7.109375 7.109375 7.109375l5.731079 0 -0.0031 3.826538c-0.0042 -0.09558 0.01343 -0.185913 0.04523 -0.269409 -0.02631 0.07465 -0.04132 0.154602 -0.03766 0.238404 0.01544 0.353454 0.31604 0.627258 0.671447 0.611694 0.210511 -0.0092 0.383912 -0.124024 0.494507 -0.284668 -0.01697 0.02924 -0.02789 0.06213 -0.04858 0.0885l3.760742 -6.127991c1.39563 -1.300232 2.276917 -3.14624 2.276917 -5.192444 0 -3.9101559 -3.199219 -7.1093747 -7.109375 -7.1093747zm-7.09375 8.1434937c-0.5609131 0 -1.015625 -0.463013 -1.015625 -1.034119 0 -0.5711057 0.4547119 -1.0340573 1.015625 -1.0340573C8.5452881 9.0932007 9 9.5561523 9 10.127258 9 10.698364 8.5452881 11.161377 7.984375 11.161377Zm4.015625 0c-0.560913 0 -1.015625 -0.463013 -1.015625 -1.034119 0 -0.5711057 0.454712 -1.0340573 1.015625 -1.0340573 0.560913 0 1.015625 0.4629517 1.015625 1.0340573 0 0.571106 -0.454712 1.034119 -1.015625 1.034119zm4.015625 0C15.454712 11.161377 15 10.698364 15 10.127258c0 -0.5711057 0.454712 -1.0340573 1.015625 -1.0340573 0.560913 0 1.015625 0.4629517 1.015625 1.0340573 0 0.571106 -0.454712 1.034119 -1.015625 1.034119z\"\n        android:fillColor=\"#eee\" />\n</vector>"
  },
  {
    "path": "app/src/main/res/drawable/ic_menu_gift.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#eee\"\n        android:pathData=\"M3.5000203 11.130429l0 10.217384C3.5000203 21.707853 3.7921686 22 4.1522079 22l6.7391411 0 0 -10.869571 -7.3913287 0z\" />\n    <path\n        android:fillColor=\"#eee\"\n        android:pathData=\"M13.108731 11.130429l0 10.869571 6.739141 0c0.360039 0 0.652187 -0.292149 0.652187 -0.652187l0 -10.217384 -7.391328 0z\" />\n    <path\n        android:fillColor=\"#eee\"\n        android:pathData=\"M21.152206 5.9130468l-4.959608 0C16.415293 5.5290627 16.543497 5.0837111 16.543497 4.6087112 16.543497 3.1701562 15.373341 2 13.934786 2 13.156192 2 12.456661 2.3432422 11.978262 2.8858986 11.499904 2.3432422 10.800372 2 10.021778 2 8.5832624 2 7.4130673 3.1701562 7.4130673 4.6087108c0 0.4749999 0.1282029 0.9203515 0.3508983 1.3043361l-4.9161329 0c-0.3601563 0 -0.6521876 0.2919922 -0.6521876 0.6521873l0 2.6087103c0 0.360157 0.2919924 0.6521873 0.6521876 0.6521873l8.0434763 0 0 -2.6087107 1.086953 0 1.130429 0 0 2.6087108 8.043477 0c0.360155 0 0.652188 -0.2919931 0.652188 -0.6521873l0 -2.6087099c0 -0.3601957 -0.291993 -0.6521879 -0.65215 -0.6521879zm-9.826092 0l-0.434766 0 -0.86957 0c-0.7192582 0 -1.3043355 -0.5850778 -1.3043355 -1.3043356 0 -0.7192578 0.5850773 -1.3043361 1.3043355 -1.3043361 0.719258 0 1.304336 0.5850782 1.304336 1.3043361l0 1.3043356 0 0zm2.608672 0l-0.826095 0 -0.478242 0 0 -1.304336c0 -0.7192578 0.585078 -1.3043358 1.304336 -1.3043358 0.719257 0 1.304336 0.5850782 1.304336 1.3043358 0.00004 0.7192578 -0.585039 1.304336 -1.304335 1.304336z\" />\n</vector>"
  },
  {
    "path": "app/src/main/res/drawable/ic_menu_main.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\"\n    android:width=\"24dp\"\n    android:height=\"24dp\">\n    <path\n        android:pathData=\"M3.73 2.21c-1.1045532 0 -2 0.8954468 -2 2l0 3.625 2 0 0 -3.625 3.625 0 0 -2 -3.625 0z\"\n        android:fillColor=\"#000000\" />\n    <path\n        android:pathData=\"M20.27 7.835l2 0 0 -3.625c0 -1.1045532 -0.895446 -2 -2 -2l-3.645813 0 0 2 3.645813 0 0 3.625z\"\n        android:fillColor=\"#000000\" />\n    <path\n        android:pathData=\"M3.73 16.124188l-2 0 0 3.645813c0 1.104553 0.8954468 2 2 2l3.583313 0 0 -2 -3.583313 0 0 -3.645813z\"\n        android:fillColor=\"#000000\" />\n    <path\n        android:pathData=\"M20.27 16.124188l0 3.645813 -3.645813 0 0 2 3.645813 0c1.104554 0 2 -0.895447 2 -2l0 -3.645813 -2 0z\"\n        android:fillColor=\"#000000\" />\n    <path\n        android:pathData=\"M16.5 12A4.5 4.5 0 0 1 12 16.5 4.5 4.5 0 0 1 7.5 12 4.5 4.5 0 0 1 12 7.5 4.5 4.5 0 0 1 16.5 12Z\"\n        android:fillColor=\"#000000\" />\n</vector>"
  },
  {
    "path": "app/src/main/res/drawable/ic_menu_wallet.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\"\n    android:width=\"24dp\"\n    android:height=\"24dp\">\n    <path\n        android:pathData=\"M18.390167 5.7830162C18.390167 4.4894009 17.76325 3.4375 16.992348 3.4375l-13.279167 0c-0.7709348 0 -1.397819 1.0519009 -1.397819 2.3455162\"\n        android:fillColor=\"#eee\" />\n    <path\n        android:pathData=\"M2.315362 7.3189588l0 11.5881232c0 0.912991 0.7424281 1.655418 1.6554573 1.655418l15.7267077 0c0.91299 0 1.655456 -0.742427 1.655456 -1.655456l0 -2.069292c0 -0.228762 -0.185112 -0.413876 -0.413873 -0.413876l-2.89704 0c-1.825594 0 -3.310877 -1.485282 -3.310877 -3.310875 0 -1.825593 1.485283 -3.3108755 3.310877 -3.3108755l2.89704 0c0.228761 0 0.413873 -0.185112 0.413873 -0.4138737l0 -2.069293\"\n        android:fillColor=\"#eee\" />\n    <path\n        android:pathData=\"M20.41635 13.270833a2.0261829 2.0261829 0 0 1 -2.026183 2.026183 2.0261829 2.0261829 0 0 1 -2.026183 -2.026183 2.0261829 2.0261829 0 0 1 2.026183 -2.026183 2.0261829 2.0261829 0 0 1 2.026183 2.026183z\"\n        android:fillColor=\"#eee\" />\n</vector>"
  },
  {
    "path": "app/src/main/res/drawable/ic_negative.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\"\n    android:width=\"24dp\"\n    android:height=\"24dp\">\n    <path\n        android:pathData=\"M6.4155273 18.591797c-0.2553711 0 -0.5112305 -0.09766 -0.7060547 -0.291992 -0.3911133 -0.389649 -0.3920898 -1.023438 -0.00195 -1.414063L10.582031 11.999023 5.6508789 7.0800781C5.2597656 6.6899414 5.2587891 6.0566406 5.6489258 5.6660156 6.0375977 5.2744141 6.671875 5.2729492 7.0629883 5.6640625l4.9316407 4.9189455 4.924316 -4.9360354c0.390625 -0.3916016 1.023438 -0.3916016 1.414063 -0.00195 0.391601 0.3901367 0.391601 1.0234375 0.002 1.4140625l-4.924805 4.9365229 4.891602 4.879395c0.391601 0.389648 0.391601 1.023437 0.002 1.414062 -0.390625 0.392579 -1.023438 0.390625 -1.414063 0.002L11.998141 13.412158 7.1236291 18.2979C6.9283167 18.49419 6.671969 18.591846 6.4156213 18.591846Z\"\n        android:fillColor=\"#eee\" />\n</vector>"
  },
  {
    "path": "app/src/main/res/drawable/ic_not_received.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#008dff\"\n        android:pathData=\"M15.784925 4.0088868l0 0c-2.678516 -2.6785159 -7.0215764 -2.6785159 -9.7004686 0l0 0C3.6708488 6.4224949 3.3991482 10.967066 5.4474692 13.698035l5.4872218 7.924603 5.487223 -7.924603c2.04832 -2.730969 1.776618 -7.2755401 -0.636989 -9.6891482zM11.001484 11.0565c-1.250578 0 -2.2641727 -1.013594 -2.2641727 -2.2641722 0 -1.250578 1.0135946 -2.2641721 2.2641727 -2.2641721 1.250578 0 2.264172 1.0135946 2.264172 2.2641721 0 1.2505772 -1.013972 2.2641722 -2.264172 2.2641722z\" />\n    <path\n        android:fillColor=\"#ff4d6a\"\n        android:pathData=\"M19.924587 17.471655A4.5283446 4.5283446 0 0 1 15.396242 22a4.5283446 4.5283446 0 0 1 -4.528344 -4.528345 4.5283446 4.5283446 0 0 1 4.528344 -4.528345 4.5283446 4.5283446 0 0 1 4.528345 4.528345z\" />\n    <path\n        android:fillColor=\"#eee\"\n        android:pathData=\"M14.83225 17.471655l-1.436008 1.436008 0.563992 0.563992 1.436008 -1.436009 1.436009 1.436009 0.563991 -0.563992 -1.436008 -1.436008 1.436008 -1.436009 -0.563991 -0.56399 -1.436009 1.436007 -1.436008 -1.436007 -0.563992 0.56399z\" />\n</vector>"
  },
  {
    "path": "app/src/main/res/drawable/ic_positive.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:width=\"24dp\"\n    android:height=\"24dp\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\">\n    <path\n        android:fillColor=\"#eee\"\n        android:pathData=\"M8.8662109 18.291016c-0.099609 0 -0.1987305 -0.01465 -0.2949219 -0.04395C8.3798827 18.210937 8.1967773 18.119141 8.0488281 17.97168L3.871582 13.804688C3.4804688 13.415039 3.4794922 12.78125 3.869632 12.390625c0.3891602 -0.391602 1.0234375 -0.393066 1.4140625 -0.002L8.822757 15.918898 18.71387 6.0028827c0.390625 -0.3916016 1.023438 -0.3916016 1.414063 -0.00195 0.391601 0.3901367 0.391601 1.0234375 0.002 1.4140625L9.5742188 17.99707c-0.1953125 0.196289 -0.4516602 0.293946 -0.7080079 0.293946z\" />\n</vector>"
  },
  {
    "path": "app/src/main/res/drawable/ic_received.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\nandroid:viewportWidth=\"24\"\nandroid:viewportHeight=\"24\"\nandroid:width=\"24dp\"\nandroid:height=\"24dp\">\n<path\n    android:pathData=\"M15.784925 4.0088868l0 0c-2.678516 -2.6785159 -7.0215764 -2.6785159 -9.7004686 0l0 0C3.6708488 6.4224949 3.3991482 10.967066 5.4474692 13.698035l5.4872218 7.924603 5.487223 -7.924603c2.04832 -2.730969 1.776618 -7.2755401 -0.636989 -9.6891482zM11.001484 11.0565c-1.250578 0 -2.2641727 -1.013594 -2.2641727 -2.2641722 0 -1.250578 1.0135946 -2.2641721 2.2641727 -2.2641721 1.250578 0 2.264172 1.0135946 2.264172 2.2641721 0 1.2505772 -1.013972 2.2641722 -2.264172 2.2641722z\"\n    android:fillColor=\"#ff4d6a\" />\n<path\n    android:pathData=\"M15.25 12.825806c-2.474976 0 -4.5 2.025024 -4.5 4.5 0 2.475036 2.025024 4.5 4.5 4.5 2.474976 0 4.5 -2.024964 4.5 -4.5 0 -2.474976 -2.025024 -4.5 -4.5 -4.5z\"\n    android:fillColor=\"#008dff\" />\n<path\n    android:pathData=\"M18.231262 16.121643l-0.675049 -0.674988 -2.96997 2.969971 -1.304993 -1.304993 -0.674988 0.675049 1.979981 1.979981z\"\n    android:fillColor=\"#eee\" />\n</vector>"
  },
  {
    "path": "app/src/main/res/drawable/ic_right.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\"\n    android:width=\"24dp\"\n    android:height=\"24dp\">\n    <path\n        android:pathData=\"M9.0937195 5.2805176c0.2568359 0 0.5136719 0.098633 0.7089844 0.2949219L15.615204 11.41919c0.241699 0.243164 0.333008 0.579589 0.273437 0.893066 -0.03418 0.195312 -0.126464 0.383301 -0.277343 0.53418l-5.56543 5.579101c-0.3906251 0.391602 -1.0234376 0.391602 -1.4140626 0.002C8.2402038 18.037401 8.2402038 17.4041 8.6298554 17.013475L13.501434 12.129639 8.3847351 6.9855957C7.9950867 6.5939941 7.9970398 5.9611816 8.3886414 5.5715332 8.5839539 5.3771973 8.8388367 5.2805176 9.0937195 5.2805176Z\"\n        android:fillColor=\"#42000000\" />\n</vector>"
  },
  {
    "path": "app/src/main/res/drawable/ic_sort.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:viewportWidth=\"24\"\n    android:viewportHeight=\"24\"\n    android:width=\"24dp\"\n    android:height=\"24dp\">\n    <path\n        android:pathData=\"M20.02372 8L3.9762802 8C3.439326 8 3 7.5606737 3 7.0237198l0 -0.04744C3 6.4393263 3.439326 6 3.9762802 6L20.02372 6C20.560675 6 21 6.4393263 21 6.9762802l0 0.04744C21 7.5606737 20.560675 8 20.02372 8Z\"\n        android:fillColor=\"#008dff\" />\n    <path\n        android:pathData=\"M13.9845 13L3.9842501 13C3.4429126 13 3 12.557088 3 12.01575l0 -0.0315C3 11.442912 3.4429126 11 3.9842501 11L13.9845 11c0.541338 0 0.98425 0.442912 0.98425 0.98425l0 0.0315C14.96875 12.557088 14.525838 13 13.9845 13Z\"\n        android:fillColor=\"#008dff\" />\n    <path\n        android:pathData=\"M7.984376 18L3.999999 18C3.4499996 18 3 17.550001 3 17.000002l0 -0.000004C3 16.449999 3.4499996 16 3.999999 16l3.984377 0c0.5499992 0 0.999999 0.449999 0.999999 0.999998l0 0.000004C8.984375 17.550001 8.5343752 18 7.984376 18Z\"\n        android:fillColor=\"#008dff\" />\n</vector>"
  },
  {
    "path": "app/src/main/res/drawable/img_apple.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:viewportWidth=\"512\"\n    android:viewportHeight=\"512\"\n    android:width=\"512dp\"\n    android:height=\"512dp\">\n    <path\n        android:pathData=\"M440.94394 344.58444c-1.52014 -2.35028 -3.99173 -3.91894 -6.76608 -4.29358 -36.49512 -4.76706 -62.21625 -38.21649 -57.44919 -74.71161 3.36731 -25.77954 21.41858 -47.24661 46.2377 -54.98838 5.04016 -1.61538 7.8172 -7.01044 6.20187 -12.05063 -0.25158 -0.78433 -0.60284 -1.53362 -1.04577 -2.22901 -16.74762 -30.22497 -46.5261 -51.01193 -80.67182 -56.31088 -17.20672 0.82117 -34.16366 4.45352 -50.19705 10.75241 -11.51517 4.63411 -23.67453 7.47225 -36.05218 8.4138 -12.37767 -0.94155 -24.53702 -3.77969 -36.05217 -8.4138 -16.03339 -6.29889 -32.99035 -9.93124 -50.19707 -10.75241 -35.78356 0 -105.415452 50.73343 -105.415452 143.74873 0 88.39563 64.475802 201.24826 114.998992 201.24826 19.2776 0.17252 38.32341 -4.21453 55.58315 -12.80352 6.50013 -3.58472 13.68487 -5.75354 21.08346 -6.36359 7.39768 0.61002 14.58331 2.77884 21.08347 6.36359 17.2597 8.58899 36.30554 12.97604 55.58313 12.80352 40.05829 0 85.27176 -68.7694 104.20797 -132.49771 0.79239 -2.67645 0.37912 -5.56759 -1.13296 -7.91519z\"\n        android:fillColor=\"#37474f\" />\n    <path\n        android:pathData=\"M251.61697 140.00124c58.19309 -0.0638 105.35257 -47.22237 105.41547 -105.415455 0 -5.292648 -4.29004 -9.583548 -9.58267 -9.583548 -58.19309 0.06379 -105.35256 47.222367 -105.41545 105.415443 -0.0009 5.29265 4.29001 9.58356 9.58265 9.58356z\"\n        android:fillColor=\"#37474f\" />\n</vector>"
  },
  {
    "path": "app/src/main/res/drawable/img_dribble.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:viewportWidth=\"512\"\n    android:viewportHeight=\"512\"\n    android:width=\"512dp\"\n    android:height=\"512dp\">\n    <path\n        android:pathData=\"M471.625 254.44751A215.625 215.625 0 0 1 256 470.07251 215.625 215.625 0 0 1 40.375 254.44751 215.625 215.625 0 0 1 256 38.82251a215.625 215.625 0 0 1 215.625 215.625z\"\n        android:fillColor=\"#ec407a\" />\n    <path\n        android:pathData=\"M256 26C129.18375 26 26 129.18375 26 256 26 382.81625 129.18375 486 256 486 382.81625 486 486 382.81625 486 256 486 129.18375 382.81625 26 256 26Zm201.16376 231.72501c-48.70252 -12.85125 -98.64127 -14.34626 -146.22254 -4.5425 -6.49749 -16.215 -13.51251 -32.17125 -21.04501 -47.92624 43.03876 -20.125 82.82877 -47.40875 117.73123 -81.13251C438.41876 159.4575 457.25 205.515 457.25 256c0 0.57501 -0.0862 1.12125 -0.0862 1.72501zM387.30127 103.82625c-32.60251 31.48125 -69.69 57.12626 -109.88251 75.87124C255.94254 138.58499 230.81502 99.312492 202.38129 62.224991 219.4875 57.481251 237.39876 54.75 256 54.75c50.16873 0 96.02499 18.572502 131.30127 49.07625zM173.97624 72.402496C203.15749 109.5475 228.77374 149.1075 250.595 190.53625 190.22 213.59375 124.66999 222.44876 59.033737 214.77251 72.345001 151.0625 115.93 98.449997 173.97624 72.402496ZM54.75 256c0 -4.3125 0.373749 -8.53874 0.661251 -12.76501 17.020001 2.01251 34.039997 3.335 51.002499 3.335 54.10749 0 107.26624 -10.58 157.09 -29.98625 6.89999 14.375 13.39746 28.95125 19.40625 43.72876C212.24248 281.53 149.27999 326.7825 106.90249 390.69373 74.616249 354.98624 54.75 307.8075 54.75 256Zm73.16875 155.10626c38.985 -61.29498 98.44 -104.50625 165.34122 -124.05627 18.17001 50.02499 31.25125 101.97626 38.87003 155.13501 -23.48873 9.66 -49.19125 15.065 -76.13 15.065 -48.61626 0 -93.265 -17.33624 -128.08125 -46.14374zM359.0975 428.5c-7.90622 -50.6575 -20.44125 -100.25122 -37.60498 -148.12003 43.44126 -8.165 88.89499 -6.23873 133.17002 6.26752C445.37625 346.9075 409.41 398.3125 359.0975 428.5Z\"\n        android:fillColor=\"#c2185b\" />\n</vector>"
  },
  {
    "path": "app/src/main/res/drawable/img_facebook.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:viewportWidth=\"512\"\n    android:viewportHeight=\"512\"\n    android:width=\"512dp\"\n    android:height=\"512dp\">\n    <path\n        android:pathData=\"M428.5 26l-345 0C51.788757 26 26 51.788757 26 83.5l0 345c0 31.71124 25.788757 57.5 57.5 57.5l172.5 0 0 -158.125 -57.5 0 0 -71.875 57.5 0 0 -57.5c0 -47.63873 38.61127 -86.25 86.25 -86.25l57.5 0 0 71.875 -28.75 0c-15.87 0 -28.75 -1.495 -28.75 14.375l0 57.5 71.875 0 -28.75 71.875 -43.125 0 0 158.125 86.25 0c31.71124 0 57.5 -25.78876 57.5 -57.5l0 -345C486 51.788757 460.21124 26 428.5 26Z\"\n        android:fillColor=\"#1976d2\" />\n</vector>"
  },
  {
    "path": "app/src/main/res/drawable/img_github.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:viewportWidth=\"512\"\n    android:viewportHeight=\"512\"\n    android:width=\"512dp\"\n    android:height=\"512dp\">\n    <path\n        android:pathData=\"M255.97125 30.787899C128.9825 30.787899 26 134.1729 26 261.70789c0 102.005 65.895004 188.54251 157.32001 219.10372 11.5 2.12754 15.69749 -5.00247 15.69749 -11.12625 0 -5.49124 -0.20125 -20.00998 -0.31625 -39.27249C134.7325 444.3566 121.22 399.44913 121.22 399.44913c-10.43625 -26.68 -25.529998 -33.78125 -25.529998 -33.78125 -20.901252 -14.31751 1.552498 -14.03 1.552498 -14.03 23.08625 1.63876 35.21876 23.80499 35.21876 23.80499 20.52748 35.27628 53.84875 25.09876 66.95874 19.17624 2.07001 -14.92123 8.02125 -25.09875 14.60499 -30.8775 -51.05999 -5.83625 -104.765 -25.64499 -104.765 -114.10874 0 -25.21376 8.97001 -45.8275 23.69001 -61.98501 -2.38625 -5.83625 -10.26375 -29.325 2.24249 -61.09374 0 0 19.32001 -6.21001 63.25001 23.66124 18.3425 -5.11751 38.00751 -7.67625 57.58625 -7.76249 19.52127 0.115 39.21502 2.64498 57.58627 7.79124 43.90125 -29.87125 63.19251 -23.66125 63.19251 -23.66125 12.535 31.7975 4.65747 55.2575 2.29998 61.09375 14.74875 16.1575 23.63248 36.77125 23.63248 61.985 0 88.69374 -53.76248 108.21498 -104.99499 113.93626 8.25125 7.13 15.61123 21.2175 15.61123 42.75125 0 30.8775 -0.2875 55.77503 -0.2875 63.33624 0 6.18128 4.14001 13.36878 15.81253 11.09751C420.16251 450.1929 486 363.68414 486 261.70789 486 134.1729 383.01752 30.787899 255.97125 30.787899Z\"\n        android:fillColor=\"#5c6bc0\" />\n</vector>"
  },
  {
    "path": "app/src/main/res/drawable/img_google_play.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:viewportWidth=\"512\"\n    android:viewportHeight=\"512\"\n    android:width=\"512dp\"\n    android:height=\"512dp\">\n    <path\n        android:pathData=\"M290.67004 256.04071L59.668861 478.47919C48.851418 471.08646 42.428902 458.78967 42.542469 445.68811l0 -379.294792C42.428902 53.291767 48.851417 40.994995 59.668861 33.602241L290.67004 256.04071Z\"\n        android:fillColor=\"#2196f3\" />\n    <path\n        android:pathData=\"M371.49979 178.34389L290.67004 256.04071 59.668861 33.602241c0.870369 -0.67456 1.776959 -1.302124 2.714882 -1.87976 12.208664 -7.399603 27.458229 -7.638491 39.893047 -0.626587l269.223 147.247996z\"\n        android:fillColor=\"#4caf50\" />\n    <path\n        android:pathData=\"M469.45694 256.04071c0.15076 14.79038 -7.8862 28.45197 -20.88593 35.50693l-77.07025 42.18988 -80.82974 -77.69684 80.82974 -77.69681 77.07025 42.18988c12.9997 7.05501 21.03669 20.71657 20.88593 35.50696z\"\n        android:fillColor=\"#ffc107\" />\n    <path\n        android:pathData=\"M371.49979 333.73755l-269.223 147.24798c-12.46223 6.90323 -27.654033 6.66437 -39.893043 -0.62658 -0.937923 -0.57764 -1.844513 -1.2052 -2.714882 -1.87979l231.002155 -222.43848 80.82877 77.69687z\"\n        android:fillColor=\"#f44336\" />\n</vector>"
  },
  {
    "path": "app/src/main/res/drawable/img_instagram.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:viewportWidth=\"512\"\n    android:viewportHeight=\"512\"\n    android:width=\"512dp\"\n    android:height=\"512dp\">\n    <path\n        android:pathData=\"M363.27618 104.31049l-212.55236 0c-24.5857 0 -44.41333 19.82672 -44.41333 44.41333l0 212.55236c0 24.58576 19.82672 44.41333 44.41333 44.41333l212.55236 0c24.58576 0 44.41333 -19.82672 44.41333 -44.41333l0 -212.55236c0 -24.5857 -19.82672 -44.41333 -44.41333 -44.41333zM257 358.10382c-57.10382 0 -103.10382 -46 -103.10382 -103.10382 0 -57.10382 46.00006 -103.10382 103.10382 -103.10382 57.10376 0 103.10382 46.00006 103.10382 103.10382 0 57.10376 -46 103.10382 -103.10382 103.10382zm103.10382 -190.3457c-8.72388 0 -15.86194 -7.13806 -15.86194 -15.86194 0 -8.72382 7.13806 -15.86188 15.86194 -15.86188 8.72382 0 15.86188 7.13806 15.86188 15.86188 0 8.72473 -7.13806 15.86285 -15.86188 15.86194z\"\n        android:fillColor=\"#c04fbd\" />\n    <path\n        android:pathData=\"M257 183.62091c-38.0686 0 -71.37909 33.31049 -71.37909 71.37909 0 38.0686 33.31049 71.37909 71.37909 71.37909 38.0686 0 71.37909 -33.31049 71.37909 -71.37909 0 -38.0686 -33.31049 -71.37909 -71.37909 -71.37909z\"\n        android:fillColor=\"#c04fbd\" />\n    <path\n        android:pathData=\"M359.31042 25L154.68951 25C84.10376 25 27 82.10376 27 152.68951l0 204.62098C27 427.89624 84.10376 485 154.68951 485l204.62098 0C429.89624 485 487 427.89624 487 357.31042l0 -204.62091C487 82.10376 429.89624 25 359.31042 25Zm80.10291 333.10382c0 43.62091 -35.68951 79.31043 -79.31042 79.31043l-206.20673 0c-43.62091 0 -79.310426 -35.68952 -79.310426 -79.31043l0 -206.20673c0 -43.62091 35.689516 -79.31042 79.310426 -79.31042l206.20764 0c43.62 0 79.30951 35.68951 79.30951 79.30951l0 206.20764z\"\n        android:fillColor=\"#c04fbd\" />\n</vector>"
  },
  {
    "path": "app/src/main/res/drawable/img_twitter.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:viewportWidth=\"512\"\n    android:viewportHeight=\"512\"\n    android:width=\"512dp\"\n    android:height=\"512dp\">\n    <path\n        android:pathData=\"M486 113.37125c-17.10626 7.50376 -35.33377 12.4775 -54.33752 14.89251 19.55001 -11.6725 34.47125 -30.015004 41.48623 -52.123745 -18.22748 10.8675 -38.35248 18.543747 -59.79999 22.827491 -17.30746 -18.428749 -41.975 -29.842498 -68.88497 -29.842498 -52.21003 0 -94.24251 42.377492 -94.24251 94.328742 0 7.47501 0.6325 14.66251 2.18501 21.50501 -78.40126 -3.82375 -147.77499 -41.4 -194.378754 -98.641247 -8.136249 14.116247 -12.908752 30.273747 -12.908752 47.667507 0 32.65998 16.818748 61.61123 41.888748 78.37249 -15.151253 -0.2875 -30.014999 -4.68625 -42.607498 -11.61499 0 0.28751 0 0.66124 0 1.03499 0 45.8275 32.688744 83.8925 75.554996 92.66124 -7.67625 2.09876 -16.04251 3.10498 -24.725009 3.10498 -6.037499 0 -12.132493 -0.345 -17.853745 -1.60998 12.218742 37.34625 46.891244 64.80249 88.118734 65.69375 -32.085 25.09876 -72.823743 40.22125 -116.926237 40.22125 -7.733749 0 -15.151252 -0.345 -22.568752 -1.29376C67.773758 427.49374 117.28125 442.875 170.67 442.875c173.53499 0 268.40997 -143.75 268.40997 -268.35248 0 -4.16874 -0.14374 -8.19374 -0.345 -12.18999C457.45123 149.05 473.17749 132.46126 486 113.37125Z\"\n        android:fillColor=\"#03a9f4\" />\n</vector>"
  },
  {
    "path": "app/src/main/res/drawable/img_vimeo.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:viewportWidth=\"512\"\n    android:viewportHeight=\"512\"\n    android:width=\"512dp\"\n    android:height=\"512dp\">\n    <path\n        android:pathData=\"M26 164.57924l18.572102 24.46571c0 0 38.524173 -30.38809 51.346401 -15.26591 12.994717 15.26591 62.184907 198.57197 78.457057 232.46748 14.2022 29.69812 53.61759 68.88352 96.68416 40.93912C314.52881 419.06876 458.01697 296.53888 483.71887 151.55576 509.36334 6.8313751 310.7626 37.133217 289.94806 163.28551c52.38138 -31.45183 80.61325 12.87971 53.76135 62.98988 -26.90942 50.31143 -51.60516 83.11447 -64.39862 83.11447 -12.56348 0 -22.51077 -33.75177 -37.23045 -92.34302C226.98691 156.35689 226.98691 46.936756 163.85329 59.35648 104.16957 71.143753 26 164.57924 26 164.57924Z\"\n        android:fillColor=\"#00bcd4\" />\n</vector>"
  },
  {
    "path": "app/src/main/res/drawable/img_vk.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:viewportWidth=\"512\"\n    android:viewportHeight=\"512\"\n    android:width=\"512dp\"\n    android:height=\"512dp\">\n    <path\n        android:pathData=\"M251.07796 386.12668l27.48701 0c0 0 8.30936 -0.92005 12.53592 -5.49164 3.91028 -4.19781 3.76651 -12.0759 3.76651 -12.0759 0 0 -0.54629 -36.88894 16.58997 -42.32309 16.87747 -5.3479 38.55655 35.65259 61.52951 51.4375 17.36627 11.93213 30.56347 9.31571 30.56347 9.31571l61.44327 -0.86258c0 0 32.1449 -1.98389 16.90625 -27.25699 -1.23633 -2.07013 -8.8844 -18.68884 -45.6871 -52.84637 -38.5278 -35.76764 -33.35242 -29.95969 13.05347 -91.80549 28.2633 -37.66526 39.56286 -60.66694 36.02639 -70.50016 -3.36398 -9.37319 -24.15179 -6.9005 -24.15179 -6.9005l-69.12006 0.40253c0 0 -5.11789 -0.69005 -8.94192 1.58136 -3.70902 2.24267 -6.09543 7.41804 -6.09543 7.41804 0 0 -10.95453 29.15463 -25.56064 53.93895 -30.79349 52.30008 -43.12814 55.06029 -48.15976 51.81131 -11.70212 -7.56181 -8.76941 -30.41974 -8.76941 -46.63592 0 -50.68998 7.67682 -71.82277 -14.97986 -77.28568 -7.53305 -1.81138 -13.05343 -3.01897 -32.28862 -3.22023 -24.66929 -0.25877 -45.57209 0.0863 -57.38922 5.86543 -7.87808 3.85279 -13.94476 12.44965 -10.23575 12.93845 4.5716 0.60379 14.92235 2.78895 20.41401 10.26449 7.10177 9.63196 6.843 31.31106 6.843 31.31106 0 0 4.08281 59.66062 -9.51694 67.07867 -9.34444 5.08913 -22.13913 -5.29039 -49.5974 -52.76012 -14.05978 -24.29553 -24.69805 -51.17874 -24.69805 -51.17874 0 0 -2.0414 -5.00287 -5.69291 -7.67682 -4.42783 -3.24898 -10.6383 -4.28406 -10.6383 -4.28406l-65.727313 0.40253c0 0 -9.861973 0.28752 -13.484739 4.57158 -3.220236 3.82404 -0.258768 11.70212 -0.258768 11.70212 0 0 51.46627 120.38505 109.71806 181.08076 53.45019 55.63532 114.11714 51.9838 114.11714 51.9838l0 0z\"\n        android:fillColor=\"#1e88e5\" />\n</vector>"
  },
  {
    "path": "app/src/main/res/drawable/img_youtube.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<vector xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:viewportWidth=\"512\"\n    android:viewportHeight=\"512\"\n    android:width=\"512dp\"\n    android:height=\"512dp\">\n    <path\n        android:pathData=\"M466.45001 128.34998C453.97247 106.15497 440.43127 102.07251 412.85999 100.52002 385.3175 98.651245 316.05872 97.875 256.0575 97.875c-60.11628 0 -129.40375 0.776245 -156.917485 2.61627 -27.513794 1.58124 -41.083802 5.63501 -53.67627 27.85871C32.612488 150.51624 26 188.69623 26 255.91376c0 0.0575 0 0.0862 0 0.0862 0 0.0575 0 0.0862 0 0.0862l0 0.0575c0 66.92999 6.612488 105.39752 19.463745 127.33374 12.592529 22.19501 26.133728 26.22003 53.647522 28.0888 27.542483 1.60999 96.829953 2.55872 156.946233 2.55872 60.00122 0 129.26 -0.94873 156.83123 -2.53003 27.57123 -1.86871 41.11255 -5.89374 53.59003 -28.08874C479.44501 361.57001 486 323.10248 486 256.17249c0 0 0 -0.0863 0 -0.14374 0 0 0 -0.0575 0 -0.0863 0 -67.24627 -6.55499 -105.42626 -19.54999 -127.59252zM198.5 342.25L198.5 169.75 342.25 256 198.5 342.25Z\"\n        android:fillColor=\"#f44336\" />\n</vector>"
  },
  {
    "path": "app/src/main/res/drawable/splash_screen.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<layer-list xmlns:android=\"http://schemas.android.com/apk/res/android\">\n    <item\n        android:drawable=\"@color/window_background\" />\n    <item>\n        <bitmap\n            android:gravity=\"center\"\n            android:src=\"@drawable/splash\" />\n    </item>\n</layer-list>"
  },
  {
    "path": "app/src/main/res/layout/activity_main.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<androidx.constraintlayout.widget.ConstraintLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:app=\"http://schemas.android.com/apk/res-auto\"\n    android:id=\"@+id/root\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\">\n\n    <FrameLayout\n        android:id=\"@+id/fragment_container\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"match_parent\"\n        app:layout_constraintBottom_toTopOf=\"@+id/bottom_navigation\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toTopOf=\"parent\" />\n\n    <com.google.android.material.bottomnavigation.BottomNavigationView\n        android:id=\"@+id/bottom_navigation\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"?attr/actionBarSize\"\n        android:translationY=\"?attr/actionBarSize\"\n        android:background=\"@android:color/white\"\n        app:itemIconTint=\"@drawable/bottom_navigation_selector\"\n        app:itemTextColor=\"@drawable/bottom_navigation_selector\"\n        app:labelVisibilityMode=\"unlabeled\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintBottom_toBottomOf=\"parent\"\n        app:menu=\"@menu/bottom_navigation_main\" />\n\n</androidx.constraintlayout.widget.ConstraintLayout>\n"
  },
  {
    "path": "app/src/main/res/layout/fragment_details.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<androidx.constraintlayout.widget.ConstraintLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:app=\"http://schemas.android.com/apk/res-auto\"\n    xmlns:tools=\"http://schemas.android.com/tools\"\n    android:id=\"@+id/root\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\">\n\n    <androidx.cardview.widget.CardView\n        android:id=\"@+id/toolbar_container\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"@dimen/details_toolbar_container_height\"\n        app:cardBackgroundColor=\"@color/toolbar_background\"\n        app:cardCornerRadius=\"0dp\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toTopOf=\"parent\"\n        tools:translationY=\"0dp\">\n\n        <androidx.constraintlayout.widget.ConstraintLayout\n            android:id=\"@+id/toolbar\"\n            android:layout_width=\"match_parent\"\n            android:layout_height=\"?attr/actionBarSize\"\n            android:layout_gravity=\"top\"\n            android:alpha=\"0\"\n            tools:alpha=\"1\"\n            tools:layout_marginTop=\"@dimen/margin_normal\">\n\n            <ImageView\n                android:id=\"@+id/img_back\"\n                android:layout_width=\"@dimen/toolbar_icon_size\"\n                android:layout_height=\"@dimen/toolbar_icon_size\"\n                android:layout_marginStart=\"@dimen/margin_small\"\n                android:clickable=\"true\"\n                android:focusable=\"true\"\n                app:layout_constraintBottom_toBottomOf=\"parent\"\n                app:layout_constraintStart_toStartOf=\"parent\"\n                app:layout_constraintTop_toTopOf=\"parent\"\n                app:srcCompat=\"@drawable/ic_left\" />\n\n            <TextView\n                android:id=\"@+id/tv_action_back\"\n                android:layout_width=\"wrap_content\"\n                android:layout_height=\"wrap_content\"\n                android:layout_marginStart=\"@dimen/margin_small\"\n                android:clickable=\"true\"\n                android:focusable=\"true\"\n                android:text=\"@string/action_back\"\n                android:textAppearance=\"@style/ToolbarAction\"\n                app:layout_constraintBottom_toBottomOf=\"parent\"\n                app:layout_constraintStart_toEndOf=\"@+id/img_back\"\n                app:layout_constraintTop_toTopOf=\"parent\" />\n\n            <ImageView\n                android:id=\"@+id/img_export\"\n                android:layout_width=\"@dimen/toolbar_icon_size\"\n                android:layout_height=\"@dimen/toolbar_icon_size\"\n                android:layout_marginEnd=\"@dimen/margin_normal\"\n                android:clickable=\"true\"\n                android:focusable=\"true\"\n                android:foreground=\"?attr/selectableItemBackgroundBorderless\"\n                app:layout_constraintBottom_toBottomOf=\"parent\"\n                app:layout_constraintEnd_toEndOf=\"parent\"\n                app:layout_constraintTop_toTopOf=\"parent\"\n                app:srcCompat=\"@drawable/ic_export\" />\n\n        </androidx.constraintlayout.widget.ConstraintLayout>\n\n    </androidx.cardview.widget.CardView>\n\n    <include\n        android:id=\"@+id/details_card\"\n        layout=\"@layout/item_card\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"wrap_content\"\n        android:layout_marginStart=\"@dimen/space_normal\"\n        android:layout_marginEnd=\"@dimen/space_normal\"\n        app:layout_constraintEnd_toStartOf=\"parent\"\n        app:layout_constraintStart_toEndOf=\"parent\"\n        app:layout_constraintTop_toTopOf=\"parent\"\n        tools:layout_marginTop=\"80dp\" />\n\n    <androidx.recyclerview.widget.RecyclerView\n        android:id=\"@+id/recycler_view\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"0dp\"\n        android:clipToPadding=\"false\"\n        android:layoutAnimation=\"@anim/layout_animation_fall_down\"\n        android:overScrollMode=\"never\"\n        android:paddingStart=\"@dimen/padding_small\"\n        android:paddingTop=\"@dimen/padding_small\"\n        android:paddingEnd=\"@dimen/padding_small\"\n        app:layoutManager=\"androidx.recyclerview.widget.LinearLayoutManager\"\n        app:layout_constraintBottom_toBottomOf=\"parent\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toBottomOf=\"@+id/details_card\"\n        tools:itemCount=\"14\"\n        tools:listitem=\"@layout/item_details\" />\n\n    <com.google.android.material.floatingactionbutton.FloatingActionButton\n        android:id=\"@+id/fab_negative\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:layout_marginEnd=\"@dimen/fab_margin\"\n        android:layout_marginBottom=\"@dimen/margin_medium\"\n        android:clickable=\"true\"\n        android:focusable=\"true\"\n        android:translationY=\"@dimen/fab_translateY\"\n        app:backgroundTint=\"@color/color_negative\"\n        app:elevation=\"@dimen/fab_elevation\"\n        app:layout_constraintBottom_toBottomOf=\"parent\"\n        app:layout_constraintEnd_toStartOf=\"@+id/guideline\"\n        app:srcCompat=\"@drawable/ic_negative\"\n        tools:translationY=\"0dp\" />\n\n    <com.google.android.material.floatingactionbutton.FloatingActionButton\n        android:id=\"@+id/fab_positive\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:layout_marginStart=\"@dimen/fab_margin\"\n        android:layout_marginBottom=\"@dimen/margin_medium\"\n        android:clickable=\"true\"\n        android:focusable=\"true\"\n        android:translationY=\"@dimen/fab_translateY\"\n        app:backgroundTint=\"@color/color_positive\"\n        app:elevation=\"@dimen/fab_elevation\"\n        app:layout_constraintBottom_toBottomOf=\"parent\"\n        app:layout_constraintStart_toEndOf=\"@+id/guideline\"\n        app:srcCompat=\"@drawable/ic_positive\"\n        tools:translationY=\"0dp\" />\n\n    <androidx.constraintlayout.widget.Guideline\n        android:id=\"@+id/guideline\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:orientation=\"vertical\"\n        app:layout_constraintGuide_percent=\"0.5\" />\n\n</androidx.constraintlayout.widget.ConstraintLayout>"
  },
  {
    "path": "app/src/main/res/layout/fragment_recycler.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<androidx.constraintlayout.widget.ConstraintLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:app=\"http://schemas.android.com/apk/res-auto\"\n    xmlns:tools=\"http://schemas.android.com/tools\"\n    android:id=\"@+id/root\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"match_parent\">\n\n    <androidx.cardview.widget.CardView\n        android:id=\"@+id/toolbar\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"?attr/actionBarSize\"\n        android:alpha=\"0\"\n        app:cardCornerRadius=\"0dp\"\n        app:cardElevation=\"0dp\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toTopOf=\"parent\"\n        tools:alpha=\"1\"\n        tools:layout_marginTop=\"@dimen/margin_medium\">\n\n        <androidx.constraintlayout.widget.ConstraintLayout\n            android:layout_width=\"match_parent\"\n            android:layout_height=\"match_parent\">\n\n            <TextView\n                android:id=\"@+id/tv_title\"\n                android:layout_width=\"wrap_content\"\n                android:layout_height=\"wrap_content\"\n                android:layout_gravity=\"start|center_vertical\"\n                android:layout_marginStart=\"@dimen/margin_normal\"\n                android:text=\"@string/title_main\"\n                android:textAppearance=\"@style/Title\"\n                app:layout_constraintBottom_toBottomOf=\"parent\"\n                app:layout_constraintStart_toStartOf=\"parent\"\n                app:layout_constraintTop_toTopOf=\"parent\" />\n\n            <ImageView\n                android:id=\"@+id/img_sort\"\n                android:layout_width=\"@dimen/toolbar_icon_size\"\n                android:layout_height=\"@dimen/toolbar_icon_size\"\n                android:layout_marginEnd=\"@dimen/margin_normal\"\n                app:layout_constraintBottom_toBottomOf=\"parent\"\n                app:layout_constraintEnd_toStartOf=\"@+id/img_file\"\n                app:layout_constraintTop_toTopOf=\"parent\"\n                app:srcCompat=\"@drawable/ic_sort\" />\n\n            <ImageView\n                android:id=\"@+id/img_file\"\n                android:layout_width=\"@dimen/toolbar_icon_size\"\n                android:layout_height=\"@dimen/toolbar_icon_size\"\n                android:layout_marginEnd=\"@dimen/margin_normal\"\n                app:layout_constraintBottom_toBottomOf=\"parent\"\n                app:layout_constraintEnd_toEndOf=\"parent\"\n                app:layout_constraintTop_toTopOf=\"parent\"\n                app:srcCompat=\"@drawable/ic_file\" />\n\n        </androidx.constraintlayout.widget.ConstraintLayout>\n    </androidx.cardview.widget.CardView>\n\n    <View\n        android:id=\"@+id/details_toolbar_transition_helper\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"@dimen/details_toolbar_container_height\"\n        android:background=\"@color/toolbar_background\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toTopOf=\"parent\"\n        tools:translationY=\"-200dp\" />\n\n    <androidx.recyclerview.widget.RecyclerView\n        android:id=\"@+id/recycler_view\"\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"0dp\"\n        android:clipToPadding=\"false\"\n        android:layoutAnimation=\"@anim/layout_animation_fall_down\"\n        android:overScrollMode=\"never\"\n        android:padding=\"@dimen/padding_small\"\n        app:layoutManager=\"androidx.recyclerview.widget.LinearLayoutManager\"\n        app:layout_constraintBottom_toBottomOf=\"parent\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toBottomOf=\"@+id/toolbar\"\n        tools:itemCount=\"4\"\n        tools:listitem=\"@layout/item_card\" />\n\n</androidx.constraintlayout.widget.ConstraintLayout>\n"
  },
  {
    "path": "app/src/main/res/layout/item_card.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<androidx.cardview.widget.CardView xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:app=\"http://schemas.android.com/apk/res-auto\"\n    xmlns:tools=\"http://schemas.android.com/tools\"\n    android:id=\"@+id/card_view\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"wrap_content\"\n    android:layout_margin=\"@dimen/margin_small\"\n    android:clickable=\"true\"\n    android:focusable=\"true\"\n    android:orientation=\"vertical\"\n    app:cardCornerRadius=\"@dimen/card_corner_radius\"\n    app:cardElevation=\"@dimen/card_elevation\"\n    app:contentPadding=\"@dimen/padding_normal\">\n\n    <androidx.constraintlayout.widget.ConstraintLayout\n        android:layout_width=\"match_parent\"\n        android:layout_height=\"match_parent\">\n\n        <ImageView\n            android:id=\"@+id/img_card\"\n            android:layout_width=\"@dimen/icon_size\"\n            android:layout_height=\"@dimen/icon_size\"\n            app:layout_constraintStart_toStartOf=\"parent\"\n            app:layout_constraintTop_toTopOf=\"parent\"\n            tools:srcCompat=\"@drawable/img_twitter\" />\n\n        <TextView\n            android:id=\"@+id/tv_title\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginStart=\"@dimen/margin_normal\"\n            android:textAppearance=\"@style/TextAppearance.AppCompat.Title\"\n            app:layout_constraintBottom_toBottomOf=\"@+id/img_card\"\n            app:layout_constraintStart_toEndOf=\"@+id/img_card\"\n            app:layout_constraintTop_toTopOf=\"@+id/img_card\"\n            tools:text=\"Twitter\" />\n\n        <TextView\n            android:id=\"@+id/tv_title_amount\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginTop=\"@dimen/margin_small\"\n            android:text=\"@string/detail_caption_amount\"\n            android:textAppearance=\"@style/TextAppearance.AppCompat.Caption\"\n            app:layout_constraintStart_toStartOf=\"@+id/img_card\"\n            app:layout_constraintTop_toBottomOf=\"@+id/img_card\" />\n\n        <TextView\n            android:id=\"@+id/tv_title_date\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:text=\"@string/detail_caption_date\"\n            android:textAppearance=\"@style/TextAppearance.AppCompat.Caption\"\n            app:layout_constraintBottom_toBottomOf=\"@+id/tv_title_amount\"\n            app:layout_constraintStart_toStartOf=\"@+id/guideline_0\"\n            app:layout_constraintTop_toTopOf=\"@+id/tv_title_amount\" />\n\n        <TextView\n            android:id=\"@+id/tv_title_status\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:text=\"@string/detail_caption_status\"\n            android:textAppearance=\"@style/TextAppearance.AppCompat.Caption\"\n            app:layout_constraintBottom_toBottomOf=\"@+id/tv_title_date\"\n            app:layout_constraintStart_toStartOf=\"@+id/guideline_1\"\n            app:layout_constraintTop_toTopOf=\"@+id/tv_title_date\" />\n\n        <TextView\n            android:id=\"@+id/tv_amount\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:layout_marginTop=\"@dimen/margin_small\"\n            android:layout_marginBottom=\"@dimen/margin_tiny\"\n            android:textAppearance=\"@style/DetailsBold.Large\"\n            app:layout_constraintBottom_toBottomOf=\"parent\"\n            app:layout_constraintStart_toStartOf=\"@+id/tv_title_amount\"\n            app:layout_constraintTop_toBottomOf=\"@+id/tv_title_amount\"\n            tools:text=\"11,550.00\" />\n\n        <TextView\n            android:id=\"@+id/tv_date\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:textAppearance=\"@style/Base.TextAppearance.AppCompat.Body1\"\n            app:layout_constraintBaseline_toBaselineOf=\"@+id/tv_amount\"\n            app:layout_constraintStart_toStartOf=\"@+id/tv_title_date\"\n            tools:text=\"27.08.2018\" />\n\n        <TextView\n            android:id=\"@+id/tv_status\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:textAppearance=\"@style/Base.TextAppearance.AppCompat.Body1\"\n            app:layout_constraintBaseline_toBaselineOf=\"@+id/tv_date\"\n            app:layout_constraintStart_toStartOf=\"@+id/tv_title_status\"\n            tools:text=\"Correct\" />\n\n        <ImageView\n            android:id=\"@+id/img_status\"\n            android:layout_width=\"@dimen/toolbar_icon_size\"\n            android:layout_height=\"@dimen/toolbar_icon_size\"\n            android:layout_marginTop=\"@dimen/margin_small\"\n            android:layout_marginEnd=\"@dimen/margin_small\"\n            app:layout_constraintEnd_toEndOf=\"parent\"\n            app:layout_constraintTop_toTopOf=\"parent\"\n            tools:src=\"@drawable/ic_correct\" />\n\n        <androidx.constraintlayout.widget.Guideline\n            android:id=\"@+id/guideline_0\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:orientation=\"vertical\"\n            app:layout_constraintGuide_percent=\"0.35\" />\n\n        <androidx.constraintlayout.widget.Guideline\n            android:id=\"@+id/guideline_1\"\n            android:layout_width=\"wrap_content\"\n            android:layout_height=\"wrap_content\"\n            android:orientation=\"vertical\"\n            app:layout_constraintGuide_percent=\"0.65\" />\n\n    </androidx.constraintlayout.widget.ConstraintLayout>\n\n</androidx.cardview.widget.CardView>"
  },
  {
    "path": "app/src/main/res/layout/item_details.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<androidx.constraintlayout.widget.ConstraintLayout xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:app=\"http://schemas.android.com/apk/res-auto\"\n    xmlns:tools=\"http://schemas.android.com/tools\"\n    android:id=\"@+id/card_view\"\n    android:layout_width=\"match_parent\"\n    android:layout_height=\"wrap_content\"\n    android:foreground=\"?attr/selectableItemBackground\"\n    android:clickable=\"true\"\n    android:orientation=\"vertical\"\n    android:focusable=\"true\">\n\n    <TextView\n        android:id=\"@+id/tv_details_title\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:layout_marginStart=\"@dimen/margin_normal\"\n        android:layout_marginTop=\"@dimen/margin_normal\"\n        android:textAppearance=\"@style/DetailsTitle\"\n        app:layout_constraintStart_toStartOf=\"parent\"\n        app:layout_constraintTop_toTopOf=\"parent\"\n        tools:text=\"Twitter\" />\n\n    <TextView\n        android:id=\"@+id/tv_details_subtitle\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:layout_marginTop=\"@dimen/margin_small\"\n        android:layout_marginBottom=\"@dimen/margin_normal\"\n        android:textAppearance=\"@style/TextAppearance.AppCompat.Caption\"\n        app:layout_constraintBottom_toBottomOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"@+id/tv_details_title\"\n        app:layout_constraintTop_toBottomOf=\"@+id/tv_details_title\"\n        tools:text=\"$11,550.00 X1 (including VAT 10%)\" />\n\n    <TextView\n        android:id=\"@+id/tv_details_amount\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:textAppearance=\"@style/DetailsBold\"\n        app:layout_constraintBottom_toBottomOf=\"parent\"\n        app:layout_constraintStart_toStartOf=\"@+id/guideline\"\n        app:layout_constraintTop_toTopOf=\"parent\"\n        tools:text=\"$11,550.00\" />\n\n    <ImageView\n        android:id=\"@+id/img_details\"\n        android:layout_width=\"@dimen/toolbar_icon_size\"\n        android:layout_height=\"@dimen/toolbar_icon_size\"\n        android:layout_marginEnd=\"@dimen/margin_normal\"\n        app:layout_constraintBottom_toBottomOf=\"parent\"\n        app:layout_constraintEnd_toEndOf=\"parent\"\n        app:layout_constraintTop_toTopOf=\"parent\"\n        app:srcCompat=\"@drawable/ic_right\" />\n\n    <androidx.constraintlayout.widget.Guideline\n        android:id=\"@+id/guideline\"\n        android:layout_width=\"wrap_content\"\n        android:layout_height=\"wrap_content\"\n        android:orientation=\"vertical\"\n        app:layout_constraintGuide_percent=\"0.70\" />\n\n</androidx.constraintlayout.widget.ConstraintLayout>"
  },
  {
    "path": "app/src/main/res/menu/bottom_navigation_main.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<menu xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    xmlns:app=\"http://schemas.android.com/apk/res-auto\">\n    <item\n        android:id=\"@+id/action_gift\"\n        android:enabled=\"true\"\n        android:icon=\"@drawable/ic_menu_gift\"\n        android:title=\"Gift\"\n        app:showAsAction=\"ifRoom\" />\n    <item\n        android:id=\"@+id/action_wallet\"\n        android:enabled=\"true\"\n        android:icon=\"@drawable/ic_menu_wallet\"\n        android:title=\"Gift\"\n        app:showAsAction=\"ifRoom\" />\n    <item\n        android:id=\"@+id/action_main\"\n        android:enabled=\"true\"\n        android:icon=\"@drawable/ic_menu_main\"\n        android:title=\"Gift\"\n        app:showAsAction=\"ifRoom\" />\n\n    <item\n        android:id=\"@+id/action_dialog\"\n        android:enabled=\"true\"\n        android:icon=\"@drawable/ic_menu_dialog\"\n        android:title=\"Gift\"\n        app:showAsAction=\"ifRoom\" />\n\n    <item\n        android:id=\"@+id/action_account\"\n        android:enabled=\"true\"\n        android:icon=\"@drawable/ic_menu_account\"\n        android:title=\"Gift\"\n        app:showAsAction=\"ifRoom\" />\n</menu>"
  },
  {
    "path": "app/src/main/res/transition/shared_element_transition.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<transitionSet\n    xmlns:android=\"http://schemas.android.com/apk/res/android\"\n    android:duration=\"400\"\n    android:interpolator=\"@android:interpolator/overshoot\"\n    android:transitionOrdering=\"together\"\n    android:startDelay=\"0\">\n    <changeClipBounds/>\n    <changeTransform/>\n    <changeBounds/>\n</transitionSet>"
  },
  {
    "path": "app/src/main/res/values/colors.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <color name=\"colorPrimary\">#3aa3f7</color>\n    <color name=\"colorPrimaryDark\">#025497</color>\n    <color name=\"colorAccent\">#008dff</color>\n\n    <color name=\"color_negative\">#ff4d6a</color>\n    <color name=\"color_positive\">@color/colorAccent</color>\n\n    <color name=\"toolbar_background\">@color/colorAccent</color>\n\n    <color name=\"color_disabled\">#505a595b</color>\n\n    <color name=\"title_text_color\">#4d4d4d</color>\n    <color name=\"text_color_light\">#eee</color>\n    <color name=\"window_background\">@android:color/white</color>\n</resources>\n"
  },
  {
    "path": "app/src/main/res/values/dimens.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <dimen name=\"font_title\">26sp</dimen>\n    <dimen name=\"font_larger\">22sp</dimen>\n    <dimen name=\"font_large\">18sp</dimen>\n    <dimen name=\"font_normal\">16sp</dimen>\n    <dimen name=\"font_medium\">14sp</dimen>\n    <dimen name=\"font_small\">12sp</dimen>\n\n    <dimen name=\"space_tiny\">4dp</dimen>\n    <dimen name=\"space_small\">8dp</dimen>\n    <dimen name=\"space_normal\">16dp</dimen>\n    <dimen name=\"space_medium\">24dp</dimen>\n    <dimen name=\"space_large\">32dp</dimen>\n    <dimen name=\"space_xlarge\">48dp</dimen>\n    <dimen name=\"space_huge\">64dp</dimen>\n\n    <dimen name=\"margin_tiny\">@dimen/space_tiny</dimen>\n    <dimen name=\"margin_small\">@dimen/space_small</dimen>\n    <dimen name=\"margin_normal\">@dimen/space_normal</dimen>\n    <dimen name=\"margin_large\">@dimen/space_large</dimen>\n    <dimen name=\"margin_medium\">@dimen/space_medium</dimen>\n\n    <dimen name=\"padding_tiny\">@dimen/space_tiny</dimen>\n    <dimen name=\"padding_small\">@dimen/space_small</dimen>\n    <dimen name=\"padding_normal\">@dimen/space_normal</dimen>\n    <dimen name=\"padding_medium\">@dimen/space_medium</dimen>\n    <dimen name=\"padding_large\">@dimen/space_large</dimen>\n\n    <dimen name=\"fab_margin\">@dimen/space_xlarge</dimen>\n    <dimen name=\"fab_translateY\">100dp</dimen>\n    <dimen name=\"fab_elevation\">@dimen/space_tiny</dimen>\n\n    <dimen name=\"card_elevation\">@dimen/space_tiny</dimen>\n    <dimen name=\"toolbar_elevation\">@dimen/space_tiny</dimen>\n    <dimen name=\"card_corner_radius\">@dimen/space_small</dimen>\n\n    <dimen name=\"icon_size\">56dp</dimen>\n    <dimen name=\"toolbar_icon_size\">@dimen/space_medium</dimen>\n\n    <dimen name=\"details_toolbar_container_height\">156dp</dimen>\n    <dimen name=\"details_card_height\">146dp</dimen>\n</resources>"
  },
  {
    "path": "app/src/main/res/values/strings.xml",
    "content": "<resources>\n\n    <string name=\"app_name\">DroidMotion</string>\n    <string name=\"title_main\">My income</string>\n    <string name=\"detail_caption_status\">Status</string>\n    <string name=\"detail_caption_date\">Date</string>\n    <string name=\"detail_caption_amount\">Amount</string>\n    <string name=\"action_back\">Back</string>\n\n</resources>\n"
  },
  {
    "path": "app/src/main/res/values/styles.xml",
    "content": "<resources>\n    <!-- Base application theme -->\n    <style name=\"AppTheme\" parent=\"Theme.AppCompat.Light.NoActionBar\">\n        <item name=\"colorPrimary\">@color/colorPrimary</item>\n        <item name=\"colorPrimaryDark\">@color/colorPrimaryDark</item>\n        <item name=\"colorAccent\">@color/colorAccent</item>\n        <item name=\"android:windowBackground\">@color/window_background</item>\n        <item name=\"android:windowTranslucentStatus\">true</item>\n    </style>\n\n    <style name=\"AppTheme.Launcher\">\n        <item name=\"android:windowBackground\">@drawable/splash_screen</item>\n    </style>\n\n    <!-- Text styles -->\n    <style name=\"Title\">\n        <item name=\"android:textSize\">@dimen/font_title</item>\n        <item name=\"android:textStyle\">bold</item>\n        <item name=\"android:textColor\">@color/title_text_color</item>\n    </style>\n\n    <style name=\"ToolbarAction\" parent=\"Base.TextAppearance.AppCompat.Caption\">\n        <item name=\"android:textColor\">@color/text_color_light</item>\n        <item name=\"android:textSize\">@dimen/font_medium</item>\n    </style>\n\n    <style name=\"DetailsTitle\" parent=\"Base.TextAppearance.AppCompat.Title\">\n        <item name=\"android:textSize\">@dimen/font_normal</item>\n    </style>\n\n    <style name=\"DetailsBold\" parent=\"Base.TextAppearance.AppCompat.Body1\">\n        <item name=\"android:textStyle\">bold</item>\n    </style>\n\n    <style name=\"DetailsBold.Large\" parent=\"Base.TextAppearance.AppCompat.Body1\">\n        <item name=\"android:textSize\">@dimen/font_normal</item>\n        <item name=\"android:textStyle\">bold</item>\n    </style>\n</resources>\n"
  },
  {
    "path": "app/src/main/res/values-sw600dp/dimens.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <!--For tab like Nexus 7-->\n    <dimen name=\"details_toolbar_container_height\">164dp</dimen>\n</resources>"
  },
  {
    "path": "app/src/main/res/values-sw720dp/dimens.xml",
    "content": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<resources>\n    <!--For tab like Nexus 9 ~ w = 768dp-->\n    <dimen name=\"space_tiny\">8dp</dimen>\n    <dimen name=\"space_small\">12dp</dimen>\n    <dimen name=\"space_normal\">20dp</dimen>\n    <dimen name=\"space_large\">36dp</dimen>\n    <dimen name=\"space_xlarge\">52dp</dimen>\n    <dimen name=\"space_huge\">68dp</dimen>\n\n    <dimen name=\"font_title\">28sp</dimen>\n    <dimen name=\"font_larger\">24sp</dimen>\n    <dimen name=\"font_large\">20sp</dimen>\n    <dimen name=\"font_normal\">18sp</dimen>\n    <dimen name=\"font_medium\">16sp</dimen>\n    <dimen name=\"font_small\">14sp</dimen>\n    <dimen name=\"icon_size\">76dp</dimen>\n\n    <dimen name=\"details_toolbar_container_height\">196dp</dimen>\n</resources>"
  },
  {
    "path": "app/src/test/java/com/bitvale/droidmotion/ExampleUnitTest.kt",
    "content": "package com.bitvale.droidmotion\n\nimport org.junit.Test\n\nimport org.junit.Assert.*\n\n/**\n * Example local unit test, which will execute on the development machine (host).\n *\n * See [testing documentation](http://d.android.com/tools/testing).\n */\nclass ExampleUnitTest {\n    @Test\n    fun addition_isCorrect() {\n        assertEquals(4, 2 + 2)\n    }\n}\n"
  },
  {
    "path": "build.gradle",
    "content": "// Top-level build file where you can add configuration options common to all sub-projects/modules.\n\nbuildscript {\n\n    ext {\n        // Sdk and tools\n        compileSdkVersion = 28\n        minSdkVersion = 19\n        targetSdkVersion = 28\n\n        // App dependencies\n        constraintLayoutVersion = '1.1.2'\n        gradleVersion = '3.3.0-alpha10'\n        junitVersion = '4.12'\n        kotlinVersion = '1.2.61'\n        androidxVersion = \"1.0.0-rc02\"\n        materialVersion = \"1.0.0-rc01\"\n        constraintLayoutVersion = '1.1.2'\n    }\n\n    repositories {\n        google()\n        jcenter()\n    }\n    dependencies {\n        classpath \"com.android.tools.build:gradle:$gradleVersion\"\n        classpath \"org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion\"\n\n        // NOTE: Do not place your application dependencies here; they belong\n        // in the individual module build.gradle files\n    }\n}\n\nallprojects {\n    repositories {\n        google()\n        jcenter()\n    }\n}\n\ntask clean(type: Delete) {\n    delete rootProject.buildDir\n}\n"
  },
  {
    "path": "gradle/wrapper/gradle-wrapper.properties",
    "content": "#Wed Sep 12 22:37:27 EET 2018\ndistributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\nzipStoreBase=GRADLE_USER_HOME\nzipStorePath=wrapper/dists\ndistributionUrl=https\\://services.gradle.org/distributions/gradle-4.10-all.zip\n"
  },
  {
    "path": "gradle.properties",
    "content": "# Project-wide Gradle settings.\n# IDE (e.g. Android Studio) users:\n# Gradle settings configured through the IDE *will override*\n# any settings specified in this file.\n# For more details on how to configure your build environment visit\n# http://www.gradle.org/docs/current/userguide/build_environment.html\n# Specifies the JVM arguments used for the daemon process.\n# The setting is particularly useful for tweaking memory settings.\nandroid.enableJetifier=true\nandroid.useAndroidX=true\norg.gradle.jvmargs=-Xmx1536m\n# When configured, Gradle will run in incubating parallel mode.\n# This option should only be used with decoupled projects. More details, visit\n# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects\n# org.gradle.parallel=true\n"
  },
  {
    "path": "gradlew",
    "content": "#!/usr/bin/env sh\n\n##############################################################################\n##\n##  Gradle start up script for UN*X\n##\n##############################################################################\n\n# Attempt to set APP_HOME\n# Resolve links: $0 may be a link\nPRG=\"$0\"\n# Need this for relative symlinks.\nwhile [ -h \"$PRG\" ] ; do\n    ls=`ls -ld \"$PRG\"`\n    link=`expr \"$ls\" : '.*-> \\(.*\\)$'`\n    if expr \"$link\" : '/.*' > /dev/null; then\n        PRG=\"$link\"\n    else\n        PRG=`dirname \"$PRG\"`\"/$link\"\n    fi\ndone\nSAVED=\"`pwd`\"\ncd \"`dirname \\\"$PRG\\\"`/\" >/dev/null\nAPP_HOME=\"`pwd -P`\"\ncd \"$SAVED\" >/dev/null\n\nAPP_NAME=\"Gradle\"\nAPP_BASE_NAME=`basename \"$0\"`\n\n# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.\nDEFAULT_JVM_OPTS=\"\"\n\n# Use the maximum available, or set MAX_FD != -1 to use that value.\nMAX_FD=\"maximum\"\n\nwarn () {\n    echo \"$*\"\n}\n\ndie () {\n    echo\n    echo \"$*\"\n    echo\n    exit 1\n}\n\n# OS specific support (must be 'true' or 'false').\ncygwin=false\nmsys=false\ndarwin=false\nnonstop=false\ncase \"`uname`\" in\n  CYGWIN* )\n    cygwin=true\n    ;;\n  Darwin* )\n    darwin=true\n    ;;\n  MINGW* )\n    msys=true\n    ;;\n  NONSTOP* )\n    nonstop=true\n    ;;\nesac\n\nCLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar\n\n# Determine the Java command to use to start the JVM.\nif [ -n \"$JAVA_HOME\" ] ; then\n    if [ -x \"$JAVA_HOME/jre/sh/java\" ] ; then\n        # IBM's JDK on AIX uses strange locations for the executables\n        JAVACMD=\"$JAVA_HOME/jre/sh/java\"\n    else\n        JAVACMD=\"$JAVA_HOME/bin/java\"\n    fi\n    if [ ! -x \"$JAVACMD\" ] ; then\n        die \"ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME\n\nPlease set the JAVA_HOME variable in your environment to match the\nlocation of your Java installation.\"\n    fi\nelse\n    JAVACMD=\"java\"\n    which java >/dev/null 2>&1 || die \"ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.\n\nPlease set the JAVA_HOME variable in your environment to match the\nlocation of your Java installation.\"\nfi\n\n# Increase the maximum file descriptors if we can.\nif [ \"$cygwin\" = \"false\" -a \"$darwin\" = \"false\" -a \"$nonstop\" = \"false\" ] ; then\n    MAX_FD_LIMIT=`ulimit -H -n`\n    if [ $? -eq 0 ] ; then\n        if [ \"$MAX_FD\" = \"maximum\" -o \"$MAX_FD\" = \"max\" ] ; then\n            MAX_FD=\"$MAX_FD_LIMIT\"\n        fi\n        ulimit -n $MAX_FD\n        if [ $? -ne 0 ] ; then\n            warn \"Could not set maximum file descriptor limit: $MAX_FD\"\n        fi\n    else\n        warn \"Could not query maximum file descriptor limit: $MAX_FD_LIMIT\"\n    fi\nfi\n\n# For Darwin, add options to specify how the application appears in the dock\nif $darwin; then\n    GRADLE_OPTS=\"$GRADLE_OPTS \\\"-Xdock:name=$APP_NAME\\\" \\\"-Xdock:icon=$APP_HOME/media/gradle.icns\\\"\"\nfi\n\n# For Cygwin, switch paths to Windows format before running java\nif $cygwin ; then\n    APP_HOME=`cygpath --path --mixed \"$APP_HOME\"`\n    CLASSPATH=`cygpath --path --mixed \"$CLASSPATH\"`\n    JAVACMD=`cygpath --unix \"$JAVACMD\"`\n\n    # We build the pattern for arguments to be converted via cygpath\n    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`\n    SEP=\"\"\n    for dir in $ROOTDIRSRAW ; do\n        ROOTDIRS=\"$ROOTDIRS$SEP$dir\"\n        SEP=\"|\"\n    done\n    OURCYGPATTERN=\"(^($ROOTDIRS))\"\n    # Add a user-defined pattern to the cygpath arguments\n    if [ \"$GRADLE_CYGPATTERN\" != \"\" ] ; then\n        OURCYGPATTERN=\"$OURCYGPATTERN|($GRADLE_CYGPATTERN)\"\n    fi\n    # Now convert the arguments - kludge to limit ourselves to /bin/sh\n    i=0\n    for arg in \"$@\" ; do\n        CHECK=`echo \"$arg\"|egrep -c \"$OURCYGPATTERN\" -`\n        CHECK2=`echo \"$arg\"|egrep -c \"^-\"`                                 ### Determine if an option\n\n        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition\n            eval `echo args$i`=`cygpath --path --ignore --mixed \"$arg\"`\n        else\n            eval `echo args$i`=\"\\\"$arg\\\"\"\n        fi\n        i=$((i+1))\n    done\n    case $i in\n        (0) set -- ;;\n        (1) set -- \"$args0\" ;;\n        (2) set -- \"$args0\" \"$args1\" ;;\n        (3) set -- \"$args0\" \"$args1\" \"$args2\" ;;\n        (4) set -- \"$args0\" \"$args1\" \"$args2\" \"$args3\" ;;\n        (5) set -- \"$args0\" \"$args1\" \"$args2\" \"$args3\" \"$args4\" ;;\n        (6) set -- \"$args0\" \"$args1\" \"$args2\" \"$args3\" \"$args4\" \"$args5\" ;;\n        (7) set -- \"$args0\" \"$args1\" \"$args2\" \"$args3\" \"$args4\" \"$args5\" \"$args6\" ;;\n        (8) set -- \"$args0\" \"$args1\" \"$args2\" \"$args3\" \"$args4\" \"$args5\" \"$args6\" \"$args7\" ;;\n        (9) set -- \"$args0\" \"$args1\" \"$args2\" \"$args3\" \"$args4\" \"$args5\" \"$args6\" \"$args7\" \"$args8\" ;;\n    esac\nfi\n\n# Escape application args\nsave () {\n    for i do printf %s\\\\n \"$i\" | sed \"s/'/'\\\\\\\\''/g;1s/^/'/;\\$s/\\$/' \\\\\\\\/\" ; done\n    echo \" \"\n}\nAPP_ARGS=$(save \"$@\")\n\n# Collect all arguments for the java command, following the shell quoting and substitution rules\neval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS \"\\\"-Dorg.gradle.appname=$APP_BASE_NAME\\\"\" -classpath \"\\\"$CLASSPATH\\\"\" org.gradle.wrapper.GradleWrapperMain \"$APP_ARGS\"\n\n# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong\nif [ \"$(uname)\" = \"Darwin\" ] && [ \"$HOME\" = \"$PWD\" ]; then\n  cd \"$(dirname \"$0\")\"\nfi\n\nexec \"$JAVACMD\" \"$@\"\n"
  },
  {
    "path": "gradlew.bat",
    "content": "@if \"%DEBUG%\" == \"\" @echo off\n@rem ##########################################################################\n@rem\n@rem  Gradle startup script for Windows\n@rem\n@rem ##########################################################################\n\n@rem Set local scope for the variables with windows NT shell\nif \"%OS%\"==\"Windows_NT\" setlocal\n\nset DIRNAME=%~dp0\nif \"%DIRNAME%\" == \"\" set DIRNAME=.\nset APP_BASE_NAME=%~n0\nset APP_HOME=%DIRNAME%\n\n@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.\nset DEFAULT_JVM_OPTS=\n\n@rem Find java.exe\nif defined JAVA_HOME goto findJavaFromJavaHome\n\nset JAVA_EXE=java.exe\n%JAVA_EXE% -version >NUL 2>&1\nif \"%ERRORLEVEL%\" == \"0\" goto init\n\necho.\necho ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.\necho.\necho Please set the JAVA_HOME variable in your environment to match the\necho location of your Java installation.\n\ngoto fail\n\n:findJavaFromJavaHome\nset JAVA_HOME=%JAVA_HOME:\"=%\nset JAVA_EXE=%JAVA_HOME%/bin/java.exe\n\nif exist \"%JAVA_EXE%\" goto init\n\necho.\necho ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%\necho.\necho Please set the JAVA_HOME variable in your environment to match the\necho location of your Java installation.\n\ngoto fail\n\n:init\n@rem Get command-line arguments, handling Windows variants\n\nif not \"%OS%\" == \"Windows_NT\" goto win9xME_args\n\n:win9xME_args\n@rem Slurp the command line arguments.\nset CMD_LINE_ARGS=\nset _SKIP=2\n\n:win9xME_args_slurp\nif \"x%~1\" == \"x\" goto execute\n\nset CMD_LINE_ARGS=%*\n\n:execute\n@rem Setup the command line\n\nset CLASSPATH=%APP_HOME%\\gradle\\wrapper\\gradle-wrapper.jar\n\n@rem Execute Gradle\n\"%JAVA_EXE%\" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% \"-Dorg.gradle.appname=%APP_BASE_NAME%\" -classpath \"%CLASSPATH%\" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%\n\n:end\n@rem End local scope for the variables with windows NT shell\nif \"%ERRORLEVEL%\"==\"0\" goto mainEnd\n\n:fail\nrem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of\nrem the _cmd.exe /c_ return code!\nif  not \"\" == \"%GRADLE_EXIT_CONSOLE%\" exit 1\nexit /b 1\n\n:mainEnd\nif \"%OS%\"==\"Windows_NT\" endlocal\n\n:omega\n"
  },
  {
    "path": "settings.gradle",
    "content": "include ':app'\n"
  }
]