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 @@
-
-