aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChristian S <christian@pix-art.de>2016-03-13 12:07:28 +0100
committerChristian S <christian@pix-art.de>2016-03-13 12:07:28 +0100
commitecbf5f6459584fdd694ded4ffc650b685381548e (patch)
tree4d17928512dff1b60dd9de0343bf6992dd41aab4 /src
parent73907600fa340eb51b9d297e94cdbdca981e0d2b (diff)
parent817d344521835622a625c8263141dc1148fff451 (diff)
Merge branch 'siacs/master' into development
Diffstat (limited to 'src')
-rw-r--r--src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java4
-rw-r--r--src/main/java/eu/siacs/conversations/ui/ConversationActivity.java14
-rw-r--r--src/main/java/eu/siacs/conversations/ui/ConversationFragment.java15
-rw-r--r--src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java5
-rw-r--r--src/main/java/eu/siacs/conversations/ui/XmppActivity.java2
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java4
-rw-r--r--src/main/res/values-de/strings.xml22
-rw-r--r--src/main/res/values/strings.xml1
8 files changed, 49 insertions, 18 deletions
diff --git a/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java b/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java
index b975a0017..2ce737968 100644
--- a/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java
+++ b/src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java
@@ -415,8 +415,10 @@ public class DatabaseBackend extends SQLiteOpenHelper {
Cursor cursor = db.query(ServiceDiscoveryResult.TABLENAME, null,
ServiceDiscoveryResult.HASH + "=? AND " + ServiceDiscoveryResult.VER + "=?",
selectionArgs, null, null, null);
- if (cursor.getCount() == 0)
+ if (cursor.getCount() == 0) {
+ cursor.close();
return null;
+ }
cursor.moveToFirst();
ServiceDiscoveryResult result = null;
diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java
index 14f6ac3f4..e45ffd432 100644
--- a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java
@@ -1444,7 +1444,9 @@ public class ConversationActivity extends XmppActivity
}
private void openBatteryOptimizationDialogIfNeeded() {
- if (showBatteryOptimizationWarning() && getPreferences().getBoolean("show_battery_optimization", true)) {
+ if (hasAccountWithoutPush()
+ && isOptimizingBattery()
+ && getPreferences().getBoolean("show_battery_optimization", true)) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(R.string.battery_optimizations_enabled);
builder.setMessage(R.string.battery_optimizations_enabled_dialog);
@@ -1469,6 +1471,16 @@ public class ConversationActivity extends XmppActivity
}
}
+ private boolean hasAccountWithoutPush() {
+ for(Account account : xmppConnectionService.getAccounts()) {
+ if (account.getStatus() != Account.State.DISABLED
+ && !xmppConnectionService.getPushManagementService().available(account)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
private void attachLocationToConversation(Conversation conversation, Uri uri) {
if (conversation == null) {
return;
diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java
index 02c09a5f2..3a889bacf 100644
--- a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java
+++ b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java
@@ -777,6 +777,17 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
}
}
+ private OnClickListener mEnableAccountListener = new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ final Account account = conversation == null ? null : conversation.getAccount();
+ if (account != null) {
+ account.setOption(Account.OPTION_DISABLED, false);
+ activity.xmppConnectionService.updateAccount(account);
+ }
+ }
+ };
+
private OnClickListener mUnblockClickListener = new OnClickListener() {
@Override
public void onClick(final View v) {
@@ -822,7 +833,9 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
final Account account = conversation.getAccount();
final Contact contact = conversation.getContact();
final int mode = conversation.getMode();
- if (conversation.isBlocked()) {
+ if (account.getStatus() == Account.State.DISABLED) {
+ showSnackbar(R.string.this_account_is_disabled, R.string.enable, this.mEnableAccountListener);
+ } else if (conversation.isBlocked()) {
showSnackbar(R.string.contact_blocked, R.string.unblock, this.mUnblockClickListener);
} else if (!contact.showInRoster() && contact.getOption(Contact.Options.PENDING_SUBSCRIPTION_REQUEST)) {
showSnackbar(R.string.contact_added_you, R.string.add_back, this.mAddBackClickListener);
diff --git a/src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java b/src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java
index b05e4e44a..10c6b685d 100644
--- a/src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java
@@ -641,11 +641,12 @@ public class EditAccountActivity extends XmppActivity implements OnAccountUpdate
this.mRegisterNew.setChecked(false);
}
if (this.mAccount.isOnlineAndConnected() && !this.mFetchingAvatar) {
+ Features features = this.mAccount.getXmppConnection().getFeatures();
this.mStats.setVisibility(View.VISIBLE);
- this.mBatteryOptimizations.setVisibility(showBatteryOptimizationWarning() ? View.VISIBLE : View.GONE);
+ boolean showOptimizingWarning = !xmppConnectionService.getPushManagementService().available(mAccount) && isOptimizingBattery();
+ this.mBatteryOptimizations.setVisibility(showOptimizingWarning ? View.VISIBLE : View.GONE);
this.mSessionEst.setText(UIHelper.readableTimeDifferenceFull(this, this.mAccount.getXmppConnection()
.getLastSessionEstablished()));
- Features features = this.mAccount.getXmppConnection().getFeatures();
if (features.rosterVersioning()) {
this.mServerInfoRosterVersion.setText(R.string.server_info_available);
} else {
diff --git a/src/main/java/eu/siacs/conversations/ui/XmppActivity.java b/src/main/java/eu/siacs/conversations/ui/XmppActivity.java
index 3c109967b..1114560ba 100644
--- a/src/main/java/eu/siacs/conversations/ui/XmppActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/XmppActivity.java
@@ -394,7 +394,7 @@ public abstract class XmppActivity extends Activity {
return super.onCreateOptionsMenu(menu);
}
- protected boolean showBatteryOptimizationWarning() {
+ protected boolean isOptimizingBattery() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
PowerManager pm = (PowerManager) getSystemService(POWER_SERVICE);
return !pm.isIgnoringBatteryOptimizations(getPackageName());
diff --git a/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java b/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java
index dc6021284..ee67a5f95 100644
--- a/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java
@@ -915,11 +915,11 @@ public class XmppConnection implements Runnable {
sendPostBindInitialization();
}
} else {
- Log.d(Config.LOGTAG, account.getJid() + ": disconnecting because of bind failure");
+ Log.d(Config.LOGTAG, account.getJid() + ": disconnecting because of bind failure. (no jid)");
disconnect(true);
}
} else {
- Log.d(Config.LOGTAG, account.getJid() + ": disconnecting because of bind failure");
+ Log.d(Config.LOGTAG, account.getJid() + ": disconnecting because of bind failure ("+packet.toString());
disconnect(true);
}
}
diff --git a/src/main/res/values-de/strings.xml b/src/main/res/values-de/strings.xml
index 81e03e7c0..920bf62b6 100644
--- a/src/main/res/values-de/strings.xml
+++ b/src/main/res/values-de/strings.xml
@@ -158,7 +158,7 @@
<string name="mgmt_account_disable">Vorübergehend abschalten</string>
<string name="mgmt_account_publish_avatar">Avatar veröffentlichen</string>
<string name="mgmt_account_publish_pgp">Öffentlichen OpenPGP-Schlüssel veröffentlichen</string>
- <string name="mgmt_account_enable">Anschalten</string>
+ <string name="mgmt_account_enable">Aktivieren </string>
<string name="mgmt_account_are_you_sure">Bist du dir sicher?</string>
<string name="mgmt_account_delete_confirm_text">Wenn du dein Konto löschst, gehen alle Gesprächsverläufe verloren</string>
<string name="attach_record_voice">Sprache aufzeichnen</string>
@@ -213,7 +213,7 @@
<string name="other_devices">Andere Geräte</string>
<string name="trust_omemo_fingerprints">OMEMO-Fingerabdruck vertrauen</string>
<string name="fetching_keys">Schlüssel werden abgerufen …</string>
- <string name="done">Erledigt</string>
+ <string name="done">Fertig</string>
<string name="verify">Überprüfen</string>
<string name="decrypt">Entschlüsseln</string>
<string name="conferences">Konferenzen</string>
@@ -236,6 +236,7 @@
<string name="bookmark_already_exists">Die Konferenz befindet sich bereits auf deiner Kontaktliste</string>
<string name="you">Du</string>
<string name="action_edit_subject">Konferenz-Thema bearbeiten</string>
+ <string name="joining_conference">Konferenz wird betreten…</string>
<string name="leave">Verlassen</string>
<string name="contact_added_you">Der Kontakt hat dich zur Kontaktliste hinzugefügt</string>
<string name="add_back">Auch hinzufügen</string>
@@ -392,7 +393,7 @@
<string name="current_password">Aktuelles Passwort</string>
<string name="new_password">Neues Passwort</string>
<string name="password_should_not_be_empty">Das Passwort darf nicht leer sein</string>
- <string name="enable_all_accounts">Alle Konten anschalten</string>
+ <string name="enable_all_accounts">Alle Konten aktiveren</string>
<string name="disable_all_accounts">Alle Konten abschalten</string>
<string name="perform_action_with">Aktion durchführen mit</string>
<string name="no_affiliation">Keine Zugehörigkeit</string>
@@ -506,7 +507,9 @@
<string name="pref_away_when_screen_off">Abwesend bei abgeschaltetem Bildschirm</string>
<string name="pref_away_when_screen_off_summary">Setzt deinen Status auf \"abwesend\", solange dein Bildschirm abgeschaltet ist</string>
<string name="pref_xa_on_silent_mode">Nicht verfügbar bei Stummschaltung</string>
- <string name="pref_xa_on_silent_mode_summary">Setzt deinen Status auf \"nicht verfügbar\", solange dein Telefon lautlos ist</string>
+ <string name="pref_xa_on_silent_mode_summary">Setzt deinen Status auf \"nicht verfügbar\", solange dein Gerät lautlos ist</string>
+ <string name="pref_treat_vibrate_as_silent">Behandle Vibration als stumm</string>
+ <string name="pref_treat_vibrate_as_silent_summary">Setze deinen Status auf \"nicht verfügbar\" solange dein Gerät auf \"vibrieren\" ist.</string>
<string name="hostname_example">xmpp.domain.de</string>
<string name="action_add_account_with_certificate">Konto mit Zertifikat hinzufügen</string>
<string name="unable_to_parse_certificate">Zertifikat kann nicht gelesen werden</string>
@@ -591,13 +594,12 @@
<string name="correct_message">Nachricht korrigieren</string>
<string name="send_corrected_message">Korrigierte Nachricht senden</string>
<string name="conference_shutdown">Konferenz wurde geschlossen</string>
- <string name="joining_conference">Konferent wird beigetreten…</string>
<string name="conference_name">Konferenz-Name</string>
<string name="invalid_conference_name">Ungültiger Konferenz-Name</string>
- <string name="no_keys_just_confirm">Du vertraust diesem Kontakt bereits. Mit einem Klick auf \'Erledigt\' bestätigst du lediglich, dass %s Teil dieser Konferenz ist.</string>
- <string name="pref_treat_vibrate_as_silent">Vibrationsmodus wie stummgeschaltet behandeln</string>
- <string name="pref_treat_vibrate_as_silent_summary">Setzt deinen Status auf nicht verfügbar, wenn sich dein Gerät im Vibrationsmodus befindet</string>
- <string name="check_x_filesize_on_host">%1$s-Größe auf %2$s prüfen</string>
- <string name="select_image_and_crop">Bild auswählen und zuschneiden</string>
+ <string name="check_x_filesize_on_host">%1$s-Größe auf %2$s prüfen</string>
<string name="contact_has_no_pgp_key">Pix-Art Messenger ist nicht in der Lage, deine Nachrichten zu verschlüsseln, weil dein Kontakt seinen Schlüssel nicht preisgibt.\n\n</string>
+ <string name="no_keys_just_confirm">Du vertraust diesem Kontakt bereits. In dem du \'Fertig\' auswählst bestätigst Du, dass %s Teil dieser Konferenz ist.</string>
+ <string name="select_image_and_crop">Bild auswählen und zuschneiden</string>
+ <string name="this_account_is_disabled">Du hast diesen Account deaktiviert</string>
+
</resources>
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index 0603fb5ff..0cefd4f46 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -628,4 +628,5 @@
<string name="no_keys_just_confirm">You already trust this contact. By selecting \'done\' you are just confirming that %s is part of this conference.</string>
<string name="select_image_and_crop">Select image and crop</string>
<string name="contacts_have_no_pgp_keys">Pix-Art Messenger is unable to encrypt your messages because your contacts are not announcing their public keys.\n\n</string>
+ <string name="this_account_is_disabled">You have disabled this account</string>
</resources>