From 8df1890b73471dd92cc663a85a5076df7e1e29a6 Mon Sep 17 00:00:00 2001 From: tom79 Date: Thu, 3 Aug 2017 14:38:47 +0200 Subject: [PATCH] Adds feature to display toots only with media for accounts --- .../activities/ShowAccountActivity.java | 21 ++++++ .../activities/ShowConversationActivity.java | 6 +- .../mastodon/activities/TootActivity.java | 28 -------- .../asynctasks/RetrieveFeedsAsyncTask.java | 9 ++- .../fr/gouv/etalab/mastodon/client/API.java | 11 +++ .../drawers/AccountsSearchAdapter.java | 5 +- .../fragments/DisplayStatusFragment.java | 11 +-- .../main/res/drawable-hdpi/ic_clear_all.png | Bin 0 -> 131 bytes .../main/res/drawable-hdpi/ic_perm_media.png | Bin 0 -> 296 bytes .../main/res/drawable-ldpi/ic_clear_all.png | Bin 0 -> 231 bytes .../main/res/drawable-ldpi/ic_perm_media.png | Bin 0 -> 346 bytes .../main/res/drawable-mdpi/ic_clear_all.png | Bin 0 -> 95 bytes .../main/res/drawable-mdpi/ic_perm_media.png | Bin 0 -> 213 bytes .../main/res/drawable-xhdpi/ic_clear_all.png | Bin 0 -> 108 bytes .../main/res/drawable-xhdpi/ic_perm_media.png | Bin 0 -> 299 bytes .../main/res/drawable-xxhdpi/ic_clear_all.png | Bin 0 -> 133 bytes .../res/drawable-xxhdpi/ic_perm_media.png | Bin 0 -> 478 bytes .../res/drawable-xxxhdpi/ic_clear_all.png | Bin 0 -> 130 bytes .../res/drawable-xxxhdpi/ic_perm_media.png | Bin 0 -> 549 bytes .../main/res/layout/drawer_account_search.xml | 68 ++++++++---------- app/src/main/res/menu/main_showaccount.xml | 9 +++ app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 23 files changed, 91 insertions(+), 79 deletions(-) create mode 100644 app/src/main/res/drawable-hdpi/ic_clear_all.png create mode 100644 app/src/main/res/drawable-hdpi/ic_perm_media.png create mode 100644 app/src/main/res/drawable-ldpi/ic_clear_all.png create mode 100644 app/src/main/res/drawable-ldpi/ic_perm_media.png create mode 100644 app/src/main/res/drawable-mdpi/ic_clear_all.png create mode 100644 app/src/main/res/drawable-mdpi/ic_perm_media.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_clear_all.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_perm_media.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_clear_all.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_perm_media.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_clear_all.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_perm_media.png create mode 100644 app/src/main/res/menu/main_showaccount.xml diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/ShowAccountActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/ShowAccountActivity.java index f91b6c1b9..62bcd8119 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/ShowAccountActivity.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/ShowAccountActivity.java @@ -37,6 +37,7 @@ import android.support.v7.app.AppCompatActivity; import android.text.SpannableString; import android.text.method.LinkMovementMethod; import android.view.LayoutInflater; +import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.ImageView; @@ -103,6 +104,7 @@ public class ShowAccountActivity extends AppCompatActivity implements OnPostActi private static int instanceValue = 0; private Relationship relationship; private TextView account_un; + private boolean showMediaOnly; public enum action{ FOLLOW, @@ -139,6 +141,7 @@ public class ShowAccountActivity extends AppCompatActivity implements OnPostActi }else{ Toast.makeText(this,R.string.toast_error_loading_account,Toast.LENGTH_LONG).show(); } + showMediaOnly = false; imageLoader = ImageLoader.getInstance(); File cacheDir = new File(getCacheDir(), getString(R.string.app_name)); ImageLoaderConfiguration configImg = new ImageLoaderConfiguration.Builder(this) @@ -279,12 +282,29 @@ public class ShowAccountActivity extends AppCompatActivity implements OnPostActi new RetrieveRelationshipAsyncTask(getApplicationContext(), accountId,ShowAccountActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } + @Override + public boolean onCreateOptionsMenu(Menu menu) { + // Inflate the menu; this adds items to the action bar if it is present. + getMenuInflater().inflate(R.menu.main_showaccount, menu); + return true; + } + @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: finish(); return true; + case R.id.action_show_media: + showMediaOnly = !showMediaOnly; + if( showMediaOnly ) + item.setIcon(R.drawable.ic_clear_all); + else + item.setIcon(R.drawable.ic_perm_media); + tabLayout.getTabAt(0).select(); + PagerAdapter mPagerAdapter = new ScreenSlidePagerAdapter(getSupportFragmentManager()); + mPager.setAdapter(mPagerAdapter); + return true; default: return super.onOptionsItemSelected(item); } @@ -429,6 +449,7 @@ public class ShowAccountActivity extends AppCompatActivity implements OnPostActi bundle.putSerializable("type", RetrieveFeedsAsyncTask.Type.USER); bundle.putString("targetedId", accountId); bundle.putBoolean("hideHeader",true); + bundle.putBoolean("showMediaOnly",showMediaOnly); bundle.putString("hideHeaderValue",String.valueOf(instanceValue)); displayStatusFragment.setArguments(bundle); return displayStatusFragment; diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/ShowConversationActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/ShowConversationActivity.java index 9aa4a4390..09105fb33 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/ShowConversationActivity.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/ShowConversationActivity.java @@ -82,7 +82,7 @@ public class ShowConversationActivity extends AppCompatActivity implements OnRet isRefreshed = false; setTitle(R.string.conversation); swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipeContainer); - new RetrieveFeedsAsyncTask(getApplicationContext(), RetrieveFeedsAsyncTask.Type.ONESTATUS, statusId,null, ShowConversationActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + new RetrieveFeedsAsyncTask(getApplicationContext(), RetrieveFeedsAsyncTask.Type.ONESTATUS, statusId,null, false, ShowConversationActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); if( theme == Helper.THEME_LIGHT) { swipeRefreshLayout.setColorSchemeResources(R.color.colorAccent, @@ -97,7 +97,7 @@ public class ShowConversationActivity extends AppCompatActivity implements OnRet @Override public void onRefresh() { isRefreshed = true; - new RetrieveFeedsAsyncTask(getApplicationContext(), RetrieveFeedsAsyncTask.Type.ONESTATUS, statusId,null, ShowConversationActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + new RetrieveFeedsAsyncTask(getApplicationContext(), RetrieveFeedsAsyncTask.Type.ONESTATUS, statusId,null, false, ShowConversationActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } }); lv_status = (ListView) findViewById(R.id.lv_status); @@ -114,7 +114,7 @@ public class ShowConversationActivity extends AppCompatActivity implements OnRet @Override public void run() { isRefreshed = true; - new RetrieveFeedsAsyncTask(getApplicationContext(), RetrieveFeedsAsyncTask.Type.ONESTATUS, statusId,null, ShowConversationActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + new RetrieveFeedsAsyncTask(getApplicationContext(), RetrieveFeedsAsyncTask.Type.ONESTATUS, statusId,null, false, ShowConversationActivity.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); } }, 1000); 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 ac230a5bd..f9bb2464f 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 @@ -1045,34 +1045,6 @@ public class TootActivity extends AppCompatActivity implements OnRetrieveSearcAc } - /*private void manageShowUsers(searchAction action, boolean click){ - - final SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); - boolean show_reply = sharedpreferences.getBoolean(Helper.SET_SHOW_REPLY, false); - Log.v(Helper.TAG,"action: " + action); - if(action == searchAction.CLOSE){ - toot_show_accounts.setVisibility(View.GONE); - search_small_container.setVisibility(View.GONE); - bottom_container.setVisibility(View.VISIBLE); - if( show_reply && tootReply != null){ - toot_reply_content_container.setVisibility(View.VISIBLE); - }else { - toot_reply_content_container.setVisibility(View.GONE); - } - toot_content.requestFocus(); - if( !click) { - InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); - inputMethodManager.toggleSoftInputFromWindow(toot_content.getApplicationWindowToken(), InputMethodManager.SHOW_FORCED, 0); - } - }else if(action == searchAction.OPEN){ - toot_show_accounts.setVisibility(View.VISIBLE); - search_small_container.setVisibility(View.VISIBLE); - bottom_container.setVisibility(View.GONE); - toot_reply_content_container.setVisibility(View.GONE); - } - }*/ - - private void tootReply(){ SharedPreferences sharedpreferences = getSharedPreferences(Helper.APP_PREFS, android.content.Context.MODE_PRIVATE); if( title != null) diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/asynctasks/RetrieveFeedsAsyncTask.java b/app/src/main/java/fr/gouv/etalab/mastodon/asynctasks/RetrieveFeedsAsyncTask.java index 024f8229f..573b55237 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/asynctasks/RetrieveFeedsAsyncTask.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/asynctasks/RetrieveFeedsAsyncTask.java @@ -35,6 +35,7 @@ public class RetrieveFeedsAsyncTask extends AsyncTask { private OnRetrieveFeedsInterface listener; private String targetedID; private String tag; + private boolean showMediaOnly = false; public enum Type{ HOME, @@ -55,12 +56,13 @@ public class RetrieveFeedsAsyncTask extends AsyncTask { this.listener = onRetrieveFeedsInterface; } - public RetrieveFeedsAsyncTask(Context context, Type action, String targetedID, String max_id, OnRetrieveFeedsInterface onRetrieveFeedsInterface){ + public RetrieveFeedsAsyncTask(Context context, Type action, String targetedID, String max_id, boolean showMediaOnly, OnRetrieveFeedsInterface onRetrieveFeedsInterface){ this.context = context; this.action = action; this.max_id = max_id; this.listener = onRetrieveFeedsInterface; this.targetedID = targetedID; + this.showMediaOnly = showMediaOnly; } public RetrieveFeedsAsyncTask(Context context, Type action, String tag, String targetedID, String max_id, OnRetrieveFeedsInterface onRetrieveFeedsInterface){ this.context = context; @@ -88,7 +90,10 @@ public class RetrieveFeedsAsyncTask extends AsyncTask { apiResponse = api.getFavourites(max_id); break; case USER: - apiResponse = api.getStatus(targetedID, max_id); + if( !showMediaOnly) + apiResponse = api.getStatus(targetedID, max_id); + else + apiResponse = api.getStatusWithMedia(targetedID, max_id); break; case ONESTATUS: apiResponse = api.getStatusbyId(targetedID); diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/client/API.java b/app/src/main/java/fr/gouv/etalab/mastodon/client/API.java index 075b38b17..ff32f4887 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/client/API.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/client/API.java @@ -287,6 +287,17 @@ public class API { return getStatus(accountId, false, false, max_id, null, tootPerPage); } + /** + * Retrieves status with media for the account *synchronously* + * + * @param accountId String Id of the account + * @param max_id String id max + * @return APIResponse + */ + public APIResponse getStatusWithMedia(String accountId, String max_id) { + return getStatus(accountId, true, false, max_id, null, tootPerPage); + } + /** * Retrieves status for the account *synchronously* 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 b6b7437b5..38dcc8398 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 @@ -133,11 +133,8 @@ public class AccountsSearchAdapter extends ArrayAdapter implements Filt if (constraint != null) { suggestions.clear(); for (Account account : tempAccounts) { - if (account.getAcct().toLowerCase().startsWith(constraint.toString().toLowerCase())) { - suggestions.add(account); - } + suggestions.add(account); } - FilterResults filterResults = new FilterResults(); filterResults.values = suggestions; filterResults.count = suggestions.size(); 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 e1b574641..4f0102345 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 @@ -70,6 +70,7 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn private boolean isOnWifi; private int behaviorWithAttachments; private String instanceValue; + private boolean showMediaOnly; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -80,11 +81,13 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn Bundle bundle = this.getArguments(); boolean comesFromSearch = false; boolean hideHeader = false; + showMediaOnly = false; if (bundle != null) { type = (RetrieveFeedsAsyncTask.Type) bundle.get("type"); targetedId = bundle.getString("targetedId", null); tag = bundle.getString("tag", null); hideHeader = bundle.getBoolean("hideHeader", false); + showMediaOnly = bundle.getBoolean("showMediaOnly",false); instanceValue = bundle.getString("hideHeaderValue", null); if( bundle.containsKey("statuses")){ ArrayList statusesReceived = bundle.getParcelableArrayList("statuses"); @@ -150,7 +153,7 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn if(!flag_loading ) { flag_loading = true; if( type == RetrieveFeedsAsyncTask.Type.USER) - asyncTask = new RetrieveFeedsAsyncTask(context, type, targetedId, max_id, DisplayStatusFragment.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + asyncTask = new RetrieveFeedsAsyncTask(context, type, targetedId, max_id, showMediaOnly, DisplayStatusFragment.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); else if( type == RetrieveFeedsAsyncTask.Type.TAG) asyncTask = new RetrieveFeedsAsyncTask(context, type, tag, targetedId, max_id, DisplayStatusFragment.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); else @@ -174,7 +177,7 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn if(!flag_loading ) { flag_loading = true; if( type == RetrieveFeedsAsyncTask.Type.USER) - asyncTask = new RetrieveFeedsAsyncTask(context, type, targetedId, max_id, DisplayStatusFragment.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + asyncTask = new RetrieveFeedsAsyncTask(context, type, targetedId, max_id, showMediaOnly, DisplayStatusFragment.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); else if( type == RetrieveFeedsAsyncTask.Type.TAG) asyncTask = new RetrieveFeedsAsyncTask(context, type, tag, targetedId, max_id, DisplayStatusFragment.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); else @@ -198,7 +201,7 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn flag_loading = true; swiped = true; if( type == RetrieveFeedsAsyncTask.Type.USER) - asyncTask = new RetrieveFeedsAsyncTask(context, type, targetedId, max_id, DisplayStatusFragment.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + asyncTask = new RetrieveFeedsAsyncTask(context, type, targetedId, max_id, showMediaOnly, DisplayStatusFragment.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); else if( type == RetrieveFeedsAsyncTask.Type.TAG) asyncTask = new RetrieveFeedsAsyncTask(context, type, tag, targetedId, max_id, DisplayStatusFragment.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); else @@ -218,7 +221,7 @@ public class DisplayStatusFragment extends Fragment implements OnRetrieveFeedsIn if( type == RetrieveFeedsAsyncTask.Type.USER) - asyncTask = new RetrieveFeedsAsyncTask(context, type, targetedId, max_id, DisplayStatusFragment.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); + asyncTask = new RetrieveFeedsAsyncTask(context, type, targetedId, max_id, showMediaOnly, DisplayStatusFragment.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); else if( type == RetrieveFeedsAsyncTask.Type.TAG) asyncTask = new RetrieveFeedsAsyncTask(context, type, tag, targetedId, max_id, DisplayStatusFragment.this).executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR); else diff --git a/app/src/main/res/drawable-hdpi/ic_clear_all.png b/app/src/main/res/drawable-hdpi/ic_clear_all.png new file mode 100644 index 0000000000000000000000000000000000000000..9d2751edb9967f8009c95e26929557ce88b1736e GIT binary patch literal 131 zcmeAS@N?(olHy`uVBq!ia0vp^(jd&i0wmS%+S~(DUY;(FAr-fh6C_xhIsc^pT;Cwx zm2iF82YLGlhtS+7mXqc@*zj{dgZ`F->vS6%_6x1Zl(zgQq$tp&b7QNn!UKKQRawgC eCoWD{z`&qjrxL}v_nIHjR0dC1KbLh*2~7YiNh~n{ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-hdpi/ic_perm_media.png b/app/src/main/res/drawable-hdpi/ic_perm_media.png new file mode 100644 index 0000000000000000000000000000000000000000..5f435bf96dfd4f5570aa9c200000320d06464c4c GIT binary patch literal 296 zcmV+@0oVSCP)Im)rS0$kfd2}3;C?E_ zTMh}jULmyc|Gz+_rr-Y)5ZW02v-~#$=Lh`I{=XC`nDIMZCvZlg7 zxveex`Z~^iRbNlBinE>SUYv31!i5AzFNwduzvr6@tY?2z>LGC?o^#6ffB*m6D{s<0 zy^LR6Ae1{b7|yrd@}Y@VDJ@eZkwQO#xq6ykklQO dqx^Rn82+T)tTR6K+8*d~22WQ%mvv4FO#r>tRoegn literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-ldpi/ic_perm_media.png b/app/src/main/res/drawable-ldpi/ic_perm_media.png new file mode 100644 index 0000000000000000000000000000000000000000..44234f082538f82a39387782cd0fb1afe4f2438c GIT binary patch literal 346 zcmV-g0j2(lP)1 zze>YU6vy#kTNj~27h47A;3_RRWa=P-OK`KGlRkkjP+veQg${yGP>UcGb#oDY0E38s z_J~j@6^weX-=imz2BQ}~oO^T6uW2sVadcQ~Cs06MYtH#=1VJ!mjM>619&wL@Fbo$l zlf;ir${UI_%%YD7ALe_EaE&vZYVFg%Eul6GS2rRvKHl}&5BjZyEQ?wyG{6(y65+2A zhoV&I1xNh(PiGH_VAnx$>}X&7ke36g8oK)dh1xh8X6gvF()@hLLC+t sxRgW4AbTwiXga=gIlXKD$;a336L6Fud23r6BLDyZ07*qoM6N<$g3dCJT>t<8 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_clear_all.png b/app/src/main/res/drawable-mdpi/ic_clear_all.png new file mode 100644 index 0000000000000000000000000000000000000000..a6e85f373e321f2abce21152b98172095efab6c1 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+0wn(&ce?|m)I41rLn>}1CrJEy@W16hyTJpN tA`!uDrx?05+5bsTSeH@oGh2X(VR?Mf-+60_E&_Ehc)I$ztaD0e0sz5D9!dZJ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-mdpi/ic_perm_media.png b/app/src/main/res/drawable-mdpi/ic_perm_media.png new file mode 100644 index 0000000000000000000000000000000000000000..08132253cd1957158f98f612c502d08855ef9b1b GIT binary patch literal 213 zcmV;`04o29P)h0QfA@b@AUy|D(W(Dz@UUS9lN|rgqAR-g z{{RNOhOFozo)EYPQ>6C48XkA3u=>9WOc7p)-=hC8MYt_$fZ4(Dp9ly5eiq>!cum7A P00000NkvXXu0mjfHPc;T literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_clear_all.png b/app/src/main/res/drawable-xhdpi/ic_clear_all.png new file mode 100644 index 0000000000000000000000000000000000000000..7f671c475120d474e95b45ba5d13a9e571e5993f GIT binary patch literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^Dj>|k0wldT1B8K;v8Rh;NX4z>1PRu~2}c_K^Zl3Z zXyN<8oAtwACu6~6$19(1Wz_T@yAC9Jen_z{Zb)Ka(DOSyVYmF#^FZwkp00i_>zopr E02i$zOaK4? literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xhdpi/ic_perm_media.png b/app/src/main/res/drawable-xhdpi/ic_perm_media.png new file mode 100644 index 0000000000000000000000000000000000000000..ca72c733f95b646eb1a58937a7ff56c666a6259e GIT binary patch literal 299 zcmV+`0o4A9P)Na5g%pEOvnkjAOF*&vzz~D*=MZZUBy^CW3NX-h;5?51XNfTg5jx0_ z2Zg8b|1BYdP(ued^aQHJYtRi~_z(wg(m0EJq*i$}k!*wdPz_?kQ5_L*&Hp}7nT>1^ x1#mDL^pT=CM>1$4wG1LJrmz@9B{=vD0s!wiWc+0KyxTT(Jx8Klv`#|is!0Q-+ gJE?}{k_>w6JySkzQVo9K05q4u)78&qol`;+01>4vKmY&$ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_perm_media.png b/app/src/main/res/drawable-xxhdpi/ic_perm_media.png new file mode 100644 index 0000000000000000000000000000000000000000..c2b31fbcf1abb7f9156413c9f89ead0c35efe396 GIT binary patch literal 478 zcmV<40U`d0P)*hM`y%V6?JmsjzI$DxM-+NOM&21u(-=#TN92&u?lUB^qnPL|md|4+HjWVz(?Drt`)zpM^i`#xeXm z<`>w&VJEn;h26oyG&~#FCuTd>Z0f?2q8eUxK(;^X!(3qo9l=$k{RrdyF(+W{%vjJ{ z;)Fegr@rR~?2joDWW;kdK# zFZWePajlO1?JY4KKE$^p)iRzb%umIr-V$??tS&~Esw`MlWvh)~4>_Gh{U>tYHW{r?5HgM~fg@s8ATgTI$JDHeUH@meE*nrrtm; z;Y=-)HGV#Ke$Hn!W+V$t6XqG5Fd|sPCT3;`$6zLgZ~~@x2=_AMhcaVtV}WVNZ#mq< Uo!2es4FCWD07*qoM6N<$f{=jK+yDRo literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_clear_all.png b/app/src/main/res/drawable-xxxhdpi/ic_clear_all.png new file mode 100644 index 0000000000000000000000000000000000000000..7104f04e43711e662755654254af3274a5b5735c GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY1|&n@ZgvM!o}Mm_Ar-gYUN;nEVBlch_{*GE zY}X-Gp}IyjpezH!f%xJU2PRIH2@Xt*4QHR;7xYkQWD(+EC^*L|1Y&O530Br{j;XEt V$TiCon?Qy#c)I$ztaD0e0ssx-BX|G+ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_perm_media.png b/app/src/main/res/drawable-xxxhdpi/ic_perm_media.png new file mode 100644 index 0000000000000000000000000000000000000000..041e689578d76c43c8fd52a949a2a9fded5ada00 GIT binary patch literal 549 zcmV+=0^0qFP)Qo5UizO z>)+HCP1>B>o09usz2{8joWhTAxL=lK!h{Kh0UHHe;|)CF!b&4q#Vo2w60TT~jXNX_ zS0v~FOgkXk<$wV)L`oc0*bnUZgc}Rt;kRH zAQ;dDfj$k$fc`J&9ow820ZAYy=-$x>B)!wv4UqtuP+1S z3>;ZD@j-N+VFu@Xp!V1xFXj|=7=P@-LQq@ABM+!ECg^v1qFEm5dZu5jH{$-e_tSYaRGY_b+8}Cr!g=!DS;kaM zZ4EDJg6Qc9=NvABFG0b#=<{fFMdkrHoX-YXtTL)@S|Bf-hdWGD%VaVT&-Cynu}mfb z@l6kZ#x9ddKu)S0Vwp@n)WVOj+JW#_KrJO6#&e9X1XQ6xB_*H&4a%S{om1^TdQu<@ zIn*R`vfXE48r1zt#o#>L6hF$Spa8q~aLxiLNCPsU2?Vv2?V<$8*9}zC4WwevVuIxF nStCL6_AG9YMrl9>G;yFW^va^lTBqW$00000NkvXXu0mjfp?39- literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/drawer_account_search.xml b/app/src/main/res/layout/drawer_account_search.xml index 6d8b0cf15..a4592f8e8 100644 --- a/app/src/main/res/layout/drawer_account_search.xml +++ b/app/src/main/res/layout/drawer_account_search.xml @@ -15,43 +15,35 @@ You should have received a copy of the GNU General Public License along with Thomas Schneider; if not, see . --> - - - - - - - - \ No newline at end of file + android:padding="2dp" + android:id="@+id/account_container" + android:orientation="horizontal"> + + + + \ No newline at end of file diff --git a/app/src/main/res/menu/main_showaccount.xml b/app/src/main/res/menu/main_showaccount.xml new file mode 100644 index 000000000..86339cbdf --- /dev/null +++ b/app/src/main/res/menu/main_showaccount.xml @@ -0,0 +1,9 @@ + + + + diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 32026663a..f92e56926 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -49,6 +49,7 @@ Précédent Ouvrir avec Valider + Médias Accueil Fil public local diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index fddaa5928..20b020faf 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -52,6 +52,7 @@ Previous Open with Validate + Media Home Local timeline