diff --git a/app/src/main/java/cc/winboll/gallery/ImageViewerActivity.java b/app/src/main/java/cc/winboll/gallery/ImageViewerActivity.java index 926ed09..6442e07 100644 --- a/app/src/main/java/cc/winboll/gallery/ImageViewerActivity.java +++ b/app/src/main/java/cc/winboll/gallery/ImageViewerActivity.java @@ -1,6 +1,7 @@ package cc.winboll.gallery; import android.app.Activity; +import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; @@ -8,7 +9,6 @@ import android.view.View.OnClickListener; import android.view.WindowManager; import android.widget.ImageButton; import androidx.viewpager.widget.ViewPager; -import cc.winboll.studio.libappbase.ToastUtils; import java.util.ArrayList; public class ImageViewerActivity extends Activity implements ViewPager.OnPageChangeListener { @@ -20,6 +20,8 @@ public class ImageViewerActivity extends Activity implements ViewPager.OnPageCha private ViewPager viewPager; private View toolbar; private ImageButton btnBack; + private ImageButton btnDelete; + private ImageButton btnShare; @Override protected void onCreate(Bundle savedInstanceState) { @@ -34,6 +36,8 @@ public class ImageViewerActivity extends Activity implements ViewPager.OnPageCha viewPager = findViewById(R.id.view_pager); toolbar = findViewById(R.id.toolbar); btnBack = findViewById(R.id.btn_back); + btnDelete = findViewById(R.id.btn_delete); + btnShare = findViewById(R.id.btn_share); ImagePagerAdapter adapter = new ImagePagerAdapter(imageUrls); viewPager.setAdapter(adapter); @@ -47,6 +51,20 @@ public class ImageViewerActivity extends Activity implements ViewPager.OnPageCha } }); + btnDelete.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + deleteCurrentImage(); + } + }); + + btnShare.setOnClickListener(new OnClickListener() { + @Override + public void onClick(View v) { + shareCurrentImage(); + } + }); + viewPager.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { @@ -63,6 +81,34 @@ public class ImageViewerActivity extends Activity implements ViewPager.OnPageCha } } + private void deleteCurrentImage() { + if (currentPosition >= 0 && currentPosition < imageUrls.size()) { + Uri imageUri = imageUrls.get(currentPosition); + getContentResolver().delete(imageUri, null, null); + imageUrls.remove(currentPosition); + if (imageUrls.isEmpty()) { + finish(); + } else { + if (currentPosition >= imageUrls.size()) { + currentPosition = imageUrls.size() - 1; + } + viewPager.setAdapter(new ImagePagerAdapter(imageUrls)); + viewPager.setCurrentItem(currentPosition); + } + } + } + + private void shareCurrentImage() { + if (currentPosition >= 0 && currentPosition < imageUrls.size()) { + Uri imageUri = imageUrls.get(currentPosition); + Intent shareIntent = new Intent(Intent.ACTION_SEND); + shareIntent.setType("image/*"); + shareIntent.putExtra(Intent.EXTRA_STREAM, imageUri); + shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + startActivity(Intent.createChooser(shareIntent, "Share Image")); + } + } + @Override public void onPageSelected(int position) { currentPosition = position; @@ -78,4 +124,4 @@ public class ImageViewerActivity extends Activity implements ViewPager.OnPageCha public void onBackPressed() { finish(); } -} +} \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_delete.xml b/app/src/main/res/drawable/ic_delete.xml new file mode 100644 index 0000000..aa0f7a0 --- /dev/null +++ b/app/src/main/res/drawable/ic_delete.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_share.xml b/app/src/main/res/drawable/ic_share.xml new file mode 100644 index 0000000..ff756ae --- /dev/null +++ b/app/src/main/res/drawable/ic_share.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_image_viewer.xml b/app/src/main/res/layout/activity_image_viewer.xml index 8ffd344..7891493 100644 --- a/app/src/main/res/layout/activity_image_viewer.xml +++ b/app/src/main/res/layout/activity_image_viewer.xml @@ -17,7 +17,7 @@ android:layout_gravity="top" android:background="#CC000000" android:orientation="horizontal" - android:padding="8dp"> + android:padding="4dp"> + + + + + + \ No newline at end of file