{"action":"created","comment":{"url":"https://api.github.com/repos/cebroker/emerald-android/pulls/comments/294467382","pull_request_review_id":250685925,"id":294467382,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI5NDQ2NzM4Mg==","diff_hunk":"@@ -0,0 +1,585 @@\n+package co.condorlabs.customcomponents.customcollapsibleview\n+\n+import android.animation.AnimatorSet\n+import android.animation.ValueAnimator\n+import android.content.Context\n+import android.graphics.Color\n+import android.graphics.Typeface\n+import android.os.Build\n+import android.util.AttributeSet\n+import android.util.DisplayMetrics\n+import android.util.TypedValue\n+import android.view.LayoutInflater\n+import android.view.View\n+import android.view.animation.AccelerateDecelerateInterpolator\n+import android.widget.FrameLayout\n+import android.widget.ImageView\n+import android.widget.LinearLayout\n+import androidx.appcompat.app.AppCompatActivity\n+import androidx.appcompat.content.res.AppCompatResources\n+import androidx.appcompat.widget.AppCompatImageView\n+import androidx.appcompat.widget.AppCompatTextView\n+import androidx.cardview.widget.CardView\n+import androidx.constraintlayout.widget.ConstraintLayout\n+import androidx.constraintlayout.widget.ConstraintLayout.LayoutParams.MATCH_CONSTRAINT\n+import androidx.constraintlayout.widget.ConstraintSet\n+import androidx.core.content.ContextCompat\n+import androidx.core.widget.ImageViewCompat\n+import co.condorlabs.customcomponents.COLLAPSIBLE_CARD_VIEW_END_MARGIN\n+import co.condorlabs.customcomponents.COLLAPSIBLE_CARD_VIEW_START_MARGIN\n+import co.condorlabs.customcomponents.COLLAPSIBLE_INDICATOR_ROTATION\n+import co.condorlabs.customcomponents.COLLAPSIBLE_LINE_SEPARATOR_HEIGHT\n+import co.condorlabs.customcomponents.COLLAPSIBLE_LINE_SEPARATOR_START_MARGIN\n+import co.condorlabs.customcomponents.DEFAULT_COLLAPSIBLE_ANIMATION_TIME\n+import co.condorlabs.customcomponents.DEFAULT_COLLAPSIBLE_ICON_HEIGHT\n+import co.condorlabs.customcomponents.DEFAULT_COLLAPSIBLE_ICON_WIDTH\n+import co.condorlabs.customcomponents.DEFAULT_COLLAPSIBLE_INDICATOR_MARGIN_END\n+import co.condorlabs.customcomponents.DEFAULT_COLLAPSIBLE_MARGIN\n+import co.condorlabs.customcomponents.DEFAULT_COLLAPSIBLE_MARGIN_FOOTER_TEXT\n+import co.condorlabs.customcomponents.DEFAULT_COLLAPSIBLE_PADDING\n+import co.condorlabs.customcomponents.DEFAULT_COLLAPSIBLE_SUBTITLE_MARGIN_BOTTOM\n+import co.condorlabs.customcomponents.DEFAULT_COLLAPSIBLE_SUBTITLE_TOP_MARGIN\n+import co.condorlabs.customcomponents.DEFAULT_COLLAPSIBLE_TITLE_MARGIN_TOP\n+import co.condorlabs.customcomponents.DEFAULT_COLLAPSIBLE_TITLE_TEXT_SIZE\n+import co.condorlabs.customcomponents.DEFAULT_STYLE_ATTR\n+import co.condorlabs.customcomponents.DEFAULT_STYLE_RES\n+import co.condorlabs.customcomponents.MIN_DEFAULT_PADDING\n+import co.condorlabs.customcomponents.ONE_HUNDRED_FLOAT\n+import co.condorlabs.customcomponents.OPEN_SANS_SEMI_BOLD\n+import co.condorlabs.customcomponents.R\n+import co.condorlabs.customcomponents.ZERO\n+import co.condorlabs.customcomponents.ZERO_FLOAT\n+\n+/**\n+ * @author Alexis Duque on 2019-05-29.\n+ * @company Condor Labs\n+ * @email eduque@condorlabs.io\n+ */\n+class CollapsibleView @JvmOverloads constructor(\n+    context: Context,\n+    attrs: AttributeSet? = null,\n+    defStyleAttr: Int = ZERO\n+) : ConstraintLayout(context, attrs, defStyleAttr) {\n+\n+    private var collapsibleViewId: Int = NO_ID\n+    private var requirementsHeight = ZERO\n+    private var elementsAreCollapsed = false\n+    private var collapseListener: OnCollapseListener? = null\n+    private var textHiddenState: String? = null\n+    private var textShowState: String? = null\n+    private var iconImageView = AppCompatImageView(context).apply { id = R.id.iconImageId }\n+    private var sectionTitleTextView = AppCompatTextView(context).apply { id = R.id.titleId }\n+    private var sectionSubtitleTextView = AppCompatTextView(context).apply { id = R.id.subtitleId }\n+    private var sectionCardView = CardView(context).apply { id = R.id.cardId }\n+    private var sectionConstraintLayout = ConstraintLayout(context)\n+    private var lineSeparatorView = View(context).apply { id = R.id.lineSeparatorId }\n+    private var containerFrameLayout = FrameLayout(context).apply { id = R.id.frameLayoutId }\n+    private var footerConstraintLayout = ConstraintLayout(context).apply { id = R.id.footerId }\n+    private var footerTextTextView = AppCompatTextView(context).apply { id = R.id.footerTextViewId }\n+    private var footerIndicatorImageView =\n+        AppCompatImageView(context).apply { id = R.id.footerImageViewId }\n+\n+    init {\n+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {\n+            val typedArray =\n+                context.obtainStyledAttributes(intArrayOf(R.attr.selectableItemBackground))\n+            val selectableItemBackground = typedArray.getResourceId(ZERO, ZERO)\n+            typedArray.recycle()\n+\n+            sectionConstraintLayout.foreground = context.getDrawable(selectableItemBackground)\n+        }\n+\n+        isClickable = true\n+        isFocusable = true\n+        setPadding(ZERO, ZERO, ZERO, ZERO)\n+        addView(sectionCardView)\n+\n+        sectionCardView.apply {\n+            layoutParams = LayoutParams(\n+                LayoutParams.MATCH_PARENT,\n+                LayoutParams.WRAP_CONTENT\n+            )\n+            radius = ZERO_FLOAT\n+            addView(sectionConstraintLayout)\n+        }\n+\n+        sectionConstraintLayout.apply {\n+            addView(iconImageView)\n+            addView(sectionTitleTextView)\n+            addView(sectionSubtitleTextView)\n+            addView(lineSeparatorView)\n+            addView(containerFrameLayout)\n+            addView(footerConstraintLayout)\n+        }\n+\n+        iconImageView.apply {\n+            layoutParams = LayoutParams(\n+                DEFAULT_COLLAPSIBLE_ICON_WIDTH,\n+                DEFAULT_COLLAPSIBLE_ICON_HEIGHT\n+            )\n+            scaleType = ImageView.ScaleType.CENTER\n+        }\n+\n+        sectionTitleTextView.apply {\n+            layoutParams = LayoutParams(\n+                MATCH_CONSTRAINT,\n+                LinearLayout.LayoutParams.WRAP_CONTENT\n+            )\n+            typeface = Typeface.createFromAsset(context.assets, OPEN_SANS_SEMI_BOLD)\n+            setTextColor(Color.BLACK)\n+            setTextSize(TypedValue.COMPLEX_UNIT_SP, DEFAULT_COLLAPSIBLE_TITLE_TEXT_SIZE)\n+        }\n+\n+        sectionSubtitleTextView.apply {\n+            layoutParams = LayoutParams(\n+                MATCH_CONSTRAINT,\n+                LinearLayout.LayoutParams.WRAP_CONTENT\n+            )\n+        }\n+\n+        lineSeparatorView.apply {\n+            layoutParams = LayoutParams(\n+                MATCH_CONSTRAINT,\n+                COLLAPSIBLE_LINE_SEPARATOR_HEIGHT\n+            )\n+            setBackgroundResource(R.color.linear_separator)\n+        }\n+\n+        containerFrameLayout.apply {\n+            layoutParams = LayoutParams(\n+                MATCH_CONSTRAINT,\n+                LayoutParams.WRAP_CONTENT\n+            )\n+        }\n+\n+        footerConstraintLayout.apply {\n+            layoutParams = LayoutParams(\n+                MATCH_CONSTRAINT,\n+                LayoutParams.WRAP_CONTENT\n+            )\n+            setPadding(\n+                DEFAULT_COLLAPSIBLE_PADDING, DEFAULT_COLLAPSIBLE_PADDING,\n+                DEFAULT_COLLAPSIBLE_PADDING, DEFAULT_COLLAPSIBLE_PADDING\n+            )\n+            addView(footerTextTextView)\n+            addView(footerIndicatorImageView)\n+        }\n+\n+        footerTextTextView.apply {\n+\n+            layoutParams = LayoutParams(\n+                MATCH_CONSTRAINT,\n+                LayoutParams.WRAP_CONTENT\n+            )\n+            setTextColor(ContextCompat.getColor(context, R.color.primaryColor))\n+            typeface = Typeface.createFromAsset(context.assets, OPEN_SANS_SEMI_BOLD)\n+        }\n+\n+        footerIndicatorImageView.apply {\n+            setImageResource(R.drawable.ic_arrow_down)\n+            rotation = COLLAPSIBLE_INDICATOR_ROTATION\n+        }\n+\n+        ConstraintSet().apply {\n+            clone(footerConstraintLayout)\n+            with(footerTextTextView) {\n+                connect(\n+                    id,\n+                    ConstraintSet.BOTTOM,\n+                    ConstraintSet.PARENT_ID,\n+                    ConstraintSet.BOTTOM,\n+                    DEFAULT_COLLAPSIBLE_MARGIN_FOOTER_TEXT\n+                )\n+                connect(id, ConstraintSet.END, footerIndicatorImageView.id, ConstraintSet.START)\n+                connect(id, ConstraintSet.START, ConstraintSet.PARENT_ID, ConstraintSet.START)\n+                connect(\n+                    id,\n+                    ConstraintSet.TOP,\n+                    ConstraintSet.PARENT_ID,\n+                    ConstraintSet.TOP,\n+                    DEFAULT_COLLAPSIBLE_MARGIN_FOOTER_TEXT\n+                )\n+            }\n+            with(footerIndicatorImageView) {\n+                connect(\n+                    id,\n+                    ConstraintSet.BOTTOM,\n+                    ConstraintSet.PARENT_ID,\n+                    ConstraintSet.BOTTOM\n+                )\n+                connect(\n+                    id,\n+                    ConstraintSet.END,\n+                    ConstraintSet.PARENT_ID,\n+                    ConstraintSet.END,\n+                    DEFAULT_COLLAPSIBLE_INDICATOR_MARGIN_END\n+                )\n+                connect(id, ConstraintSet.TOP, ConstraintSet.PARENT_ID, ConstraintSet.TOP)\n+            }\n+            applyTo(footerConstraintLayout)\n+        }\n+\n+        ConstraintSet().apply {\n+            clone(sectionConstraintLayout)\n+            with(iconImageView) {\n+                connect(id, ConstraintSet.START, ConstraintSet.PARENT_ID, ConstraintSet.START)\n+                connect(id, ConstraintSet.TOP, sectionTitleTextView.id, ConstraintSet.TOP)\n+                connect(id, ConstraintSet.BOTTOM, sectionTitleTextView.id, ConstraintSet.BOTTOM)\n+            }\n+            with(sectionTitleTextView) {\n+                connect(\n+                    id,\n+                    ConstraintSet.START,\n+                    iconImageView.id,\n+                    ConstraintSet.END,\n+                    DEFAULT_COLLAPSIBLE_MARGIN\n+                )\n+                connect(id, ConstraintSet.END, ConstraintSet.PARENT_ID, ConstraintSet.END)\n+                connect(\n+                    id,\n+                    ConstraintSet.TOP,\n+                    ConstraintSet.PARENT_ID,\n+                    ConstraintSet.TOP,\n+                    DEFAULT_COLLAPSIBLE_TITLE_MARGIN_TOP\n+                )\n+            }\n+            with(sectionSubtitleTextView) {\n+                connect(\n+                    id,\n+                    ConstraintSet.BOTTOM,\n+                    lineSeparatorView.id,\n+                    ConstraintSet.TOP,\n+                    DEFAULT_COLLAPSIBLE_SUBTITLE_MARGIN_BOTTOM\n+                )\n+                connect(id, ConstraintSet.END, ConstraintSet.PARENT_ID, ConstraintSet.END)\n+                connect(id, ConstraintSet.START, sectionTitleTextView.id, ConstraintSet.START)\n+                connect(\n+                    id,\n+                    ConstraintSet.TOP,\n+                    sectionTitleTextView.id,\n+                    ConstraintSet.BOTTOM,\n+                    DEFAULT_COLLAPSIBLE_SUBTITLE_TOP_MARGIN\n+                )\n+            }\n+            with(lineSeparatorView) {\n+                connect(\n+                    id,\n+                    ConstraintSet.START,\n+                    ConstraintSet.PARENT_ID,\n+                    ConstraintSet.START,\n+                    COLLAPSIBLE_LINE_SEPARATOR_START_MARGIN\n+                )\n+                connect(id, ConstraintSet.BOTTOM, containerFrameLayout.id, ConstraintSet.TOP)\n+            }\n+            with(containerFrameLayout) {\n+                connect(id, ConstraintSet.END, ConstraintSet.PARENT_ID, ConstraintSet.END)\n+                connect(id, ConstraintSet.START, ConstraintSet.PARENT_ID, ConstraintSet.START)\n+                connect(id, ConstraintSet.BOTTOM, footerConstraintLayout.id, ConstraintSet.TOP)\n+            }\n+            with(footerConstraintLayout) {\n+                connect(id, ConstraintSet.END, ConstraintSet.PARENT_ID, ConstraintSet.END)\n+                connect(id, ConstraintSet.START, sectionTitleTextView.id, ConstraintSet.START)\n+                connect(id, ConstraintSet.BOTTOM, ConstraintSet.PARENT_ID, ConstraintSet.BOTTOM)\n+            }\n+            applyTo(sectionConstraintLayout)\n+        }\n+\n+        ConstraintSet().apply {\n+            clone(this@CollapsibleView)\n+\n+            with(sectionCardView) {\n+                connect(\n+                    id,\n+                    ConstraintSet.TOP,\n+                    ConstraintSet.PARENT_ID,\n+                    ConstraintSet.BOTTOM\n+                )\n+                connect(id, ConstraintSet.BOTTOM, this@CollapsibleView.id, ConstraintSet.BOTTOM)\n+                connect(\n+                    id,\n+                    ConstraintSet.START,\n+                    ConstraintSet.PARENT_ID,\n+                    ConstraintSet.START,\n+                    COLLAPSIBLE_CARD_VIEW_START_MARGIN\n+                )\n+                connect(\n+                    id,\n+                    ConstraintSet.END,\n+                    this@CollapsibleView.id,\n+                    ConstraintSet.END,\n+                    COLLAPSIBLE_CARD_VIEW_END_MARGIN\n+                )\n+            }\n+            applyTo(this@CollapsibleView)\n+        }\n+\n+        attrs?.let { setupAttrs(it) }\n+    }\n+\n+    override fun onAttachedToWindow() {\n+        super.onAttachedToWindow()\n+\n+        if (collapsibleViewId != NO_ID) {\n+            (context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as? LayoutInflater)\n+                ?.inflate(collapsibleViewId, null, false)?.let {\n+                    setContent(it)\n+                }\n+        }\n+    }\n+\n+    override fun setPadding(left: Int, top: Int, right: Int, bottom: Int) {\n+        sectionConstraintLayout.setPadding(\n+            left.zeroOrGreaterThanZero(),\n+            top.zeroOrGreaterThanZero(),\n+            right.zeroOrGreaterThanZero(),\n+            bottom.zeroOrGreaterThanZero()\n+        )\n+    }\n+\n+    private fun setupAttrs(attrs: AttributeSet) {\n+        val typedArray = context.obtainStyledAttributes(\n+            attrs,\n+            R.styleable.CollapsibleView,\n+            DEFAULT_STYLE_ATTR,\n+            DEFAULT_STYLE_RES\n+        )\n+\n+        val padding =\n+            typedArray.getDimension(R.styleable.CollapsibleView_android_padding, ZERO_FLOAT)\n+        if (padding == ZERO_FLOAT) {\n+            val paddingStart = typedArray.getDimension(\n+                R.styleable.CollapsibleView_android_paddingStart,\n+                ZERO_FLOAT\n+            ).toInt()\n+            val paddingTop =\n+                typedArray.getDimension(R.styleable.CollapsibleView_android_paddingTop, ZERO_FLOAT)\n+                    .toInt()\n+            val paddingEnd =\n+                typedArray.getDimension(R.styleable.CollapsibleView_android_paddingEnd, ZERO_FLOAT)\n+                    .toInt()\n+            val paddingBottom = typedArray.getDimension(\n+                R.styleable.CollapsibleView_android_paddingBottom,\n+                ZERO_FLOAT\n+            ).toInt()\n+\n+            setPadding(paddingStart, paddingTop, paddingEnd, paddingBottom)\n+        } else {\n+            padding.toInt().let {\n+                setPadding(it, it, it, it)\n+            }\n+        }\n+\n+        setImage(typedArray.getResourceId(R.styleable.CollapsibleView_collapsibleIcon, NO_ID))\n+        sectionCardView.useCompatPadding =\n+            typedArray.getBoolean(R.styleable.CollapsibleView_useAppCompactPadding, true)\n+        collapsibleViewId =\n+            typedArray.getResourceId(R.styleable.CollapsibleView_collapsibleContent, NO_ID)\n+        elementsAreCollapsed =\n+            typedArray.getBoolean(R.styleable.CollapsibleView_startCollapsed, false)\n+        textHiddenState =\n+            typedArray.getString(R.styleable.CollapsibleView_collapsibleHiddenFooterText)\n+                ?: resources.getString(R.string.hide)\n+        textShowState = typedArray.getString(R.styleable.CollapsibleView_collapsibleShowFooterText)\n+            ?: resources.getString(R.string.show)\n+        setTitle(typedArray.getString(R.styleable.CollapsibleView_collapsibleTitle))\n+        setSubtitle(typedArray.getString(R.styleable.CollapsibleView_collapsibleSubtitle))\n+        setFooterTextColor(\n+            typedArray.getColor(\n+                R.styleable.CollapsibleView_collapsibleFooterTextColor,\n+                NO_ID\n+            )\n+        )\n+        setImageTint(typedArray.getColor(R.styleable.CollapsibleView_imageTintColor, NO_ID))\n+        seeArrowIndicator(\n+            typedArray.getBoolean(\n+                R.styleable.CollapsibleView_seeArrowIndicator,\n+                false\n+            )\n+        )\n+\n+        typedArray.recycle()\n+    }\n+\n+    private fun collapseElements(requirementsHeight: Int) {","path":"app/src/main/java/co/condorlabs/customcomponents/customcollapsibleview/CollapsibleView.kt","position":403,"original_position":403,"commit_id":"e71463b3793541c581ccc7889f6fa133777deb61","original_commit_id":"e71463b3793541c581ccc7889f6fa133777deb61","user":{"login":"EAlexisDuque","id":42741876,"node_id":"MDQ6VXNlcjQyNzQxODc2","avatar_url":"https://avatars2.githubusercontent.com/u/42741876?v=4","gravatar_id":"","url":"https://api.github.com/users/EAlexisDuque","html_url":"https://github.com/EAlexisDuque","followers_url":"https://api.github.com/users/EAlexisDuque/followers","following_url":"https://api.github.com/users/EAlexisDuque/following{/other_user}","gists_url":"https://api.github.com/users/EAlexisDuque/gists{/gist_id}","starred_url":"https://api.github.com/users/EAlexisDuque/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/EAlexisDuque/subscriptions","organizations_url":"https://api.github.com/users/EAlexisDuque/orgs","repos_url":"https://api.github.com/users/EAlexisDuque/repos","events_url":"https://api.github.com/users/EAlexisDuque/events{/privacy}","received_events_url":"https://api.github.com/users/EAlexisDuque/received_events","type":"User","site_admin":false},"body":"Done","created_at":"2019-06-17T18:56:09Z","updated_at":"2019-06-17T18:56:09Z","html_url":"https://github.com/cebroker/emerald-android/pull/60#discussion_r294467382","pull_request_url":"https://api.github.com/repos/cebroker/emerald-android/pulls/60","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/cebroker/emerald-android/pulls/comments/294467382"},"html":{"href":"https://github.com/cebroker/emerald-android/pull/60#discussion_r294467382"},"pull_request":{"href":"https://api.github.com/repos/cebroker/emerald-android/pulls/60"}},"in_reply_to_id":294454126},"pull_request":{"url":"https://api.github.com/repos/cebroker/emerald-android/pulls/60","id":285548233,"node_id":"MDExOlB1bGxSZXF1ZXN0Mjg1NTQ4MjMz","html_url":"https://github.com/cebroker/emerald-android/pull/60","diff_url":"https://github.com/cebroker/emerald-android/pull/60.diff","patch_url":"https://github.com/cebroker/emerald-android/pull/60.patch","issue_url":"https://api.github.com/repos/cebroker/emerald-android/issues/60","number":60,"state":"open","locked":false,"title":" CollapsibleView","user":{"login":"EAlexisDuque","id":42741876,"node_id":"MDQ6VXNlcjQyNzQxODc2","avatar_url":"https://avatars2.githubusercontent.com/u/42741876?v=4","gravatar_id":"","url":"https://api.github.com/users/EAlexisDuque","html_url":"https://github.com/EAlexisDuque","followers_url":"https://api.github.com/users/EAlexisDuque/followers","following_url":"https://api.github.com/users/EAlexisDuque/following{/other_user}","gists_url":"https://api.github.com/users/EAlexisDuque/gists{/gist_id}","starred_url":"https://api.github.com/users/EAlexisDuque/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/EAlexisDuque/subscriptions","organizations_url":"https://api.github.com/users/EAlexisDuque/orgs","repos_url":"https://api.github.com/users/EAlexisDuque/repos","events_url":"https://api.github.com/users/EAlexisDuque/events{/privacy}","received_events_url":"https://api.github.com/users/EAlexisDuque/received_events","type":"User","site_admin":false},"body":"# New custom view!\r\n\r\n![collapsible_animation](https://user-images.githubusercontent.com/42741876/58989947-8067ff00-87aa-11e9-8170-e9e0e31a57da.gif)\r\n","created_at":"2019-06-05T20:57:54Z","updated_at":"2019-06-17T18:56:09Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ed12b55ba00e56710fcfc52c0a3baaa98ff3f1ba","assignee":null,"assignees":[],"requested_reviewers":[{"login":"otigreros","id":45563446,"node_id":"MDQ6VXNlcjQ1NTYzNDQ2","avatar_url":"https://avatars1.githubusercontent.com/u/45563446?v=4","gravatar_id":"","url":"https://api.github.com/users/otigreros","html_url":"https://github.com/otigreros","followers_url":"https://api.github.com/users/otigreros/followers","following_url":"https://api.github.com/users/otigreros/following{/other_user}","gists_url":"https://api.github.com/users/otigreros/gists{/gist_id}","starred_url":"https://api.github.com/users/otigreros/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/otigreros/subscriptions","organizations_url":"https://api.github.com/users/otigreros/orgs","repos_url":"https://api.github.com/users/otigreros/repos","events_url":"https://api.github.com/users/otigreros/events{/privacy}","received_events_url":"https://api.github.com/users/otigreros/received_events","type":"User","site_admin":false},{"login":"ferazog","id":47980311,"node_id":"MDQ6VXNlcjQ3OTgwMzEx","avatar_url":"https://avatars2.githubusercontent.com/u/47980311?v=4","gravatar_id":"","url":"https://api.github.com/users/ferazog","html_url":"https://github.com/ferazog","followers_url":"https://api.github.com/users/ferazog/followers","following_url":"https://api.github.com/users/ferazog/following{/other_user}","gists_url":"https://api.github.com/users/ferazog/gists{/gist_id}","starred_url":"https://api.github.com/users/ferazog/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ferazog/subscriptions","organizations_url":"https://api.github.com/users/ferazog/orgs","repos_url":"https://api.github.com/users/ferazog/repos","events_url":"https://api.github.com/users/ferazog/events{/privacy}","received_events_url":"https://api.github.com/users/ferazog/received_events","type":"User","site_admin":false},{"login":"cparracondor","id":48684788,"node_id":"MDQ6VXNlcjQ4Njg0Nzg4","avatar_url":"https://avatars1.githubusercontent.com/u/48684788?v=4","gravatar_id":"","url":"https://api.github.com/users/cparracondor","html_url":"https://github.com/cparracondor","followers_url":"https://api.github.com/users/cparracondor/followers","following_url":"https://api.github.com/users/cparracondor/following{/other_user}","gists_url":"https://api.github.com/users/cparracondor/gists{/gist_id}","starred_url":"https://api.github.com/users/cparracondor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cparracondor/subscriptions","organizations_url":"https://api.github.com/users/cparracondor/orgs","repos_url":"https://api.github.com/users/cparracondor/repos","events_url":"https://api.github.com/users/cparracondor/events{/privacy}","received_events_url":"https://api.github.com/users/cparracondor/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/cebroker/emerald-android/pulls/60/commits","review_comments_url":"https://api.github.com/repos/cebroker/emerald-android/pulls/60/comments","review_comment_url":"https://api.github.com/repos/cebroker/emerald-android/pulls/comments{/number}","comments_url":"https://api.github.com/repos/cebroker/emerald-android/issues/60/comments","statuses_url":"https://api.github.com/repos/cebroker/emerald-android/statuses/e71463b3793541c581ccc7889f6fa133777deb61","head":{"label":"cebroker:feature/collapsible_view","ref":"feature/collapsible_view","sha":"e71463b3793541c581ccc7889f6fa133777deb61","user":{"login":"cebroker","id":12175620,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyMTc1NjIw","avatar_url":"https://avatars0.githubusercontent.com/u/12175620?v=4","gravatar_id":"","url":"https://api.github.com/users/cebroker","html_url":"https://github.com/cebroker","followers_url":"https://api.github.com/users/cebroker/followers","following_url":"https://api.github.com/users/cebroker/following{/other_user}","gists_url":"https://api.github.com/users/cebroker/gists{/gist_id}","starred_url":"https://api.github.com/users/cebroker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cebroker/subscriptions","organizations_url":"https://api.github.com/users/cebroker/orgs","repos_url":"https://api.github.com/users/cebroker/repos","events_url":"https://api.github.com/users/cebroker/events{/privacy}","received_events_url":"https://api.github.com/users/cebroker/received_events","type":"Organization","site_admin":false},"repo":{"id":172939660,"node_id":"MDEwOlJlcG9zaXRvcnkxNzI5Mzk2NjA=","name":"emerald-android","full_name":"cebroker/emerald-android","private":false,"owner":{"login":"cebroker","id":12175620,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyMTc1NjIw","avatar_url":"https://avatars0.githubusercontent.com/u/12175620?v=4","gravatar_id":"","url":"https://api.github.com/users/cebroker","html_url":"https://github.com/cebroker","followers_url":"https://api.github.com/users/cebroker/followers","following_url":"https://api.github.com/users/cebroker/following{/other_user}","gists_url":"https://api.github.com/users/cebroker/gists{/gist_id}","starred_url":"https://api.github.com/users/cebroker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cebroker/subscriptions","organizations_url":"https://api.github.com/users/cebroker/orgs","repos_url":"https://api.github.com/users/cebroker/repos","events_url":"https://api.github.com/users/cebroker/events{/privacy}","received_events_url":"https://api.github.com/users/cebroker/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/cebroker/emerald-android","description":null,"fork":false,"url":"https://api.github.com/repos/cebroker/emerald-android","forks_url":"https://api.github.com/repos/cebroker/emerald-android/forks","keys_url":"https://api.github.com/repos/cebroker/emerald-android/keys{/key_id}","collaborators_url":"https://api.github.com/repos/cebroker/emerald-android/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/cebroker/emerald-android/teams","hooks_url":"https://api.github.com/repos/cebroker/emerald-android/hooks","issue_events_url":"https://api.github.com/repos/cebroker/emerald-android/issues/events{/number}","events_url":"https://api.github.com/repos/cebroker/emerald-android/events","assignees_url":"https://api.github.com/repos/cebroker/emerald-android/assignees{/user}","branches_url":"https://api.github.com/repos/cebroker/emerald-android/branches{/branch}","tags_url":"https://api.github.com/repos/cebroker/emerald-android/tags","blobs_url":"https://api.github.com/repos/cebroker/emerald-android/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/cebroker/emerald-android/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/cebroker/emerald-android/git/refs{/sha}","trees_url":"https://api.github.com/repos/cebroker/emerald-android/git/trees{/sha}","statuses_url":"https://api.github.com/repos/cebroker/emerald-android/statuses/{sha}","languages_url":"https://api.github.com/repos/cebroker/emerald-android/languages","stargazers_url":"https://api.github.com/repos/cebroker/emerald-android/stargazers","contributors_url":"https://api.github.com/repos/cebroker/emerald-android/contributors","subscribers_url":"https://api.github.com/repos/cebroker/emerald-android/subscribers","subscription_url":"https://api.github.com/repos/cebroker/emerald-android/subscription","commits_url":"https://api.github.com/repos/cebroker/emerald-android/commits{/sha}","git_commits_url":"https://api.github.com/repos/cebroker/emerald-android/git/commits{/sha}","comments_url":"https://api.github.com/repos/cebroker/emerald-android/comments{/number}","issue_comment_url":"https://api.github.com/repos/cebroker/emerald-android/issues/comments{/number}","contents_url":"https://api.github.com/repos/cebroker/emerald-android/contents/{+path}","compare_url":"https://api.github.com/repos/cebroker/emerald-android/compare/{base}...{head}","merges_url":"https://api.github.com/repos/cebroker/emerald-android/merges","archive_url":"https://api.github.com/repos/cebroker/emerald-android/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/cebroker/emerald-android/downloads","issues_url":"https://api.github.com/repos/cebroker/emerald-android/issues{/number}","pulls_url":"https://api.github.com/repos/cebroker/emerald-android/pulls{/number}","milestones_url":"https://api.github.com/repos/cebroker/emerald-android/milestones{/number}","notifications_url":"https://api.github.com/repos/cebroker/emerald-android/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/cebroker/emerald-android/labels{/name}","releases_url":"https://api.github.com/repos/cebroker/emerald-android/releases{/id}","deployments_url":"https://api.github.com/repos/cebroker/emerald-android/deployments","created_at":"2019-02-27T15:22:15Z","updated_at":"2019-06-13T20:38:46Z","pushed_at":"2019-06-17T17:55:48Z","git_url":"git://github.com/cebroker/emerald-android.git","ssh_url":"git@github.com:cebroker/emerald-android.git","clone_url":"https://github.com/cebroker/emerald-android.git","svn_url":"https://github.com/cebroker/emerald-android","homepage":null,"size":4554,"stargazers_count":0,"watchers_count":0,"language":"Kotlin","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":null,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"cebroker:master","ref":"master","sha":"32e359181f9c2fb4a63f850ca3485fc7617d1500","user":{"login":"cebroker","id":12175620,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyMTc1NjIw","avatar_url":"https://avatars0.githubusercontent.com/u/12175620?v=4","gravatar_id":"","url":"https://api.github.com/users/cebroker","html_url":"https://github.com/cebroker","followers_url":"https://api.github.com/users/cebroker/followers","following_url":"https://api.github.com/users/cebroker/following{/other_user}","gists_url":"https://api.github.com/users/cebroker/gists{/gist_id}","starred_url":"https://api.github.com/users/cebroker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cebroker/subscriptions","organizations_url":"https://api.github.com/users/cebroker/orgs","repos_url":"https://api.github.com/users/cebroker/repos","events_url":"https://api.github.com/users/cebroker/events{/privacy}","received_events_url":"https://api.github.com/users/cebroker/received_events","type":"Organization","site_admin":false},"repo":{"id":172939660,"node_id":"MDEwOlJlcG9zaXRvcnkxNzI5Mzk2NjA=","name":"emerald-android","full_name":"cebroker/emerald-android","private":false,"owner":{"login":"cebroker","id":12175620,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyMTc1NjIw","avatar_url":"https://avatars0.githubusercontent.com/u/12175620?v=4","gravatar_id":"","url":"https://api.github.com/users/cebroker","html_url":"https://github.com/cebroker","followers_url":"https://api.github.com/users/cebroker/followers","following_url":"https://api.github.com/users/cebroker/following{/other_user}","gists_url":"https://api.github.com/users/cebroker/gists{/gist_id}","starred_url":"https://api.github.com/users/cebroker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cebroker/subscriptions","organizations_url":"https://api.github.com/users/cebroker/orgs","repos_url":"https://api.github.com/users/cebroker/repos","events_url":"https://api.github.com/users/cebroker/events{/privacy}","received_events_url":"https://api.github.com/users/cebroker/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/cebroker/emerald-android","description":null,"fork":false,"url":"https://api.github.com/repos/cebroker/emerald-android","forks_url":"https://api.github.com/repos/cebroker/emerald-android/forks","keys_url":"https://api.github.com/repos/cebroker/emerald-android/keys{/key_id}","collaborators_url":"https://api.github.com/repos/cebroker/emerald-android/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/cebroker/emerald-android/teams","hooks_url":"https://api.github.com/repos/cebroker/emerald-android/hooks","issue_events_url":"https://api.github.com/repos/cebroker/emerald-android/issues/events{/number}","events_url":"https://api.github.com/repos/cebroker/emerald-android/events","assignees_url":"https://api.github.com/repos/cebroker/emerald-android/assignees{/user}","branches_url":"https://api.github.com/repos/cebroker/emerald-android/branches{/branch}","tags_url":"https://api.github.com/repos/cebroker/emerald-android/tags","blobs_url":"https://api.github.com/repos/cebroker/emerald-android/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/cebroker/emerald-android/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/cebroker/emerald-android/git/refs{/sha}","trees_url":"https://api.github.com/repos/cebroker/emerald-android/git/trees{/sha}","statuses_url":"https://api.github.com/repos/cebroker/emerald-android/statuses/{sha}","languages_url":"https://api.github.com/repos/cebroker/emerald-android/languages","stargazers_url":"https://api.github.com/repos/cebroker/emerald-android/stargazers","contributors_url":"https://api.github.com/repos/cebroker/emerald-android/contributors","subscribers_url":"https://api.github.com/repos/cebroker/emerald-android/subscribers","subscription_url":"https://api.github.com/repos/cebroker/emerald-android/subscription","commits_url":"https://api.github.com/repos/cebroker/emerald-android/commits{/sha}","git_commits_url":"https://api.github.com/repos/cebroker/emerald-android/git/commits{/sha}","comments_url":"https://api.github.com/repos/cebroker/emerald-android/comments{/number}","issue_comment_url":"https://api.github.com/repos/cebroker/emerald-android/issues/comments{/number}","contents_url":"https://api.github.com/repos/cebroker/emerald-android/contents/{+path}","compare_url":"https://api.github.com/repos/cebroker/emerald-android/compare/{base}...{head}","merges_url":"https://api.github.com/repos/cebroker/emerald-android/merges","archive_url":"https://api.github.com/repos/cebroker/emerald-android/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/cebroker/emerald-android/downloads","issues_url":"https://api.github.com/repos/cebroker/emerald-android/issues{/number}","pulls_url":"https://api.github.com/repos/cebroker/emerald-android/pulls{/number}","milestones_url":"https://api.github.com/repos/cebroker/emerald-android/milestones{/number}","notifications_url":"https://api.github.com/repos/cebroker/emerald-android/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/cebroker/emerald-android/labels{/name}","releases_url":"https://api.github.com/repos/cebroker/emerald-android/releases{/id}","deployments_url":"https://api.github.com/repos/cebroker/emerald-android/deployments","created_at":"2019-02-27T15:22:15Z","updated_at":"2019-06-13T20:38:46Z","pushed_at":"2019-06-17T17:55:48Z","git_url":"git://github.com/cebroker/emerald-android.git","ssh_url":"git@github.com:cebroker/emerald-android.git","clone_url":"https://github.com/cebroker/emerald-android.git","svn_url":"https://github.com/cebroker/emerald-android","homepage":null,"size":4554,"stargazers_count":0,"watchers_count":0,"language":"Kotlin","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":1,"license":null,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/cebroker/emerald-android/pulls/60"},"html":{"href":"https://github.com/cebroker/emerald-android/pull/60"},"issue":{"href":"https://api.github.com/repos/cebroker/emerald-android/issues/60"},"comments":{"href":"https://api.github.com/repos/cebroker/emerald-android/issues/60/comments"},"review_comments":{"href":"https://api.github.com/repos/cebroker/emerald-android/pulls/60/comments"},"review_comment":{"href":"https://api.github.com/repos/cebroker/emerald-android/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/cebroker/emerald-android/pulls/60/commits"},"statuses":{"href":"https://api.github.com/repos/cebroker/emerald-android/statuses/e71463b3793541c581ccc7889f6fa133777deb61"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"EAlexisDuque"}}