Refactor database migration test and string trimming

This commit is contained in:
Yingwei Zheng 2022-05-04 20:20:19 +08:00 committed by TobiGr
parent 4af5b5f6f2
commit 881d04ba1e
2 changed files with 22 additions and 18 deletions

View file

@ -28,9 +28,6 @@ class DatabaseMigrationTest {
private const val DEFAULT_SECOND_SERVICE_ID = 1 private const val DEFAULT_SECOND_SERVICE_ID = 1
private const val DEFAULT_SECOND_URL = "https://www.youtube.com/watch?v=ncQU6iBn5Fc" private const val DEFAULT_SECOND_URL = "https://www.youtube.com/watch?v=ncQU6iBn5Fc"
private const val DEFAULT_SEARCH1 = " abc "
private const val DEFAULT_SEARCH2 = " abc"
} }
@get:Rule @get:Rule
@ -163,28 +160,28 @@ class DatabaseMigrationTest {
"search_history", SQLiteDatabase.CONFLICT_FAIL, "search_history", SQLiteDatabase.CONFLICT_FAIL,
ContentValues().apply { ContentValues().apply {
put("service_id", DEFAULT_SERVICE_ID) put("service_id", DEFAULT_SERVICE_ID)
put("search", DEFAULT_SEARCH1) put("search", defaultSearch1)
} }
) )
insert( insert(
"search_history", SQLiteDatabase.CONFLICT_FAIL, "search_history", SQLiteDatabase.CONFLICT_FAIL,
ContentValues().apply { ContentValues().apply {
put("service_id", DEFAULT_SERVICE_ID) put("service_id", DEFAULT_SERVICE_ID)
put("search", DEFAULT_SEARCH2) put("search", defaultSearch2)
} }
) )
insert( insert(
"search_history", SQLiteDatabase.CONFLICT_FAIL, "search_history", SQLiteDatabase.CONFLICT_FAIL,
ContentValues().apply { ContentValues().apply {
put("service_id", DEFAULT_SECOND_SERVICE_ID) put("service_id", DEFAULT_SECOND_SERVICE_ID)
put("search", DEFAULT_SEARCH1) put("search", defaultSearch1)
} }
) )
insert( insert(
"search_history", SQLiteDatabase.CONFLICT_FAIL, "search_history", SQLiteDatabase.CONFLICT_FAIL,
ContentValues().apply { ContentValues().apply {
put("service_id", DEFAULT_SECOND_SERVICE_ID) put("service_id", DEFAULT_SECOND_SERVICE_ID)
put("search", DEFAULT_SEARCH2) put("search", defaultSearch2)
} }
) )
close() close()

View file

@ -385,9 +385,8 @@ public class SearchFragment extends BaseListFragment<SearchInfo, ListExtractor.I
@Override @Override
public void onSaveInstanceState(@NonNull final Bundle bundle) { public void onSaveInstanceState(@NonNull final Bundle bundle) {
searchEditText.setText(searchEditText.getText().toString().trim());
searchString = searchEditText != null searchString = searchEditText != null
? searchEditText.getText().toString() ? getSearchEditString().trim()
: searchString; : searchString;
super.onSaveInstanceState(bundle); super.onSaveInstanceState(bundle);
} }
@ -399,10 +398,10 @@ public class SearchFragment extends BaseListFragment<SearchInfo, ListExtractor.I
@Override @Override
public void reloadContent() { public void reloadContent() {
if (!TextUtils.isEmpty(searchString) || (searchEditText != null if (!TextUtils.isEmpty(searchString) || (searchEditText != null
&& !isBlank(searchEditText.getText().toString()))) { && !isSearchEditBlank())) {
search(!TextUtils.isEmpty(searchString) search(!TextUtils.isEmpty(searchString)
? searchString ? searchString
: searchEditText.getText().toString(), this.contentFilter, ""); : getSearchEditString(), this.contentFilter, "");
} else { } else {
if (searchEditText != null) { if (searchEditText != null) {
searchEditText.setText(""); searchEditText.setText("");
@ -497,7 +496,7 @@ public class SearchFragment extends BaseListFragment<SearchInfo, ListExtractor.I
searchEditText.setText(searchString); searchEditText.setText(searchString);
if (TextUtils.isEmpty(searchString) if (TextUtils.isEmpty(searchString)
|| isBlank(searchEditText.getText().toString())) { || isSearchEditBlank()) {
searchToolbarContainer.setTranslationX(100); searchToolbarContainer.setTranslationX(100);
searchToolbarContainer.setAlpha(0.0f); searchToolbarContainer.setAlpha(0.0f);
searchToolbarContainer.setVisibility(View.VISIBLE); searchToolbarContainer.setVisibility(View.VISIBLE);
@ -521,7 +520,7 @@ public class SearchFragment extends BaseListFragment<SearchInfo, ListExtractor.I
if (DEBUG) { if (DEBUG) {
Log.d(TAG, "onClick() called with: v = [" + v + "]"); Log.d(TAG, "onClick() called with: v = [" + v + "]");
} }
if (isBlank(searchEditText.getText().toString())) { if (isSearchEditBlank()) {
NavigationHelper.gotoMainFragment(getFM()); NavigationHelper.gotoMainFragment(getFM());
return; return;
} }
@ -600,7 +599,7 @@ public class SearchFragment extends BaseListFragment<SearchInfo, ListExtractor.I
s.removeSpan(span); s.removeSpan(span);
} }
final String newText = searchEditText.getText().toString().trim(); final String newText = getSearchEditString().trim();
suggestionPublisher.onNext(newText); suggestionPublisher.onNext(newText);
} }
}; };
@ -616,8 +615,8 @@ public class SearchFragment extends BaseListFragment<SearchInfo, ListExtractor.I
} else if (event != null } else if (event != null
&& (event.getKeyCode() == KeyEvent.KEYCODE_ENTER && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER
|| event.getAction() == EditorInfo.IME_ACTION_SEARCH)) { || event.getAction() == EditorInfo.IME_ACTION_SEARCH)) {
searchEditText.setText(searchEditText.getText().toString().trim()); searchEditText.setText(getSearchEditString().trim());
search(searchEditText.getText().toString(), new String[0], ""); search(getSearchEditString(), new String[0], "");
return true; return true;
} }
return false; return false;
@ -692,7 +691,7 @@ public class SearchFragment extends BaseListFragment<SearchInfo, ListExtractor.I
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe( .subscribe(
howManyDeleted -> suggestionPublisher howManyDeleted -> suggestionPublisher
.onNext(searchEditText.getText().toString()), .onNext(getSearchEditString()),
throwable -> showSnackBarError(new ErrorInfo(throwable, throwable -> showSnackBarError(new ErrorInfo(throwable,
UserAction.DELETE_FROM_HISTORY, UserAction.DELETE_FROM_HISTORY,
"Deleting item failed"))); "Deleting item failed")));
@ -942,6 +941,14 @@ public class SearchFragment extends BaseListFragment<SearchInfo, ListExtractor.I
sortFilter = theSortFilter; sortFilter = theSortFilter;
} }
private String getSearchEditString() {
return searchEditText.getText().toString();
}
private Boolean isSearchEditBlank() {
return isBlank(getSearchEditString());
}
/*////////////////////////////////////////////////////////////////////////// /*//////////////////////////////////////////////////////////////////////////
// Suggestion Results // Suggestion Results
//////////////////////////////////////////////////////////////////////////*/ //////////////////////////////////////////////////////////////////////////*/
@ -1087,7 +1094,7 @@ public class SearchFragment extends BaseListFragment<SearchInfo, ListExtractor.I
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
.subscribe( .subscribe(
howManyDeleted -> suggestionPublisher howManyDeleted -> suggestionPublisher
.onNext(searchEditText.getText().toString()), .onNext(getSearchEditString()),
throwable -> showSnackBarError(new ErrorInfo(throwable, throwable -> showSnackBarError(new ErrorInfo(throwable,
UserAction.DELETE_FROM_HISTORY, "Deleting item failed"))); UserAction.DELETE_FROM_HISTORY, "Deleting item failed")));
disposables.add(onDelete); disposables.add(onDelete);