Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6716685f authored by Lucas Dupin's avatar Lucas Dupin Committed by Android (Google) Code Review
Browse files

Merge "Add zoom param to glass material"

parents b5f346a3 e8761ca5
Loading
Loading
Loading
Loading
+37 −2
Original line number Diff line number Diff line
@@ -67,6 +67,21 @@
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toStartOf="parent" />

    <SeekBar
        android:id="@+id/zoom"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginBottom="16dp"
        android:layout_marginEnd="12dp"
        android:layout_marginStart="12dp"
        android:min="-100"
        android:max="100"
        android:progress="-15"
        app:layout_constraintBottom_toTopOf="@+id/blurRadiusTitle"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
        app:layout_constraintStart_toStartOf="parent" />

    <SeekBar
        android:id="@+id/blurRadius"
        android:layout_width="0dp"
@@ -75,7 +90,7 @@
        android:layout_marginEnd="12dp"
        android:layout_marginStart="12dp"
        android:max="150"
        android:progress="50"
        android:progress="20"
        app:layout_constraintBottom_toTopOf="@+id/materialOpacityTitle"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="1.0"
@@ -131,6 +146,17 @@
        app:layout_constraintBottom_toTopOf="@+id/materialOpacity"
        app:layout_constraintStart_toStartOf="parent" />

    <TextView
        android:id="@+id/zoomTitle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="24dp"
        android:layout_marginBottom="8dp"
        android:text="Zoom"
        android:textColor="@android:color/white"
        app:layout_constraintBottom_toTopOf="@+id/zoom"
        app:layout_constraintStart_toStartOf="parent" />

    <TextView
        android:id="@+id/blurRadiusTitle"
        android:layout_width="wrap_content"
@@ -200,7 +226,7 @@
        android:layout_marginStart="24dp"
        android:layout_marginBottom="8dp"
        android:text="Light Material"
        app:layout_constraintBottom_toTopOf="@+id/blurRadiusTitle"
        app:layout_constraintBottom_toTopOf="@+id/zoomTitle"
        app:layout_constraintStart_toStartOf="parent" />

    <TextView
@@ -212,6 +238,15 @@
        app:layout_constraintBottom_toBottomOf="@+id/blurRadiusTitle"
        app:layout_constraintStart_toEndOf="@+id/blurRadiusTitle" />

    <TextView
        android:id="@+id/zoomValue"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="TextView"
        android:layout_marginLeft="8dp"
        app:layout_constraintBottom_toBottomOf="@+id/zoomTitle"
        app:layout_constraintStart_toEndOf="@+id/zoomTitle" />

    <TextView
        android:id="@+id/materialOpacityValue"
        android:layout_width="wrap_content"
+9 −1
Original line number Diff line number Diff line
@@ -39,11 +39,13 @@ class GlassActivity : Activity(), SeekBar.OnSeekBarChangeListener {
    lateinit var noiseOpacitySeekBar: SeekBar
    lateinit var materialOpacitySeekBar: SeekBar
    lateinit var scrimOpacitySeekBar: SeekBar
    lateinit var zoomSeekBar: SeekBar
    lateinit var blurRadiusSeekBar: SeekBar
    lateinit var noiseOpacityValue: TextView
    lateinit var materialOpacityValue: TextView
    lateinit var scrimOpacityValue: TextView
    lateinit var blurRadiusValue: TextView
    lateinit var zoomValue: TextView

    lateinit var background: Bitmap

@@ -58,12 +60,14 @@ class GlassActivity : Activity(), SeekBar.OnSeekBarChangeListener {
        materialView = requireViewById(R.id.materialView)
        materialOpacitySeekBar = requireViewById(R.id.materialOpacity)
        blurRadiusSeekBar = requireViewById(R.id.blurRadius)
        zoomSeekBar = requireViewById(R.id.zoom)
        noiseOpacitySeekBar = requireViewById(R.id.noiseOpacity)
        scrimOpacitySeekBar = requireViewById(R.id.scrimOpacity)
        noiseOpacityValue = requireViewById(R.id.noiseOpacityValue)
        materialOpacityValue = requireViewById(R.id.materialOpacityValue)
        scrimOpacityValue = requireViewById(R.id.scrimOpacityValue)
        blurRadiusValue = requireViewById(R.id.blurRadiusValue)
        zoomValue = requireViewById(R.id.zoomValue)

        background = BitmapFactory.decodeResource(resources, R.drawable.background1)
        backgroundView.setImageBitmap(background)
@@ -75,7 +79,7 @@ class GlassActivity : Activity(), SeekBar.OnSeekBarChangeListener {
        scrimOpacitySeekBar.setOnSeekBarChangeListener(this)

        arrayOf(blurRadiusSeekBar, materialOpacitySeekBar, noiseOpacitySeekBar,
                scrimOpacitySeekBar).forEach {
                scrimOpacitySeekBar, zoomSeekBar).forEach {
            it.setOnSeekBarChangeListener(this)
            onProgressChanged(it, it.progress, fromUser = false)
        }
@@ -104,6 +108,10 @@ class GlassActivity : Activity(), SeekBar.OnSeekBarChangeListener {
                materialView.scrimOpacity = progress / seekBar.max.toFloat()
                scrimOpacityValue.text = progress.toString()
            }
            zoomSeekBar -> {
                materialView.zoom = progress / seekBar.max.toFloat()
                zoomValue.text = progress.toString()
            }
            else -> throw IllegalArgumentException("Unknown seek bar")
        }
    }
+12 −1
Original line number Diff line number Diff line
@@ -70,6 +70,12 @@ class GlassView(context: Context, attributeSet: AttributeSet) : View(context, at
            invalidate()
        }

    var zoom = 0.0f
        set(value) {
            field = value
            invalidate()
        }

    var color = Color.BLACK
    set(value) {
        field = value
@@ -107,7 +113,12 @@ class GlassView(context: Context, attributeSet: AttributeSet) : View(context, at
    }

    override fun onDraw(canvas: Canvas?) {
        src.set(left, top, right, bottom)
        src.set(-width/2, -height/2, width/2, height/2)
        src.scale(1.0f + zoom)
        val centerX = left + width / 2
        val centerY = top + height / 2
        src.set(src.left + centerX, src.top + centerY, src.right + centerX, src.bottom + centerY)

        dst.set(0, 0, width, height)
        canvas?.drawBitmap(backgroundBitmap, src, dst, blurPaint)
        canvas?.drawRect(dst, materialPaint)