From 09ff8d58659708f0162d1fd68ed84c25201cae41 Mon Sep 17 00:00:00 2001 From: FeuRenard Date: Tue, 20 Sep 2016 18:53:44 +0200 Subject: [PATCH] Add gallery button to MediaPreview // FREEBIE --- AndroidManifest.xml | 1 + .../ic_photo_library_white_24dp.png | Bin 0 -> 249 bytes .../ic_photo_library_white_24dp.png | Bin 0 -> 193 bytes .../ic_photo_library_white_24dp.png | Bin 0 -> 309 bytes .../ic_photo_library_white_24dp.png | Bin 0 -> 431 bytes .../ic_photo_library_white_24dp.png | Bin 0 -> 553 bytes res/menu/media_preview.xml | 4 ++++ res/values/strings.xml | 1 + .../securesms/ConversationItem.java | 1 + .../securesms/ImageMediaAdapter.java | 5 ++++- .../securesms/MediaOverviewActivity.java | 11 ++++++++--- .../securesms/MediaPreviewActivity.java | 17 ++++++++++++++--- 12 files changed, 33 insertions(+), 7 deletions(-) create mode 100644 res/drawable-hdpi/ic_photo_library_white_24dp.png create mode 100644 res/drawable-mdpi/ic_photo_library_white_24dp.png create mode 100644 res/drawable-xhdpi/ic_photo_library_white_24dp.png create mode 100644 res/drawable-xxhdpi/ic_photo_library_white_24dp.png create mode 100644 res/drawable-xxxhdpi/ic_photo_library_white_24dp.png diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 406a64d24a..a17ce35470 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -308,6 +308,7 @@ KGc!CZfuHXb_5c`ObaRS#^Scz*`3U1&EX^#{sQhg%EAjl*4LW+R-{@p8n z%@rqq6>~g+m`Xejc}@78$CB5ffTf^A)C%S@`FJ7OW7g&Mh`s!-ct-`ry@q900000NkvXXu0mjfH8y21 literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/ic_photo_library_white_24dp.png b/res/drawable-mdpi/ic_photo_library_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..02ef4cdb0080f74e19c773d9b7627863b4a4dfb1 GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM0wlfaz7_+i4o?@y5R22v2@AA;$p85Nv_9s+ z)%toL-W^k$4|x0VvM~IVN|+PKD`4>WzfO{g&X4^9KJx$0|C;~yzoC=Vx_{4qo&Wp) z)_?W?M-MKV^nd=t%OAe(7n`y6^L-J${Gb2T^LRNUCZ|f3@vi^Cc8S}E_g}@O*WLg3 tNl0~^w@}HhaLuy&aD4vt7tsL>45wc?Tui^AH5KS422WQ%mvv4FO#lLLRT}^R literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/ic_photo_library_white_24dp.png b/res/drawable-xhdpi/ic_photo_library_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..4bd2898a83995e88bee0c8105c402a4f9f3a30de GIT binary patch literal 309 zcmV-50m}Y~P)Iwh=taIULXwG3*IJL6f508{ zlE5Q}v8S&yz*N6;1HdgZ zXzl?PNYXtI91H6`*4aRVXG;Tc{`q}n zVgjGUnr@HBSu#Ovz+VM&fgayXpeYRm+9H7acW(lPtAN=DEYOPTdVo!v00000NkvXX Hu0mjfO`3oh literal 0 HcmV?d00001 diff --git a/res/drawable-xxhdpi/ic_photo_library_white_24dp.png b/res/drawable-xxhdpi/ic_photo_library_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..497479291e69adaac3e2ebfbcfd9a1d788872368 GIT binary patch literal 431 zcmV;g0Z{&lP)Gs!G)8FeYVPrHp73>fed7zd%9HuJrQN=R|WLOJ}%ncCyVWc8$xeQ4VOqF)rH)3zoaXvAk{>piBRWEAlwS&wLv{xZV!C* z%3guvk6Q)gugB%K%L@Q0X9Y^`xRpTudh$CZ@qc4z4JA9^t~rEeD0KM?QbttAoPVBVS`RP>N=W95h0+fgIFEv!)yrGexUsB00!WXQIS8 z#EC$DF)fB9YdqxvO(L8eq(1{0Xmda*x`{!fs)5>71I0|M1(Ls6>LB@>r4G`cfef@+ ZpieoDLFU*oG$a53002ovPDHLkV1n6sy>0*i literal 0 HcmV?d00001 diff --git a/res/drawable-xxxhdpi/ic_photo_library_white_24dp.png b/res/drawable-xxxhdpi/ic_photo_library_white_24dp.png new file mode 100644 index 0000000000000000000000000000000000000000..8627f4276787a7a84ff723d84e3951d983c2b4c5 GIT binary patch literal 553 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD0wg^q?%&M7!1%$_#WAFU@$I#T%(FIWj}_aJkM8^Y>`CkA z`fUrpu)lAdc%xLT`)HCO--?|JRKG_}>scva{m|-d;jyyofyOVmHyn4jF$;E5dcd>3 z_cw#ggYA7Tlvdt6K1Y7RdVA-pGnI_Lei@f|%$7HB zF*184f8o(iHQ5bEia(bekT@^9oLS3i&$W*#vI + diff --git a/res/values/strings.xml b/res/values/strings.xml index 547f862f7f..2f8b7d1dfc 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1245,6 +1245,7 @@ Save Forward + All images Save all diff --git a/src/org/thoughtcrime/securesms/ConversationItem.java b/src/org/thoughtcrime/securesms/ConversationItem.java index db4e4e147c..93666e65fb 100644 --- a/src/org/thoughtcrime/securesms/ConversationItem.java +++ b/src/org/thoughtcrime/securesms/ConversationItem.java @@ -542,6 +542,7 @@ public class ConversationItem extends LinearLayout if (!messageRecord.isOutgoing()) intent.putExtra(MediaPreviewActivity.RECIPIENT_EXTRA, recipient.getRecipientId()); intent.putExtra(MediaPreviewActivity.DATE_EXTRA, messageRecord.getTimestamp()); intent.putExtra(MediaPreviewActivity.SIZE_EXTRA, slide.asAttachment().getSize()); + intent.putExtra(MediaPreviewActivity.THREAD_ID_EXTRA, messageRecord.getThreadId()); context.startActivity(intent); } else { diff --git a/src/org/thoughtcrime/securesms/ImageMediaAdapter.java b/src/org/thoughtcrime/securesms/ImageMediaAdapter.java index 3d51d6bf51..0c150b1001 100644 --- a/src/org/thoughtcrime/securesms/ImageMediaAdapter.java +++ b/src/org/thoughtcrime/securesms/ImageMediaAdapter.java @@ -41,6 +41,7 @@ public class ImageMediaAdapter extends CursorRecyclerViewAdapter { private static final String TAG = ImageMediaAdapter.class.getSimpleName(); private final MasterSecret masterSecret; + private final long threadId; public static class ViewHolder extends RecyclerView.ViewHolder { public ThumbnailView imageView; @@ -51,9 +52,10 @@ public class ImageMediaAdapter extends CursorRecyclerViewAdapter { } } - public ImageMediaAdapter(Context context, MasterSecret masterSecret, Cursor c) { + public ImageMediaAdapter(Context context, MasterSecret masterSecret, Cursor c, long threadId) { super(context, c); this.masterSecret = masterSecret; + this.threadId = threadId; } @Override @@ -87,6 +89,7 @@ public class ImageMediaAdapter extends CursorRecyclerViewAdapter { public void onClick(View v) { Intent intent = new Intent(getContext(), MediaPreviewActivity.class); intent.putExtra(MediaPreviewActivity.DATE_EXTRA, imageRecord.getDate()); + intent.putExtra(MediaPreviewActivity.THREAD_ID_EXTRA, threadId); if (!TextUtils.isEmpty(imageRecord.getAddress())) { Recipients recipients = RecipientFactory.getRecipientsFromString(getContext(), diff --git a/src/org/thoughtcrime/securesms/MediaOverviewActivity.java b/src/org/thoughtcrime/securesms/MediaOverviewActivity.java index 35c0f874fc..a831ca683c 100644 --- a/src/org/thoughtcrime/securesms/MediaOverviewActivity.java +++ b/src/org/thoughtcrime/securesms/MediaOverviewActivity.java @@ -135,14 +135,19 @@ public class MediaOverviewActivity extends PassphraseRequiredActionBarActivity i final long recipientId = getIntent().getLongExtra(RECIPIENT_EXTRA, -1); if (recipientId > -1) { recipient = RecipientFactory.getRecipientForId(this, recipientId, true); + } else if (threadId > -1){ + recipient = DatabaseFactory.getThreadDatabase(this).getRecipientsForThreadId(threadId).getPrimaryRecipient(); + } else { + recipient = null; + } + + if (recipient != null) { recipient.addListener(new RecipientModifiedListener() { @Override public void onModified(Recipient recipient) { initializeActionBar(); } }); - } else { - recipient = null; } } @@ -215,7 +220,7 @@ public class MediaOverviewActivity extends PassphraseRequiredActionBarActivity i @Override public void onLoadFinished(Loader cursorLoader, Cursor cursor) { Log.w(TAG, "onLoadFinished()"); - gridView.setAdapter(new ImageMediaAdapter(this, masterSecret, cursor)); + gridView.setAdapter(new ImageMediaAdapter(this, masterSecret, cursor, threadId)); noImages.setVisibility(gridView.getAdapter().getItemCount() > 0 ? View.GONE : View.VISIBLE); invalidateOptionsMenu(); } diff --git a/src/org/thoughtcrime/securesms/MediaPreviewActivity.java b/src/org/thoughtcrime/securesms/MediaPreviewActivity.java index 933fd395af..935b11718a 100644 --- a/src/org/thoughtcrime/securesms/MediaPreviewActivity.java +++ b/src/org/thoughtcrime/securesms/MediaPreviewActivity.java @@ -53,6 +53,7 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity im private final static String TAG = MediaPreviewActivity.class.getSimpleName(); public static final String RECIPIENT_EXTRA = "recipient"; + public static final String THREAD_ID_EXTRA = "thread_id"; public static final String DATE_EXTRA = "date"; public static final String SIZE_EXTRA = "size"; @@ -65,6 +66,7 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity im private Uri mediaUri; private String mediaType; private Recipient recipient; + private long threadId; private long date; private long size; @@ -148,6 +150,7 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity im mediaType = getIntent().getType(); date = getIntent().getLongExtra(DATE_EXTRA, System.currentTimeMillis()); size = getIntent().getLongExtra(SIZE_EXTRA, 0); + threadId = getIntent().getLongExtra(THREAD_ID_EXTRA, -1); if (recipientId > -1) { recipient = RecipientFactory.getRecipientForId(this, recipientId, true); @@ -188,6 +191,12 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity im video.cleanup(); } + private void showOverview() { + Intent intent = new Intent(this, MediaOverviewActivity.class); + intent.putExtra(MediaOverviewActivity.THREAD_ID_EXTRA, threadId); + startActivity(intent); + } + private void forward() { Intent composeIntent = new Intent(this, ShareActivity.class); composeIntent.putExtra(Intent.EXTRA_STREAM, mediaUri); @@ -212,6 +221,7 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity im menu.clear(); MenuInflater inflater = this.getMenuInflater(); inflater.inflate(R.menu.media_preview, menu); + if (threadId == -1) menu.findItem(R.id.media_overview).setVisible(false); return true; } @@ -221,9 +231,10 @@ public class MediaPreviewActivity extends PassphraseRequiredActionBarActivity im super.onOptionsItemSelected(item); switch (item.getItemId()) { - case R.id.media_preview__forward: forward(); return true; - case R.id.save: saveToDisk(); return true; - case android.R.id.home: finish(); return true; + case R.id.media_preview__overview: showOverview(); return true; + case R.id.media_preview__forward: forward(); return true; + case R.id.save: saveToDisk(); return true; + case android.R.id.home: finish(); return true; } return false;