package com.tomclaw.mandarin.main;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.text.TextUtils;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
/**
* Created by Igor on 23.04.2015.
*/
public class SharingData implements Serializable {
public static final transient String EXTRA_SUBJECT = "android.intent.extra.SUBJECT";
public static final transient String EXTRA_TEXT = "android.intent.extra.TEXT";
public static final transient String EXTRA_STREAM = "android.intent.extra.STREAM";
private String subject, text;
private List<String> uris;
public SharingData() {
}
public SharingData(String subject, String text, List<Uri> uris) {
this.subject = subject;
this.text = text;
if (uris != null) {
this.uris = new ArrayList<>();
for (Uri uri : uris) {
this.uris.add(uri.toString());
}
}
}
public SharingData(Intent intent) {
boolean actionSend = Intent.ACTION_SEND.equals(intent.getAction());
boolean actionSendMultiple = Intent.ACTION_SEND_MULTIPLE.equals(intent.getAction());
if (actionSend | actionSendMultiple) {
Bundle extras = intent.getExtras();
if (extras != null) {
if (extras.containsKey(EXTRA_SUBJECT)) {
subject = extras.getString(EXTRA_SUBJECT);
}
if (extras.containsKey(EXTRA_TEXT)) {
text = extras.getString(EXTRA_TEXT);
}
if (extras.containsKey(EXTRA_STREAM)) {
if (actionSend) {
Uri uri = extras.getParcelable(EXTRA_STREAM);
this.uris = Collections.singletonList(uri.toString());
} else {
List<Uri> uris = extras.getParcelableArrayList(EXTRA_STREAM);
this.uris = new ArrayList<>();
for (Uri uri : uris) {
this.uris.add(uri.toString());
}
}
}
}
}
}
public String getSubject() {
return subject;
}
public String getText() {
return text;
}
public List<Uri> getUri() {
if (uris != null) {
List<Uri> uris = new ArrayList<>();
for (String uri : this.uris) {
uris.add(Uri.parse(uri));
}
return uris;
}
return null;
}
public boolean isValid() {
return !TextUtils.isEmpty(text) || uris != null;
}
}