From b104f45222b56044478cc1b09e8c00f586261cfe Mon Sep 17 00:00:00 2001 From: Grigory Fedorov Date: Mon, 28 Dec 2015 11:23:11 +0500 Subject: [PATCH 1/5] ClientStateManager: possible null pointer crash fixed. --- .../data/extension/csi/ClientStateManager.java | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/xabber/src/main/java/com/xabber/android/data/extension/csi/ClientStateManager.java b/xabber/src/main/java/com/xabber/android/data/extension/csi/ClientStateManager.java index 72489e312f..4a41b282b0 100644 --- a/xabber/src/main/java/com/xabber/android/data/extension/csi/ClientStateManager.java +++ b/xabber/src/main/java/com/xabber/android/data/extension/csi/ClientStateManager.java @@ -4,6 +4,7 @@ import com.xabber.android.data.account.AccountManager; import com.xabber.android.data.connection.ConnectionThread; +import org.jivesoftware.smack.AbstractXMPPConnection; import org.jivesoftware.smack.SmackException; import org.jivesoftware.smack.XMPPConnection; import org.jivesoftware.smack.packet.PlainStreamElement; @@ -31,16 +32,22 @@ protected static void sendClientState(PlainStreamElement element) { AccountManager accountManager = AccountManager.getInstance(); for (String accountName : accountManager.getAccounts()) { AccountItem account = accountManager.getAccount(accountName); - if (account == null) + if (account == null) { continue; + } ConnectionThread connectionThread = account.getConnectionThread(); - if (connectionThread == null) + if (connectionThread == null) { continue; + } - XMPPConnection stream = connectionThread.getXMPPConnection(); - if (stream.hasFeature("csi", ClientStateIndication.NAMESPACE)) + AbstractXMPPConnection xmppConnection = connectionThread.getXMPPConnection(); + if (xmppConnection == null) { + continue; + } + + if (xmppConnection.hasFeature("csi", ClientStateIndication.NAMESPACE)) try { - stream.send(element); + xmppConnection.send(element); } catch (SmackException.NotConnectedException e) { // not connected } From b82f36939d5506ee3c32915efdf0bf571f72c0ca Mon Sep 17 00:00:00 2001 From: Grigory Fedorov Date: Mon, 28 Dec 2015 16:29:47 +0500 Subject: [PATCH 2/5] AccountEditorFragment: possible null pointer crash fixed. --- .../android/ui/preferences/AccountEditorFragment.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/xabber/src/main/java/com/xabber/android/ui/preferences/AccountEditorFragment.java b/xabber/src/main/java/com/xabber/android/ui/preferences/AccountEditorFragment.java index 8aba0d2a79..e0cad56106 100644 --- a/xabber/src/main/java/com/xabber/android/ui/preferences/AccountEditorFragment.java +++ b/xabber/src/main/java/com/xabber/android/ui/preferences/AccountEditorFragment.java @@ -3,6 +3,7 @@ import android.app.Activity; import android.os.Bundle; import android.preference.Preference; +import android.support.annotation.Nullable; import android.widget.Toast; import com.xabber.android.R; @@ -20,11 +21,17 @@ public class AccountEditorFragment extends BaseSettingsFragment { + @Nullable private AccountEditorFragmentInteractionListener mListener; @Override protected void onInflate(Bundle savedInstanceState) { - AccountProtocol protocol = mListener.getAccountItem().getConnectionSettings().getProtocol(); + AccountProtocol protocol; + if (mListener == null) { + return; + } + + protocol = mListener.getAccountItem().getConnectionSettings().getProtocol(); if (protocol == AccountProtocol.xmpp) { addPreferencesFromResource(R.xml.account_editor_xmpp); } else if (protocol == AccountProtocol.gtalk) { From b3a27301ab3dce963ce237dde3ebfff845c2883a Mon Sep 17 00:00:00 2001 From: Grigory Fedorov Date: Mon, 28 Dec 2015 16:31:42 +0500 Subject: [PATCH 3/5] AccountManager: possible null pointer crash fixed. --- .../java/com/xabber/android/data/account/AccountManager.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/xabber/src/main/java/com/xabber/android/data/account/AccountManager.java b/xabber/src/main/java/com/xabber/android/data/account/AccountManager.java index cef8896193..65d1d81b78 100644 --- a/xabber/src/main/java/com/xabber/android/data/account/AccountManager.java +++ b/xabber/src/main/java/com/xabber/android/data/account/AccountManager.java @@ -502,6 +502,10 @@ public void updateAccount(String account, boolean custom, String host, int port, AccountItem result; AccountItem accountItem = getAccount(account); + if (accountItem == null) { + return; + } + if (accountItem.getConnectionSettings().getServerName().equals(serverName) && accountItem.getConnectionSettings().getUserName().equals(userName) && accountItem.getConnectionSettings().getResource().equals(resource)) { From 1029f70e29e6c1bce986523f5637a56e490d0792 Mon Sep 17 00:00:00 2001 From: Grigory Fedorov Date: Mon, 28 Dec 2015 16:45:01 +0500 Subject: [PATCH 4/5] Fixed crash on contact list when RTL used. --- .../src/main/res/layout-ldrtl/contact_list_item_second_line.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xabber/src/main/res/layout-ldrtl/contact_list_item_second_line.xml b/xabber/src/main/res/layout-ldrtl/contact_list_item_second_line.xml index 5ffb8bac8b..9458808f54 100644 --- a/xabber/src/main/res/layout-ldrtl/contact_list_item_second_line.xml +++ b/xabber/src/main/res/layout-ldrtl/contact_list_item_second_line.xml @@ -37,7 +37,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_show_offline_small" - android:tint="?attr/contact_list_contact_small_right_icon_alpha" + android:alpha="?attr/contact_list_contact_small_right_icon_alpha" android:layout_toLeftOf="@id/small_right_text" android:layout_alignBottom="@id/second_line_message" android:layout_marginBottom="2dp" /> From ab8bedda6478a27ef1bd94546e5f418611a42658 Mon Sep 17 00:00:00 2001 From: Grigory Fedorov Date: Mon, 28 Dec 2015 16:53:01 +0500 Subject: [PATCH 5/5] Version 1.0.74 (code 247) --- xabber/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xabber/build.gradle b/xabber/build.gradle index d73ae92cb6..e5fe2bea0e 100644 --- a/xabber/build.gradle +++ b/xabber/build.gradle @@ -7,8 +7,8 @@ android { defaultConfig { minSdkVersion 14 targetSdkVersion 23 - versionCode 246 - versionName '1.0.73' + versionCode 247 + versionName '1.0.74' } compileOptions {