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

View File

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