Remove icon padding from the left side of preferences

`ProfilePicturePreference` image preview has been moved to the right side as a result.
This commit is contained in:
lynxnb 2023-03-07 15:53:29 +01:00 committed by Niccolò Betto
parent 6fcb09bd2d
commit a4a5bedeea
6 changed files with 86 additions and 5 deletions

View File

@ -19,14 +19,18 @@ import androidx.activity.result.contract.ActivityResultContracts
import androidx.preference.Preference import androidx.preference.Preference
import androidx.preference.Preference.SummaryProvider import androidx.preference.Preference.SummaryProvider
import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager
import androidx.preference.R import emu.skyline.R
import emu.skyline.SkylineApplication import emu.skyline.SkylineApplication
import emu.skyline.getPublicFilesDir import emu.skyline.getPublicFilesDir
import java.io.File import java.io.File
import java.io.FileOutputStream import java.io.FileOutputStream
import java.io.InputStream import java.io.InputStream
class ProfilePicturePreference @JvmOverloads constructor(context : Context, attrs : AttributeSet? = null, defStyleAttr : Int = R.attr.preferenceStyle) : Preference(context, attrs, defStyleAttr) { class ProfilePicturePreference @JvmOverloads constructor(context : Context, attrs : AttributeSet? = null, defStyleAttr : Int = androidx.preference.R.attr.preferenceStyle) : Preference(context, attrs, defStyleAttr) {
init {
layoutResource = R.layout.preference_profile_picture
}
private val skylineFilesDir = SkylineApplication.instance.getPublicFilesDir().canonicalPath private val skylineFilesDir = SkylineApplication.instance.getPublicFilesDir().canonicalPath
private val profilePictureDir = "$skylineFilesDir/switch/nand/system/save/8000000000000010/su/avators" private val profilePictureDir = "$skylineFilesDir/switch/nand/system/save/8000000000000010/su/avators"
private val profilePicture = "$profilePictureDir/profile_picture.jpeg" private val profilePicture = "$profilePictureDir/profile_picture.jpeg"

View File

@ -9,7 +9,7 @@
android:gravity="center_vertical" android:gravity="center_vertical"
android:minHeight="?android:attr/listPreferredItemHeightSmall" android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:orientation="horizontal" android:orientation="horizontal"
android:paddingStart="72dp" android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"> android:paddingEnd="?android:attr/listPreferredItemPaddingEnd">
<LinearLayout <LinearLayout

View File

@ -6,7 +6,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="16dp" android:layout_marginTop="16dp"
android:layout_marginBottom="16dp" android:layout_marginBottom="16dp"
android:paddingStart="72dp" android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
android:textAlignment="viewStart" android:textAlignment="viewStart"
android:textColor="?attr/colorAccent" android:textColor="?attr/colorAccent"

View File

@ -12,7 +12,7 @@
android:gravity="center_vertical" android:gravity="center_vertical"
android:minHeight="?android:attr/listPreferredItemHeightSmall" android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:orientation="vertical" android:orientation="vertical"
android:paddingStart="72dp" android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingTop="16dp" android:paddingTop="16dp"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
android:paddingBottom="16dp"> android:paddingBottom="16dp">

View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:baselineAligned="false"
android:clipToPadding="false"
android:gravity="center_vertical"
android:minHeight="?android:attr/listPreferredItemHeightSmall"
android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
tools:ignore="PrivateResource">
<RelativeLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:paddingTop="16dp"
android:paddingBottom="16dp">
<TextView
android:id="@android:id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="marquee"
android:singleLine="true"
android:textAppearance="?android:attr/textAppearanceListItem"
tools:text="Profile picture" />
<TextView
android:id="@android:id/summary"
style="@style/PreferenceSummaryTextStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@android:id/title"
android:layout_alignStart="@android:id/title"
android:layout_gravity="start"
android:maxLines="10"
android:textAlignment="viewStart"
android:textColor="?android:attr/textColorSecondary"
tools:text="No picture selected" />
</RelativeLayout>
<com.google.android.material.card.MaterialCardView
style="@style/Widget.Material3.CardView.Elevated"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout
android:id="@+id/icon_frame"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="start|center_vertical"
android:orientation="horizontal">
<androidx.preference.internal.PreferenceImageView
android:id="@android:id/icon"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:maxHeight="56dp"
app:maxWidth="56dp"
tools:layout_height="56dp"
tools:layout_width="56dp" />
</LinearLayout>
</com.google.android.material.card.MaterialCardView>
</LinearLayout>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Override of the resources used by androidx preferences -->
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Remove preserved icon space -->
<bool name="config_materialPreferenceIconSpaceReserved" tools:ignore="MissingDefaultResource,PrivateResource">false</bool>
</resources>