mirror of
https://github.com/oxen-io/session-android.git
synced 2025-05-01 13:11:04 +00:00
Support onStop/onStart media display in the correct position
Fixes #7330 Fixes #7329
This commit is contained in:
parent
fe02b3f8d3
commit
95ebae5d5f
@ -88,6 +88,8 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity im
|
|||||||
private long initialMediaSize;
|
private long initialMediaSize;
|
||||||
private Recipient conversationRecipient;
|
private Recipient conversationRecipient;
|
||||||
|
|
||||||
|
private int restartItem = -1;
|
||||||
|
|
||||||
@SuppressWarnings("ConstantConditions")
|
@SuppressWarnings("ConstantConditions")
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle bundle, @NonNull MasterSecret masterSecret) {
|
protected void onCreate(Bundle bundle, @NonNull MasterSecret masterSecret) {
|
||||||
@ -155,7 +157,7 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity im
|
|||||||
@Override
|
@Override
|
||||||
public void onPause() {
|
public void onPause() {
|
||||||
super.onPause();
|
super.onPause();
|
||||||
cleanupMedia();
|
restartItem = cleanupMedia();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -177,6 +179,7 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity im
|
|||||||
initialMediaUri = getIntent().getData();
|
initialMediaUri = getIntent().getData();
|
||||||
initialMediaType = getIntent().getType();
|
initialMediaType = getIntent().getType();
|
||||||
initialMediaSize = getIntent().getLongExtra(SIZE_EXTRA, 0);
|
initialMediaSize = getIntent().getLongExtra(SIZE_EXTRA, 0);
|
||||||
|
restartItem = -1;
|
||||||
|
|
||||||
if (address != null) {
|
if (address != null) {
|
||||||
conversationRecipient = Recipient.from(this, address, true);
|
conversationRecipient = Recipient.from(this, address, true);
|
||||||
@ -195,15 +198,19 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity im
|
|||||||
Log.w(TAG, "Loading Part URI: " + initialMediaUri);
|
Log.w(TAG, "Loading Part URI: " + initialMediaUri);
|
||||||
|
|
||||||
if (conversationRecipient != null) {
|
if (conversationRecipient != null) {
|
||||||
getSupportLoaderManager().initLoader(0, null, this);
|
getSupportLoaderManager().restartLoader(0, null, this);
|
||||||
} else {
|
} else {
|
||||||
mediaPager.setAdapter(new SingleItemPagerAdapter(this, masterSecret, GlideApp.with(this), getWindow(), initialMediaUri, initialMediaType, initialMediaSize));
|
mediaPager.setAdapter(new SingleItemPagerAdapter(this, masterSecret, GlideApp.with(this), getWindow(), initialMediaUri, initialMediaType, initialMediaSize));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void cleanupMedia() {
|
private int cleanupMedia() {
|
||||||
|
int restartItem = mediaPager.getCurrentItem();
|
||||||
|
|
||||||
mediaPager.removeAllViews();
|
mediaPager.removeAllViews();
|
||||||
mediaPager.setAdapter(null);
|
mediaPager.setAdapter(null);
|
||||||
|
|
||||||
|
return restartItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void showOverview() {
|
private void showOverview() {
|
||||||
@ -297,7 +304,9 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity im
|
|||||||
CursorPagerAdapter adapter = new CursorPagerAdapter(this, masterSecret, GlideApp.with(this), getWindow(), data.first, data.second);
|
CursorPagerAdapter adapter = new CursorPagerAdapter(this, masterSecret, GlideApp.with(this), getWindow(), data.first, data.second);
|
||||||
mediaPager.setAdapter(adapter);
|
mediaPager.setAdapter(adapter);
|
||||||
adapter.setActive(true);
|
adapter.setActive(true);
|
||||||
mediaPager.setCurrentItem(data.second);
|
|
||||||
|
if (restartItem < 0) mediaPager.setCurrentItem(data.second);
|
||||||
|
else mediaPager.setCurrentItem(restartItem);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user