This commit is contained in:
parent
671957da5a
commit
bc59d4d938
|
@ -27,7 +27,6 @@ import android.content.res.AssetFileDescriptor;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.graphics.Bitmap;
|
import android.graphics.Bitmap;
|
||||||
import android.graphics.BitmapFactory;
|
import android.graphics.BitmapFactory;
|
||||||
import android.graphics.drawable.BitmapDrawable;
|
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.media.MediaMetadataRetriever;
|
import android.media.MediaMetadataRetriever;
|
||||||
import android.media.ThumbnailUtils;
|
import android.media.ThumbnailUtils;
|
||||||
|
@ -408,7 +407,8 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm
|
||||||
}
|
}
|
||||||
} else if (savedMediaQueued != null) {
|
} else if (savedMediaQueued != null) {
|
||||||
for (SavedQueuedMedia item : savedMediaQueued) {
|
for (SavedQueuedMedia item : savedMediaQueued) {
|
||||||
addMediaToQueue(item.type, item.preview, item.uri, item.mediaSize);
|
Bitmap preview = getImageThumbnail(getContentResolver(), item.uri);
|
||||||
|
addMediaToQueue(item.type, preview, item.uri, item.mediaSize, item.readyStage);
|
||||||
}
|
}
|
||||||
} else if (intent != null && savedInstanceState == null) {
|
} else if (intent != null && savedInstanceState == null) {
|
||||||
/* Get incoming images being sent through a share action from another app. Only do this
|
/* Get incoming images being sent through a share action from another app. Only do this
|
||||||
|
@ -464,8 +464,8 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm
|
||||||
protected void onSaveInstanceState(Bundle outState) {
|
protected void onSaveInstanceState(Bundle outState) {
|
||||||
ArrayList<SavedQueuedMedia> savedMediaQueued = new ArrayList<>();
|
ArrayList<SavedQueuedMedia> savedMediaQueued = new ArrayList<>();
|
||||||
for (QueuedMedia item : mediaQueued) {
|
for (QueuedMedia item : mediaQueued) {
|
||||||
savedMediaQueued.add(new SavedQueuedMedia(item.type, item.uri, item.preview,
|
savedMediaQueued.add(new SavedQueuedMedia(item.type, item.uri,
|
||||||
item.mediaSize));
|
item.mediaSize, item.readyStage));
|
||||||
}
|
}
|
||||||
outState.putParcelableArrayList("savedMediaQueued", savedMediaQueued);
|
outState.putParcelableArrayList("savedMediaQueued", savedMediaQueued);
|
||||||
outState.putBoolean("showMarkSensitive", showMarkSensitive);
|
outState.putBoolean("showMarkSensitive", showMarkSensitive);
|
||||||
|
@ -605,8 +605,12 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm
|
||||||
File directory;
|
File directory;
|
||||||
switch (item.type) {
|
switch (item.type) {
|
||||||
default:
|
default:
|
||||||
case IMAGE: directory = imageDirectory; break;
|
case IMAGE:
|
||||||
case VIDEO: directory = videoDirectory; break;
|
directory = imageDirectory;
|
||||||
|
break;
|
||||||
|
case VIDEO:
|
||||||
|
directory = videoDirectory;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US)
|
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.US)
|
||||||
.format(new Date());
|
.format(new Date());
|
||||||
|
@ -1145,8 +1149,9 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm
|
||||||
R.attr.compose_media_button_disabled_tint);
|
R.attr.compose_media_button_disabled_tint);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addMediaToQueue(QueuedMedia.Type type, Bitmap preview, Uri uri, long mediaSize) {
|
private void addMediaToQueue(QueuedMedia.Type type, Bitmap preview, Uri uri, long mediaSize, QueuedMedia.ReadyStage readyStage) {
|
||||||
final QueuedMedia item = new QueuedMedia(type, uri, new ImageView(this), mediaSize);
|
final QueuedMedia item = new QueuedMedia(type, uri, new ImageView(this), mediaSize);
|
||||||
|
item.readyStage = readyStage;
|
||||||
ImageView view = item.preview;
|
ImageView view = item.preview;
|
||||||
Resources resources = getResources();
|
Resources resources = getResources();
|
||||||
int side = resources.getDimensionPixelSize(R.dimen.compose_media_preview_side);
|
int side = resources.getDimensionPixelSize(R.dimen.compose_media_preview_side);
|
||||||
|
@ -1186,6 +1191,7 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm
|
||||||
if (queuedCount >= 1) {
|
if (queuedCount >= 1) {
|
||||||
showMarkSensitive(true);
|
showMarkSensitive(true);
|
||||||
}
|
}
|
||||||
|
if (item.readyStage != QueuedMedia.ReadyStage.UPLOADED) {
|
||||||
waitForMediaLatch.countUp();
|
waitForMediaLatch.countUp();
|
||||||
if (mediaSize > STATUS_MEDIA_SIZE_LIMIT && type == QueuedMedia.Type.IMAGE) {
|
if (mediaSize > STATUS_MEDIA_SIZE_LIMIT && type == QueuedMedia.Type.IMAGE) {
|
||||||
downsizeMedia(item);
|
downsizeMedia(item);
|
||||||
|
@ -1193,6 +1199,7 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm
|
||||||
uploadMedia(item);
|
uploadMedia(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void removeMediaFromQueue(QueuedMedia item) {
|
private void removeMediaFromQueue(QueuedMedia item) {
|
||||||
mediaPreviewBar.removeView(item.preview);
|
mediaPreviewBar.removeView(item.preview);
|
||||||
|
@ -1309,6 +1316,7 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm
|
||||||
|
|
||||||
private void onUploadSuccess(final QueuedMedia item, Media media) {
|
private void onUploadSuccess(final QueuedMedia item, Media media) {
|
||||||
item.id = media.id;
|
item.id = media.id;
|
||||||
|
item.readyStage = QueuedMedia.ReadyStage.UPLOADED;
|
||||||
|
|
||||||
/* Add the upload URL to the text field. Also, keep a reference to the span so if the user
|
/* Add the upload URL to the text field. Also, keep a reference to the span so if the user
|
||||||
* chooses to remove the media, the URL is also automatically removed. */
|
* chooses to remove the media, the URL is also automatically removed. */
|
||||||
|
@ -1427,7 +1435,7 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm
|
||||||
}
|
}
|
||||||
Bitmap bitmap = getVideoThumbnail(this, uri);
|
Bitmap bitmap = getVideoThumbnail(this, uri);
|
||||||
if (bitmap != null) {
|
if (bitmap != null) {
|
||||||
addMediaToQueue(QueuedMedia.Type.VIDEO, bitmap, uri, mediaSize);
|
addMediaToQueue(QueuedMedia.Type.VIDEO, bitmap, uri, mediaSize, null);
|
||||||
} else {
|
} else {
|
||||||
displayTransientError(R.string.error_media_upload_opening);
|
displayTransientError(R.string.error_media_upload_opening);
|
||||||
}
|
}
|
||||||
|
@ -1436,7 +1444,7 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm
|
||||||
case "image": {
|
case "image": {
|
||||||
Bitmap bitmap = getImageThumbnail(contentResolver, uri);
|
Bitmap bitmap = getImageThumbnail(contentResolver, uri);
|
||||||
if (bitmap != null) {
|
if (bitmap != null) {
|
||||||
addMediaToQueue(QueuedMedia.Type.IMAGE, bitmap, uri, mediaSize);
|
addMediaToQueue(QueuedMedia.Type.IMAGE, bitmap, uri, mediaSize, null);
|
||||||
} else {
|
} else {
|
||||||
displayTransientError(R.string.error_media_upload_opening);
|
displayTransientError(R.string.error_media_upload_opening);
|
||||||
}
|
}
|
||||||
|
@ -1532,7 +1540,8 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm
|
||||||
|
|
||||||
enum ReadyStage {
|
enum ReadyStage {
|
||||||
DOWNSIZING,
|
DOWNSIZING,
|
||||||
UPLOADING
|
UPLOADING,
|
||||||
|
UPLOADED
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1552,21 +1561,21 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm
|
||||||
};
|
};
|
||||||
QueuedMedia.Type type;
|
QueuedMedia.Type type;
|
||||||
Uri uri;
|
Uri uri;
|
||||||
Bitmap preview;
|
|
||||||
long mediaSize;
|
long mediaSize;
|
||||||
|
QueuedMedia.ReadyStage readyStage;
|
||||||
|
|
||||||
SavedQueuedMedia(QueuedMedia.Type type, Uri uri, ImageView view, long mediaSize) {
|
SavedQueuedMedia(QueuedMedia.Type type, Uri uri, long mediaSize, QueuedMedia.ReadyStage readyStage) {
|
||||||
this.type = type;
|
this.type = type;
|
||||||
this.uri = uri;
|
this.uri = uri;
|
||||||
this.preview = ((BitmapDrawable) view.getDrawable()).getBitmap();
|
|
||||||
this.mediaSize = mediaSize;
|
this.mediaSize = mediaSize;
|
||||||
|
this.readyStage = readyStage;
|
||||||
}
|
}
|
||||||
|
|
||||||
SavedQueuedMedia(Parcel parcel) {
|
SavedQueuedMedia(Parcel parcel) {
|
||||||
type = (QueuedMedia.Type) parcel.readSerializable();
|
type = (QueuedMedia.Type) parcel.readSerializable();
|
||||||
uri = parcel.readParcelable(Uri.class.getClassLoader());
|
uri = parcel.readParcelable(Uri.class.getClassLoader());
|
||||||
preview = parcel.readParcelable(Bitmap.class.getClassLoader());
|
|
||||||
mediaSize = parcel.readLong();
|
mediaSize = parcel.readLong();
|
||||||
|
readyStage = QueuedMedia.ReadyStage.valueOf(parcel.readString());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1578,8 +1587,8 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFragm
|
||||||
public void writeToParcel(Parcel dest, int flags) {
|
public void writeToParcel(Parcel dest, int flags) {
|
||||||
dest.writeSerializable(type);
|
dest.writeSerializable(type);
|
||||||
dest.writeParcelable(uri, flags);
|
dest.writeParcelable(uri, flags);
|
||||||
dest.writeParcelable(preview, flags);
|
|
||||||
dest.writeLong(mediaSize);
|
dest.writeLong(mediaSize);
|
||||||
|
dest.writeString(readyStage.name());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue