From febedc9b1f7898e39daa0f0fdac633ff4da5dd79 Mon Sep 17 00:00:00 2001 From: tom79 Date: Sun, 15 Oct 2017 18:16:10 +0200 Subject: [PATCH 1/4] Fixes an issue when removing chars during a search --- .../mastodon/activities/TootActivity.java | 58 ++++++++++--------- 1 file changed, 30 insertions(+), 28 deletions(-) diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/TootActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/TootActivity.java index 531f1de92..4be7d7c72 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/TootActivity.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/TootActivity.java @@ -1214,35 +1214,37 @@ public class TootActivity extends AppCompatActivity implements OnRetrieveSearcAc toot_content.setAdapter(accountsListAdapter); final String oldContent = toot_content.getText().toString(); String[] searchA = oldContent.substring(0,currentCursorPosition).split("@"); - final String search = searchA[searchA.length-1]; - toot_content.setOnItemClickListener(new AdapterView.OnItemClickListener() { - @Override - public void onItemClick(AdapterView parent, View view, int position, long id) { - Account account = accounts.get(position); - String deltaSearch = ""; - if( currentCursorPosition-searchLength > 0 && currentCursorPosition < oldContent.length() ) - deltaSearch = oldContent.substring(currentCursorPosition-searchLength, currentCursorPosition); - else { - if( currentCursorPosition >= oldContent.length() ) - deltaSearch = oldContent.substring(currentCursorPosition-searchLength, oldContent.length()); - } + if( searchA.length > 0 ) { + final String search = searchA[searchA.length - 1]; + toot_content.setOnItemClickListener(new AdapterView.OnItemClickListener() { + @Override + public void onItemClick(AdapterView parent, View view, int position, long id) { + Account account = accounts.get(position); + String deltaSearch = ""; + if (currentCursorPosition - searchLength > 0 && currentCursorPosition < oldContent.length()) + deltaSearch = oldContent.substring(currentCursorPosition - searchLength, currentCursorPosition); + else { + if (currentCursorPosition >= oldContent.length()) + deltaSearch = oldContent.substring(currentCursorPosition - searchLength, oldContent.length()); + } - if( !search.equals("")) - deltaSearch = deltaSearch.replace("@"+search,""); - String newContent = oldContent.substring(0,currentCursorPosition-searchLength); - newContent += deltaSearch; - newContent += "@" + account.getAcct() + " "; - int newPosition = newContent.length(); - if( currentCursorPosition < oldContent.length() - 1) - newContent += oldContent.substring(currentCursorPosition, oldContent.length()-1); - toot_content.setText(newContent); - toot_space_left.setText(String.valueOf(toot_content.length())); - toot_content.setSelection(newPosition); - AccountsSearchAdapter accountsListAdapter = new AccountsSearchAdapter(TootActivity.this, new ArrayList()); - toot_content.setThreshold(1); - toot_content.setAdapter(accountsListAdapter); - } - }); + if (!search.equals("")) + deltaSearch = deltaSearch.replace("@" + search, ""); + String newContent = oldContent.substring(0, currentCursorPosition - searchLength); + newContent += deltaSearch; + newContent += "@" + account.getAcct() + " "; + int newPosition = newContent.length(); + if (currentCursorPosition < oldContent.length() - 1) + newContent += oldContent.substring(currentCursorPosition, oldContent.length() - 1); + toot_content.setText(newContent); + toot_space_left.setText(String.valueOf(toot_content.length())); + toot_content.setSelection(newPosition); + AccountsSearchAdapter accountsListAdapter = new AccountsSearchAdapter(TootActivity.this, new ArrayList()); + toot_content.setThreshold(1); + toot_content.setAdapter(accountsListAdapter); + } + }); + } } } From d5c4175970d6fa604b8d623cb2f886769972bc31 Mon Sep 17 00:00:00 2001 From: tom79 Date: Sun, 15 Oct 2017 18:20:51 +0200 Subject: [PATCH 2/4] Search accounts: adds more info --- .../mastodon/asynctasks/RetrieveSearchAccountsAsyncTask.java | 2 +- .../fr/gouv/etalab/mastodon/drawers/AccountsSearchAdapter.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/asynctasks/RetrieveSearchAccountsAsyncTask.java b/app/src/main/java/fr/gouv/etalab/mastodon/asynctasks/RetrieveSearchAccountsAsyncTask.java index e5cdeceba..764d5e7f1 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/asynctasks/RetrieveSearchAccountsAsyncTask.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/asynctasks/RetrieveSearchAccountsAsyncTask.java @@ -43,7 +43,7 @@ public class RetrieveSearchAccountsAsyncTask extends AsyncTask @Override protected Void doInBackground(Void... params) { API api = new API(context); - apiResponse = api.searchAccounts(query, 10); + apiResponse = api.searchAccounts(query, 20); return null; } diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/AccountsSearchAdapter.java b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/AccountsSearchAdapter.java index ba900ef05..9b85465b1 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/AccountsSearchAdapter.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/AccountsSearchAdapter.java @@ -125,7 +125,7 @@ public class AccountsSearchAdapter extends ArrayAdapter implements Filt holder.account_un.setText(String.format("@%s", account.getUsername() + "@" + instance)); holder.account_dn.setVisibility(View.GONE); }else { - holder.account_un.setText(String.format("@%s", account.getUsername())); + holder.account_un.setText(String.format("@%s", account.getAcct())); holder.account_dn.setText(Helper.shortnameToUnicode(account.getDisplay_name(), true)); holder.account_dn.setVisibility(View.VISIBLE); } From 8ce0796e07f1aca56a1c6c1cb9c907b47a44fe72 Mon Sep 17 00:00:00 2001 From: tom79 Date: Sun, 15 Oct 2017 18:27:52 +0200 Subject: [PATCH 3/4] Avoid issue with icon color --- .../etalab/mastodon/fragments/DisplayStatusFragment.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayStatusFragment.java b/app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayStatusFragment.java index d7554fde4..64a96aa4d 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayStatusFragment.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/fragments/DisplayStatusFragment.java @@ -385,6 +385,11 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn retrieveMissingToots(statuses.get(0).getId()); } } + int index = lv_status.getFirstVisiblePosition(); + View v = lv_status.getChildAt(0); + int top = (v == null) ? 0 : v.getTop(); + statusListAdapter.notifyDataSetChanged(); + lv_status.setSelectionFromTop(index, top); } /** From f7d3aa62630ba17e396e449edaf8075d9956770e Mon Sep 17 00:00:00 2001 From: tom79 Date: Sun, 15 Oct 2017 18:44:08 +0200 Subject: [PATCH 4/4] Avoid issue with icon color --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 4b823804a..04aa494d1 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,8 +7,8 @@ android { applicationId "fr.gouv.etalab.mastodon" minSdkVersion 15 targetSdkVersion 26 - versionCode 62 - versionName "1.5.2" + versionCode 63 + versionName "1.5.3" } buildTypes { release {