diff --git a/app/src/main/java/org/thoughtcrime/securesms/giph/mp4/GiphyMp4Fragment.java b/app/src/main/java/org/thoughtcrime/securesms/giph/mp4/GiphyMp4Fragment.java index b4d2673577..4bc21e2d5c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/giph/mp4/GiphyMp4Fragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/giph/mp4/GiphyMp4Fragment.java @@ -57,7 +57,7 @@ public class GiphyMp4Fragment extends Fragment { List holders = injectVideoViews(frameLayout); GiphyMp4AdapterPlaybackControllerCallback callback = new GiphyMp4AdapterPlaybackControllerCallback(holders); - recycler.setLayoutManager(getLayoutManager(TextSecurePreferences.isGifSearchInGridLayout(getContext()))); + recycler.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL)); recycler.setAdapter(adapter); recycler.setItemAnimator(null); @@ -66,21 +66,6 @@ public class GiphyMp4Fragment extends Fragment { viewModel.getImages().observe(getViewLifecycleOwner(), adapter::submitList); viewModel.getPagingController().observe(getViewLifecycleOwner(), adapter::setPagingController); - viewModel.isGridMode().observe(getViewLifecycleOwner(), isGridLayout -> updateGridLayout(recycler, isGridLayout)); - } - - private void updateGridLayout(@NonNull RecyclerView recyclerView, boolean isGridLayout) { - RecyclerView.LayoutManager oldLayoutManager = recyclerView.getLayoutManager(); - RecyclerView.LayoutManager newLayoutManager = getLayoutManager(isGridLayout); - - if (oldLayoutManager == null || !Objects.equals(oldLayoutManager.getClass(), newLayoutManager.getClass())) { - recyclerView.setLayoutManager(newLayoutManager); - } - } - - private RecyclerView.LayoutManager getLayoutManager(boolean gridLayout) { - return gridLayout ? new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL) - : new LinearLayoutManager(requireContext()); } private List injectVideoViews(@NonNull ViewGroup viewGroup) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/giph/mp4/GiphyMp4ViewModel.java b/app/src/main/java/org/thoughtcrime/securesms/giph/mp4/GiphyMp4ViewModel.java index 63e6cf7ada..9aa0142955 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/giph/mp4/GiphyMp4ViewModel.java +++ b/app/src/main/java/org/thoughtcrime/securesms/giph/mp4/GiphyMp4ViewModel.java @@ -33,7 +33,6 @@ public final class GiphyMp4ViewModel extends ViewModel { private final LiveData> images; private final LiveData pagingController; private final SingleLiveEvent saveResultEvents; - private final MutableLiveData isGridMode; private final boolean isForMms; private String query; @@ -43,7 +42,6 @@ public final class GiphyMp4ViewModel extends ViewModel { this.repository = new GiphyMp4Repository(); this.pagedData = new DefaultValueLiveData<>(getGiphyImagePagedData(null)); this.saveResultEvents = new SingleLiveEvent<>(); - this.isGridMode = new MutableLiveData<>(); this.pagingController = Transformations.map(pagedData, PagedData::getController); this.images = Transformations.switchMap(pagedData, pagedData -> Transformations.map(pagedData.getData(), data -> Stream.of(data) @@ -62,10 +60,6 @@ public final class GiphyMp4ViewModel extends ViewModel { } } - public void updateLayout(boolean isGridMode) { - this.isGridMode.setValue(isGridMode); - } - public void saveToBlob(@NonNull GiphyImage giphyImage) { saveResultEvents.postValue(new GiphyMp4SaveResult.InProgress()); repository.saveToBlob(giphyImage, isForMms, saveResultEvents::postValue); @@ -83,10 +77,6 @@ public final class GiphyMp4ViewModel extends ViewModel { return pagingController; } - public @NonNull LiveData isGridMode() { - return isGridMode; - } - private PagedData getGiphyImagePagedData(@Nullable String query) { return PagedData.create(new GiphyMp4PagedDataSource(query), new PagingConfig.Builder().setPageSize(20) diff --git a/app/src/main/java/org/thoughtcrime/securesms/giph/ui/GiphyActivity.java b/app/src/main/java/org/thoughtcrime/securesms/giph/ui/GiphyActivity.java index 3196691c67..d48ed6b501 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/giph/ui/GiphyActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/giph/ui/GiphyActivity.java @@ -41,8 +41,7 @@ import java.io.IOException; import java.util.concurrent.ExecutionException; public class GiphyActivity extends PassphraseRequiredActivity - implements GiphyActivityToolbar.OnLayoutChangedListener, - GiphyActivityToolbar.OnFilterChangedListener, + implements GiphyActivityToolbar.OnFilterChangedListener, GiphyAdapter.OnItemClickListener { @@ -89,8 +88,6 @@ public class GiphyActivity extends PassphraseRequiredActivity GiphyActivityToolbar toolbar = findViewById(R.id.giphy_toolbar); toolbar.setOnFilterChangedListener(this); - toolbar.setOnLayoutChangedListener(this); - toolbar.setPersistence(GiphyActivityToolbarTextSecurePreferencesPersistence.fromContext(this)); final int conversationColor = getConversationColor(); toolbar.setBackgroundColor(conversationColor); @@ -160,12 +157,6 @@ public class GiphyActivity extends PassphraseRequiredActivity this.stickerFragment.setSearchString(filter); } - @Override - public void onLayoutChanged(boolean gridLayout) { - giphyMp4ViewModel.updateLayout(gridLayout); - stickerFragment.setLayoutManager(gridLayout); - } - @SuppressLint("StaticFieldLeak") @Override public void onClick(final GiphyAdapter.GiphyViewHolder viewHolder) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/giph/ui/GiphyActivityToolbar.java b/app/src/main/java/org/thoughtcrime/securesms/giph/ui/GiphyActivityToolbar.java index ad95c4af57..744937284c 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/giph/ui/GiphyActivityToolbar.java +++ b/app/src/main/java/org/thoughtcrime/securesms/giph/ui/GiphyActivityToolbar.java @@ -27,16 +27,11 @@ import org.thoughtcrime.securesms.components.AnimatingToggle; public class GiphyActivityToolbar extends Toolbar { @Nullable private OnFilterChangedListener filterListener; - @Nullable private OnLayoutChangedListener layoutListener; private EditText searchText; - private AnimatingToggle toggle; private ImageView action; private ImageView clearToggle; private LinearLayout toggleContainer; - private View listLayoutToggle; - private View gridLayoutToggle; - private Persistence persistence; public GiphyActivityToolbar(Context context) { this(context, null); @@ -52,13 +47,8 @@ public class GiphyActivityToolbar extends Toolbar { this.action = findViewById(R.id.action_icon); this.searchText = findViewById(R.id.search_view); - this.toggle = findViewById(R.id.button_toggle); this.clearToggle = findViewById(R.id.search_clear); this.toggleContainer = findViewById(R.id.toggle_container); - this.listLayoutToggle = findViewById(R.id.view_stream); - this.gridLayoutToggle = findViewById(R.id.view_grid); - - setupGridLayoutToggles(); this.clearToggle.setOnClickListener(new View.OnClickListener() { @Override @@ -106,29 +96,6 @@ public class GiphyActivityToolbar extends Toolbar { expandTapArea(this, action); } - public void setPersistence(@NonNull Persistence persistence) { - this.persistence = persistence; - displayTogglingView(persistence.getGridSelected() ? listLayoutToggle : gridLayoutToggle); - } - - private void setupGridLayoutToggles() { - setUpGridToggle(listLayoutToggle, gridLayoutToggle, false); - setUpGridToggle(gridLayoutToggle, listLayoutToggle, true); - displayTogglingView(gridLayoutToggle); - } - - private void setUpGridToggle(View gridToggle, View otherToggle, boolean gridLayout) { - gridToggle.setOnClickListener(v -> { - displayTogglingView(otherToggle); - if (layoutListener != null) { - layoutListener.onLayoutChanged(gridLayout); - } - if (persistence != null) { - persistence.setGridSelected(gridLayout); - } - }); - } - @Override public void setNavigationIcon(int resId) { action.setImageResource(resId); @@ -139,10 +106,6 @@ public class GiphyActivityToolbar extends Toolbar { notifyListener(); } - public void setOnLayoutChangedListener(@Nullable OnLayoutChangedListener layoutListener) { - this.layoutListener = layoutListener; - } - public void setOnFilterChangedListener(@Nullable OnFilterChangedListener filterListener) { this.filterListener = filterListener; } @@ -151,27 +114,19 @@ public class GiphyActivityToolbar extends Toolbar { if (filterListener != null) filterListener.onFilterChanged(searchText.getText().toString()); } - private void displayTogglingView(View view) { - toggle.display(view); - expandTapArea(toggleContainer, view); - } - private void expandTapArea(final View container, final View child) { final int padding = getResources().getDimensionPixelSize(R.dimen.contact_selection_actions_tap_area); - container.post(new Runnable() { - @Override - public void run() { - Rect rect = new Rect(); - child.getHitRect(rect); + container.post(() -> { + Rect rect = new Rect(); + child.getHitRect(rect); - rect.top -= padding; - rect.left -= padding; - rect.right += padding; - rect.bottom += padding; + rect.top -= padding; + rect.left -= padding; + rect.right += padding; + rect.bottom += padding; - container.setTouchDelegate(new TouchDelegate(rect, child)); - } + container.setTouchDelegate(new TouchDelegate(rect, child)); }); } @@ -192,13 +147,4 @@ public class GiphyActivityToolbar extends Toolbar { public interface OnFilterChangedListener { void onFilterChanged(String filter); } - - public interface OnLayoutChangedListener { - void onLayoutChanged(boolean gridLayout); - } - - public interface Persistence { - boolean getGridSelected(); - void setGridSelected(boolean isGridSelected); - } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/giph/ui/GiphyActivityToolbarTextSecurePreferencesPersistence.java b/app/src/main/java/org/thoughtcrime/securesms/giph/ui/GiphyActivityToolbarTextSecurePreferencesPersistence.java deleted file mode 100644 index bc3c87cdc6..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/giph/ui/GiphyActivityToolbarTextSecurePreferencesPersistence.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.thoughtcrime.securesms.giph.ui; - -import android.content.Context; - -import org.thoughtcrime.securesms.util.TextSecurePreferences; - -class GiphyActivityToolbarTextSecurePreferencesPersistence implements GiphyActivityToolbar.Persistence { - - static GiphyActivityToolbar.Persistence fromContext(Context context) { - return new GiphyActivityToolbarTextSecurePreferencesPersistence(context.getApplicationContext()); - } - - private final Context context; - - private GiphyActivityToolbarTextSecurePreferencesPersistence(Context context) { - this.context = context; - } - - @Override - public boolean getGridSelected() { - return TextSecurePreferences.isGifSearchInGridLayout(context); - } - - @Override - public void setGridSelected(boolean isGridSelected) { - TextSecurePreferences.setIsGifSearchInGridLayout(context, isGridSelected); - } -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/giph/ui/GiphyFragment.java b/app/src/main/java/org/thoughtcrime/securesms/giph/ui/GiphyFragment.java index c185a217c9..e19988a619 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/giph/ui/GiphyFragment.java +++ b/app/src/main/java/org/thoughtcrime/securesms/giph/ui/GiphyFragment.java @@ -59,7 +59,7 @@ public abstract class GiphyFragment extends LoggingFragment implements LoaderMan this.giphyAdapter = new GiphyAdapter(getActivity(), GlideApp.with(this), new LinkedList<>()); this.giphyAdapter.setListener(this); - setLayoutManager(TextSecurePreferences.isGifSearchInGridLayout(getContext())); + this.recyclerView.setLayoutManager(new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL)); this.recyclerView.setItemAnimator(new DefaultItemAnimator()); this.recyclerView.setAdapter(giphyAdapter); this.recyclerView.addOnScrollListener(new GiphyScrollListener()); @@ -83,15 +83,6 @@ public abstract class GiphyFragment extends LoggingFragment implements LoaderMan this.giphyAdapter.setImages(new LinkedList()); } - public void setLayoutManager(boolean gridLayout) { - recyclerView.setLayoutManager(getLayoutManager(gridLayout)); - } - - private RecyclerView.LayoutManager getLayoutManager(boolean gridLayout) { - return gridLayout ? new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL) - : new LinearLayoutManager(getActivity()); - } - public void setClickListener(GiphyAdapter.OnItemClickListener listener) { this.listener = listener; } diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/TextSecurePreferences.java b/app/src/main/java/org/thoughtcrime/securesms/util/TextSecurePreferences.java index 168c718ea1..36a54eb9cc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/TextSecurePreferences.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/TextSecurePreferences.java @@ -502,14 +502,6 @@ public class TextSecurePreferences { return getBooleanPreference(context, LINK_PREVIEWS, true); } - public static boolean isGifSearchInGridLayout(Context context) { - return getBooleanPreference(context, GIF_GRID_LAYOUT, false); - } - - public static void setIsGifSearchInGridLayout(Context context, boolean isGrid) { - setBooleanPreference(context, GIF_GRID_LAYOUT, isGrid); - } - public static int getNotificationPriority(Context context) { return Integer.valueOf(getStringPreference(context, NOTIFICATION_PRIORITY_PREF, String.valueOf(NotificationCompat.PRIORITY_HIGH))); } diff --git a/app/src/main/res/layout/giphy_activity_toolbar.xml b/app/src/main/res/layout/giphy_activity_toolbar.xml index 05fe776f76..01f67f4108 100644 --- a/app/src/main/res/layout/giphy_activity_toolbar.xml +++ b/app/src/main/res/layout/giphy_activity_toolbar.xml @@ -52,39 +52,6 @@ android:tint="@color/signal_text_toolbar_subtitle" app:srcCompat="@drawable/ic_x" /> - - - - - - - -