From 5d4e8eaf57d4e91d981b3213f7f3aedece84e333 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Mon, 14 Sep 2026 12:01:03 -0400 Subject: [PATCH] Remove more unused resources. --- .../components/Material3SearchToolbar.kt | 92 ---------- .../components/RecentPhotoViewRail.java | 167 ------------------ .../securesms/components/SearchToolbar.java | 157 ---------------- .../preferences/InternalPreference.kt | 35 ---- .../components/settings/models/Banner.kt | 37 ---- .../settings/models/OutlinedLearnMore.kt | 35 ---- .../components/settings/models/Progress.kt | 32 ---- .../components/webrtc/AudioOutputAdapter.java | 94 ---------- .../components/webrtc/AudioStateUpdater.kt | 2 +- .../webrtc/WebRtcAudioPickerLegacy.kt | 36 ---- .../securesms/push/IasTrustStore.java | 27 --- .../stories/viewer/page/TestFragment.kt | 15 -- .../viewer/reply/composer/StoryReactionBar.kt | 89 ---------- .../reaction/MultiReactionBurstLayout.kt | 73 -------- .../camera_fab_cubic_easing_interpolator.xml | 6 - .../camera_fab_cubic_easing_interpolator.xml | 2 - .../transfer_option_stroke_color_selector.xml | 9 - .../res/drawable/ic_transfer_local_48.xml | 14 -- .../res/drawable/ic_transfer_phone_48.xml | 9 - .../drawable/selected_page_dot_indicator.xml | 16 -- .../symbol_bell_ring_fill_disabled_24.xml | 19 -- .../res/drawable/symbol_switch_white_24.xml | 12 -- .../unselected_page_dot_indicator.xml | 16 -- .../webrtc_call_screen_circle_checked.xml | 5 - .../webrtc_call_screen_circle_green.xml | 9 - ...ebrtc_call_screen_circle_grey_disabled.xml | 5 - ...ebrtc_call_screen_circle_grey_selector.xml | 8 - .../webrtc_call_screen_circle_red.xml | 8 - .../webrtc_call_screen_circle_unchecked.xml | 5 - .../audio_output_adapter_radio_item.xml | 23 --- ...versation_settings_internal_preference.xml | 18 -- app/src/main/res/layout/dsl_banner.xml | 52 ------ .../res/layout/dsl_outlined_learn_more.xml | 12 -- app/src/main/res/layout/dsl_progress_pref.xml | 34 ---- .../res/layout/material3_serarch_toolbar.xml | 64 ------- .../main/res/layout/reaction_burst_view.xml | 103 ----------- app/src/main/res/layout/recent_photo_view.xml | 11 -- .../res/layout/recent_photo_view_item.xml | 18 -- app/src/main/res/layout/search_toolbar.xml | 18 -- .../main/res/layout/stories_reaction_bar.xml | 108 ----------- app/src/main/res/layout/test_fragment.xml | 10 -- .../res/menu/conversation_list_search.xml | 13 -- app/src/main/res/raw/ias.store | Bin 1441 -> 0 bytes 43 files changed, 1 insertion(+), 1517 deletions(-) delete mode 100644 app/src/main/java/org/thoughtcrime/securesms/components/Material3SearchToolbar.kt delete mode 100644 app/src/main/java/org/thoughtcrime/securesms/components/RecentPhotoViewRail.java delete mode 100644 app/src/main/java/org/thoughtcrime/securesms/components/SearchToolbar.java delete mode 100644 app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/preferences/InternalPreference.kt delete mode 100644 app/src/main/java/org/thoughtcrime/securesms/components/settings/models/OutlinedLearnMore.kt delete mode 100644 app/src/main/java/org/thoughtcrime/securesms/components/settings/models/Progress.kt delete mode 100644 app/src/main/java/org/thoughtcrime/securesms/components/webrtc/AudioOutputAdapter.java delete mode 100644 app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcAudioPickerLegacy.kt delete mode 100644 app/src/main/java/org/thoughtcrime/securesms/push/IasTrustStore.java delete mode 100644 app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/TestFragment.kt delete mode 100644 app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/composer/StoryReactionBar.kt delete mode 100644 app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/reaction/MultiReactionBurstLayout.kt delete mode 100644 app/src/main/res/anim-v21/camera_fab_cubic_easing_interpolator.xml delete mode 100644 app/src/main/res/anim/camera_fab_cubic_easing_interpolator.xml delete mode 100644 app/src/main/res/color/transfer_option_stroke_color_selector.xml delete mode 100644 app/src/main/res/drawable/ic_transfer_local_48.xml delete mode 100644 app/src/main/res/drawable/ic_transfer_phone_48.xml delete mode 100644 app/src/main/res/drawable/selected_page_dot_indicator.xml delete mode 100644 app/src/main/res/drawable/symbol_bell_ring_fill_disabled_24.xml delete mode 100644 app/src/main/res/drawable/symbol_switch_white_24.xml delete mode 100644 app/src/main/res/drawable/unselected_page_dot_indicator.xml delete mode 100644 app/src/main/res/drawable/webrtc_call_screen_circle_checked.xml delete mode 100644 app/src/main/res/drawable/webrtc_call_screen_circle_green.xml delete mode 100644 app/src/main/res/drawable/webrtc_call_screen_circle_grey_disabled.xml delete mode 100644 app/src/main/res/drawable/webrtc_call_screen_circle_grey_selector.xml delete mode 100644 app/src/main/res/drawable/webrtc_call_screen_circle_red.xml delete mode 100644 app/src/main/res/drawable/webrtc_call_screen_circle_unchecked.xml delete mode 100644 app/src/main/res/layout/audio_output_adapter_radio_item.xml delete mode 100644 app/src/main/res/layout/conversation_settings_internal_preference.xml delete mode 100644 app/src/main/res/layout/dsl_banner.xml delete mode 100644 app/src/main/res/layout/dsl_outlined_learn_more.xml delete mode 100644 app/src/main/res/layout/dsl_progress_pref.xml delete mode 100644 app/src/main/res/layout/material3_serarch_toolbar.xml delete mode 100644 app/src/main/res/layout/reaction_burst_view.xml delete mode 100644 app/src/main/res/layout/recent_photo_view.xml delete mode 100644 app/src/main/res/layout/recent_photo_view_item.xml delete mode 100644 app/src/main/res/layout/search_toolbar.xml delete mode 100644 app/src/main/res/layout/stories_reaction_bar.xml delete mode 100644 app/src/main/res/layout/test_fragment.xml delete mode 100644 app/src/main/res/menu/conversation_list_search.xml delete mode 100644 app/src/main/res/raw/ias.store diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/Material3SearchToolbar.kt b/app/src/main/java/org/thoughtcrime/securesms/components/Material3SearchToolbar.kt deleted file mode 100644 index e9503f7d34..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/components/Material3SearchToolbar.kt +++ /dev/null @@ -1,92 +0,0 @@ -package org.thoughtcrime.securesms.components - -import android.content.Context -import android.graphics.PointF -import android.util.AttributeSet -import android.view.View -import android.view.ViewAnimationUtils -import android.widget.EditText -import androidx.annotation.StringRes -import androidx.constraintlayout.widget.ConstraintLayout -import androidx.core.animation.addListener -import androidx.core.widget.addTextChangedListener -import org.thoughtcrime.securesms.R -import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.thoughtcrime.securesms.util.ViewUtil -import org.thoughtcrime.securesms.util.setIncognitoKeyboardEnabled -import org.thoughtcrime.securesms.util.visible - -/** - * Search Toolbar following the Signal Material3 design spec. - */ -class Material3SearchToolbar @JvmOverloads constructor( - context: Context, - attrs: AttributeSet? = null -) : ConstraintLayout(context, attrs) { - - var listener: Listener? = null - - private val input: EditText - - private val circularRevealPoint = PointF() - - init { - inflate(context, R.layout.material3_serarch_toolbar, this) - - input = findViewById(R.id.search_input) - - val close = findViewById(R.id.search_close) - val clear = findViewById(R.id.search_clear) - - close.setOnClickListener { collapse() } - clear.setOnClickListener { input.setText("") } - - input.setIncognitoKeyboardEnabled(TextSecurePreferences.isIncognitoKeyboardEnabled(context)) - - input.addTextChangedListener(afterTextChanged = { - clear.visible = !it.isNullOrBlank() - listener?.onSearchTextChange(it?.toString() ?: "") - }) - } - - fun setSearchInputHint(@StringRes hintStringRes: Int) { - input.setHint(hintStringRes) - } - - fun display(x: Float, y: Float) { - if (!visible) { - circularRevealPoint.set(x, y) - - val animator = ViewAnimationUtils.createCircularReveal(this, x.toInt(), y.toInt(), 0f, width.toFloat()) - animator.duration = 400 - - visibility = VISIBLE - ViewUtil.focusAndShowKeyboard(input) - animator.start() - } - } - - fun collapse() { - if (visibility == VISIBLE) { - listener?.onSearchClosed() - ViewUtil.hideKeyboard(context, input) - - val animator = ViewAnimationUtils.createCircularReveal(this, circularRevealPoint.x.toInt(), circularRevealPoint.y.toInt(), width.toFloat(), 0f) - animator.duration = 400 - - animator.addListener(onEnd = { - visibility = INVISIBLE - }) - animator.start() - } - } - - fun clearText() { - input.setText("") - } - - interface Listener { - fun onSearchTextChange(text: String) - fun onSearchClosed() - } -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/RecentPhotoViewRail.java b/app/src/main/java/org/thoughtcrime/securesms/components/RecentPhotoViewRail.java deleted file mode 100644 index f92aaa1bd0..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/components/RecentPhotoViewRail.java +++ /dev/null @@ -1,167 +0,0 @@ -package org.thoughtcrime.securesms.components; - - -import android.content.ContentUris; -import android.content.Context; -import android.database.Cursor; -import android.net.Uri; -import android.os.Bundle; -import android.provider.MediaStore; -import android.util.AttributeSet; -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.FrameLayout; -import android.widget.ImageView; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.loader.app.LoaderManager; -import androidx.loader.content.Loader; -import androidx.recyclerview.widget.DefaultItemAnimator; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; - -import com.bumptech.glide.Glide; -import com.bumptech.glide.load.Key; -import com.bumptech.glide.load.engine.DiskCacheStrategy; -import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions; -import com.bumptech.glide.signature.MediaStoreSignature; - -import org.signal.core.util.logging.Log; -import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.database.CursorRecyclerViewAdapter; -import org.thoughtcrime.securesms.database.loaders.RecentPhotosLoader; - -public class RecentPhotoViewRail extends FrameLayout implements LoaderManager.LoaderCallbacks { - - @NonNull private final RecyclerView recyclerView; - @Nullable private OnItemClickedListener listener; - - public RecentPhotoViewRail(Context context) { - this(context, null); - } - - public RecentPhotoViewRail(Context context, AttributeSet attrs) { - this(context, attrs, 0); - } - - public RecentPhotoViewRail(Context context, AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - - inflate(context, R.layout.recent_photo_view, this); - - this.recyclerView = findViewById(R.id.photo_list); - this.recyclerView.setLayoutManager(new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false)); - this.recyclerView.setItemAnimator(new DefaultItemAnimator()); - } - - public void setListener(@Nullable OnItemClickedListener listener) { - this.listener = listener; - - if (this.recyclerView.getAdapter() != null) { - ((RecentPhotoAdapter)this.recyclerView.getAdapter()).setListener(listener); - } - } - - @Override - public @NonNull Loader onCreateLoader(int id, Bundle args) { - return new RecentPhotosLoader(getContext()); - } - - @Override - public void onLoadFinished(@NonNull Loader loader, Cursor data) { - this.recyclerView.setAdapter(new RecentPhotoAdapter(getContext(), data, RecentPhotosLoader.BASE_URL, listener)); - } - - @Override - public void onLoaderReset(@NonNull Loader loader) { - ((CursorRecyclerViewAdapter)this.recyclerView.getAdapter()).changeCursor(null); - } - - private static class RecentPhotoAdapter extends CursorRecyclerViewAdapter { - - @SuppressWarnings("unused") - private static final String TAG = Log.tag(RecentPhotoAdapter.class); - - @NonNull private final Uri baseUri; - @Nullable private OnItemClickedListener clickedListener; - - private RecentPhotoAdapter(@NonNull Context context, @NonNull Cursor cursor, @NonNull Uri baseUri, @Nullable OnItemClickedListener listener) { - super(context, cursor); - this.baseUri = baseUri; - this.clickedListener = listener; - } - - @Override - public RecentPhotoViewHolder onCreateItemViewHolder(ViewGroup parent, int viewType) { - View itemView = LayoutInflater.from(parent.getContext()) - .inflate(R.layout.recent_photo_view_item, parent, false); - - return new RecentPhotoViewHolder(itemView); - } - - @Override - public void onBindItemViewHolder(RecentPhotoViewHolder viewHolder, @NonNull Cursor cursor) { - viewHolder.imageView.setImageDrawable(null); - - long rowId = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Images.ImageColumns._ID)); - long dateTaken = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Images.ImageColumns.DATE_TAKEN)); - long dateModified = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Images.ImageColumns.DATE_MODIFIED)); - String mimeType = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.ImageColumns.MIME_TYPE)); - String bucketId = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Images.ImageColumns.BUCKET_ID)); - int orientation = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Images.ImageColumns.ORIENTATION)); - long size = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Images.ImageColumns.SIZE)); - int width = cursor.getInt(cursor.getColumnIndexOrThrow(getWidthColumn(orientation))); - int height = cursor.getInt(cursor.getColumnIndexOrThrow(getHeightColumn(orientation))); - - final Uri uri = ContentUris.withAppendedId(RecentPhotosLoader.BASE_URL, rowId); - - Key signature = new MediaStoreSignature(mimeType, dateModified, orientation); - - Glide.with(getContext().getApplicationContext()) - .load(uri) - .signature(signature) - .diskCacheStrategy(DiskCacheStrategy.NONE) - .transition(DrawableTransitionOptions.withCrossFade()) - .centerCrop() - .into(viewHolder.imageView); - - viewHolder.imageView.setOnClickListener(v -> { - if (clickedListener != null) clickedListener.onItemClicked(uri, mimeType, bucketId, dateTaken, width, height, size); - }); - - } - - @SuppressWarnings("SuspiciousNameCombination") - private String getWidthColumn(int orientation) { - if (orientation == 0 || orientation == 180) return MediaStore.Images.ImageColumns.WIDTH; - else return MediaStore.Images.ImageColumns.HEIGHT; - } - - @SuppressWarnings("SuspiciousNameCombination") - private String getHeightColumn(int orientation) { - if (orientation == 0 || orientation == 180) return MediaStore.Images.ImageColumns.HEIGHT; - else return MediaStore.Images.ImageColumns.WIDTH; - } - - public void setListener(@Nullable OnItemClickedListener listener) { - this.clickedListener = listener; - } - - static class RecentPhotoViewHolder extends RecyclerView.ViewHolder { - - ImageView imageView; - - RecentPhotoViewHolder(View itemView) { - super(itemView); - - this.imageView = itemView.findViewById(R.id.thumbnail); - } - } - } - - public interface OnItemClickedListener { - void onItemClicked(Uri uri, String mimeType, String bucketId, long dateTaken, int width, int height, long size); - } -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/SearchToolbar.java b/app/src/main/java/org/thoughtcrime/securesms/components/SearchToolbar.java deleted file mode 100644 index c0092cfe69..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/components/SearchToolbar.java +++ /dev/null @@ -1,157 +0,0 @@ -package org.thoughtcrime.securesms.components; - - -import android.animation.Animator; -import android.content.Context; -import android.graphics.drawable.Drawable; -import android.os.Build; -import android.util.AttributeSet; -import android.view.MenuItem; -import android.view.View; -import android.view.ViewAnimationUtils; -import android.widget.EditText; -import android.widget.LinearLayout; - -import androidx.annotation.MainThread; -import androidx.annotation.Nullable; -import androidx.appcompat.widget.SearchView; -import androidx.appcompat.widget.Toolbar; -import androidx.core.content.ContextCompat; - -import org.signal.core.ui.compose.SignalIcons; -import org.thoughtcrime.securesms.R; -import org.thoughtcrime.securesms.animation.AnimationCompleteListener; -import org.thoughtcrime.securesms.util.EditTextExtensionsKt; -import org.thoughtcrime.securesms.util.TextSecurePreferences; - -import java.util.Objects; - -public class SearchToolbar extends LinearLayout { - - private float x, y; - private MenuItem searchItem; - private SearchListener listener; - - public SearchToolbar(Context context) { - super(context); - initialize(); - } - - public SearchToolbar(Context context, @Nullable AttributeSet attrs) { - super(context, attrs); - initialize(); - } - - public SearchToolbar(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - initialize(); - } - - private void initialize() { - inflate(getContext(), R.layout.search_toolbar, this); - setOrientation(VERTICAL); - - Toolbar toolbar = findViewById(R.id.toolbar); - - Drawable drawable = ContextCompat.getDrawable(getContext(), org.signal.core.ui.R.drawable.symbol_arrow_start_24); - toolbar.setNavigationIcon(drawable); - toolbar.setCollapseIcon(drawable); - toolbar.inflateMenu(R.menu.conversation_list_search); - - this.searchItem = toolbar.getMenu().findItem(R.id.action_filter_search); - SearchView searchView = (SearchView) searchItem.getActionView(); - EditText searchText = searchView.findViewById(androidx.appcompat.R.id.search_src_text); - - EditTextExtensionsKt.setIncognitoKeyboardEnabled(searchText, TextSecurePreferences.isIncognitoKeyboardEnabled(getContext())); - - searchView.setSubmitButtonEnabled(false); - searchView.setMaxWidth(Integer.MAX_VALUE); - - if (searchText != null) searchText.setHint(R.string.SearchToolbar_search); - else searchView.setQueryHint(getResources().getString(R.string.SearchToolbar_search)); - - searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { - @Override - public boolean onQueryTextSubmit(String query) { - if (listener != null) { - listener.onSearchTextChange(query); - } - return true; - } - - @Override - public boolean onQueryTextChange(String newText) { - return onQueryTextSubmit(newText); - } - }); - - searchItem.setOnActionExpandListener(new MenuItem.OnActionExpandListener() { - @Override - public boolean onMenuItemActionExpand(MenuItem item) { - return true; - } - - @Override - public boolean onMenuItemActionCollapse(MenuItem item) { - hide(); - return true; - } - }); - - toolbar.setNavigationOnClickListener(v -> hide()); - } - - @MainThread - public void display(float x, float y) { - if (getVisibility() != View.VISIBLE) { - this.x = x; - this.y = y; - - searchItem.expandActionView(); - - Animator animator = ViewAnimationUtils.createCircularReveal(this, (int)x, (int)y, 0, getWidth()); - animator.setDuration(400); - - setVisibility(View.VISIBLE); - animator.start(); - } - } - - public void collapse() { - searchItem.collapseActionView(); - } - - @MainThread - private void hide() { - if (getVisibility() == View.VISIBLE) { - - - if (listener != null) listener.onSearchClosed(); - - Animator animator = ViewAnimationUtils.createCircularReveal(this, (int)x, (int)y, getWidth(), 0); - animator.setDuration(400); - animator.addListener(new AnimationCompleteListener() { - @Override - public void onAnimationEnd(Animator animation) { - setVisibility(View.INVISIBLE); - } - }); - animator.start(); - } - } - - public boolean isVisible() { - return getVisibility() == View.VISIBLE; - } - - @MainThread - public void setListener(SearchListener listener) { - this.listener = listener; - } - - public interface SearchListener { - void onSearchTextChange(String text); - void onSearchClosed(); - } - -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/preferences/InternalPreference.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/preferences/InternalPreference.kt deleted file mode 100644 index a7cfd5a876..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/preferences/InternalPreference.kt +++ /dev/null @@ -1,35 +0,0 @@ -package org.thoughtcrime.securesms.components.settings.conversation.preferences - -import android.view.View -import org.thoughtcrime.securesms.R -import org.thoughtcrime.securesms.components.settings.PreferenceModel -import org.thoughtcrime.securesms.recipients.Recipient -import org.thoughtcrime.securesms.util.adapter.mapping.LayoutFactory -import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter -import org.thoughtcrime.securesms.util.adapter.mapping.MappingViewHolder - -object InternalPreference { - - fun register(adapter: MappingAdapter) { - adapter.registerFactory(Model::class.java, LayoutFactory(::ViewHolder, R.layout.conversation_settings_internal_preference)) - } - - class Model( - private val recipient: Recipient, - val onInternalDetailsClicked: () -> Unit - ) : PreferenceModel() { - - override fun areItemsTheSame(newItem: Model): Boolean { - return recipient == newItem.recipient - } - } - - private class ViewHolder(itemView: View) : MappingViewHolder(itemView) { - - private val internalDetails: View = itemView.findViewById(R.id.internal_details) - - override fun bind(model: Model) { - internalDetails.setOnClickListener { model.onInternalDetailsClicked() } - } - } -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/models/Banner.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/models/Banner.kt index 9254258c0a..d6cb588d59 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/models/Banner.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/models/Banner.kt @@ -5,7 +5,6 @@ package org.thoughtcrime.securesms.components.settings.models -import androidx.annotation.StringRes import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth @@ -23,44 +22,8 @@ import androidx.compose.ui.unit.dp import org.signal.core.ui.compose.DayNightPreviews import org.signal.core.ui.compose.Previews import org.signal.core.ui.compose.horizontalGutters -import org.thoughtcrime.securesms.databinding.DslBannerBinding -import org.thoughtcrime.securesms.util.adapter.mapping.BindingFactory -import org.thoughtcrime.securesms.util.adapter.mapping.BindingViewHolder -import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter -import org.thoughtcrime.securesms.util.adapter.mapping.MappingModel import org.signal.core.ui.R as CoreUiR -/** - * Displays a banner to notify the user of certain state or action that needs to be taken. - */ -object Banner { - fun register(mappingAdapter: MappingAdapter) { - mappingAdapter.registerFactory(Model::class.java, BindingFactory(::ViewHolder, DslBannerBinding::inflate)) - } - - class Model( - @StringRes val textId: Int, - @StringRes val actionId: Int, - val onClick: () -> Unit - ) : MappingModel { - override fun areItemsTheSame(newItem: Model): Boolean { - return true - } - - override fun areContentsTheSame(newItem: Model): Boolean { - return textId == newItem.textId && actionId == newItem.actionId - } - } - - private class ViewHolder(binding: DslBannerBinding) : BindingViewHolder(binding) { - override fun bind(model: Model) { - binding.bannerText.setText(model.textId) - binding.bannerAction.setText(model.actionId) - binding.bannerAction.setOnClickListener { model.onClick() } - } - } -} - /** * Replicates the Banner DSL preference for use in compose components. */ diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/models/OutlinedLearnMore.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/models/OutlinedLearnMore.kt deleted file mode 100644 index 62bc0fc843..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/models/OutlinedLearnMore.kt +++ /dev/null @@ -1,35 +0,0 @@ -package org.thoughtcrime.securesms.components.settings.models - -import org.thoughtcrime.securesms.components.settings.DSLSettingsText -import org.thoughtcrime.securesms.components.settings.PreferenceModel -import org.thoughtcrime.securesms.databinding.DslOutlinedLearnMoreBinding -import org.thoughtcrime.securesms.util.adapter.mapping.BindingFactory -import org.thoughtcrime.securesms.util.adapter.mapping.BindingViewHolder -import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter - -/** - * Show a informational text message in an outlined bubble. - */ -object OutlinedLearnMore { - - fun register(mappingAdapter: MappingAdapter) { - mappingAdapter.registerFactory(Model::class.java, BindingFactory(::ViewHolder, DslOutlinedLearnMoreBinding::inflate)) - } - - class Model( - summary: DSLSettingsText, - val learnMoreUrl: String - ) : PreferenceModel(summary = summary) { - override fun areContentsTheSame(newItem: Model): Boolean { - return super.areContentsTheSame(newItem) && learnMoreUrl == newItem.learnMoreUrl - } - } - - private class ViewHolder(binding: DslOutlinedLearnMoreBinding) : BindingViewHolder(binding) { - override fun bind(model: Model) { - binding.root.text = model.summary!!.resolve(context) - binding.root.setLearnMoreVisible(true) - binding.root.setLink(model.learnMoreUrl) - } - } -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/models/Progress.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/models/Progress.kt deleted file mode 100644 index 86ea48a45d..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/models/Progress.kt +++ /dev/null @@ -1,32 +0,0 @@ -package org.thoughtcrime.securesms.components.settings.models - -import android.view.View -import android.widget.TextView -import org.thoughtcrime.securesms.R -import org.thoughtcrime.securesms.components.settings.DSLSettingsText -import org.thoughtcrime.securesms.components.settings.PreferenceModel -import org.thoughtcrime.securesms.util.adapter.mapping.LayoutFactory -import org.thoughtcrime.securesms.util.adapter.mapping.MappingAdapter -import org.thoughtcrime.securesms.util.adapter.mapping.MappingViewHolder -import org.thoughtcrime.securesms.util.visible - -object Progress { - - fun register(mappingAdapter: MappingAdapter) { - mappingAdapter.registerFactory(Model::class.java, LayoutFactory(::ViewHolder, R.layout.dsl_progress_pref)) - } - - data class Model( - override val title: DSLSettingsText? - ) : PreferenceModel() - - private class ViewHolder(itemView: View) : MappingViewHolder(itemView) { - - private val title: TextView = itemView.findViewById(R.id.dsl_progress_pref_title) - - override fun bind(model: Model) { - title.text = model.title?.resolve(context) - title.visible = model.title != null - } - } -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/AudioOutputAdapter.java b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/AudioOutputAdapter.java deleted file mode 100644 index f4ff690fcb..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/AudioOutputAdapter.java +++ /dev/null @@ -1,94 +0,0 @@ -package org.thoughtcrime.securesms.components.webrtc; - -import android.view.LayoutInflater; -import android.view.View; -import android.view.ViewGroup; -import android.widget.CompoundButton; -import android.widget.RadioButton; - -import androidx.annotation.CallSuper; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.core.util.Consumer; -import androidx.recyclerview.widget.RecyclerView; - -import org.thoughtcrime.securesms.R; - -import java.util.List; - -final class AudioOutputAdapter extends RecyclerView.Adapter { - - private final OnAudioOutputChangedListener onAudioOutputChangedListener; - private final List audioOutputs; - - private WebRtcAudioOutput selected; - - AudioOutputAdapter(@NonNull OnAudioOutputChangedListener onAudioOutputChangedListener, - @NonNull List audioOutputs) { - this.audioOutputs = audioOutputs; - this.onAudioOutputChangedListener = onAudioOutputChangedListener; - } - - public void setSelectedOutput(@NonNull WebRtcAudioOutput selected) { - this.selected = selected; - - notifyDataSetChanged(); - } - - @Override - public @NonNull ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.audio_output_adapter_radio_item, parent, false); - - return new ViewHolder(view, this::handlePositionSelected); - } - - @Override - public void onBindViewHolder(@NonNull ViewHolder holder, int position) { - holder.bind(audioOutputs.get(position), selected); - } - - @Override - public int getItemCount() { - return audioOutputs.size(); - } - - private void handlePositionSelected(int position) { - WebRtcAudioOutput mode = audioOutputs.get(position); - - if (mode != selected) { - setSelectedOutput(mode); - onAudioOutputChangedListener.audioOutputChanged(new WebRtcAudioDevice(selected, null)); - } - } - - static class ViewHolder extends RecyclerView.ViewHolder implements CompoundButton.OnCheckedChangeListener { - - private final RadioButton radioButton; - private final Consumer onPressed; - - - public ViewHolder(@NonNull View itemView, @NonNull Consumer onPressed) { - super(itemView); - - this.radioButton = itemView.findViewById(R.id.radio); - this.onPressed = onPressed; - } - - @CallSuper - void bind(@NonNull WebRtcAudioOutput audioOutput, @Nullable WebRtcAudioOutput selected) { - radioButton.setText(audioOutput.getLabelRes()); - radioButton.setCompoundDrawablesRelativeWithIntrinsicBounds(audioOutput.getIconRes(), 0, 0, 0); - radioButton.setOnCheckedChangeListener(null); - radioButton.setChecked(audioOutput == selected); - radioButton.setOnCheckedChangeListener(this); - } - - @Override - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - int adapterPosition = getAdapterPosition(); - if (adapterPosition != RecyclerView.NO_POSITION) { - onPressed.accept(adapterPosition); - } - } - } -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/AudioStateUpdater.kt b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/AudioStateUpdater.kt index 1690547e29..82f4a4355f 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/AudioStateUpdater.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/AudioStateUpdater.kt @@ -1,7 +1,7 @@ package org.thoughtcrime.securesms.components.webrtc /** - * This is an interface for [WebRtcAudioPicker31] and [WebRtcAudioPickerLegacy] as a callback for [org.thoughtcrime.securesms.components.webrtc.v2.CallAudioToggleButton] + * This is an interface for [WebRtcAudioPicker31] as a callback for [org.thoughtcrime.securesms.components.webrtc.v2.CallAudioToggleButton] */ interface AudioStateUpdater { fun updateAudioOutputState(audioOutput: WebRtcAudioOutput) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcAudioPickerLegacy.kt b/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcAudioPickerLegacy.kt deleted file mode 100644 index adfb1e1716..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/components/webrtc/WebRtcAudioPickerLegacy.kt +++ /dev/null @@ -1,36 +0,0 @@ -package org.thoughtcrime.securesms.components.webrtc - -import android.content.Context -import android.content.DialogInterface -import androidx.recyclerview.widget.LinearLayoutManager -import androidx.recyclerview.widget.RecyclerView -import com.google.android.material.dialog.MaterialAlertDialogBuilder -import org.thoughtcrime.securesms.R - -/** - * This launches the bottom sheet on Android 11 and below devices for selecting which audio device to use during a call. - * In cases where there are only [SHOW_PICKER_THRESHOLD] devices, it will cycle through them without presenting a bottom sheet. - */ -class WebRtcAudioPickerLegacy(private val audioOutputChangedListener: OnAudioOutputChangedListener, private val outputState: ToggleButtonOutputState, private val stateUpdater: AudioStateUpdater) { - - fun showPicker(context: Context, availableModes: List, dismissListener: DialogInterface.OnDismissListener): DialogInterface? { - val rv = RecyclerView(context) - val adapter = AudioOutputAdapter( - fun(audioDevice: WebRtcAudioDevice) { - audioOutputChangedListener.audioOutputChanged(audioDevice) - stateUpdater.updateAudioOutputState(audioDevice.webRtcAudioOutput) - stateUpdater.hidePicker() - }, - availableModes - ) - adapter.setSelectedOutput(outputState.getCurrentOutput()) - rv.layoutManager = LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false) - rv.adapter = adapter - return MaterialAlertDialogBuilder(context) - .setTitle(R.string.WebRtcAudioOutputToggle__audio_output) - .setView(rv) - .setCancelable(true) - .setOnDismissListener(dismissListener) - .show() - } -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/push/IasTrustStore.java b/app/src/main/java/org/thoughtcrime/securesms/push/IasTrustStore.java deleted file mode 100644 index ef933c7819..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/push/IasTrustStore.java +++ /dev/null @@ -1,27 +0,0 @@ -package org.thoughtcrime.securesms.push; - -import android.content.Context; - -import org.thoughtcrime.securesms.R; -import org.signal.network.config.TrustStore; - -import java.io.InputStream; - -public class IasTrustStore implements TrustStore { - - private final Context context; - - public IasTrustStore(Context context) { - this.context = context.getApplicationContext(); - } - - @Override - public InputStream getKeyStoreInputStream() { - return context.getResources().openRawResource(R.raw.ias); - } - - @Override - public String getKeyStorePassword() { - return "whisper"; - } -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/TestFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/TestFragment.kt deleted file mode 100644 index 9f9d855eca..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/page/TestFragment.kt +++ /dev/null @@ -1,15 +0,0 @@ -package org.thoughtcrime.securesms.stories.viewer.page - -import android.graphics.drawable.ColorDrawable -import android.os.Bundle -import android.view.View -import androidx.appcompat.widget.AppCompatImageView -import androidx.fragment.app.Fragment -import org.thoughtcrime.securesms.R -import org.thoughtcrime.securesms.conversation.colors.AvatarColor - -class TestFragment : Fragment(R.layout.test_fragment) { - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - (view as AppCompatImageView).setImageDrawable(ColorDrawable(AvatarColor.random().colorInt())) - } -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/composer/StoryReactionBar.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/composer/StoryReactionBar.kt deleted file mode 100644 index a0d89f8e8b..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/composer/StoryReactionBar.kt +++ /dev/null @@ -1,89 +0,0 @@ -package org.thoughtcrime.securesms.stories.viewer.reply.composer - -import android.animation.AnimatorSet -import android.animation.ObjectAnimator -import android.annotation.SuppressLint -import android.content.Context -import android.util.AttributeSet -import android.view.View -import androidx.constraintlayout.widget.ConstraintLayout -import org.thoughtcrime.securesms.R -import org.thoughtcrime.securesms.components.emoji.EmojiImageView -import org.thoughtcrime.securesms.keyvalue.SignalStore -import org.thoughtcrime.securesms.util.visible - -class StoryReactionBar @JvmOverloads constructor( - context: Context, - attrs: AttributeSet? = null -) : ConstraintLayout(context, attrs) { - - var callback: Callback? = null - - private var animatorSet: AnimatorSet? = null - - init { - inflate(context, R.layout.stories_reaction_bar, this) - alpha = 0f - setBackgroundResource(R.drawable.conversation_reaction_overlay_background) - } - - private val emojiViews: List = listOf( - findViewById(R.id.reaction_1), - findViewById(R.id.reaction_2), - findViewById(R.id.reaction_3), - findViewById(R.id.reaction_4), - findViewById(R.id.reaction_5), - findViewById(R.id.reaction_6), - findViewById(R.id.reaction_7) - ) - - init { - if (!isInEditMode) { - val emojis = SignalStore.emoji.reactions - emojiViews.forEachIndexed { index, emojiImageView -> - if (index == emojiViews.lastIndex) { - emojiImageView.setImageResource(R.drawable.ic_any_emoji_32) - emojiImageView.setOnClickListener { onOpenReactionPicker() } - } else { - val emoji = SignalStore.emoji.getPreferredVariation(emojis[index]) - emojiImageView.setImageEmoji(emoji) - emojiImageView.setOnClickListener { onEmojiSelected(emoji) } - } - } - } - - setOnClickListener { - callback?.onTouchOutsideOfReactionBar() - } - } - - @SuppressLint("Recycle") - fun animateIn() { - visible = true - - animatorSet?.cancel() - animatorSet = AnimatorSet().apply { - playTogether( - emojiViews.flatMap { - listOf(ObjectAnimator.ofFloat(it, View.ALPHA, 1f), ObjectAnimator.ofFloat(it, View.TRANSLATION_Y, 0f)) - } + ObjectAnimator.ofFloat(this@StoryReactionBar, View.ALPHA, 1f) - ) - - start() - } - } - - private fun onEmojiSelected(emoji: String) { - callback?.onReactionSelected(emoji) - } - - private fun onOpenReactionPicker() { - callback?.onOpenReactionPicker() - } - - interface Callback { - fun onTouchOutsideOfReactionBar() - fun onReactionSelected(emoji: String) - fun onOpenReactionPicker() - } -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/reaction/MultiReactionBurstLayout.kt b/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/reaction/MultiReactionBurstLayout.kt deleted file mode 100644 index 4bb224ceda..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/stories/viewer/reply/reaction/MultiReactionBurstLayout.kt +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright 2023 Signal Messenger, LLC - * SPDX-License-Identifier: AGPL-3.0-only - */ - -package org.thoughtcrime.securesms.stories.viewer.reply.reaction - -import android.content.Context -import android.util.AttributeSet -import android.widget.FrameLayout -import androidx.core.view.children -import org.signal.emoji.EmojiUtil -import org.thoughtcrime.securesms.R -import org.thoughtcrime.securesms.events.GroupCallReactionEvent -import kotlin.time.Duration.Companion.seconds - -class MultiReactionBurstLayout @JvmOverloads constructor( - context: Context, - attrs: AttributeSet? = null -) : FrameLayout(context, attrs) { - private val cooldownTimes = mutableMapOf() - - private var nextViewIndex = 0 - - init { - repeat(MAX_SIMULTANEOUS_REACTIONS) { - val view = OnReactionSentView(context, layoutRes = R.layout.reaction_burst_view) - addView(view) - } - } - - fun displayReactions(reactions: List) { - if (children.count() == 0) { - throw IllegalStateException("You must add views before displaying reactions!") - } - - reactions.filter { - if (it.getExpirationTimestamp() < System.currentTimeMillis()) { - return@filter false - } - - val cutoffTimestamp = cooldownTimes[EmojiUtil.getCanonicalRepresentation(it.reaction)] ?: return@filter true - - return@filter cutoffTimestamp < it.timestamp - } - .groupBy { EmojiUtil.getCanonicalRepresentation(it.reaction) } - .filter { it.value.groupBy { event -> event.sender }.size >= REACTION_COUNT_THRESHOLD } - .values - .map { it.sortedBy { event -> event.timestamp } } - .sortedBy { it.last().timestamp } - .take(MAX_SIMULTANEOUS_REACTIONS - cooldownTimes.filter { it.value > System.currentTimeMillis() }.size) - .forEach { - val reactionView = getNextReactionView() - reactionView.playForEmoji(it.map { event -> event.reaction }) - val lastEvent = it.last() - cooldownTimes[EmojiUtil.getCanonicalRepresentation(lastEvent.reaction)] = lastEvent.timestamp + cooldownDuration.inWholeMilliseconds - } - } - - private fun getNextReactionView(): OnReactionSentView { - val v = getChildAt(nextViewIndex) as OnReactionSentView - - nextViewIndex = (nextViewIndex + 1) % MAX_SIMULTANEOUS_REACTIONS - - return v - } - - companion object { - private const val REACTION_COUNT_THRESHOLD = 3 - private const val MAX_SIMULTANEOUS_REACTIONS = 3 - private val cooldownDuration = 2.seconds - } -} diff --git a/app/src/main/res/anim-v21/camera_fab_cubic_easing_interpolator.xml b/app/src/main/res/anim-v21/camera_fab_cubic_easing_interpolator.xml deleted file mode 100644 index 870b232171..0000000000 --- a/app/src/main/res/anim-v21/camera_fab_cubic_easing_interpolator.xml +++ /dev/null @@ -1,6 +0,0 @@ - - \ No newline at end of file diff --git a/app/src/main/res/anim/camera_fab_cubic_easing_interpolator.xml b/app/src/main/res/anim/camera_fab_cubic_easing_interpolator.xml deleted file mode 100644 index dc1428476c..0000000000 --- a/app/src/main/res/anim/camera_fab_cubic_easing_interpolator.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/app/src/main/res/color/transfer_option_stroke_color_selector.xml b/app/src/main/res/color/transfer_option_stroke_color_selector.xml deleted file mode 100644 index a3edc5e38a..0000000000 --- a/app/src/main/res/color/transfer_option_stroke_color_selector.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_transfer_local_48.xml b/app/src/main/res/drawable/ic_transfer_local_48.xml deleted file mode 100644 index b290196c53..0000000000 --- a/app/src/main/res/drawable/ic_transfer_local_48.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - diff --git a/app/src/main/res/drawable/ic_transfer_phone_48.xml b/app/src/main/res/drawable/ic_transfer_phone_48.xml deleted file mode 100644 index 87c8d7771e..0000000000 --- a/app/src/main/res/drawable/ic_transfer_phone_48.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/selected_page_dot_indicator.xml b/app/src/main/res/drawable/selected_page_dot_indicator.xml deleted file mode 100644 index 1e0c1cd96c..0000000000 --- a/app/src/main/res/drawable/selected_page_dot_indicator.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/symbol_bell_ring_fill_disabled_24.xml b/app/src/main/res/drawable/symbol_bell_ring_fill_disabled_24.xml deleted file mode 100644 index 9b44579435..0000000000 --- a/app/src/main/res/drawable/symbol_bell_ring_fill_disabled_24.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - diff --git a/app/src/main/res/drawable/symbol_switch_white_24.xml b/app/src/main/res/drawable/symbol_switch_white_24.xml deleted file mode 100644 index 54189e6a03..0000000000 --- a/app/src/main/res/drawable/symbol_switch_white_24.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/unselected_page_dot_indicator.xml b/app/src/main/res/drawable/unselected_page_dot_indicator.xml deleted file mode 100644 index 3d6eba0572..0000000000 --- a/app/src/main/res/drawable/unselected_page_dot_indicator.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/webrtc_call_screen_circle_checked.xml b/app/src/main/res/drawable/webrtc_call_screen_circle_checked.xml deleted file mode 100644 index 1e7f8ffe78..0000000000 --- a/app/src/main/res/drawable/webrtc_call_screen_circle_checked.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/webrtc_call_screen_circle_green.xml b/app/src/main/res/drawable/webrtc_call_screen_circle_green.xml deleted file mode 100644 index 815fb508e2..0000000000 --- a/app/src/main/res/drawable/webrtc_call_screen_circle_green.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/app/src/main/res/drawable/webrtc_call_screen_circle_grey_disabled.xml b/app/src/main/res/drawable/webrtc_call_screen_circle_grey_disabled.xml deleted file mode 100644 index 348b2a3ffe..0000000000 --- a/app/src/main/res/drawable/webrtc_call_screen_circle_grey_disabled.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/webrtc_call_screen_circle_grey_selector.xml b/app/src/main/res/drawable/webrtc_call_screen_circle_grey_selector.xml deleted file mode 100644 index 616e6e3cd4..0000000000 --- a/app/src/main/res/drawable/webrtc_call_screen_circle_grey_selector.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/webrtc_call_screen_circle_red.xml b/app/src/main/res/drawable/webrtc_call_screen_circle_red.xml deleted file mode 100644 index 22dac3f6b1..0000000000 --- a/app/src/main/res/drawable/webrtc_call_screen_circle_red.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/app/src/main/res/drawable/webrtc_call_screen_circle_unchecked.xml b/app/src/main/res/drawable/webrtc_call_screen_circle_unchecked.xml deleted file mode 100644 index 06e1367691..0000000000 --- a/app/src/main/res/drawable/webrtc_call_screen_circle_unchecked.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - diff --git a/app/src/main/res/layout/audio_output_adapter_radio_item.xml b/app/src/main/res/layout/audio_output_adapter_radio_item.xml deleted file mode 100644 index a50a8d9f10..0000000000 --- a/app/src/main/res/layout/audio_output_adapter_radio_item.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - diff --git a/app/src/main/res/layout/conversation_settings_internal_preference.xml b/app/src/main/res/layout/conversation_settings_internal_preference.xml deleted file mode 100644 index c5b2182374..0000000000 --- a/app/src/main/res/layout/conversation_settings_internal_preference.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/dsl_banner.xml b/app/src/main/res/layout/dsl_banner.xml deleted file mode 100644 index d884a505ba..0000000000 --- a/app/src/main/res/layout/dsl_banner.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/dsl_outlined_learn_more.xml b/app/src/main/res/layout/dsl_outlined_learn_more.xml deleted file mode 100644 index 48cccfa096..0000000000 --- a/app/src/main/res/layout/dsl_outlined_learn_more.xml +++ /dev/null @@ -1,12 +0,0 @@ - - diff --git a/app/src/main/res/layout/dsl_progress_pref.xml b/app/src/main/res/layout/dsl_progress_pref.xml deleted file mode 100644 index 293bc8db03..0000000000 --- a/app/src/main/res/layout/dsl_progress_pref.xml +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/material3_serarch_toolbar.xml b/app/src/main/res/layout/material3_serarch_toolbar.xml deleted file mode 100644 index 2a50dc1c58..0000000000 --- a/app/src/main/res/layout/material3_serarch_toolbar.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/reaction_burst_view.xml b/app/src/main/res/layout/reaction_burst_view.xml deleted file mode 100644 index 9f4ab07ec6..0000000000 --- a/app/src/main/res/layout/reaction_burst_view.xml +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/recent_photo_view.xml b/app/src/main/res/layout/recent_photo_view.xml deleted file mode 100644 index 48148d7deb..0000000000 --- a/app/src/main/res/layout/recent_photo_view.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/recent_photo_view_item.xml b/app/src/main/res/layout/recent_photo_view_item.xml deleted file mode 100644 index df52cc12e8..0000000000 --- a/app/src/main/res/layout/recent_photo_view_item.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - diff --git a/app/src/main/res/layout/search_toolbar.xml b/app/src/main/res/layout/search_toolbar.xml deleted file mode 100644 index fb77d49e2a..0000000000 --- a/app/src/main/res/layout/search_toolbar.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/stories_reaction_bar.xml b/app/src/main/res/layout/stories_reaction_bar.xml deleted file mode 100644 index 420d7565b7..0000000000 --- a/app/src/main/res/layout/stories_reaction_bar.xml +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/test_fragment.xml b/app/src/main/res/layout/test_fragment.xml deleted file mode 100644 index 42fb6ab0a9..0000000000 --- a/app/src/main/res/layout/test_fragment.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/src/main/res/menu/conversation_list_search.xml b/app/src/main/res/menu/conversation_list_search.xml deleted file mode 100644 index 49214715db..0000000000 --- a/app/src/main/res/menu/conversation_list_search.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/app/src/main/res/raw/ias.store b/app/src/main/res/raw/ias.store deleted file mode 100644 index e0b8ec8ccacc48459adb2384402b887682cf45da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1441 zcmZQzU|?ckU=WcLo>6|#P&tUfG}q(0mH|~V zFtA4GnHpFEX@7$zR&RqQ=FJP3nHZUvI2kUom&F<_-Y~_0myJ`a&7dghg+ z<|sJl7Zv0eC6;97=NTFp=z-*zdDJ0t!R`?XjwL0j#U)^Qg`iZR(h`N>%=Em>ymSR; zM*{_MUPCiOLqiioQ)6>u!zc-UBLfplLnC7#GPN|dj2dtkHZd+j4m3tq2IeNleg=ak z#xABN#zuzuHYs&m%WZZC>Z%(Zxb7IYJ9NRXdH3{ECeD1;B)e1Ks$sb~XSrKeR-Aj= znM-$HUlEy`rJt-CH1{IU$#(M%<#VLiAI))JxQ@Zo!#&4izU$J3u~jGD99whDb?p}0 z_Vl@5=WtpdUGy?DC!``odiuOl?{G_zeW922zZ{r*UtMvg$=R8#>YIP+UGLwosgkwt zbfF60=Q+BC>|5MJqUwJOyk_IdSlQa3IL~Y%XHbU4q-#qbt>9pmv~wsmbnr9VESh9K zb5&D7iNo}eMfYEPU4QjovYh;(^%fix@->!ExOsQ}gM`Vmg~BHsZHQ&A{hBp1SbEyM z%zMUfm2wU$)CxFlJ-NEx!T-46fq(9qzo%Agyu)`S^Ocn9ga0!{I`Tec&Q^}z(o%cv zzr!}RXX5OW5B;98StO!<&R^Byr2DTna$8@zSysGo$zGQu!K=R1AN+Lr!snLnUTi<+ zaLngjc6R%pcP~yhN%e(%ieVAE*yGkbE51SK_g&lLzN$%;YY!c`8udS)P01-%nu(c_ zfpKx;NrT2?1_{8_Co9hqX%KD@x*&K#V4HtNNlAf~zJ5tjX>mzvN^xpYS!Qx-v0f%9 z>FOot=jtct1DSax`p!W<`oQF>kCa>?sTG=7ogMX(i*gKPK{oKQh_Q%NI9Hb~tJ`y7 zeVvo}YttI*cE&&(19_0NGK++PSOazid>{q9Px zoDrv>YgGS16DLEx@@1A&Zcd+i;+1Pzlg+EHiw`HBUy<}{$4aBiH#Y=Fu`^u=jW2ns z@R-@)vq{7AwI{EikW(lyblT5wRAU9Vn{ngc1g)my%t4K-o=#0Vv(?yd#RR)lZbr7o zujl%<>8+XL=-HuS^=8ti=#Mt{zrQ}C+4od>SCpy6wrsW2N1_7nG1#m%NHttr^YzMm z{tniQJB4jkgrhbeNs-d;;4qn6Y^)i_SN6{Ps8W$pQs1wJ>vJcq_OlgK`20KSqU71$ z5U+(-mbJxYhwobxUT9FKXS0)?cS*JPpN`B2BEqjYO RcZ)scQZTsQY7d+&%4M^ zza6~JavyCuJ*PQ@rPznB?pQ+1{qy=?EVo@LoL`{N$78?1|F+Pw(^?l-%gp-t1Bm$#Naxay6{qM3DBmjOA4C9ePg