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

Commit e8761ca5 authored by Lucas Dupin's avatar Lucas Dupin
Browse files

Add zoom param to glass material

Test: manual
Change-Id: I80bb57261524fb9afcb8214590d2b66c05ba6aca
parent b05a7e59
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)