bug fix
new direct message function
This commit is contained in:
parent
8738956106
commit
ddb2f310dc
@ -248,6 +248,7 @@ public class MainActivity extends AppCompatActivity implements OnRefreshListener
|
||||
long homeId = settings.getUserId();
|
||||
Intent user = new Intent(this, UserProfile.class);
|
||||
user.putExtra("userID", homeId);
|
||||
user.putExtra("username", "");
|
||||
startActivity(user);
|
||||
break;
|
||||
|
||||
|
@ -95,6 +95,14 @@ public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.MessageH
|
||||
mListener.onDelete(position);
|
||||
}
|
||||
});
|
||||
view.findViewById(R.id.dm_profileImg).setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
RecyclerView rv = (RecyclerView) parent;
|
||||
int position = rv.getChildLayoutPosition(view);
|
||||
mListener.onProfileClick(position);
|
||||
}
|
||||
});
|
||||
return new MessageHolder(view);
|
||||
}
|
||||
|
||||
@ -151,6 +159,8 @@ public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.MessageH
|
||||
void onAnswer(int pos);
|
||||
|
||||
void onDelete(int pos);
|
||||
|
||||
void onProfileClick(int pos);
|
||||
}
|
||||
|
||||
|
||||
|
@ -103,11 +103,8 @@ public class StatusLoader extends AsyncTask<Long, Void, Long> {
|
||||
tweet = mTwitter.retweet(TWEETID);
|
||||
publishProgress();
|
||||
|
||||
if (!tweet.retweeted()) {
|
||||
tweet = database.getStatus(TWEETID);
|
||||
if (tweet != null)
|
||||
database.removeStatus(tweet.getMyRetweetId());
|
||||
}
|
||||
if (!tweet.retweeted())
|
||||
database.removeRetweet(TWEETID);
|
||||
|
||||
} else if (MODE == FAVORITE) {
|
||||
tweet = mTwitter.favorite(TWEETID);
|
||||
|
@ -399,7 +399,7 @@ public class TwitterEngine {
|
||||
*/
|
||||
public Tweet getStatus(long id) throws TwitterException {
|
||||
Status tweet = twitter.showStatus(id);
|
||||
return new Tweet(tweet, false);
|
||||
return new Tweet(tweet);
|
||||
}
|
||||
|
||||
|
||||
@ -438,10 +438,10 @@ public class TwitterEngine {
|
||||
Status tweet = twitter.showStatus(tweetId);
|
||||
if (tweet.isRetweeted()) {
|
||||
tweet = twitter.unRetweetStatus(tweet.getId());
|
||||
return new Tweet(tweet, true);
|
||||
return new Tweet(tweet).removeRetweet();
|
||||
} else {
|
||||
tweet = twitter.retweetStatus(tweet.getId()).getRetweetedStatus();
|
||||
return new Tweet(tweet, false);
|
||||
return new Tweet(tweet);
|
||||
}
|
||||
}
|
||||
|
||||
@ -459,7 +459,7 @@ public class TwitterEngine {
|
||||
else
|
||||
tweet = twitter.createFavorite(tweet.getId());
|
||||
|
||||
return new Tweet(tweet, false);
|
||||
return new Tweet(tweet);
|
||||
}
|
||||
|
||||
|
||||
@ -565,7 +565,7 @@ public class TwitterEngine {
|
||||
private List<Tweet> convertStatusList(List<Status> statuses) {
|
||||
List<Tweet> result = new ArrayList<>();
|
||||
for (Status status : statuses)
|
||||
result.add(new Tweet(status, false));
|
||||
result.add(new Tweet(status));
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -23,13 +23,13 @@ public class Tweet {
|
||||
private final int retweetCount;
|
||||
private final int favoriteCount;
|
||||
|
||||
private final boolean retweeted;
|
||||
private final boolean favored;
|
||||
private boolean retweeted;
|
||||
private boolean favored;
|
||||
|
||||
private final long myRetweetId;
|
||||
|
||||
|
||||
public Tweet(Status status, boolean removeRetweet) {
|
||||
public Tweet(Status status) {
|
||||
tweetID = status.getId();
|
||||
user = new TwitterUser(status.getUser());
|
||||
retweetCount = status.getRetweetCount();
|
||||
@ -39,7 +39,7 @@ public class Tweet {
|
||||
replyID = status.getInReplyToStatusId();
|
||||
replyName = status.getInReplyToScreenName();
|
||||
media = getMediaLinks(status);
|
||||
retweeted = status.isRetweeted() && !removeRetweet;
|
||||
retweeted = status.isRetweeted();
|
||||
favored = status.isFavorited();
|
||||
myRetweetId = status.getCurrentUserRetweetId();
|
||||
replyUserId = status.getInReplyToUserId();
|
||||
@ -50,7 +50,7 @@ public class Tweet {
|
||||
|
||||
source = api;
|
||||
if (status.getRetweetedStatus() != null)
|
||||
embedded = new Tweet(status.getRetweetedStatus(), false);
|
||||
embedded = new Tweet(status.getRetweetedStatus());
|
||||
else
|
||||
embedded = null;
|
||||
}
|
||||
@ -226,4 +226,14 @@ public class Tweet {
|
||||
}
|
||||
return medialinks;
|
||||
}
|
||||
|
||||
/**
|
||||
* set retweet false
|
||||
*
|
||||
* @return tweet
|
||||
*/
|
||||
public Tweet removeRetweet() {
|
||||
retweeted = false;
|
||||
return this;
|
||||
}
|
||||
}
|
@ -94,7 +94,7 @@ public class DatabaseAdapter {
|
||||
/**
|
||||
* store user favors
|
||||
*
|
||||
* @param fav tweet favored by user
|
||||
* @param fav tweet favored by user
|
||||
* @param ownerId user ID
|
||||
*/
|
||||
public void storeUserFavs(List<Tweet> fav, long ownerId) {
|
||||
@ -381,6 +381,21 @@ public class DatabaseAdapter {
|
||||
commit(db);
|
||||
}
|
||||
|
||||
/**
|
||||
* remove status containing a retweet
|
||||
*
|
||||
* @param tweetId tweet ID of retweet
|
||||
*/
|
||||
public void removeRetweet(long tweetId) {
|
||||
Tweet tweet = getStatus(tweetId);
|
||||
if (tweet != null) {
|
||||
SQLiteDatabase db = getDbWrite();
|
||||
long retweetedId = tweet.getMyRetweetId();
|
||||
db.delete("tweet", "retweeterID=" + retweetedId, null);
|
||||
commit(db);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* remove status from favorites
|
||||
*
|
||||
|
@ -118,20 +118,32 @@ public class DirectMessage extends AppCompatActivity implements OnRefreshListene
|
||||
|
||||
@Override
|
||||
public void onDelete(int index) {
|
||||
if (mLoader != null && mLoader.getStatus() != RUNNING) {
|
||||
if (mAdapter != null && !refresh.isRefreshing()) {
|
||||
Message message = mAdapter.getData().get(index);
|
||||
final long messageId = message.getId();
|
||||
new Builder(this).setMessage(R.string.confirm_delete_dm)
|
||||
.setNegativeButton(R.string.no_confirm, null)
|
||||
.setPositiveButton(R.string.yes_confirm, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
mLoader = new MessageLoader(DirectMessage.this);
|
||||
mLoader.execute(MessageLoader.DELETE, messageId);
|
||||
}
|
||||
}).show();
|
||||
}
|
||||
if (mAdapter != null && !refresh.isRefreshing()) {
|
||||
Message message = mAdapter.getData().get(index);
|
||||
final long messageId = message.getId();
|
||||
new Builder(this).setMessage(R.string.confirm_delete_dm)
|
||||
.setNegativeButton(R.string.no_confirm, null)
|
||||
.setPositiveButton(R.string.yes_confirm, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
mLoader = new MessageLoader(DirectMessage.this);
|
||||
mLoader.execute(MessageLoader.DELETE, messageId);
|
||||
}
|
||||
}).show();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onProfileClick(int index) {
|
||||
if (mAdapter != null && !refresh.isRefreshing()) {
|
||||
Message message = mAdapter.getData().get(index);
|
||||
long userId = message.getSender().getId();
|
||||
String username = message.getSender().getScreenname();
|
||||
Intent user = new Intent(this, UserProfile.class);
|
||||
user.putExtra("userID", userId);
|
||||
user.putExtra("username", username);
|
||||
startActivity(user);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -193,6 +193,7 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener,
|
||||
mStat.cancel(true);
|
||||
mStat = new StatusLoader(this);
|
||||
mStat.execute(tweetID, StatusLoader.RETWEET);
|
||||
Toast.makeText(this, R.string.loading, Toast.LENGTH_SHORT).show();
|
||||
break;
|
||||
|
||||
case R.id.fav_button_detail:
|
||||
@ -200,6 +201,7 @@ public class TweetDetail extends AppCompatActivity implements OnClickListener,
|
||||
mStat.cancel(true);
|
||||
mStat = new StatusLoader(this);
|
||||
mStat.execute(tweetID, StatusLoader.FAVORITE);
|
||||
Toast.makeText(this, R.string.loading, Toast.LENGTH_SHORT).show();
|
||||
break;
|
||||
|
||||
case R.id.no_rt_detail:
|
||||
|
@ -66,10 +66,7 @@ public class UserProfile extends AppCompatActivity implements OnRefreshListener,
|
||||
b = getIntent().getExtras();
|
||||
if (b != null) {
|
||||
userId = b.getLong("userID");
|
||||
if (b.containsKey("username"))
|
||||
username = b.getString("username");
|
||||
else
|
||||
username = "";
|
||||
username = b.getString("username");
|
||||
}
|
||||
|
||||
Toolbar tool = findViewById(R.id.profile_toolbar);
|
||||
|
@ -99,4 +99,5 @@
|
||||
<string name="directmessage_too_long">Direktnachricht länge überschritten!</string>
|
||||
<string name="authentication_failed">Authentifikation fehlgeschlagen!</string>
|
||||
<string name="follow_requested">warten auf Bestätigung</string>
|
||||
<string name="loading">lädt..</string>
|
||||
</resources>
|
@ -107,4 +107,5 @@
|
||||
<string name="directmessage_too_long">direct message text is over the limit!</string>
|
||||
<string name="authentication_failed">failed to authenticate!</string>
|
||||
<string name="follow_requested">follow requested</string>
|
||||
<string name="loading">loading..</string>
|
||||
</resources>
|
Loading…
x
Reference in New Issue
Block a user