From ea984f05532dbd45a1b759c1ea24d7fdf5286d2f Mon Sep 17 00:00:00 2001 From: Thomas Date: Sat, 7 May 2022 19:07:33 +0200 Subject: [PATCH] Fix issue #34 - Avatar and header inversed when editing profile --- .../android/activities/EditProfileActivity.java | 6 ++++-- .../java/app/fedilab/android/helper/Helper.java | 15 +++++++++++++++ .../app/fedilab/android/helper/ThemeHelper.java | 15 --------------- .../settings/FragmentLanguageSettings.java | 3 +-- .../settings/FragmentThemingSettings.java | 4 ++-- 5 files changed, 22 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/activities/EditProfileActivity.java b/app/src/main/java/app/fedilab/android/activities/EditProfileActivity.java index b38b8466..415b121d 100644 --- a/app/src/main/java/app/fedilab/android/activities/EditProfileActivity.java +++ b/app/src/main/java/app/fedilab/android/activities/EditProfileActivity.java @@ -165,9 +165,9 @@ public class EditProfileActivity extends BaseActivity { }); //Actions with the activity accountsVM = new ViewModelProvider(EditProfileActivity.this).get(AccountsVM.class); - binding.headerSelect.setOnClickListener(view -> startActivityForResult(prepareIntent(), EditProfileActivity.PICK_MEDIA_AVATAR)); + binding.headerSelect.setOnClickListener(view -> startActivityForResult(prepareIntent(), EditProfileActivity.PICK_MEDIA_HEADER)); - binding.avatarSelect.setOnClickListener(view -> startActivityForResult(prepareIntent(), EditProfileActivity.PICK_MEDIA_HEADER)); + binding.avatarSelect.setOnClickListener(view -> startActivityForResult(prepareIntent(), EditProfileActivity.PICK_MEDIA_AVATAR)); } @Override @@ -185,6 +185,7 @@ public class EditProfileActivity extends BaseActivity { sendBroadCast(account); binding.avatarProgress.setVisibility(View.GONE); BaseMainActivity.accountWeakReference.get().mastodon_account = account; + Helper.recreateMainActivity(EditProfileActivity.this); }); } else if (requestCode == PICK_MEDIA_HEADER && resultCode == RESULT_OK) { Glide.with(EditProfileActivity.this) @@ -198,6 +199,7 @@ public class EditProfileActivity extends BaseActivity { sendBroadCast(account); binding.headerProgress.setVisibility(View.GONE); BaseMainActivity.accountWeakReference.get().mastodon_account = account; + Helper.recreateMainActivity(EditProfileActivity.this); }); } } diff --git a/app/src/main/java/app/fedilab/android/helper/Helper.java b/app/src/main/java/app/fedilab/android/helper/Helper.java index 8c758d2b..372d143a 100644 --- a/app/src/main/java/app/fedilab/android/helper/Helper.java +++ b/app/src/main/java/app/fedilab/android/helper/Helper.java @@ -82,6 +82,7 @@ import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; import androidx.lifecycle.ViewModelProvider; import androidx.lifecycle.ViewModelStoreOwner; +import androidx.localbroadcastmanager.content.LocalBroadcastManager; import androidx.preference.PreferenceManager; import com.bumptech.glide.Glide; @@ -1473,6 +1474,20 @@ public class Helper { } } + + /** + * Send broadcast to recreate Mainactivity + * + * @param activity - Activity + */ + public static void recreateMainActivity(Activity activity) { + Bundle b = new Bundle(); + b.putBoolean(Helper.RECEIVE_RECREATE_ACTIVITY, true); + Intent intentBD = new Intent(Helper.BROADCAST_DATA); + intentBD.putExtras(b); + LocalBroadcastManager.getInstance(activity).sendBroadcast(intentBD); + } + public static void showKeyboard(Context context, View view) { view.requestFocus(); InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); diff --git a/app/src/main/java/app/fedilab/android/helper/ThemeHelper.java b/app/src/main/java/app/fedilab/android/helper/ThemeHelper.java index a056c067..1f69a6a3 100644 --- a/app/src/main/java/app/fedilab/android/helper/ThemeHelper.java +++ b/app/src/main/java/app/fedilab/android/helper/ThemeHelper.java @@ -18,12 +18,10 @@ import static android.content.Context.WINDOW_SERVICE; import android.app.Activity; import android.content.Context; -import android.content.Intent; import android.content.SharedPreferences; import android.content.res.ColorStateList; import android.content.res.Configuration; import android.content.res.Resources; -import android.os.Bundle; import android.util.DisplayMetrics; import android.util.TypedValue; import android.view.View; @@ -35,7 +33,6 @@ import androidx.annotation.AttrRes; import androidx.annotation.ColorInt; import androidx.core.content.ContextCompat; import androidx.core.graphics.ColorUtils; -import androidx.localbroadcastmanager.content.LocalBroadcastManager; import androidx.preference.PreferenceManager; import com.google.android.material.button.MaterialButton; @@ -365,18 +362,6 @@ public class ThemeHelper { return new ColorStateList(states, colors); } - /** - * Send broadcast to recreate Mainactivity - * - * @param activity - Activity - */ - public static void recreateMainActivity(Activity activity) { - Bundle b = new Bundle(); - b.putBoolean(Helper.RECEIVE_RECREATE_ACTIVITY, true); - Intent intentBD = new Intent(Helper.BROADCAST_DATA); - intentBD.putExtras(b); - LocalBroadcastManager.getInstance(activity).sendBroadcast(intentBD); - } public interface SlideAnimation { void onAnimationEnded(); diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentLanguageSettings.java b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentLanguageSettings.java index a0120611..7e196122 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentLanguageSettings.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentLanguageSettings.java @@ -22,7 +22,6 @@ import androidx.preference.PreferenceFragmentCompat; import app.fedilab.android.R; import app.fedilab.android.helper.Helper; -import app.fedilab.android.helper.ThemeHelper; public class FragmentLanguageSettings extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener { @@ -43,7 +42,7 @@ public class FragmentLanguageSettings extends PreferenceFragmentCompat implement public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { if (key.compareToIgnoreCase(getString(R.string.SET_DEFAULT_LOCALE_NEW)) == 0) { requireActivity().recreate(); - ThemeHelper.recreateMainActivity(requireActivity()); + Helper.recreateMainActivity(requireActivity()); } } diff --git a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java index 2c39513b..a0d07930 100644 --- a/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java +++ b/app/src/main/java/app/fedilab/android/ui/fragment/settings/FragmentThemingSettings.java @@ -108,7 +108,7 @@ public class FragmentThemingSettings extends PreferenceFragmentCompat implements if (key.equals("use_custom_theme")) { createPref(); } - ThemeHelper.recreateMainActivity(requireActivity()); + Helper.recreateMainActivity(requireActivity()); } @@ -298,7 +298,7 @@ public class FragmentThemingSettings extends PreferenceFragmentCompat implements } appEditor.commit(); cyaneaEditor.apply().recreate(requireActivity()); - ThemeHelper.recreateMainActivity(requireActivity()); + Helper.recreateMainActivity(requireActivity()); } catch (IOException e) { e.printStackTrace(); } finally {