diff --git a/app/src/main/java/org/nuclearfog/twidda/backend/SendStatus.java b/app/src/main/java/org/nuclearfog/twidda/backend/SendStatus.java index 614189e2..3eed1eff 100644 --- a/app/src/main/java/org/nuclearfog/twidda/backend/SendStatus.java +++ b/app/src/main/java/org/nuclearfog/twidda/backend/SendStatus.java @@ -4,6 +4,8 @@ import android.content.Context; import android.os.AsyncTask; import android.widget.Toast; +import java.io.File; + import twitter4j.StatusUpdate; import twitter4j.Twitter; @@ -13,9 +15,11 @@ public class SendStatus extends AsyncTask { private Context context; private Twitter twitter; + private String path = ""; - public SendStatus(Context context) { + public SendStatus(Context context, String path) { this.context = context; + this.path = path; twitter = TwitterResource.getInstance(context).getTwitter(); } @@ -29,12 +33,14 @@ public class SendStatus extends AsyncTask { try { String tweet = (String) args[0]; StatusUpdate mStatus = new StatusUpdate(tweet); - if(args.length > 1) + if(args.length > 1) { //ANSWER TO USER mStatus.setInReplyToStatusId((Long)args[1]); - + } + if(path.isEmpty()) { //ADD IMAGE + mStatus.setMedia(new File(path)); + } twitter.tweets().updateStatus(mStatus); return true; - } catch(Exception err) { err.printStackTrace(); } diff --git a/app/src/main/java/org/nuclearfog/twidda/window/TweetPopup.java b/app/src/main/java/org/nuclearfog/twidda/window/TweetPopup.java index 78215e94..65519ead 100644 --- a/app/src/main/java/org/nuclearfog/twidda/window/TweetPopup.java +++ b/app/src/main/java/org/nuclearfog/twidda/window/TweetPopup.java @@ -1,10 +1,17 @@ package org.nuclearfog.twidda.window; +import android.content.Intent; +import android.database.Cursor; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; +import android.net.Uri; import android.os.Bundle; +import android.provider.MediaStore; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.EditText; +import android.widget.ImageView; import android.widget.LinearLayout; import org.nuclearfog.twidda.backend.SendStatus; @@ -18,7 +25,9 @@ import org.nuclearfog.twidda.database.ColorPreferences; public class TweetPopup extends AppCompatActivity implements View.OnClickListener { private EditText tweetfield; + private ImageView tweetImg; private long inReplyId; + private String imgPath; @Override protected void onCreate(Bundle SavedInstance) { @@ -28,13 +37,16 @@ public class TweetPopup extends AppCompatActivity implements View.OnClickListene Button tweetButton = (Button) findViewById(R.id.sendTweet); Button closeButton = (Button) findViewById(R.id.close); + Button imageButton = (Button) findViewById(R.id.image); tweetfield = (EditText) findViewById(R.id.tweet_input); + tweetImg = (ImageView) findViewById(R.id.tweetImg); final int size = LinearLayout.LayoutParams.WRAP_CONTENT; getWindow().setLayout(size, size); closeButton.setOnClickListener(this); tweetButton.setOnClickListener(this); + imageButton.setOnClickListener(this); LinearLayout root = (LinearLayout) findViewById(R.id.tweet_popup); ColorPreferences mColor = ColorPreferences.getInstance(this); @@ -56,8 +68,29 @@ public class TweetPopup extends AppCompatActivity implements View.OnClickListene case R.id.close: finish(); break; + case R.id.image: + Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); + startActivityForResult(i, RESULT_FIRST_USER); + break; + } + } + + @Override + protected void onActivityResult(int reqCode, int returnCode, Intent i){ + super.onActivityResult(reqCode,returnCode,i); + if(returnCode == RESULT_OK){ + Uri imageInput = i.getData(); + String[] filepath = {MediaStore.Images.Media.DATA}; + Cursor c = getContentResolver().query(imageInput,filepath,null,null,null); + if(c.moveToFirst()) { + int index = c.getColumnIndex(filepath[0]); + imgPath = c.getString(index); + Bitmap img = BitmapFactory.decodeFile(imgPath); + tweetImg.setImageBitmap(img); + tweetImg.setVisibility(View.VISIBLE); + } + c.close(); } - finish(); } @Override @@ -68,11 +101,16 @@ public class TweetPopup extends AppCompatActivity implements View.OnClickListene private void send() { String tweet = tweetfield.getText().toString(); - SendStatus sendTweet = new SendStatus(getApplicationContext()); - if(inReplyId > 0) + SendStatus sendTweet; + if(imgPath == null) { + sendTweet = new SendStatus(getApplicationContext(), ""); + } else { + sendTweet = new SendStatus(getApplicationContext(), imgPath); + } if(inReplyId > 0) { sendTweet.execute(tweet, inReplyId); - else + } else { sendTweet.execute(tweet); + } finish(); } } \ No newline at end of file diff --git a/app/src/main/res/drawable/image.xml b/app/src/main/res/drawable/image.xml new file mode 100644 index 00000000..4876992f --- /dev/null +++ b/app/src/main/res/drawable/image.xml @@ -0,0 +1,4 @@ + + + diff --git a/app/src/main/res/layout/mainpage.xml b/app/src/main/res/layout/mainpage.xml index 7c999af3..413c65de 100644 --- a/app/src/main/res/layout/mainpage.xml +++ b/app/src/main/res/layout/mainpage.xml @@ -22,7 +22,7 @@ + android:layout_height="wrap_content" /> + android:layout_height="wrap_content" /> + + + + + +