make sure account is connected before attempting to download p1s3
This commit is contained in:
parent
aa85b4a17c
commit
c689078d01
2 changed files with 21 additions and 2 deletions
src/main/java/de/pixart/messenger
|
@ -6,6 +6,7 @@ import java.io.IOException;
|
|||
import java.net.InetAddress;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.Proxy;
|
||||
import java.net.URL;
|
||||
import java.security.KeyManagementException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.util.List;
|
||||
|
@ -16,6 +17,7 @@ import javax.net.ssl.HttpsURLConnection;
|
|||
import javax.net.ssl.SSLSocketFactory;
|
||||
import javax.net.ssl.X509TrustManager;
|
||||
|
||||
import de.pixart.messenger.entities.Account;
|
||||
import de.pixart.messenger.entities.Message;
|
||||
import de.pixart.messenger.services.AbstractConnectionManager;
|
||||
import de.pixart.messenger.services.XmppConnectionService;
|
||||
|
@ -47,6 +49,15 @@ public class HttpConnectionManager extends AbstractConnectionManager {
|
|||
this.uploadConnections.add(connection);
|
||||
}
|
||||
|
||||
public boolean checkConnection(Message message) {
|
||||
final Account account = message.getConversation().getAccount();
|
||||
final URL url = message.getFileParams().url;
|
||||
if (url.getProtocol().equalsIgnoreCase(P1S3UrlStreamHandler.PROTOCOL_NAME) && account.getStatus() != Account.State.ONLINE) {
|
||||
return false;
|
||||
}
|
||||
return mXmppConnectionService.hasInternetConnection();
|
||||
}
|
||||
|
||||
public void finishConnection(HttpDownloadConnection connection) {
|
||||
this.downloadConnections.remove(connection);
|
||||
}
|
||||
|
|
|
@ -1635,7 +1635,7 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
|
|||
Transferable transferable = message.getTransferable();
|
||||
if (transferable != null) {
|
||||
if (transferable instanceof TransferablePlaceholder && message.hasFileOnRemoteHost()) {
|
||||
activity.xmppConnectionService.getHttpConnectionManager().createNewDownloadConnection(message, true);
|
||||
createNewConnection(message);
|
||||
return;
|
||||
}
|
||||
if (!transferable.start()) {
|
||||
|
@ -1643,10 +1643,18 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
|
|||
Toast.makeText(getActivity(), R.string.not_connected_try_again, Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
} else if (message.treatAsDownloadable()) {
|
||||
activity.xmppConnectionService.getHttpConnectionManager().createNewDownloadConnection(message, true);
|
||||
createNewConnection(message);
|
||||
}
|
||||
}
|
||||
|
||||
private void createNewConnection(final Message message) {
|
||||
if (!activity.xmppConnectionService.getHttpConnectionManager().checkConnection(message)) {
|
||||
Toast.makeText(getActivity(), R.string.not_connected_try_again, Toast.LENGTH_SHORT).show();
|
||||
return;
|
||||
}
|
||||
activity.xmppConnectionService.getHttpConnectionManager().createNewDownloadConnection(message, true);
|
||||
}
|
||||
|
||||
@SuppressLint("InflateParams")
|
||||
protected void clearHistoryDialog(final Conversation conversation) {
|
||||
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
||||
|
|
Reference in a new issue