diff --git a/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java index 19cdf94668ed84e6e50a67385f7020caf2c3ca54..f672d495dee03c823209b43705a5b4ed3710535e 100644 --- a/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java +++ b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java @@ -2724,8 +2724,7 @@ public class XmppConnectionService extends Service { } } - public void createContact(Contact contact) { - boolean autoGrant = getBooleanPreference("grant_new_contacts", R.bool.grant_new_contacts); + public void createContact(Contact contact, boolean autoGrant) { if (autoGrant) { contact.setOption(Contact.Options.PREEMPTIVE_GRANT); contact.setOption(Contact.Options.ASKING); diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java index 2c6ec41d203d70dff4487312c76ab9f70c935444..1951fb6cbfe1f59e1fe964b2148a0a1b22c76c67 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java @@ -309,7 +309,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke public void onClick(View v) { final Contact contact = conversation == null ? null : conversation.getContact(); if (contact != null) { - activity.xmppConnectionService.createContact(contact); + activity.xmppConnectionService.createContact(contact,true); activity.switchToContactDetails(contact); } } @@ -1701,6 +1701,8 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke setupIme(); + final boolean scrolledToBottomAndNoPending = this.scrolledToBottom() && pendingScrollState.peek() == null; + this.binding.textSendButton.setContentDescription(activity.getString(R.string.send_message_to_x, conversation.getName())); this.binding.textinput.setKeyboardListener(null); this.binding.textinput.setText(""); @@ -1710,8 +1712,6 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke refresh(false); this.conversation.messagesLoaded.set(true); - final boolean scrolledToBottomAndNoPending = this.scrolledToBottom() && pendingScrollState.peek() == null; - Log.d(Config.LOGTAG,"scrolledToBottomAndNoPending="+Boolean.toString(scrolledToBottomAndNoPending)); if (hasExtras || scrolledToBottomAndNoPending) { diff --git a/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java b/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java index ad0cb58f65f4a0e2d90643cc83d524ac47339f3f..7150c87f21c6c23c117bba0858f566a77fe66905 100644 --- a/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/SettingsActivity.java @@ -91,6 +91,8 @@ public class SettingsActivity extends XmppActivity implements } } + PreferenceScreen mainPreferenceScreen = (PreferenceScreen) mSettingsFragment.findPreference("main_screen"); + //this feature is only available on Huawei Android 6. PreferenceScreen huaweiPreferenceScreen = (PreferenceScreen) mSettingsFragment.findPreference("huawei"); if (huaweiPreferenceScreen != null) { @@ -99,6 +101,11 @@ public class SettingsActivity extends XmppActivity implements if (Build.VERSION.SDK_INT > Build.VERSION_CODES.M || !isCallable(intent)) { PreferenceCategory generalCategory = (PreferenceCategory) mSettingsFragment.findPreference("general"); generalCategory.removePreference(huaweiPreferenceScreen); + if (generalCategory.getPreferenceCount() == 0) { + if (mainPreferenceScreen != null) { + mainPreferenceScreen.removePreference(generalCategory); + } + } } } diff --git a/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java index c12c0c4a81b48eeb1497c8fd574ea68e95f31f69..a13d3f402bf448dc7cf1e9268af23577712384c4 100644 --- a/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java @@ -474,7 +474,7 @@ public class StartConversationActivity extends XmppActivity implements OnRosterU } else if (contact.showInRoster()) { throw new EnterJidDialog.JidError(getString(R.string.contact_already_exists)); } else { - xmppConnectionService.createContact(contact); + xmppConnectionService.createContact(contact,true); if (invite != null && invite.hasFingerprints()) { xmppConnectionService.verifyFingerprints(contact, invite.getFingerprints()); } diff --git a/src/main/java/eu/siacs/conversations/ui/XmppActivity.java b/src/main/java/eu/siacs/conversations/ui/XmppActivity.java index 42cf18872f0706bd7af6c6bfb17c5119f898e839..cf3db93803da9245d8f55aba1f584e4c9197bf15 100644 --- a/src/main/java/eu/siacs/conversations/ui/XmppActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/XmppActivity.java @@ -683,13 +683,7 @@ public abstract class XmppActivity extends AppCompatActivity { builder.setTitle(contact.getJid().toString()); builder.setMessage(getString(R.string.not_in_roster)); builder.setNegativeButton(getString(R.string.cancel), null); - builder.setPositiveButton(getString(R.string.add_contact), - (dialog, which) -> { - final Jid jid = contact.getJid(); - Account account = contact.getAccount(); - Contact contact1 = account.getRoster().getContact(jid); - xmppConnectionService.createContact(contact1); - }); + builder.setPositiveButton(getString(R.string.add_contact), (dialog, which) -> xmppConnectionService.createContact(contact,true)); builder.create().show(); } diff --git a/src/main/res/values/defaults.xml b/src/main/res/values/defaults.xml index 92ffb21f1d4cd6c346e0f4e9ee4ed7ad07cc93ab..bb0096a3924dd67369dad45fcc6768de75c8a24f 100644 --- a/src/main/res/values/defaults.xml +++ b/src/main/res/values/defaults.xml @@ -7,7 +7,6 @@ false false false - true true false false diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index d00bd968ab6d5fe5862f893a5915ed34a49f748a..e6f1ce20ddc5fe7c3b314fc6ce0d0d809f594d5c 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -125,8 +125,6 @@ OpenKeychain reported an error Accept An error has occurred - Grant presence updates - Preemptively grant and request presence subscriptions for contacts you have created Your account Send presence updates Receive presence updates diff --git a/src/main/res/xml/preferences.xml b/src/main/res/xml/preferences.xml index 460f71dbffea814a2f96d6350954cf53f1aa393e..012d8b370fcedc76d7720cee95b08203d62c682a 100644 --- a/src/main/res/xml/preferences.xml +++ b/src/main/res/xml/preferences.xml @@ -1,14 +1,11 @@ - -