From a10230670660ce6c97b01822bebced22ef7ad2e7 Mon Sep 17 00:00:00 2001 From: tom79 Date: Fri, 4 Aug 2017 16:13:28 +0200 Subject: [PATCH] Adds the possibility to share toots with other apps --- .../mastodon/activities/LoginActivity.java | 8 ++++---- .../fr/gouv/etalab/mastodon/client/API.java | 1 + .../drawers/NotificationsListAdapter.java | 10 +++++++++- .../mastodon/drawers/StatusListAdapter.java | 20 ++++++++++++++++--- app/src/main/res/values-fr/strings.xml | 6 ++++++ app/src/main/res/values/strings.xml | 6 ++++++ 6 files changed, 43 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/activities/LoginActivity.java b/app/src/main/java/fr/gouv/etalab/mastodon/activities/LoginActivity.java index e961dd919..494c2893e 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/activities/LoginActivity.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/activities/LoginActivity.java @@ -23,6 +23,7 @@ import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.text.Editable; import android.text.TextWatcher; +import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; @@ -104,14 +105,13 @@ public class LoginActivity extends AppCompatActivity { } @Override public void afterTextChanged(Editable s) { - if( s.length() > 2 ){ - if( s.toString().trim().startsWith("mas") && !s.toString().trim().contains(".") ) + if( s.toString().trim().startsWith("mas") && (!s.toString().trim().contains(".") || s.toString().trim().equals("mastodon.")) ) return; String action = "/instances/search"; RequestParams parameters = new RequestParams(); parameters.add("q", s.toString().trim()); - parameters.add("count", String.valueOf(10)); + parameters.add("count", String.valueOf(5)); new KinrarClient().get(action, parameters, new AsyncHttpResponseHandler() { @Override public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { @@ -132,7 +132,7 @@ public class LoginActivity extends AppCompatActivity { ArrayAdapter adapter = new ArrayAdapter<>(LoginActivity.this, android.R.layout.simple_list_item_1, instances); login_instance.setAdapter(adapter); - adapter.notifyDataSetChanged(); + login_instance.showDropDown(); } catch (JSONException ignored) {} } 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 fe2654f17..bf43022ee 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 @@ -1258,6 +1258,7 @@ public class API { status.setSpoiler_text(resobj.get("spoiler_text").toString()); status.setVisibility(resobj.get("visibility").toString()); status.setLanguage(resobj.get("language").toString()); + status.setUrl(resobj.get("url").toString()); //TODO: replace by the value status.setApplication(new Application()); diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/NotificationsListAdapter.java b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/NotificationsListAdapter.java index d68217964..658255b44 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/NotificationsListAdapter.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/NotificationsListAdapter.java @@ -353,7 +353,15 @@ public class NotificationsListAdapter extends BaseAdapter implements OnPostActio } } } - + holder.status_show_more.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + loadAttachments(status, holder); + holder.status_show_more.setVisibility(View.GONE); + status.setAttachmentShown(true); + notificationsListAdapter.notifyDataSetChanged(); + } + }); }else { holder.notification_status_container.setVisibility(View.GONE); diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java index 712964433..e6d4e24dc 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/drawers/StatusListAdapter.java @@ -907,7 +907,7 @@ public class StatusListAdapter extends BaseAdapter implements OnPostActionInterf else //noinspection deprecation builderInner.setMessage(Html.fromHtml(status.getContent())); - }else{ + }else if( which == 1){ ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); String content; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) @@ -920,17 +920,24 @@ public class StatusListAdapter extends BaseAdapter implements OnPostActionInterf Toast.makeText(context,R.string.clipboard,Toast.LENGTH_LONG).show(); dialog.dismiss(); return; + }else { + Intent sendIntent = new Intent(Intent.ACTION_SEND); + sendIntent.putExtra(Intent.EXTRA_SUBJECT, context.getString(R.string.shared_via)); + sendIntent.putExtra(Intent.EXTRA_TEXT, status.getUrl()); + sendIntent.setType("text/plain"); + context.startActivity(Intent.createChooser(sendIntent, context.getString(R.string.share_with))); + return; } }else { if( which < 2 ){ builderInner.setMessage(status.getAccount().getAcct()); - }else if( which < 3) { + }else if( which == 2) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) builderInner.setMessage(Html.fromHtml(status.getContent(), Html.FROM_HTML_MODE_COMPACT)); else //noinspection deprecation builderInner.setMessage(Html.fromHtml(status.getContent())); - }else{ + }else if( which == 3 ){ ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); String content; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) @@ -943,6 +950,13 @@ public class StatusListAdapter extends BaseAdapter implements OnPostActionInterf Toast.makeText(context,R.string.clipboard,Toast.LENGTH_LONG).show(); dialog.dismiss(); return; + }else { + Intent sendIntent = new Intent(Intent.ACTION_SEND); + sendIntent.putExtra(Intent.EXTRA_SUBJECT, context.getString(R.string.shared_via)); + sendIntent.putExtra(Intent.EXTRA_TEXT, status.getUrl()); + sendIntent.setType("text/plain"); + context.startActivity(Intent.createChooser(sendIntent, context.getString(R.string.share_with))); + return; } } //Text for report diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index c77f48a88..e3bae4398 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -50,6 +50,8 @@ Ouvrir avec Valider Médias + Partager avec + Partagé via Mastalab Accueil Fil public local @@ -90,10 +92,12 @@ Bloquer Signaler Copier + Partager Supprimer Copier + Partager @@ -101,6 +105,7 @@ Bloquer ce compte ? Signaler ce pouet ? null + null @@ -112,6 +117,7 @@ Supprimer ce pouet ? null + null diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c66ef4932..920f3573f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -53,6 +53,8 @@ Open with Validate Media + Share with + Shared via Mastalab Home Local timeline @@ -93,10 +95,12 @@ Block Report Copy + Share Remove Copy + Share @@ -104,6 +108,7 @@ Block this account? Report this toot? null + null @@ -115,6 +120,7 @@ Remove this toot? null + null