From 897a1bec71af0d13434b88cac4196ce9138f5887 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Adrien=20B=C3=A9raud?= <adrien.beraud@savoirfairelinux.com>
Date: Wed, 20 May 2020 20:53:17 -0400
Subject: [PATCH] blacklist: update on account change

Change-Id: I25aa432f17adad155a8f9d474b211cc65ee4e46c
---
 .../cx/ring/account/AccountEditionFragment.java    | 14 ++++++++++++--
 .../cx/ring/contactrequests/BlackListFragment.java | 10 +++++++++-
 .../src/main/java/cx/ring/model/Interaction.java   |  2 +-
 3 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/ring-android/app/src/main/java/cx/ring/account/AccountEditionFragment.java b/ring-android/app/src/main/java/cx/ring/account/AccountEditionFragment.java
index 7eb03356a..bcf4a92a2 100644
--- a/ring-android/app/src/main/java/cx/ring/account/AccountEditionFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/account/AccountEditionFragment.java
@@ -126,15 +126,17 @@ public class AccountEditionFragment extends BaseSupportFragment<AccountEditionPr
         toggleView(accountId, true);
         FragmentManager fragmentManager = getChildFragmentManager();
         Fragment existingFragment = fragmentManager.findFragmentByTag(JamiAccountSummaryFragment.TAG);
+        Bundle args = new Bundle();
+        args.putString(ACCOUNT_ID_KEY, accountId);
         if (existingFragment == null) {
             JamiAccountSummaryFragment fragment = new JamiAccountSummaryFragment();
-            Bundle args = new Bundle();
-            args.putString(ACCOUNT_ID_KEY, accountId);
             fragment.setArguments(args);
             fragmentManager.beginTransaction()
                     .add(R.id.fragment_container, fragment, JamiAccountSummaryFragment.TAG)
                     .commit();
         } else {
+            if (!existingFragment.isStateSaved())
+                existingFragment.setArguments(args);
             ((JamiAccountSummaryFragment) existingFragment).setAccount(accountId);
         }
     }
@@ -149,6 +151,14 @@ public class AccountEditionFragment extends BaseSupportFragment<AccountEditionPr
         binding.pager.setOffscreenPageLimit(4);
         binding.slidingTabs.setupWithViewPager(binding.pager);
         binding.pager.setAdapter(new PreferencesPagerAdapter(getChildFragmentManager(), getActivity(), accountId, isJami));
+        BlackListFragment existingFragment = (BlackListFragment) getChildFragmentManager().findFragmentByTag(BlackListFragment.TAG);
+        if (existingFragment != null) {
+            Bundle args = new Bundle();
+            args.putString(ACCOUNT_ID_KEY, accountId);
+            if (!existingFragment.isStateSaved())
+                existingFragment.setArguments(args);
+            existingFragment.setAccount(accountId);
+        }
     }
 
     @Override
diff --git a/ring-android/app/src/main/java/cx/ring/contactrequests/BlackListFragment.java b/ring-android/app/src/main/java/cx/ring/contactrequests/BlackListFragment.java
index ef0787af5..623e7b2a0 100644
--- a/ring-android/app/src/main/java/cx/ring/contactrequests/BlackListFragment.java
+++ b/ring-android/app/src/main/java/cx/ring/contactrequests/BlackListFragment.java
@@ -38,6 +38,7 @@ import cx.ring.client.HomeActivity;
 import cx.ring.databinding.FragBlacklistBinding;
 import cx.ring.model.CallContact;
 import cx.ring.mvp.BaseSupportFragment;
+import cx.ring.utils.DeviceUtils;
 
 public class BlackListFragment extends BaseSupportFragment<BlackListPresenter> implements BlackListView,
         BlackListViewHolder.BlackListListeners {
@@ -69,7 +70,10 @@ public class BlackListFragment extends BaseSupportFragment<BlackListPresenter> i
             return;
         }
         presenter.setAccountId(getArguments().getString(AccountEditionFragment.ACCOUNT_ID_KEY));
-        ((HomeActivity) getActivity()).setToolbarTitle(R.string.ic_blacklist_menu);
+        HomeActivity activity = (HomeActivity) getActivity();
+        if (activity != null && DeviceUtils.isTablet(activity)) {
+            activity.setTabletTitle(R.string.ic_blacklist_menu);
+        }
     }
 
     @Override
@@ -109,4 +113,8 @@ public class BlackListFragment extends BaseSupportFragment<BlackListPresenter> i
     public void displayEmptyListMessage(final boolean display) {
         binding.emptyTextView.setVisibility(display ? View.VISIBLE : View.GONE);
     }
+
+    public void setAccount(String accountId) {
+        presenter.setAccountId(accountId);
+    }
 }
\ No newline at end of file
diff --git a/ring-android/libringclient/src/main/java/cx/ring/model/Interaction.java b/ring-android/libringclient/src/main/java/cx/ring/model/Interaction.java
index 2c5a99b06..545c21158 100644
--- a/ring-android/libringclient/src/main/java/cx/ring/model/Interaction.java
+++ b/ring-android/libringclient/src/main/java/cx/ring/model/Interaction.java
@@ -153,7 +153,7 @@ public class Interaction {
     }
 
     JsonObject toJson(String value) {
-        return new JsonParser().parse(value).getAsJsonObject();
+        return JsonParser.parseString(value).getAsJsonObject();
     }
 
     String fromJson(JsonObject json) {
-- 
GitLab