Loading app/src/main/java/app/fedilab/android/mastodon/activities/ProfileActivity.java +16 −0 Original line number Diff line number Diff line Loading @@ -72,6 +72,7 @@ import com.bumptech.glide.request.target.CustomTarget; import com.bumptech.glide.request.transition.Transition; import com.google.android.material.chip.Chip; import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.shape.ShapeAppearanceModel; import com.google.android.material.tabs.TabLayout; import java.io.File; Loading Loading @@ -456,6 +457,21 @@ public class ProfileActivity extends BaseActivity { boolean disableGif = sharedpreferences.getBoolean(getString(R.string.SET_DISABLE_GIF), false); String targetedUrl = disableGif ? account.avatar_static : account.avatar; // MastodonHelper.loadPPMastodon(binding.accountPp, account); String profileImageShapePref = sharedpreferences.getString(getString(R.string.SET_PROFILE_IMAGE_SHAPE), "rounded_square"); binding.accountPp.setShapeAppearanceModel( ShapeAppearanceModel .builder( this, R.style.ShapeAppearance_MaterialComponents, switch (profileImageShapePref) { case "circle" -> R.style.ShapeAppearanceOverlay_Fedilab_ProfileImage_Circle; case "diamond" -> R.style.ShapeAppearanceOverlay_Fedilab_ProfileImage_Diamond; case "octagon" -> R.style.ShapeAppearanceOverlay_Fedilab_ProfileImage_Octagon; case "square" -> R.style.ShapeAppearanceOverlay_Fedilab_ProfileImage_Square; default -> R.style.ShapeAppearanceOverlay_Fedilab_ProfileImage_RoundedSquare; }) .build() ); Glide.with(ProfileActivity.this) .asDrawable() .dontTransform() Loading app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentInterfaceSettings.java +20 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,10 @@ public class FragmentInterfaceSettings extends PreferenceFragmentCompat implemen return; } ListPreference SET_PROFILE_IMAGE_SHAPE = findPreference(getString(R.string.SET_PROFILE_IMAGE_SHAPE)); if (SET_PROFILE_IMAGE_SHAPE != null) SET_PROFILE_IMAGE_SHAPE.setIcon(getProfileImageShapeDrawable(SET_PROFILE_IMAGE_SHAPE.getValue())); //Theme for dialogs ImageListPreference SET_LOGO_LAUNCHER = findPreference(getString(R.string.SET_LOGO_LAUNCHER)); if (SET_LOGO_LAUNCHER != null) { Loading Loading @@ -84,6 +88,17 @@ public class FragmentInterfaceSettings extends PreferenceFragmentCompat implemen recreate = false; } private int getProfileImageShapeDrawable(String profileImageShapePrefValue) { return switch (profileImageShapePrefValue) { case "circle" -> R.drawable.profile_image_shape_circle; case "diamond" -> R.drawable.profile_image_shape_diamond; case "octagon" -> R.drawable.profile_image_shape_octagon; case "rounded_square" -> R.drawable.profile_image_shape_rounded_square; case "square" -> R.drawable.profile_image_shape_square; default -> 0; }; } @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { if (getActivity() != null) { Loading Loading @@ -116,6 +131,11 @@ public class FragmentInterfaceSettings extends PreferenceFragmentCompat implemen } recreate = true; } if (key.compareToIgnoreCase(getString(R.string.SET_PROFILE_IMAGE_SHAPE)) == 0) { ListPreference SET_PROFILE_IMAGE_SHAPE = findPreference(getString(R.string.SET_PROFILE_IMAGE_SHAPE)); if (SET_PROFILE_IMAGE_SHAPE != null) SET_PROFILE_IMAGE_SHAPE.setIcon(getProfileImageShapeDrawable(SET_PROFILE_IMAGE_SHAPE.getValue())); } if (key.compareToIgnoreCase(getString(R.string.SET_LOGO_LAUNCHER)) == 0) { ListPreference SET_LOGO_LAUNCHER = findPreference(getString(R.string.SET_LOGO_LAUNCHER)); String newLauncher = sharedpreferences.getString(getString(R.string.SET_LOGO_LAUNCHER), "Bubbles"); Loading app/src/main/res/layouts/mastodon/drawable/profile_image_shape_circle.xml 0 → 100644 +9 −0 Original line number Diff line number Diff line <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> <path android:fillColor="?colorOnSurface" android:pathData="m24,12a12,12 0,0 1,-12 12,12 12,0 0,1 -12,-12 12,12 0,0 1,12 -12,12 12,0 0,1 12,12z" /> </vector> app/src/main/res/layouts/mastodon/drawable/profile_image_shape_diamond.xml 0 → 100644 +9 −0 Original line number Diff line number Diff line <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> <path android:fillColor="?colorOnSurface" android:pathData="m12,0 l12,12 -12,12 -12,-12z" /> </vector> app/src/main/res/layouts/mastodon/drawable/profile_image_shape_octagon.xml 0 → 100644 +9 −0 Original line number Diff line number Diff line <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> <path android:fillColor="?colorOnSurface" android:pathData="m16.971,0 l7.029,7.029v9.941l-7.029,7.029 -9.941,-0 -7.029,-7.029 -0,-9.941 7.029,-7.029z" /> </vector> Loading
app/src/main/java/app/fedilab/android/mastodon/activities/ProfileActivity.java +16 −0 Original line number Diff line number Diff line Loading @@ -72,6 +72,7 @@ import com.bumptech.glide.request.target.CustomTarget; import com.bumptech.glide.request.transition.Transition; import com.google.android.material.chip.Chip; import com.google.android.material.dialog.MaterialAlertDialogBuilder; import com.google.android.material.shape.ShapeAppearanceModel; import com.google.android.material.tabs.TabLayout; import java.io.File; Loading Loading @@ -456,6 +457,21 @@ public class ProfileActivity extends BaseActivity { boolean disableGif = sharedpreferences.getBoolean(getString(R.string.SET_DISABLE_GIF), false); String targetedUrl = disableGif ? account.avatar_static : account.avatar; // MastodonHelper.loadPPMastodon(binding.accountPp, account); String profileImageShapePref = sharedpreferences.getString(getString(R.string.SET_PROFILE_IMAGE_SHAPE), "rounded_square"); binding.accountPp.setShapeAppearanceModel( ShapeAppearanceModel .builder( this, R.style.ShapeAppearance_MaterialComponents, switch (profileImageShapePref) { case "circle" -> R.style.ShapeAppearanceOverlay_Fedilab_ProfileImage_Circle; case "diamond" -> R.style.ShapeAppearanceOverlay_Fedilab_ProfileImage_Diamond; case "octagon" -> R.style.ShapeAppearanceOverlay_Fedilab_ProfileImage_Octagon; case "square" -> R.style.ShapeAppearanceOverlay_Fedilab_ProfileImage_Square; default -> R.style.ShapeAppearanceOverlay_Fedilab_ProfileImage_RoundedSquare; }) .build() ); Glide.with(ProfileActivity.this) .asDrawable() .dontTransform() Loading
app/src/main/java/app/fedilab/android/mastodon/ui/fragment/settings/FragmentInterfaceSettings.java +20 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,10 @@ public class FragmentInterfaceSettings extends PreferenceFragmentCompat implemen return; } ListPreference SET_PROFILE_IMAGE_SHAPE = findPreference(getString(R.string.SET_PROFILE_IMAGE_SHAPE)); if (SET_PROFILE_IMAGE_SHAPE != null) SET_PROFILE_IMAGE_SHAPE.setIcon(getProfileImageShapeDrawable(SET_PROFILE_IMAGE_SHAPE.getValue())); //Theme for dialogs ImageListPreference SET_LOGO_LAUNCHER = findPreference(getString(R.string.SET_LOGO_LAUNCHER)); if (SET_LOGO_LAUNCHER != null) { Loading Loading @@ -84,6 +88,17 @@ public class FragmentInterfaceSettings extends PreferenceFragmentCompat implemen recreate = false; } private int getProfileImageShapeDrawable(String profileImageShapePrefValue) { return switch (profileImageShapePrefValue) { case "circle" -> R.drawable.profile_image_shape_circle; case "diamond" -> R.drawable.profile_image_shape_diamond; case "octagon" -> R.drawable.profile_image_shape_octagon; case "rounded_square" -> R.drawable.profile_image_shape_rounded_square; case "square" -> R.drawable.profile_image_shape_square; default -> 0; }; } @Override public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { if (getActivity() != null) { Loading Loading @@ -116,6 +131,11 @@ public class FragmentInterfaceSettings extends PreferenceFragmentCompat implemen } recreate = true; } if (key.compareToIgnoreCase(getString(R.string.SET_PROFILE_IMAGE_SHAPE)) == 0) { ListPreference SET_PROFILE_IMAGE_SHAPE = findPreference(getString(R.string.SET_PROFILE_IMAGE_SHAPE)); if (SET_PROFILE_IMAGE_SHAPE != null) SET_PROFILE_IMAGE_SHAPE.setIcon(getProfileImageShapeDrawable(SET_PROFILE_IMAGE_SHAPE.getValue())); } if (key.compareToIgnoreCase(getString(R.string.SET_LOGO_LAUNCHER)) == 0) { ListPreference SET_LOGO_LAUNCHER = findPreference(getString(R.string.SET_LOGO_LAUNCHER)); String newLauncher = sharedpreferences.getString(getString(R.string.SET_LOGO_LAUNCHER), "Bubbles"); Loading
app/src/main/res/layouts/mastodon/drawable/profile_image_shape_circle.xml 0 → 100644 +9 −0 Original line number Diff line number Diff line <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> <path android:fillColor="?colorOnSurface" android:pathData="m24,12a12,12 0,0 1,-12 12,12 12,0 0,1 -12,-12 12,12 0,0 1,12 -12,12 12,0 0,1 12,12z" /> </vector>
app/src/main/res/layouts/mastodon/drawable/profile_image_shape_diamond.xml 0 → 100644 +9 −0 Original line number Diff line number Diff line <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> <path android:fillColor="?colorOnSurface" android:pathData="m12,0 l12,12 -12,12 -12,-12z" /> </vector>
app/src/main/res/layouts/mastodon/drawable/profile_image_shape_octagon.xml 0 → 100644 +9 −0 Original line number Diff line number Diff line <vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="24dp" android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> <path android:fillColor="?colorOnSurface" android:pathData="m16.971,0 l7.029,7.029v9.941l-7.029,7.029 -9.941,-0 -7.029,-7.029 -0,-9.941 7.029,-7.029z" /> </vector>