Fix l10n when searching for "Note to Self".

This commit is contained in:
Rashad Sookram 2022-01-26 16:23:12 -05:00 committed by Cody Henthorne
parent 33f4bb0000
commit 125ff83bac
8 changed files with 43 additions and 22 deletions

View file

@ -10,7 +10,6 @@ import android.text.TextUtils;
import androidx.annotation.NonNull;
import androidx.annotation.WorkerThread;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.database.RecipientDatabase;
import org.thoughtcrime.securesms.database.SignalDatabase;
import org.thoughtcrime.securesms.phonenumbers.PhoneNumberFormatter;
@ -101,9 +100,9 @@ public class ContactRepository {
}));
}};
public ContactRepository(@NonNull Context context) {
public ContactRepository(@NonNull Context context, @NonNull String noteToSelfTitle) {
this.recipientDatabase = SignalDatabase.recipients();
this.noteToSelfTitle = context.getString(R.string.note_to_self);
this.noteToSelfTitle = noteToSelfTitle;
this.context = context.getApplicationContext();
}

View file

@ -75,7 +75,7 @@ public class ContactsCursorLoader extends AbstractContactsCursorLoader {
this.mode = mode;
this.recents = recents;
this.contactRepository = new ContactRepository(context);
this.contactRepository = new ContactRepository(context, context.getString(R.string.note_to_self));
}
protected final List<Cursor> getUnfilteredResults() {

View file

@ -2191,7 +2191,9 @@ public class ConversationParentFragment extends Fragment
}
private void initializeSearchObserver() {
searchViewModel = new ViewModelProvider(this).get(ConversationSearchViewModel.class);
ConversationSearchViewModel.Factory viewModelFactory = new ConversationSearchViewModel.Factory(getString(R.string.note_to_self));
searchViewModel = new ViewModelProvider(this, viewModelFactory).get(ConversationSearchViewModel.class);
searchViewModel.getSearchResults().observe(getViewLifecycleOwner(), result -> {
if (result == null) return;

View file

@ -1,11 +1,10 @@
package org.thoughtcrime.securesms.conversation;
import android.app.Application;
import androidx.annotation.NonNull;
import androidx.lifecycle.AndroidViewModel;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
import androidx.lifecycle.ViewModelProvider;
import org.signal.core.util.ThreadUtil;
import org.thoughtcrime.securesms.search.MessageResult;
@ -15,7 +14,7 @@ import org.thoughtcrime.securesms.util.Debouncer;
import java.util.Collections;
import java.util.List;
public class ConversationSearchViewModel extends AndroidViewModel {
public class ConversationSearchViewModel extends ViewModel {
private final SearchRepository searchRepository;
private final MutableLiveData<SearchResult> result;
@ -26,11 +25,10 @@ public class ConversationSearchViewModel extends AndroidViewModel {
private String activeQuery;
private long activeThreadId;
public ConversationSearchViewModel(@NonNull Application application) {
super(application);
public ConversationSearchViewModel(@NonNull String noteToSelfTitle) {
result = new MutableLiveData<>();
debouncer = new Debouncer(500);
searchRepository = new SearchRepository();
searchRepository = new SearchRepository(noteToSelfTitle);
}
LiveData<SearchResult> getSearchResults() {
@ -128,4 +126,19 @@ public class ConversationSearchViewModel extends AndroidViewModel {
return position;
}
}
public static class Factory extends ViewModelProvider.NewInstanceFactory {
private final String noteToSelfTitle;
public Factory(@NonNull String noteToSelfTitle) {
this.noteToSelfTitle = noteToSelfTitle;
}
@Override
public @NonNull <T extends ViewModel> T create(@NonNull Class<T> modelClass) {
//noinspection ConstantConditions
return modelClass.cast(new ConversationSearchViewModel(noteToSelfTitle));
}
}
}

View file

@ -673,7 +673,10 @@ public class ConversationListFragment extends MainFragment implements ActionMode
}
private void initializeViewModel() {
viewModel = new ViewModelProvider(this, new ConversationListViewModel.Factory(isArchived())).get(ConversationListViewModel.class);
ConversationListViewModel.Factory viewModelFactory = new ConversationListViewModel.Factory(isArchived(),
getString(R.string.note_to_self));
viewModel = new ViewModelProvider(this, viewModelFactory).get(ConversationListViewModel.class);
viewModel.getSearchResult().observe(getViewLifecycleOwner(), this::onSearchResultChanged);
viewModel.getMegaphone().observe(getViewLifecycleOwner(), this::onMegaphoneChanged);

View file

@ -290,15 +290,17 @@ class ConversationListViewModel extends ViewModel {
public static class Factory extends ViewModelProvider.NewInstanceFactory {
private final boolean isArchived;
private final String noteToSelfTitle;
public Factory(boolean isArchived) {
this.isArchived = isArchived;
public Factory(boolean isArchived, @NonNull String noteToSelfTitle) {
this.isArchived = isArchived;
this.noteToSelfTitle = noteToSelfTitle;
}
@Override
public @NonNull <T extends ViewModel> T create(@NonNull Class<T> modelClass) {
//noinspection ConstantConditions
return modelClass.cast(new ConversationListViewModel(ApplicationDependencies.getApplication(), new SearchRepository(), isArchived));
return modelClass.cast(new ConversationListViewModel(ApplicationDependencies.getApplication(), new SearchRepository(noteToSelfTitle), isArchived));
}
}
}

View file

@ -9,6 +9,7 @@ import androidx.annotation.WorkerThread;
import org.signal.core.util.concurrent.SignalExecutors;
import org.signal.core.util.logging.Log;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.contacts.ContactRepository;
import org.thoughtcrime.securesms.database.GroupDatabase;
import org.thoughtcrime.securesms.database.RecipientDatabase;
@ -48,7 +49,7 @@ class CameraContactsRepository {
this.threadDatabase = SignalDatabase.threads();
this.groupDatabase = SignalDatabase.groups();
this.recipientDatabase = SignalDatabase.recipients();
this.contactRepository = new ContactRepository(context);
this.contactRepository = new ContactRepository(context, context.getString(R.string.note_to_self));
this.serialExecutor = SignalExecutors.SERIAL;
this.parallelExecutor = SignalExecutors.BOUNDED;
}

View file

@ -10,9 +10,9 @@ import androidx.annotation.Nullable;
import com.annimon.stream.Stream;
import org.signal.core.util.concurrent.LatestPrioritizedSerialExecutor;
import org.signal.core.util.concurrent.SignalExecutors;
import org.signal.core.util.logging.Log;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.contacts.ContactRepository;
import org.thoughtcrime.securesms.database.GroupDatabase;
import org.thoughtcrime.securesms.database.MentionDatabase;
@ -32,7 +32,6 @@ import org.thoughtcrime.securesms.recipients.RecipientId;
import org.thoughtcrime.securesms.util.CursorUtil;
import org.thoughtcrime.securesms.util.FtsUtil;
import org.thoughtcrime.securesms.util.Util;
import org.signal.core.util.concurrent.LatestPrioritizedSerialExecutor;
import org.thoughtcrime.securesms.util.concurrent.SerialExecutor;
import java.util.ArrayList;
@ -56,6 +55,7 @@ public class SearchRepository {
private static final String TAG = Log.tag(SearchRepository.class);
private final Context context;
private final String noteToSelfTitle;
private final SearchDatabase searchDatabase;
private final ContactRepository contactRepository;
private final ThreadDatabase threadDatabase;
@ -66,14 +66,15 @@ public class SearchRepository {
private final LatestPrioritizedSerialExecutor searchExecutor;
private final Executor serialExecutor;
public SearchRepository() {
public SearchRepository(@NonNull String noteToSelfTitle) {
this.context = ApplicationDependencies.getApplication().getApplicationContext();
this.noteToSelfTitle = noteToSelfTitle;
this.searchDatabase = SignalDatabase.messageSearch();
this.threadDatabase = SignalDatabase.threads();
this.recipientDatabase = SignalDatabase.recipients();
this.mentionDatabase = SignalDatabase.mentions();
this.mmsDatabase = SignalDatabase.mms();
this.contactRepository = new ContactRepository(context);
this.contactRepository = new ContactRepository(context, noteToSelfTitle);
this.searchExecutor = new LatestPrioritizedSerialExecutor(SignalExecutors.BOUNDED);
this.serialExecutor = new SerialExecutor(SignalExecutors.BOUNDED);
}
@ -173,7 +174,7 @@ public class SearchRepository {
}
}
if (context.getString(R.string.note_to_self).toLowerCase().contains(query.toLowerCase())) {
if (noteToSelfTitle.toLowerCase().contains(query.toLowerCase())) {
recipientIds.add(Recipient.self().getId());
}