ImageViewMultiSelectFragment.java 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. package epson.print.imgsel;
  2. import android.os.Bundle;
  3. import android.view.LayoutInflater;
  4. import android.view.View;
  5. import android.view.ViewGroup;
  6. import android.widget.ImageView;
  7. import android.widget.ProgressBar;
  8. import android.widget.TextView;
  9. import com.epson.cameracopy.p006ui.ImagePreviewActivity;
  10. import epson.common.ScalableImageView;
  11. import epson.print.R;
  12. public class ImageViewMultiSelectFragment extends ImageViewBaseFragment {
  13. protected MyToggleButton mMyToggleButton;
  14. public static ImageViewMultiSelectFragment newInstance(String str) {
  15. ImageViewMultiSelectFragment imageViewMultiSelectFragment = new ImageViewMultiSelectFragment();
  16. Bundle bundle = new Bundle();
  17. bundle.putString(ImagePreviewActivity.PARAM_PICTURE_FILENAME, str);
  18. imageViewMultiSelectFragment.setArguments(bundle);
  19. return imageViewMultiSelectFragment;
  20. }
  21. public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
  22. View inflate = layoutInflater.inflate(R.layout.fragment_image_view_multi, viewGroup, false);
  23. mImageView = (ScalableImageView) inflate.findViewById(R.id.imageView);
  24. mProgressBar = (ProgressBar) inflate.findViewById(R.id.imageLoadProgressBar);
  25. mMyToggleButton = new MyToggleButton(this, inflate.findViewById(R.id.myToggle), mListener.getSelector().isSelected(mFileName));
  26. super.onCreateView(layoutInflater, viewGroup, bundle);
  27. return inflate;
  28. }
  29. private void selectImageOnMultiFileMode(boolean z) {
  30. ImageSelector selector = mListener.getSelector();
  31. if (!z) {
  32. selector.remove(mFileName);
  33. } else if (!selector.canAdd()) {
  34. MyToggleButton myToggleButton = mMyToggleButton;
  35. if (myToggleButton != null) {
  36. myToggleButton.forceSetChecked(false);
  37. }
  38. try {
  39. LocalAlertDialogFragment.newInstance(getString(R.string.max_image), 2).show(getChildFragmentManager(), "alert dialog");
  40. return;
  41. } catch (IllegalStateException unused) {
  42. return;
  43. }
  44. } else {
  45. selector.add(mFileName);
  46. }
  47. getActivity().invalidateOptionsMenu();
  48. }
  49. static class MyToggleButton {
  50. private ImageViewMultiSelectFragment mImageViewMultiSelectFragment;
  51. private boolean mMyToggleChecked;
  52. private ImageView mToggleImage;
  53. private TextView mToggleText;
  54. public MyToggleButton(ImageViewMultiSelectFragment imageViewMultiSelectFragment, View view, boolean z) {
  55. mImageViewMultiSelectFragment = imageViewMultiSelectFragment;
  56. init(view, z);
  57. }
  58. public void init(View view, boolean z) {
  59. mToggleImage = (ImageView) view.findViewById(R.id.myToggleImage);
  60. mToggleImage.setClickable(false);
  61. mToggleText = (TextView) view.findViewById(R.id.myToggleText);
  62. mToggleText.setClickable(false);
  63. view.setOnClickListener(new View.OnClickListener() {
  64. public void onClick(View view) {
  65. toggleCheckStatus();
  66. }
  67. });
  68. forceSetChecked(z);
  69. }
  70. private void toggleCheckStatus() {
  71. setMyChecked(!mToggleImage.isSelected());
  72. }
  73. public void forceSetChecked(boolean z) {
  74. mMyToggleChecked = z;
  75. syncTextState();
  76. mToggleImage.setSelected(mMyToggleChecked);
  77. }
  78. private void setMyChecked(boolean z) {
  79. if (z != mMyToggleChecked) {
  80. forceSetChecked(z);
  81. execCallback();
  82. }
  83. }
  84. private void execCallback() {
  85. ImageViewMultiSelectFragment imageViewMultiSelectFragment = mImageViewMultiSelectFragment;
  86. if (imageViewMultiSelectFragment != null) {
  87. imageViewMultiSelectFragment.selectImageOnMultiFileMode(mMyToggleChecked);
  88. }
  89. }
  90. private void syncTextState() {
  91. if (mMyToggleChecked) {
  92. mToggleText.setText(R.string.imgsel_view_pager_toggle_on);
  93. } else {
  94. mToggleText.setText(R.string.imgsel_view_pager_toggle_off);
  95. }
  96. }
  97. }
  98. }