This commit is contained in:
NudeDude 2019-05-18 11:30:48 +02:00
parent 8d0a749569
commit b54a8ebf8b
2 changed files with 49 additions and 37 deletions

View File

@ -87,9 +87,10 @@ public class ProfileLoader extends AsyncTask<Long, Void, Boolean> {
try {
if (mode == Mode.LDR_PROFILE) {
user = db.getUser(UID);
if (user != null) {
if (user != null)
publishProgress();
}
user = mTwitter.getUser(UID);
db.storeUser(user);
}
if (!isHome) {
boolean[] connection = mTwitter.getConnection(UID);
@ -98,26 +99,23 @@ public class ProfileLoader extends AsyncTask<Long, Void, Boolean> {
isBlocked = connection[2];
isMuted = connection[3];
canDm = connection[4];
if (isBlocked || isMuted)
db.muteUser(UID, true);
else
db.muteUser(UID, false);
}
user = mTwitter.getUser(UID);
publishProgress();
db.storeUser(user);
if (user != null)
publishProgress();
switch (mode) {
case ACTION_FOLLOW:
if (user.isLocked()) {
if (isFriend)
user = mTwitter.unfollowUser(UID);
else if (!user.followRequested())
user = mTwitter.followUser(UID);
// TODO purge follow request
if (!isFriend) {
user = mTwitter.followUser(UID);
if (!user.isLocked())
isFriend = true;
} else {
if (!isFriend)
user = mTwitter.followUser(UID);
else
user = mTwitter.unfollowUser(UID);
isFriend = !isFriend;
user = mTwitter.unfollowUser(UID);
isFriend = false;
}
publishProgress();
break;

View File

@ -151,7 +151,7 @@ public class DatabaseAdapter {
ContentValues favTable = new ContentValues();
ContentValues status = new ContentValues();
int register = getStatRegister(db, tweetID);
int register = getTweetStatus(db, tweetID);
register |= FAV_MASK;
favTable.put("tweetID", tweetID);
@ -348,7 +348,7 @@ public class DatabaseAdapter {
SQLiteDatabase db = getDbWrite();
ContentValues statColumn = new ContentValues();
ContentValues userColumn = new ContentValues();
int register = getStatRegister(db, tweet.getId());
int register = getTweetStatus(db, tweet.getId());
if (tweet.retweeted())
register |= RTW_MASK;
else
@ -412,7 +412,7 @@ public class DatabaseAdapter {
*/
public void removeFavorite(long tweetId) {
SQLiteDatabase db = getDbWrite();
int register = getStatRegister(db, tweetId);
int register = getTweetStatus(db, tweetId);
register &= ~FAV_MASK;
ContentValues status = new ContentValues();
status.put("statusregister", register);
@ -517,21 +517,16 @@ public class DatabaseAdapter {
*/
public void muteUser(long id, boolean mute) {
SQLiteDatabase db = getDbWrite();
final String query = "SELECT userregister FROM user WHERE userID=" + id + " LIMIT 1";
Cursor cursor = db.rawQuery(query, null);
if (cursor.moveToFirst()) {
int index = cursor.getColumnIndex("userregister");
int userRegister = cursor.getInt(index);
if (mute)
userRegister |= EXCL_USR;
else
userRegister &= ~EXCL_USR;
int userRegister = getUserStatus(db, id);
ContentValues userColumn = new ContentValues();
userColumn.put("userregister", userRegister);
db.update("user", userColumn, "user.userID=" + id, null);
}
cursor.close();
if (mute)
userRegister |= EXCL_USR;
else
userRegister &= ~EXCL_USR;
ContentValues userColumn = new ContentValues();
userColumn.put("userregister", userRegister);
db.update("user", userColumn, "user.userID=" + id, null);
commit(db);
}
@ -629,13 +624,19 @@ public class DatabaseAdapter {
private void storeUser(TwitterUser user, SQLiteDatabase db, int mode) {
ContentValues userColumn = new ContentValues();
int userRegister = 0;
int userRegister = getUserStatus(db, user.getId());
if (user.isVerified())
userRegister |= VER_MASK;
else
userRegister &= ~VER_MASK;
if (user.isLocked())
userRegister |= LCK_MASK;
else
userRegister &= ~LCK_MASK;
if (user.followRequested())
userRegister |= FRQ_MASK;
else
userRegister &= ~FRQ_MASK;
userColumn.put("userID", user.getId());
userColumn.put("username", user.getUsername());
@ -667,7 +668,7 @@ public class DatabaseAdapter {
rtId = rtStat.getId();
}
statusRegister |= getStatRegister(db, tweet.getId());
statusRegister |= getTweetStatus(db, tweet.getId());
if (tweet.favored()) {
statusRegister |= FAV_MASK;
} else {
@ -726,7 +727,7 @@ public class DatabaseAdapter {
}
private int getStatRegister(SQLiteDatabase db, long tweetID) {
private int getTweetStatus(SQLiteDatabase db, long tweetID) {
final String query = "SELECT statusregister FROM tweet WHERE tweetID=" + tweetID + " LIMIT 1;";
Cursor c = db.rawQuery(query, null);
int result = 0;
@ -739,6 +740,19 @@ public class DatabaseAdapter {
}
private int getUserStatus(SQLiteDatabase db, long userID) {
final String query = "SELECT userregister FROM user WHERE userID=" + userID + " LIMIT 1;";
Cursor c = db.rawQuery(query, null);
int result = 0;
if (c.moveToFirst()) {
int pos = c.getColumnIndex("userregister");
result = c.getInt(pos);
}
c.close();
return result;
}
private synchronized SQLiteDatabase getDbRead() {
return dataHelper.getReadableDatabase();
}