diff --git a/app/src/main/java/org/linphone/activities/MainActivity.java b/app/src/main/java/org/linphone/activities/MainActivity.java index 6ac2ac6ae..0d4a00bb2 100644 --- a/app/src/main/java/org/linphone/activities/MainActivity.java +++ b/app/src/main/java/org/linphone/activities/MainActivity.java @@ -675,6 +675,7 @@ public abstract class MainActivity extends LinphoneGenericActivity private void displayDNDSettingsDialog() { if (!LinphonePreferences.instance().isDNDSettingsPopupEnabled()) return; + Log.w("[Permission] Asking user to grant us permission to read DND settings"); final Dialog dialog = displayDialog(getString(R.string.pref_grant_read_dnd_settings_permission_desc)); @@ -705,8 +706,6 @@ public abstract class MainActivity extends LinphoneGenericActivity new View.OnClickListener() { @Override public void onClick(View v) { - Log.w( - "[Permission] Asking user to grant us permission to read DND settings"); startActivity( new Intent("android.settings.NOTIFICATION_POLICY_ACCESS_SETTINGS")); dialog.dismiss(); diff --git a/app/src/main/java/org/linphone/contacts/ContactDetailsFragment.java b/app/src/main/java/org/linphone/contacts/ContactDetailsFragment.java index 462f1c7f4..828b122a5 100644 --- a/app/src/main/java/org/linphone/contacts/ContactDetailsFragment.java +++ b/app/src/main/java/org/linphone/contacts/ContactDetailsFragment.java @@ -220,7 +220,7 @@ public class ContactDetailsFragment extends Fragment implements ContactsUpdatedL TableLayout controls = view.findViewById(R.id.controls); controls.removeAllViews(); for (LinphoneNumberOrAddress noa : mContact.getNumbersOrAddresses()) { - boolean skip = false; + boolean skip; View v = inflater.inflate(R.layout.contact_control_row, null); String value = noa.getValue(); diff --git a/app/src/main/java/org/linphone/contacts/ContactEditorFragment.java b/app/src/main/java/org/linphone/contacts/ContactEditorFragment.java index 544b1a8a9..835d112ab 100644 --- a/app/src/main/java/org/linphone/contacts/ContactEditorFragment.java +++ b/app/src/main/java/org/linphone/contacts/ContactEditorFragment.java @@ -194,7 +194,7 @@ public class ContactEditorFragment extends Fragment { ContactsManager.getInstance().fetchContactsAsync(); } - getFragmentManager().popBackStackImmediate(); + getFragmentManager().popBackStack(); if (mIsNewContact || getResources().getBoolean(R.bool.isTablet)) { ((ContactsActivity) getActivity()).showContactDetails(mContact); } diff --git a/app/src/main/java/org/linphone/contacts/LinphoneContact.java b/app/src/main/java/org/linphone/contacts/LinphoneContact.java index 284eb052f..b3e6a0400 100644 --- a/app/src/main/java/org/linphone/contacts/LinphoneContact.java +++ b/app/src/main/java/org/linphone/contacts/LinphoneContact.java @@ -199,7 +199,7 @@ public class LinphoneContact extends AndroidContact Number or address related */ - private void addNumberOrAddress(LinphoneNumberOrAddress noa) { + private synchronized void addNumberOrAddress(LinphoneNumberOrAddress noa) { if (noa == null) return; if (noa.isSIPAddress()) { mHasSipAddress = true; @@ -220,7 +220,7 @@ public class LinphoneContact extends AndroidContact } } - public List getNumbersOrAddresses() { + public synchronized List getNumbersOrAddresses() { return mAddresses; } @@ -242,7 +242,7 @@ public class LinphoneContact extends AndroidContact return mHasSipAddress; } - public void removeNumberOrAddress(LinphoneNumberOrAddress noa) { + public synchronized void removeNumberOrAddress(LinphoneNumberOrAddress noa) { if (noa != null && noa.getOldValue() != null) { removeNumberOrAddress(noa.getOldValue(), noa.isSIPAddress()); @@ -268,7 +268,7 @@ public class LinphoneContact extends AndroidContact } } - public void addOrUpdateNumberOrAddress(LinphoneNumberOrAddress noa) { + public synchronized void addOrUpdateNumberOrAddress(LinphoneNumberOrAddress noa) { if (noa != null && noa.getValue() != null) { addNumberOrAddress(noa.getValue(), noa.getOldValue(), noa.isSIPAddress()); @@ -299,7 +299,7 @@ public class LinphoneContact extends AndroidContact } } - public void clearAddresses() { + public synchronized void clearAddresses() { mAddresses.clear(); } @@ -345,7 +345,7 @@ public class LinphoneContact extends AndroidContact mFriend.removePhoneNumber(phone); } } - for (LinphoneNumberOrAddress noa : mAddresses) { + for (LinphoneNumberOrAddress noa : getNumbersOrAddresses()) { if (noa.isSIPAddress()) { Address addr = core.interpretUrl(noa.getValue()); if (addr != null) { @@ -401,7 +401,7 @@ public class LinphoneContact extends AndroidContact public boolean isInFriendList() { if (mFriend == null) return false; - for (LinphoneNumberOrAddress noa : mAddresses) { + for (LinphoneNumberOrAddress noa : getNumbersOrAddresses()) { PresenceModel pm = mFriend.getPresenceModelForUriOrTel(noa.getValue()); if (pm != null && pm.getBasicStatus().equals(PresenceBasicStatus.Open)) { return true; @@ -451,7 +451,7 @@ public class LinphoneContact extends AndroidContact setPhotoUri(getContactPictureUri()); } - public void syncValuesFromFriend() { + public synchronized void syncValuesFromFriend() { if (isFriend()) { mAddresses = new ArrayList<>(); mFullName = mFriend.getName(); @@ -482,7 +482,7 @@ public class LinphoneContact extends AndroidContact } } - private void syncValuesFromAndroidContact(Context context) { + private synchronized void syncValuesFromAndroidContact(Context context) { Cursor c = context.getContentResolver() .query(