handled more error cases
This commit is contained in:
parent
ca2d86cf87
commit
41f7848f2c
|
@ -44,6 +44,7 @@ import eu.siacs.conversations.entities.Account;
|
||||||
import eu.siacs.conversations.entities.Contact;
|
import eu.siacs.conversations.entities.Contact;
|
||||||
import eu.siacs.conversations.entities.Conversation;
|
import eu.siacs.conversations.entities.Conversation;
|
||||||
import eu.siacs.conversations.entities.Downloadable;
|
import eu.siacs.conversations.entities.Downloadable;
|
||||||
|
import eu.siacs.conversations.entities.DownloadableFile;
|
||||||
import eu.siacs.conversations.entities.DownloadablePlaceholder;
|
import eu.siacs.conversations.entities.DownloadablePlaceholder;
|
||||||
import eu.siacs.conversations.entities.Message;
|
import eu.siacs.conversations.entities.Message;
|
||||||
import eu.siacs.conversations.entities.MucOptions;
|
import eu.siacs.conversations.entities.MucOptions;
|
||||||
|
@ -421,6 +422,14 @@ public class ConversationFragment extends Fragment {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void resendMessage(Message message) {
|
private void resendMessage(Message message) {
|
||||||
|
if (message.getType() == Message.TYPE_FILE || message.getType() == Message.TYPE_IMAGE) {
|
||||||
|
DownloadableFile file = activity.xmppConnectionService.getFileBackend().getFile(message);
|
||||||
|
if (!file.exists()) {
|
||||||
|
Toast.makeText(activity,R.string.file_deleted,Toast.LENGTH_SHORT).show();
|
||||||
|
message.setDownloadable(new DownloadablePlaceholder(Downloadable.STATUS_DELETED));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
activity.xmppConnectionService.resendFailedMessages(message);
|
activity.xmppConnectionService.resendFailedMessages(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
package eu.siacs.conversations.ui.adapter;
|
package eu.siacs.conversations.ui.adapter;
|
||||||
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.pm.PackageManager;
|
||||||
|
import android.content.pm.ResolveInfo;
|
||||||
import android.graphics.Typeface;
|
import android.graphics.Typeface;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.text.Spannable;
|
import android.text.Spannable;
|
||||||
|
@ -495,7 +497,11 @@ public class MessageAdapter extends ArrayAdapter<Message> {
|
||||||
} else if (d.getStatus() == Downloadable.STATUS_CHECKING) {
|
} else if (d.getStatus() == Downloadable.STATUS_CHECKING) {
|
||||||
displayInfoMessage(viewHolder,activity.getString(R.string.checking_image));
|
displayInfoMessage(viewHolder,activity.getString(R.string.checking_image));
|
||||||
} else if (d.getStatus() == Downloadable.STATUS_DELETED) {
|
} else if (d.getStatus() == Downloadable.STATUS_DELETED) {
|
||||||
|
if (item.getType() == Message.TYPE_FILE) {
|
||||||
|
displayInfoMessage(viewHolder, activity.getString(R.string.file_deleted));
|
||||||
|
} else {
|
||||||
displayInfoMessage(viewHolder, activity.getString(R.string.image_file_deleted));
|
displayInfoMessage(viewHolder, activity.getString(R.string.image_file_deleted));
|
||||||
|
}
|
||||||
} else if (d.getStatus() == Downloadable.STATUS_OFFER) {
|
} else if (d.getStatus() == Downloadable.STATUS_OFFER) {
|
||||||
if (item.getType() == Message.TYPE_FILE) {
|
if (item.getType() == Message.TYPE_FILE) {
|
||||||
displayDownloadableMessage(viewHolder,item,activity.getString(R.string.download_file,d.getMimeType()));
|
displayDownloadableMessage(viewHolder,item,activity.getString(R.string.download_file,d.getMimeType()));
|
||||||
|
@ -558,10 +564,19 @@ public class MessageAdapter extends ArrayAdapter<Message> {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void openDonwloadable(DownloadableFile file) {
|
public void openDonwloadable(DownloadableFile file) {
|
||||||
Log.d(Config.LOGTAG,"file "+file.getAbsolutePath());
|
if (!file.exists()) {
|
||||||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
Toast.makeText(activity,R.string.file_deleted,Toast.LENGTH_SHORT).show();
|
||||||
intent.setDataAndType(Uri.fromFile(file), file.getMimeType());
|
return;
|
||||||
getContext().startActivity(intent);
|
}
|
||||||
|
Intent openIntent = new Intent(Intent.ACTION_VIEW);
|
||||||
|
openIntent.setDataAndType(Uri.fromFile(file), file.getMimeType());
|
||||||
|
PackageManager manager = activity.getPackageManager();
|
||||||
|
List<ResolveInfo> infos = manager.queryIntentActivities(openIntent, 0);
|
||||||
|
if (infos.size() > 0) {
|
||||||
|
getContext().startActivity(openIntent);
|
||||||
|
} else {
|
||||||
|
Toast.makeText(activity,R.string.no_application_found_to_open_file,Toast.LENGTH_SHORT).show();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public interface OnContactPictureClicked {
|
public interface OnContactPictureClicked {
|
||||||
|
|
|
@ -322,4 +322,5 @@
|
||||||
<string name="cancel_transmission">Cancel transmission</string>
|
<string name="cancel_transmission">Cancel transmission</string>
|
||||||
<string name="file_transmission_failed">file transmission failed</string>
|
<string name="file_transmission_failed">file transmission failed</string>
|
||||||
<string name="file_deleted">The file has been deleted</string>
|
<string name="file_deleted">The file has been deleted</string>
|
||||||
|
<string name="no_application_found_to_open_file">No application found to open file</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
Loading…
Reference in a new issue