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

Unverified Commit c05365f3 authored by Sebastiano Barezzi's avatar Sebastiano Barezzi
Browse files

Recorder: Redo edge-to-edge configuration

Change-Id: Ieec4776891408a593deb4992e8b31efe8adb9d7b
parent d9b0a6ef
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -28,8 +28,7 @@

        <activity
            android:name=".RecorderActivity"
            android:exported="true"
            android:theme="@style/AppTheme.Main">
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <action android:name="android.intent.action.PHONE_STATE" />
@@ -53,8 +52,7 @@
        <activity
            android:name=".ListActivity"
            android:label="@string/list_title"
            android:parentActivityName=".RecorderActivity"
            android:theme="@style/AppTheme.Main" />
            android:parentActivityName=".RecorderActivity" />

        <activity
            android:name=".DialogActivity"
+19 −3
Original line number Diff line number Diff line
@@ -17,7 +17,11 @@ import android.widget.ProgressBar
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.Toolbar
import androidx.core.view.ViewCompat
import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.isVisible
import androidx.core.view.updatePadding
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.RecyclerView.AdapterDataObserver
@@ -60,6 +64,9 @@ class ListActivity : AppCompatActivity(), RecordingListCallbacks {

        setContentView(R.layout.activity_list)

        // Setup edge-to-edge
        WindowCompat.setDecorFitsSystemWindows(window, false)

        setSupportActionBar(toolbar)
        supportActionBar?.let {
            it.setDisplayShowHomeEnabled(true)
@@ -80,10 +87,19 @@ class ListActivity : AppCompatActivity(), RecordingListCallbacks {
        listRecyclerView.layoutManager = LinearLayoutManager(this)
        listRecyclerView.adapter = adapter

        loadRecordings()
        ViewCompat.setOnApplyWindowInsetsListener(contentView) { _, windowInsets ->
            val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())

            listRecyclerView.updatePadding(
                bottom = insets.bottom,
                left = insets.left,
                right = insets.right,
            )

        Utils.setFullScreen(window, contentView)
        Utils.setVerticalInsets(listRecyclerView)
            windowInsets
        }

        loadRecordings()
    }

    override fun onPlay(uri: Uri) {
+16 −2
Original line number Diff line number Diff line
@@ -29,7 +29,11 @@ import android.widget.ImageView
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat
import androidx.core.view.ViewCompat
import androidx.core.view.WindowCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.isVisible
import androidx.core.view.updatePadding
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.google.android.material.floatingactionbutton.FloatingActionButton
import org.lineageos.recorder.service.SoundRecorderService
@@ -121,13 +125,23 @@ class RecorderActivity : AppCompatActivity(R.layout.activity_main) {
    public override fun onCreate(savedInstance: Bundle?) {
        super.onCreate(savedInstance)

        // Setup edge-to-edge
        WindowCompat.setDecorFitsSystemWindows(window, false)

        floatingActionButton.setOnClickListener { toggleSoundRecorder() }
        pauseResumeImageView.setOnClickListener { togglePause() }
        openSoundListImageView.setOnClickListener { openList() }
        settingsImageView.setOnClickListener { openSettings() }

        Utils.setFullScreen(window, contentView)
        Utils.setVerticalInsets(contentView)
        ViewCompat.setOnApplyWindowInsetsListener(contentView) { _, windowInsets ->
            val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())

            contentView.updatePadding(
                bottom = insets.bottom,
            )

            windowInsets
        }

        lifecycle.addObserver(taskExecutor)

+1 −1
Original line number Diff line number Diff line
@@ -63,7 +63,7 @@ class RecordingItemViewHolder(
    private fun showPopupMenu(view: View) {
        val wrapper = ContextThemeWrapper(
            itemView.context,
            R.style.AppTheme_Main_PopupMenuOverlapAnchor
            R.style.AppTheme_PopupMenuOverlapAnchor
        )
        val popupMenu = PopupMenu(wrapper, view, Gravity.NO_GRAVITY)
        popupMenu.inflate(R.menu.menu_list_item)
+0 −29
Original line number Diff line number Diff line
@@ -7,41 +7,12 @@ package org.lineageos.recorder.utils

import android.app.NotificationManager
import android.content.Context
import android.os.Build
import android.view.View
import android.view.Window
import android.view.inputmethod.InputMethodManager
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import org.lineageos.recorder.service.SoundRecorderService
import java.io.Closeable
import java.io.IOException

object Utils {
    fun setFullScreen(window: Window, view: View) {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
            window.setDecorFitsSystemWindows(false)
            return
        }
        var flags = view.systemUiVisibility
        flags = flags or (View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION)
        view.systemUiVisibility = flags
    }

    fun setVerticalInsets(view: View) {
        ViewCompat.setOnApplyWindowInsetsListener(view) { v: View, insets: WindowInsetsCompat ->
            val systemInsets = insets.getInsets(WindowInsetsCompat.Type.systemBars())

            v.setPadding(
                v.paddingLeft, v.paddingTop,
                v.paddingRight, systemInsets.bottom
            )
            insets
        }
    }

    /**
     * Unconditionally close a `Closeable`.
     *
Loading