removed shortened twitter links!
This commit is contained in:
parent
a6a7f92480
commit
6da4178a5a
|
@ -103,7 +103,7 @@ public class TimelineAdapter extends Adapter<TimelineAdapter.ItemHolder> {
|
|||
} else {
|
||||
vh.retweeter.setText("");
|
||||
}
|
||||
Spanned text = Tagger.makeText(tweet.getText(), highlight);
|
||||
Spanned text = Tagger.makeText(tweet.getTweet(), highlight);
|
||||
vh.username.setText(tweet.getUser().getUsername());
|
||||
vh.screenname.setText(tweet.getUser().getScreenname());
|
||||
vh.tweet.setText(text);
|
||||
|
|
|
@ -148,7 +148,7 @@ public class StatusLoader extends AsyncTask<Long, Void, Long> {
|
|||
View mediaButton = ui.get().findViewById(R.id.image_attach);
|
||||
View tweet_verify = ui.get().findViewById(R.id.tweet_verify);
|
||||
|
||||
Spannable sTweet = Tagger.makeText(tweet.getText(), highlight, ui.get());
|
||||
Spannable sTweet = Tagger.makeText(tweet.getTweet(), highlight, ui.get());
|
||||
tweetText.setMovementMethod(LinkMovementMethod.getInstance());
|
||||
tweetText.setText(sTweet);
|
||||
tweetText.setTextColor(font_color);
|
||||
|
|
|
@ -1,28 +1,25 @@
|
|||
package org.nuclearfog.twidda.backend.items;
|
||||
|
||||
import twitter4j.DirectMessage;
|
||||
import twitter4j.URLEntity;
|
||||
import twitter4j.User;
|
||||
|
||||
public class Message {
|
||||
|
||||
private final long messageId;
|
||||
private final long time;
|
||||
|
||||
private final TwitterUser sender;
|
||||
private final TwitterUser receiver;
|
||||
|
||||
private final String message;
|
||||
|
||||
|
||||
public Message(DirectMessage dm, User sender, User receiver) {
|
||||
this.sender = new TwitterUser(sender);
|
||||
this.receiver = new TwitterUser(receiver);
|
||||
messageId = dm.getId();
|
||||
time = dm.getCreatedAt().getTime();
|
||||
message = dm.getText();
|
||||
message = getText(dm);
|
||||
}
|
||||
|
||||
|
||||
public Message(long messageId, TwitterUser sender, TwitterUser receiver, long time, String message) {
|
||||
this.messageId = messageId;
|
||||
this.sender = sender;
|
||||
|
@ -76,4 +73,20 @@ public class Message {
|
|||
return time;
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolve shortened tweet links
|
||||
*
|
||||
* @param message Tweet
|
||||
* @return Tweet string with resolved URL entities
|
||||
*/
|
||||
private String getText(DirectMessage message) {
|
||||
URLEntity entities[] = message.getURLEntities();
|
||||
StringBuilder text = new StringBuilder(message.getText());
|
||||
|
||||
for (int i = entities.length - 1; i >= 0; i--) {
|
||||
URLEntity entity = entities[i];
|
||||
text.replace(entity.getStart(), entity.getEnd(), entity.getExpandedURL());
|
||||
}
|
||||
return text.toString();
|
||||
}
|
||||
}
|
|
@ -4,6 +4,7 @@ import android.support.annotation.Nullable;
|
|||
|
||||
import twitter4j.MediaEntity;
|
||||
import twitter4j.Status;
|
||||
import twitter4j.URLEntity;
|
||||
|
||||
public class Tweet {
|
||||
|
||||
|
@ -32,7 +33,7 @@ public class Tweet {
|
|||
user = new TwitterUser(status.getUser());
|
||||
retweetCount = status.getRetweetCount();
|
||||
favoriteCount = status.getFavoriteCount();
|
||||
tweet = status.getText();
|
||||
tweet = getText(status);
|
||||
time = status.getCreatedAt().getTime();
|
||||
replyID = status.getInReplyToStatusId();
|
||||
replyName = status.getInReplyToScreenName();
|
||||
|
@ -88,7 +89,7 @@ public class Tweet {
|
|||
*
|
||||
* @return tweet text
|
||||
*/
|
||||
public String getText() {
|
||||
public String getTweet() {
|
||||
return tweet;
|
||||
}
|
||||
|
||||
|
@ -210,7 +211,6 @@ public class Tweet {
|
|||
return favored;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param status Twitter4J status
|
||||
* @return Array of Medialinks
|
||||
|
@ -234,4 +234,21 @@ public class Tweet {
|
|||
retweeted = false;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolve shortened tweet links
|
||||
*
|
||||
* @param status Tweet
|
||||
* @return Tweet string with resolved URL entities
|
||||
*/
|
||||
private String getText(Status status) {
|
||||
URLEntity entities[] = status.getURLEntities();
|
||||
StringBuilder tweet = new StringBuilder(status.getText());
|
||||
|
||||
for (int i = entities.length - 1; i >= 0; i--) {
|
||||
URLEntity entity = entities[i];
|
||||
tweet.replace(entity.getStart(), entity.getEnd(), entity.getExpandedURL());
|
||||
}
|
||||
return tweet.toString();
|
||||
}
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
package org.nuclearfog.twidda.backend.items;
|
||||
|
||||
import twitter4j.URLEntity;
|
||||
import twitter4j.User;
|
||||
|
||||
public class TwitterUser {
|
||||
|
@ -31,8 +32,8 @@ public class TwitterUser {
|
|||
username = user.getName();
|
||||
screenname = '@' + user.getScreenName();
|
||||
profileImg = user.getOriginalProfileImageURL();
|
||||
bio = user.getDescription().replace('\n', ' ');
|
||||
link = user.getURL();
|
||||
bio = getBio(user);
|
||||
link = user.getURLEntity().getExpandedURL();
|
||||
location = user.getLocation();
|
||||
bannerImg = user.getProfileBannerURL();
|
||||
isVerified = user.isVerified();
|
||||
|
@ -211,4 +212,20 @@ public class TwitterUser {
|
|||
return favorCount;
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolve shortened links from user description
|
||||
*
|
||||
* @param user Twitter user
|
||||
* @return Description String
|
||||
*/
|
||||
private String getBio(User user) {
|
||||
URLEntity entities[] = user.getDescriptionURLEntities();
|
||||
StringBuilder bio = new StringBuilder(user.getDescription());
|
||||
|
||||
for (int i = entities.length - 1; i >= 0; i--) {
|
||||
URLEntity entity = entities[i];
|
||||
bio.replace(entity.getStart(), entity.getEnd(), entity.getExpandedURL());
|
||||
}
|
||||
return bio.toString().replace('\n', ' ');
|
||||
}
|
||||
}
|
|
@ -653,7 +653,7 @@ public class DatabaseAdapter {
|
|||
status.put("tweetID", tweet.getId());
|
||||
status.put("userID", user.getId());
|
||||
status.put("time", tweet.getTime());
|
||||
status.put("tweet", tweet.getText());
|
||||
status.put("tweet", tweet.getTweet());
|
||||
status.put("retweetID", rtId);
|
||||
status.put("source", tweet.getSource());
|
||||
status.put("replyID", tweet.getReplyId());
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package org.nuclearfog.twidda.window;
|
||||
|
||||
import android.Manifest;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.database.Cursor;
|
||||
|
@ -9,6 +10,7 @@ import android.os.Build;
|
|||
import android.os.Bundle;
|
||||
import android.provider.MediaStore;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.view.Menu;
|
||||
|
@ -71,6 +73,21 @@ public class ProfileEdit extends AppCompatActivity implements View.OnClickListen
|
|||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
AlertDialog.Builder closeDialog = new AlertDialog.Builder(this);
|
||||
closeDialog.setMessage(R.string.exit_confirm);
|
||||
closeDialog.setNegativeButton(R.string.no_confirm, null);
|
||||
closeDialog.setPositiveButton(R.string.yes_confirm, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
finish();
|
||||
}
|
||||
});
|
||||
closeDialog.show();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu m) {
|
||||
getMenuInflater().inflate(R.menu.edit, m);
|
||||
|
|
|
@ -107,4 +107,5 @@
|
|||
<string name="profile_updated">Profile aktualisiert!</string>
|
||||
<string name="edit_empty_name">Name leer!</string>
|
||||
<string name="upload_button">hochladen</string>
|
||||
<string name="exit_confirm">Änderungen verwerfen?</string>
|
||||
</resources>
|
|
@ -115,4 +115,5 @@
|
|||
<string name="profile_updated">Profile updated!</string>
|
||||
<string name="edit_empty_name">Empty user name!</string>
|
||||
<string name="upload_button">upload</string>
|
||||
<string name="exit_confirm">discard changes?</string>
|
||||
</resources>
|
Loading…
Reference in New Issue