From 9b8c298af8b480b16d013ef094cdefad715ad78c Mon Sep 17 00:00:00 2001 From: nuclearfog Date: Sun, 16 Jan 2022 19:08:57 +0100 Subject: [PATCH] directmessage bug fix, layout fix --- .../twidda/activities/TweetActivity.java | 3 +-- .../twidda/adapter/ImageAdapter.java | 22 +++++++------------ .../{ImageItem.java => ImageHolder.java} | 4 ++-- .../twidda/backend/ImageLoader.java | 3 ++- .../nuclearfog/twidda/backend/ImageSaver.java | 3 ++- .../twidda/fragments/MessageFragment.java | 2 +- app/src/main/res/layout/item_dm.xml | 1 + app/src/main/res/layout/item_image.xml | 9 ++++---- app/src/main/res/layout/page_media.xml | 2 +- app/src/main/res/values/dimens.xml | 1 + 10 files changed, 24 insertions(+), 26 deletions(-) rename app/src/main/java/org/nuclearfog/twidda/adapter/holder/{ImageItem.java => ImageHolder.java} (91%) diff --git a/app/src/main/java/org/nuclearfog/twidda/activities/TweetActivity.java b/app/src/main/java/org/nuclearfog/twidda/activities/TweetActivity.java index 0db14711..d597d0d0 100644 --- a/app/src/main/java/org/nuclearfog/twidda/activities/TweetActivity.java +++ b/app/src/main/java/org/nuclearfog/twidda/activities/TweetActivity.java @@ -369,9 +369,8 @@ public class TweetActivity extends AppCompatActivity implements OnClickListener, // open tweet media else if (v.getId() == R.id.tweet_media_attach) { // convert links to uri - Uri[] links = clickedTweet.getMediaLinks(); Intent mediaIntent = new Intent(this, MediaViewer.class); - mediaIntent.putExtra(KEY_MEDIA_URI, links); + mediaIntent.putExtra(KEY_MEDIA_URI, clickedTweet.getMediaLinks()); switch (clickedTweet.getMediaType()) { case Tweet.MIME_PHOTO: mediaIntent.putExtra(KEY_MEDIA_TYPE, MEDIAVIEWER_IMAGE); diff --git a/app/src/main/java/org/nuclearfog/twidda/adapter/ImageAdapter.java b/app/src/main/java/org/nuclearfog/twidda/adapter/ImageAdapter.java index cd8ae08d..871479f3 100644 --- a/app/src/main/java/org/nuclearfog/twidda/adapter/ImageAdapter.java +++ b/app/src/main/java/org/nuclearfog/twidda/adapter/ImageAdapter.java @@ -14,11 +14,8 @@ import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView.Adapter; import androidx.recyclerview.widget.RecyclerView.ViewHolder; -import com.squareup.picasso.Picasso; - import org.nuclearfog.twidda.adapter.holder.Footer; -import org.nuclearfog.twidda.adapter.holder.ImageItem; -import org.nuclearfog.twidda.backend.utils.PicassoBuilder; +import org.nuclearfog.twidda.adapter.holder.ImageHolder; import org.nuclearfog.twidda.database.GlobalSettings; import java.util.ArrayList; @@ -42,14 +39,12 @@ public class ImageAdapter extends Adapter { private static final int LOADING = 1; private OnImageClickListener itemClickListener; - private GlobalSettings settings; - private Picasso picasso; private List imageUri = new ArrayList<>(5); private boolean loading = false; - private boolean saveImg = true; + private boolean enableSaveButton = true; /** * @param itemClickListener click listener @@ -57,7 +52,6 @@ public class ImageAdapter extends Adapter { public ImageAdapter(Context context, OnImageClickListener itemClickListener) { this.itemClickListener = itemClickListener; this.settings = GlobalSettings.getInstance(context); - picasso = PicassoBuilder.get(context); } /** @@ -88,7 +82,7 @@ public class ImageAdapter extends Adapter { * disable save button on images */ public void disableSaveButton() { - saveImg = false; + enableSaveButton = false; } /** @@ -121,7 +115,7 @@ public class ImageAdapter extends Adapter { @Override public ViewHolder onCreateViewHolder(@NonNull final ViewGroup parent, int viewType) { if (viewType == PICTURE) { - final ImageItem item = new ImageItem(parent, settings); + final ImageHolder item = new ImageHolder(parent, settings); item.preview.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { @@ -131,7 +125,7 @@ public class ImageAdapter extends Adapter { } } }); - if (saveImg) { + if (enableSaveButton) { item.saveButton.setVisibility(VISIBLE); item.saveButton.setOnClickListener(new OnClickListener() { @Override @@ -152,10 +146,10 @@ public class ImageAdapter extends Adapter { @Override public void onBindViewHolder(@NonNull ViewHolder vh, int index) { - if (vh instanceof ImageItem) { - ImageItem item = (ImageItem) vh; + if (vh instanceof ImageHolder) { + ImageHolder item = (ImageHolder) vh; Uri uri = imageUri.get(index); - picasso.load(uri).into(item.preview); + item.preview.setImageURI(uri); } } diff --git a/app/src/main/java/org/nuclearfog/twidda/adapter/holder/ImageItem.java b/app/src/main/java/org/nuclearfog/twidda/adapter/holder/ImageHolder.java similarity index 91% rename from app/src/main/java/org/nuclearfog/twidda/adapter/holder/ImageItem.java rename to app/src/main/java/org/nuclearfog/twidda/adapter/holder/ImageHolder.java index 254d1eda..a28222bf 100644 --- a/app/src/main/java/org/nuclearfog/twidda/adapter/holder/ImageItem.java +++ b/app/src/main/java/org/nuclearfog/twidda/adapter/holder/ImageHolder.java @@ -18,7 +18,7 @@ import org.nuclearfog.twidda.database.GlobalSettings; * @author nuclearfog * @see org.nuclearfog.twidda.adapter.ImageAdapter */ -public class ImageItem extends ViewHolder { +public class ImageHolder extends ViewHolder { public final ImageView preview; public final ImageButton saveButton; @@ -26,7 +26,7 @@ public class ImageItem extends ViewHolder { /** * @param parent Parent view from adapter */ - public ImageItem(ViewGroup parent, GlobalSettings settings) { + public ImageHolder(ViewGroup parent, GlobalSettings settings) { super(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_image, parent, false)); // get views CardView cardBackground = (CardView) itemView; diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/ImageLoader.java b/app/src/main/java/org/nuclearfog/twidda/backend/ImageLoader.java index 5c78628b..a6abcd66 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/ImageLoader.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/ImageLoader.java @@ -15,6 +15,7 @@ import org.nuclearfog.twidda.backend.utils.StringTools; import java.io.File; import java.io.FileOutputStream; +import java.io.IOException; import java.io.InputStream; import java.lang.ref.WeakReference; @@ -78,7 +79,7 @@ public class ImageLoader extends AsyncTask { return true; } catch (TwitterException err) { this.err = err; - } catch (Exception exception) { + } catch (IOException exception) { exception.printStackTrace(); } return false; diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/ImageSaver.java b/app/src/main/java/org/nuclearfog/twidda/backend/ImageSaver.java index df050e61..1a95b1f2 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/ImageSaver.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/ImageSaver.java @@ -4,6 +4,7 @@ import android.os.AsyncTask; import org.nuclearfog.twidda.activities.MediaActivity; +import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.lang.ref.WeakReference; @@ -45,7 +46,7 @@ public class ImageSaver extends AsyncTask { return true; } } - } catch (Exception err) { + } catch (IOException err) { err.printStackTrace(); } return false; diff --git a/app/src/main/java/org/nuclearfog/twidda/fragments/MessageFragment.java b/app/src/main/java/org/nuclearfog/twidda/fragments/MessageFragment.java index 8d0df271..360e2c8b 100644 --- a/app/src/main/java/org/nuclearfog/twidda/fragments/MessageFragment.java +++ b/app/src/main/java/org/nuclearfog/twidda/fragments/MessageFragment.java @@ -157,7 +157,7 @@ public class MessageFragment extends ListFragment implements OnItemSelected, OnC case MEDIA: if (message.getMedia() != null) { Intent mediaIntent = new Intent(requireContext(), MediaViewer.class); - mediaIntent.putExtra(KEY_MEDIA_URI, message.getMedia()); + mediaIntent.putExtra(KEY_MEDIA_URI, new Uri[]{message.getMedia()}); mediaIntent.putExtra(KEY_MEDIA_TYPE, MEDIAVIEWER_IMAGE); startActivity(mediaIntent); } diff --git a/app/src/main/res/layout/item_dm.xml b/app/src/main/res/layout/item_dm.xml index 67322098..3d3756dd 100644 --- a/app/src/main/res/layout/item_dm.xml +++ b/app/src/main/res/layout/item_dm.xml @@ -135,6 +135,7 @@ android:layout_height="@dimen/dmitem_button_media_height" android:visibility="gone" android:contentDescription="@string/directmessage_media_button" + android:layout_margin="@dimen/dmitem_button_media_margin" app:layout_constraintStart_toStartOf="parent" app:layout_constraintBottom_toTopOf="@+id/dm_button_barrier" app:layout_constraintEnd_toEndOf="parent" diff --git a/app/src/main/res/layout/item_image.xml b/app/src/main/res/layout/item_image.xml index 92bf3cf7..806e72fd 100644 --- a/app/src/main/res/layout/item_image.xml +++ b/app/src/main/res/layout/item_image.xml @@ -1,22 +1,23 @@ + android:scaleType="fitStart" + android:adjustViewBounds="true"/> 16sp 48dp 30dp + 10dp @dimen/toolbar_height