Fix l10n when searching for "Note to Self".
This commit is contained in:
parent
33f4bb0000
commit
125ff83bac
8 changed files with 43 additions and 22 deletions
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
|
@ -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() {
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue