From f199446c7079bc63f981624c2e77c1e2742422fe Mon Sep 17 00:00:00 2001 From: stom79 Date: Sat, 18 Nov 2017 11:25:04 +0100 Subject: [PATCH] Updates upload --- .../etalab/mastodon/activities/TootActivity.java | 12 ++++++------ .../etalab/mastodon/client/HttpsConnection.java | 15 ++++++++++----- 2 files changed, 16 insertions(+), 11 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 d8ae7f7ee..63f563f2b 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 @@ -120,7 +120,6 @@ import fr.gouv.etalab.mastodon.asynctasks.RetrieveEmojiAsyncTask; import fr.gouv.etalab.mastodon.asynctasks.RetrieveSearchAccountsAsyncTask; import fr.gouv.etalab.mastodon.asynctasks.RetrieveSearchAsyncTask; import fr.gouv.etalab.mastodon.asynctasks.UpdateDescriptionAttachmentAsyncTask; -import fr.gouv.etalab.mastodon.client.API; import fr.gouv.etalab.mastodon.client.APIResponse; import fr.gouv.etalab.mastodon.client.Entities.Account; import fr.gouv.etalab.mastodon.client.Entities.Attachment; @@ -130,6 +129,7 @@ import fr.gouv.etalab.mastodon.client.Entities.Mention; import fr.gouv.etalab.mastodon.client.Entities.Results; import fr.gouv.etalab.mastodon.client.Entities.Status; import fr.gouv.etalab.mastodon.client.Entities.StoredStatus; +import fr.gouv.etalab.mastodon.client.HttpsConnection; import fr.gouv.etalab.mastodon.drawers.CustomEmojiAdapter; import fr.gouv.etalab.mastodon.drawers.EmojisSearchAdapter; import fr.gouv.etalab.mastodon.interfaces.OnRetrieveEmojiInterface; @@ -353,7 +353,7 @@ public class TootActivity extends AppCompatActivity implements OnRetrieveSearcAc toot_picture_container.setVisibility(View.VISIBLE); picture_scrollview.setVisibility(View.VISIBLE); toot_picture.setEnabled(false); - new API(getApplicationContext()).uploadMedia(bs, TootActivity.this); + new HttpsConnection(getApplicationContext()).upload(bs, TootActivity.this); } toot_content.setText(String.format("\n\nvia @%s\n\n%s\n\n", tootMention, urlMention)); toot_space_left.setText(String.valueOf(toot_content.length())); @@ -422,7 +422,7 @@ public class TootActivity extends AppCompatActivity implements OnRetrieveSearcAc InputStream bis = new ByteArrayInputStream(binaryData); toot_picture_container.setVisibility(View.VISIBLE); toot_picture.setEnabled(false); - new API(getApplicationContext()).uploadMedia(bis, TootActivity.this); + new HttpsConnection(getApplicationContext()).upload(bis, TootActivity.this); f.write(binaryData); f.close(); } catch (IOException e) { @@ -574,7 +574,7 @@ public class TootActivity extends AppCompatActivity implements OnRetrieveSearcAc String patternTag = "^(.|\\s)*(#([\\w-]{2,}))$"; final Pattern tPattern = Pattern.compile(patternTag); - String patternEmoji = "^(.|\\s)*(:([\\w_]{1,}))$"; + String patternEmoji = "^(.|\\s)*(:([\\w_]+))$"; final Pattern ePattern = Pattern.compile(patternEmoji); toot_cw_content.addTextChangedListener(new TextWatcher() { @@ -721,7 +721,7 @@ public class TootActivity extends AppCompatActivity implements OnRetrieveSearcAc toot_picture_container.setVisibility(View.VISIBLE); picture_scrollview.setVisibility(View.VISIBLE); toot_picture.setEnabled(false); - new API(getApplicationContext()).uploadMedia(inputStream, TootActivity.this); + new HttpsConnection(getApplicationContext()).upload(inputStream, TootActivity.this); count++; } catch (FileNotFoundException e) { @@ -750,7 +750,7 @@ public class TootActivity extends AppCompatActivity implements OnRetrieveSearcAc InputStream inputStream = getContentResolver().openInputStream(data.getData()); toot_picture_container.setVisibility(View.VISIBLE); toot_picture.setEnabled(false); - new API(getApplicationContext()).uploadMedia(inputStream, TootActivity.this); + new HttpsConnection(getApplicationContext()).upload(inputStream, TootActivity.this); } catch (FileNotFoundException e) { Toast.makeText(getApplicationContext(),R.string.toot_select_image_error,Toast.LENGTH_LONG).show(); toot_picture.setEnabled(true); diff --git a/app/src/main/java/fr/gouv/etalab/mastodon/client/HttpsConnection.java b/app/src/main/java/fr/gouv/etalab/mastodon/client/HttpsConnection.java index 4f2ad28ac..32b491a2a 100644 --- a/app/src/main/java/fr/gouv/etalab/mastodon/client/HttpsConnection.java +++ b/app/src/main/java/fr/gouv/etalab/mastodon/client/HttpsConnection.java @@ -14,6 +14,7 @@ package fr.gouv.etalab.mastodon.client; * You should have received a copy of the GNU General Public License along with Mastalab; if not, * see . */ import android.content.Context; +import android.content.SharedPreferences; import android.os.Build; import org.json.JSONObject; @@ -45,6 +46,8 @@ import java.util.regex.Pattern; import javax.net.ssl.HttpsURLConnection; import fr.gouv.etalab.mastodon.client.Entities.Attachment; +import fr.gouv.etalab.mastodon.client.Entities.Error; +import fr.gouv.etalab.mastodon.helper.Helper; import fr.gouv.etalab.mastodon.interfaces.OnRetrieveAttachmentInterface; @@ -65,7 +68,7 @@ public class HttpsConnection { public HttpsConnection(){} - HttpsConnection(Context context){ + public HttpsConnection(Context context){ this.context = context; } @@ -164,13 +167,15 @@ public class HttpsConnection { } - public void upload(final String urlConnection, final int timeout, final InputStream inputStream, final OnRetrieveAttachmentInterface listener, final HashMap paramaters, final String token) { + public void upload(final InputStream inputStream, final OnRetrieveAttachmentInterface listener) { new Thread(new Runnable() { @Override public void run() { try { - final URL url = new URL(urlConnection); + SharedPreferences sharedpreferences = context.getSharedPreferences(Helper.APP_PREFS, Context.MODE_PRIVATE); + String token = sharedpreferences.getString(Helper.PREF_KEY_OAUTH_TOKEN, null); + final URL url = new URL("https://"+Helper.getLiveInstance(context)+"/api/v1/media"); ByteArrayOutputStream ous = null; try { try { @@ -193,7 +198,7 @@ public class HttpsConnection { byte[] pixels = ous.toByteArray(); httpsURLConnection = (HttpsURLConnection) url.openConnection(); - httpsURLConnection.setConnectTimeout(timeout * 1000); + httpsURLConnection.setConnectTimeout(240 * 1000); if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) httpsURLConnection.setSSLSocketFactory(new TLSSocketFactory()); httpsURLConnection.setDoInput(true); @@ -257,7 +262,7 @@ public class HttpsConnection { listener.onRetrieveAttachment(attachment, null); }catch (Exception e) { listener.onUpdateProgress(101); - fr.gouv.etalab.mastodon.client.Entities.Error error = new fr.gouv.etalab.mastodon.client.Entities.Error(); + Error error = new Error(); error.setError(e.getMessage()); listener.onRetrieveAttachment(null, error); }