database bug fix

Signed-off-by: nuclearfog <hatespirit666@gmail.com>
This commit is contained in:
nuclearfog 2021-06-14 15:43:27 +02:00
parent bf420d254e
commit 596dd812c1
No known key found for this signature in database
GPG Key ID: AA0271FBE406DB98
7 changed files with 151 additions and 114 deletions

View File

@ -265,9 +265,7 @@ public class AppSettings extends AppCompatActivity implements OnClickListener, O
// reset twitter singleton
TwitterEngine.resetTwitter();
// remove account from database
// todo remove database and entry asynchronously
AccountDatabase.getInstance(this).removeLogin(settings.getCurrentUserId());
DatabaseAdapter.deleteDatabase(getApplicationContext());
settings.logout();
setResult(RETURN_APP_LOGOUT);
finish();

View File

@ -90,14 +90,18 @@ public class AccountAdapter extends Adapter<LoginHolder> {
String date = StringTools.formatCreationTime(account.getLoginDate());
holder.date.setText(date);
if (user != null) {
// set profile information
holder.username.setText(user.getUsername());
holder.screenname.setText(user.getScreenname());
String pbLink = user.getImageLink();
if (!user.hasDefaultProfileImage()) {
pbLink += settings.getImageSuffix();
// set profile image
if (settings.imagesEnabled()) {
String pbLink = user.getImageLink();
if (!user.hasDefaultProfileImage()) {
pbLink += settings.getImageSuffix();
}
Picasso.get().load(pbLink).transform(new RoundedCornersTransformation(2, 0))
.error(R.drawable.no_image).into(holder.profile);
}
Picasso.get().load(pbLink).transform(new RoundedCornersTransformation(2, 0))
.error(R.drawable.no_image).into(holder.profile);
}
}

View File

@ -9,6 +9,7 @@ import org.nuclearfog.twidda.backend.engine.TwitterEngine;
import org.nuclearfog.twidda.backend.model.Account;
import org.nuclearfog.twidda.backend.model.User;
import org.nuclearfog.twidda.database.AccountDatabase;
import org.nuclearfog.twidda.database.GlobalSettings;
import org.nuclearfog.twidda.fragment.AccountFragment;
import java.lang.ref.WeakReference;
@ -19,7 +20,7 @@ import java.util.List;
*
* @author nuclearfog
*/
public class LoginLoader extends AsyncTask<Account, Void, List<Account>> {
public class AccountLoader extends AsyncTask<Account, Void, List<Account>> {
@Nullable
private EngineException err;
@ -27,14 +28,19 @@ public class LoginLoader extends AsyncTask<Account, Void, List<Account>> {
private TwitterEngine mTwitter;
private WeakReference<AccountFragment> callback;
private boolean loggedIn;
/**
*
*/
public LoginLoader(AccountFragment fragment) {
public AccountLoader(AccountFragment fragment) {
super();
callback = new WeakReference<>(fragment);
database = AccountDatabase.getInstance(fragment.requireContext());
mTwitter = TwitterEngine.getInstance(fragment.requireContext());
GlobalSettings settings = GlobalSettings.getInstance(fragment.requireContext());
loggedIn = settings.isLoggedIn();
}
@ -54,10 +60,13 @@ public class LoginLoader extends AsyncTask<Account, Void, List<Account>> {
for (int i = 0; i < ids.length; i++) {
ids[i] = result.get(i).getId();
}
// get user information
List<User> users = mTwitter.getUsers(ids);
for (int i = 0; i < users.size(); i++) {
result.get(i).attachUser(users.get(i));
// attach user information if logged in
if (loggedIn) {
// get user information
List<User> users = mTwitter.getUsers(ids);
for (int i = 0; i < users.size(); i++) {
result.get(i).attachUser(users.get(i));
}
}
}
return result;

View File

@ -6,7 +6,7 @@ import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import org.nuclearfog.twidda.backend.model.Account;
import org.nuclearfog.twidda.database.DatabaseAdapter.LoginTable;
import org.nuclearfog.twidda.database.DatabaseAdapter.AccountTable;
import java.util.ArrayList;
import java.util.List;
@ -24,22 +24,22 @@ public class AccountDatabase {
* projection of the columns with fixed order
*/
private static final String[] PROJECTION = {
LoginTable.ID,
LoginTable.KEY1,
LoginTable.KEY2,
LoginTable.DATE
AccountTable.ID,
AccountTable.KEY1,
AccountTable.KEY2,
AccountTable.DATE
};
/**
*
*/
private static final String ACCOUNT_SELECTION = LoginTable.ID + "=?";
private static final String ACCOUNT_SELECTION = AccountTable.ID + "=?";
/**
* default sort order of the entries
* sort by date of creation, starting with the latest entry
*/
private static final String SORT_BY_CREATION = LoginTable.DATE + " DESC";
private static final String SORT_BY_CREATION = AccountTable.DATE + " DESC";
/**
* singleton instance
@ -74,14 +74,14 @@ public class AccountDatabase {
public void setLogin(long id, String key1, String key2) {
ContentValues values = new ContentValues(4);
values.put(LoginTable.ID, id);
values.put(LoginTable.KEY1, key1);
values.put(LoginTable.KEY2, key2);
values.put(LoginTable.DATE, System.currentTimeMillis());
values.put(AccountTable.ID, id);
values.put(AccountTable.KEY1, key1);
values.put(AccountTable.KEY2, key2);
values.put(AccountTable.DATE, System.currentTimeMillis());
SQLiteDatabase db = dataHelper.getDatabase();
db.beginTransaction();
db.insertWithOnConflict(LoginTable.NAME, "", values, CONFLICT_REPLACE);
db.insertWithOnConflict(AccountTable.NAME, "", values, CONFLICT_REPLACE);
db.setTransactionSuccessful();
db.endTransaction();
}
@ -95,7 +95,7 @@ public class AccountDatabase {
ArrayList<Account> result = new ArrayList<>();
SQLiteDatabase db = dataHelper.getDatabase();
Cursor cursor = db.query(LoginTable.NAME, PROJECTION, null, null, null, null, SORT_BY_CREATION);
Cursor cursor = db.query(AccountTable.NAME, PROJECTION, null, null, null, null, SORT_BY_CREATION);
if (cursor.moveToFirst()) {
result.ensureCapacity(cursor.getCount());
do {
@ -120,7 +120,7 @@ public class AccountDatabase {
String[] args = {Long.toString(id)};
SQLiteDatabase db = dataHelper.getDatabase();
db.delete(LoginTable.NAME, ACCOUNT_SELECTION, args);
db.delete(AccountTable.NAME, ACCOUNT_SELECTION, args);
}
/**
@ -132,7 +132,7 @@ public class AccountDatabase {
public boolean exists(long id) {
String[] args = {Long.toString(id)};
SQLiteDatabase db = dataHelper.getDatabase();
Cursor cursor = db.query(LoginTable.NAME, null, ACCOUNT_SELECTION, args, null, null, null, "1");
Cursor cursor = db.query(AccountTable.NAME, null, ACCOUNT_SELECTION, args, null, null, null, "1");
boolean found = cursor.moveToFirst();
cursor.close();
return found;

View File

@ -82,6 +82,7 @@ public class AppDatabase {
static final String HOME_QUERY = "SELECT * FROM " + TWEET_TABLE
+ " WHERE " + TweetRegisterTable.NAME + "." + TweetRegisterTable.REGISTER + "&" + HOM_MASK + " IS NOT 0"
+ " AND " + TweetRegisterTable.NAME + "." + TweetRegisterTable.OWNER + "=?"
+ " AND " + UserRegisterTable.NAME + "." + UserRegisterTable.OWNER + "=?"
+ " ORDER BY " + TweetTable.ID
+ " DESC LIMIT ?";
@ -92,6 +93,7 @@ public class AppDatabase {
+ " WHERE " + TweetRegisterTable.NAME + "." + TweetRegisterTable.REGISTER + "&" + MEN_MASK + " IS NOT 0"
+ " AND " + UserRegisterTable.NAME + "." + UserRegisterTable.REGISTER + "&" + EXCL_USR + " IS 0"
+ " AND " + TweetRegisterTable.NAME + "." + TweetRegisterTable.OWNER + "=?"
+ " AND " + UserRegisterTable.NAME + "." + UserRegisterTable.OWNER + "=?"
+ " ORDER BY " + TweetTable.ID
+ " DESC LIMIT ?";
@ -101,6 +103,7 @@ public class AppDatabase {
static final String USERTWEET_QUERY = "SELECT * FROM " + TWEET_TABLE
+ " WHERE " + TweetRegisterTable.NAME + "." + TweetRegisterTable.REGISTER + "&" + UTW_MASK + " IS NOT 0"
+ " AND " + TweetRegisterTable.NAME + "." + TweetRegisterTable.OWNER + "=?"
+ " AND " + UserRegisterTable.NAME + "." + UserRegisterTable.OWNER + "=?"
+ " AND " + TweetTable.NAME + "." + TweetTable.USER + "=?"
+ " ORDER BY " + TweetTable.ID
+ " DESC LIMIT ?";
@ -113,6 +116,7 @@ public class AppDatabase {
+ " ON " + TweetTable.NAME + "." + TweetTable.ID + "=" + FavoriteTable.NAME + "." + FavoriteTable.TWEETID
+ " WHERE " + FavoriteTable.NAME + "." + FavoriteTable.FAVORITEDBY + "=?"
+ " AND " + TweetRegisterTable.NAME + "." + TweetRegisterTable.OWNER + "=?"
+ " AND " + UserRegisterTable.NAME + "." + UserRegisterTable.OWNER + "=?"
+ " ORDER BY " + TweetTable.ID
+ " DESC LIMIT ?";
@ -120,7 +124,10 @@ public class AppDatabase {
* SQL query to get a single tweet specified by an ID
*/
static final String SINGLE_TWEET_QUERY = "SELECT * FROM " + TWEET_TABLE
+ " WHERE " + TweetTable.NAME + "." + TweetTable.ID + "=? LIMIT 1";
+ " WHERE " + TweetTable.NAME + "." + TweetTable.ID + "=?"
+ " AND " + TweetRegisterTable.NAME + "." + TweetRegisterTable.OWNER + "=?"
+ " AND " + UserRegisterTable.NAME + "." + UserRegisterTable.OWNER + "=?"
+ " LIMIT 1";
/**
* SQL query to get replies of a tweet specified by a reply ID
@ -128,6 +135,7 @@ public class AppDatabase {
static final String ANSWER_QUERY = "SELECT * FROM " + TWEET_TABLE
+ " WHERE " + TweetTable.NAME + "." + TweetTable.REPLYTWEET + "=?"
+ " AND " + TweetRegisterTable.NAME + "." + TweetRegisterTable.OWNER + "=?"
+ " AND " + UserRegisterTable.NAME + "." + UserRegisterTable.OWNER + "=?"
+ " AND " + TweetRegisterTable.NAME + "." + TweetRegisterTable.REGISTER + "&" + RPL_MASK + " IS NOT 0"
+ " AND " + UserRegisterTable.NAME + "." + UserRegisterTable.REGISTER + "&" + EXCL_USR + " IS 0"
+ " ORDER BY " + TweetTable.ID + " DESC LIMIT ?";
@ -351,7 +359,8 @@ public class AppDatabase {
* @return tweet list
*/
public List<Tweet> getHomeTimeline() {
String[] args = {Long.toString(homeId), Integer.toString(limit)};
String homeStr = Long.toString(homeId);
String[] args = {homeStr, homeStr, Integer.toString(limit)};
SQLiteDatabase db = getDbRead();
List<Tweet> tweetList = new LinkedList<>();
@ -372,9 +381,8 @@ public class AppDatabase {
* @return tweet list
*/
public List<Tweet> getMentions() {
String[] args = {
Long.toString(homeId), Integer.toString(limit)
};
String homeStr = Long.toString(homeId);
String[] args = {homeStr, homeStr, Integer.toString(limit)};
SQLiteDatabase db = getDbRead();
List<Tweet> tweetList = new LinkedList<>();
@ -396,10 +404,8 @@ public class AppDatabase {
* @return Tweet list of user tweets
*/
public List<Tweet> getUserTweets(long userID) {
String[] args = {
Long.toString(homeId), Long.toString(userID),
Integer.toString(limit)
};
String homeStr = Long.toString(homeId);
String[] args = {homeStr, homeStr, Long.toString(userID), Integer.toString(limit)};
SQLiteDatabase db = getDbRead();
List<Tweet> tweetList = new LinkedList<>();
@ -421,10 +427,8 @@ public class AppDatabase {
* @return favored tweets by user
*/
public List<Tweet> getUserFavorites(long ownerID) {
String[] args = {
Long.toString(ownerID), Long.toString(homeId),
Integer.toString(limit)
};
String homeStr = Long.toString(homeId);
String[] args = {Long.toString(ownerID), homeStr, homeStr, Integer.toString(limit)};
SQLiteDatabase db = getDbRead();
List<Tweet> tweetList = new LinkedList<>();
@ -459,7 +463,8 @@ public class AppDatabase {
*/
@Nullable
public Tweet getStatus(long tweetId) {
String[] args = {Long.toString(tweetId)};
String homeStr = Long.toString(homeId);
String[] args = {Long.toString(tweetId), homeStr, homeStr};
SQLiteDatabase db = getDbRead();
Tweet result = null;
@ -477,10 +482,8 @@ public class AppDatabase {
* @return list of tweet answers
*/
public List<Tweet> getAnswers(long tweetId) {
String[] args = {
Long.toString(tweetId), Long.toString(homeId),
Integer.toString(limit)
};
String homeStr = Long.toString(homeId);
String[] args = {Long.toString(tweetId), homeStr, homeStr, Integer.toString(limit)};
SQLiteDatabase db = getDbRead();
List<Tweet> tweetList = new LinkedList<>();
@ -529,18 +532,17 @@ public class AppDatabase {
*/
public void removeFavorite(Tweet tweet) {
long tweetId = tweet.getId();
if (tweet.getEmbeddedTweet() != null)
tweetId = tweet.getEmbeddedTweet().getId();
String[] delArgs = {Long.toString(tweetId), Long.toString(homeId)};
String[] updateArgs = {Long.toString(tweetId), Long.toString(homeId)};
if (tweet.getEmbeddedTweet() != null) {
tweetId = tweet.getEmbeddedTweet().getId();
}
SQLiteDatabase db = getDbWrite();
// get tweet register
ContentValues status = new ContentValues(1);
int flags = getTweetFlags(db, tweetId) & ~FAV_MASK; // unset favorite flag
status.put(TweetRegisterTable.REGISTER, flags);
int register = getTweetRegister(db, tweetId);
register &= ~FAV_MASK; // unset favorite flag
// update database
db.update(TweetRegisterTable.NAME, status, TWEET_REG_SELECT, updateArgs);
setTweetRegister(db, tweetId, register);
db.delete(FavoriteTable.NAME, FAVORITE_SELECT, delArgs);
commit(db);
}
@ -644,18 +646,14 @@ public class AppDatabase {
* @param mute true remove user tweets from mention results
*/
public void muteUser(long id, boolean mute) {
String[] args = {Long.toString(id), Long.toString(homeId)};
SQLiteDatabase db = getDbWrite();
int flags = getUserFlags(db, id);
int register = getUserFlags(db, id);
if (mute) {
flags |= EXCL_USR;
register |= EXCL_USR;
} else {
flags &= ~EXCL_USR;
register &= ~EXCL_USR;
}
ContentValues registerColumn = new ContentValues(1);
registerColumn.put(UserRegisterTable.REGISTER, flags);
db.update(UserRegisterTable.NAME, registerColumn, USER_REG_SELECT, args);
setUserFlags(db, id, register);
commit(db);
}
@ -759,26 +757,25 @@ public class AppDatabase {
* @param mode SQLITE mode {@link SQLiteDatabase#CONFLICT_IGNORE} or {@link SQLiteDatabase#CONFLICT_REPLACE}
*/
private void storeUser(User user, SQLiteDatabase db, int mode) {
ContentValues userRegister = new ContentValues(3);
ContentValues userColumn = new ContentValues(13);
int flags = getUserFlags(db, user.getId());
int register = getUserFlags(db, user.getId());
if (user.isVerified())
flags |= VER_MASK;
register |= VER_MASK;
else
flags &= ~VER_MASK;
register &= ~VER_MASK;
if (user.isLocked())
flags |= LCK_MASK;
register |= LCK_MASK;
else
flags &= ~LCK_MASK;
register &= ~LCK_MASK;
if (user.followRequested())
flags |= FRQ_MASK;
register |= FRQ_MASK;
else
flags &= ~FRQ_MASK;
register &= ~FRQ_MASK;
if (user.hasDefaultProfileImage())
flags |= DEF_IMG;
register |= DEF_IMG;
else
flags &= ~DEF_IMG;
register &= ~DEF_IMG;
ContentValues userColumn = new ContentValues(13);
userColumn.put(UserTable.ID, user.getId());
userColumn.put(UserTable.USERNAME, user.getUsername());
userColumn.put(UserTable.SCREENNAME, user.getScreenname());
@ -793,12 +790,8 @@ public class AppDatabase {
userColumn.put(UserTable.TWEETS, user.getTweetCount());
userColumn.put(UserTable.FAVORS, user.getFavorCount());
userRegister.put(UserRegisterTable.ID, user.getId());
userRegister.put(UserRegisterTable.OWNER, homeId);
userRegister.put(UserRegisterTable.REGISTER, flags);
db.insertWithOnConflict(UserRegisterTable.NAME, null, userRegister, mode);
db.insertWithOnConflict(UserTable.NAME, null, userColumn, mode);
setUserFlags(db, user.getId(), register);
}
@ -810,8 +803,6 @@ public class AppDatabase {
* @param db SQLite database
*/
private void storeStatus(Tweet tweet, int statusRegister, SQLiteDatabase db) {
ContentValues register = new ContentValues(3);
ContentValues status = new ContentValues(16);
User user = tweet.getUser();
Tweet rtStat = tweet.getEmbeddedTweet();
long rtId = -1L;
@ -819,7 +810,7 @@ public class AppDatabase {
storeStatus(rtStat, 0, db);
rtId = rtStat.getId();
}
statusRegister |= getTweetFlags(db, tweet.getId());
statusRegister |= getTweetRegister(db, tweet.getId());
if (tweet.favored()) {
statusRegister |= FAV_MASK;
} else {
@ -842,6 +833,7 @@ public class AppDatabase {
} else if (tweet.getMediaType() == GIF) {
statusRegister |= MEDIA_ANGIF_MASK;
}
ContentValues status = new ContentValues(16);
status.put(TweetTable.MEDIA, getMediaLinks(tweet));
status.put(TweetTable.ID, tweet.getId());
status.put(TweetTable.USER, user.getId());
@ -859,13 +851,10 @@ public class AppDatabase {
status.put(TweetTable.REPLYUSER, tweet.getReplyUserId());
status.put(TweetTable.REPLYNAME, tweet.getReplyName());
register.put(TweetRegisterTable.ID, tweet.getId());
register.put(TweetRegisterTable.OWNER, homeId);
register.put(TweetRegisterTable.REGISTER, statusRegister);
db.insertWithOnConflict(TweetTable.NAME, null, status, CONFLICT_REPLACE);
storeUser(user, db, CONFLICT_IGNORE);
db.insertWithOnConflict(TweetTable.NAME, null, status, CONFLICT_REPLACE);
db.insertWithOnConflict(TweetRegisterTable.NAME, null, register, CONFLICT_REPLACE);
setTweetRegister(db, tweet.getId(), statusRegister);
}
/**
@ -876,13 +865,10 @@ public class AppDatabase {
*/
private void updateStatus(Tweet tweet, SQLiteDatabase db) {
String[] tweetIdArg = {Long.toString(tweet.getId())};
String[] tweetRegArg = {Long.toString(tweet.getId()), Long.toString(homeId)};
String[] userIdArg = {Long.toString(tweet.getUser().getId())};
ContentValues tweetColumn = new ContentValues(6);
ContentValues tweetRegColumn = new ContentValues(3);
ContentValues userColumn = new ContentValues(9);
int register = getTweetFlags(db, tweet.getId());
User user = tweet.getUser();
int register = getTweetRegister(db, tweet.getId());
if (tweet.retweeted())
register |= RTW_MASK;
else
@ -891,6 +877,8 @@ public class AppDatabase {
register |= FAV_MASK;
else
register &= ~FAV_MASK;
ContentValues tweetColumn = new ContentValues(6);
tweetColumn.put(TweetTable.TWEET, tweet.getTweet());
tweetColumn.put(TweetTable.RETWEET, tweet.getRetweetCount());
tweetColumn.put(TweetTable.FAVORITE, tweet.getFavoriteCount());
@ -898,11 +886,7 @@ public class AppDatabase {
tweetColumn.put(TweetTable.REPLYNAME, tweet.getReplyName());
tweetColumn.put(TweetTable.MEDIA, getMediaLinks(tweet));
tweetRegColumn.put(TweetRegisterTable.ID, tweet.getId());
tweetRegColumn.put(TweetRegisterTable.OWNER, homeId);
tweetRegColumn.put(TweetRegisterTable.REGISTER, register);
User user = tweet.getUser();
ContentValues userColumn = new ContentValues(9);
userColumn.put(UserTable.USERNAME, user.getUsername());
userColumn.put(UserTable.SCREENNAME, user.getScreenname());
userColumn.put(UserTable.IMAGE, user.getImageLink());
@ -914,8 +898,8 @@ public class AppDatabase {
userColumn.put(UserTable.FOLLOWER, user.getFollower());
db.update(TweetTable.NAME, tweetColumn, TWEET_SELECT, tweetIdArg);
db.update(TweetRegisterTable.NAME, tweetRegColumn, TWEET_REG_SELECT, tweetRegArg);
db.update(UserTable.NAME, userColumn, USER_SELECT, userIdArg);
setTweetRegister(db, tweet.getId(), register);
}
/**
@ -950,8 +934,8 @@ public class AppDatabase {
* @param db database instance
*/
private void storeMessage(Message message, SQLiteDatabase db) {
ContentValues messageColumn = new ContentValues(5);
// store message information
ContentValues messageColumn = new ContentValues(5);
messageColumn.put(MessageTable.ID, message.getId());
messageColumn.put(MessageTable.SINCE, message.getTime());
messageColumn.put(MessageTable.SENDER, message.getSender().getId());
@ -968,9 +952,9 @@ public class AppDatabase {
*
* @param db database instance
* @param tweetID ID of the tweet
* @return tweet flags
* @return tweet register
*/
private int getTweetFlags(SQLiteDatabase db, long tweetID) {
private int getTweetRegister(SQLiteDatabase db, long tweetID) {
String[] columns = {TweetRegisterTable.REGISTER};
String[] args = {Long.toString(tweetID), Long.toString(homeId)};
@ -983,7 +967,28 @@ public class AppDatabase {
}
/**
* get flags of a twitter user or zero if user was not found
* set status register of a tweet. if an entry exists, update it
*
* @param db database instance
* @param id Tweet ID
* @param register tweet register
*/
public void setTweetRegister(SQLiteDatabase db, long id, int register) {
String[] args = {Long.toString(id), Long.toString(homeId)};
ContentValues values = new ContentValues(3);
values.put(TweetRegisterTable.ID, id);
values.put(TweetRegisterTable.OWNER, homeId);
values.put(TweetRegisterTable.REGISTER, register);
int cnt = db.update(TweetRegisterTable.NAME, values, TWEET_REG_SELECT, args);
if (cnt == 0) {
db.insert(TweetRegisterTable.NAME, null, values);
}
}
/**
* get user register or zero if not found
*
* @param db database instance
* @param userID ID of the user
@ -1001,6 +1006,27 @@ public class AppDatabase {
return result;
}
/**
* set user register. If entry exists, update it.
*
* @param db database instance
* @param id User ID
* @param register tweet register
*/
public void setUserFlags(SQLiteDatabase db, long id, int register) {
String[] args = {Long.toString(id), Long.toString(homeId)};
ContentValues values = new ContentValues(3);
values.put(UserRegisterTable.ID, id);
values.put(UserRegisterTable.OWNER, homeId);
values.put(UserRegisterTable.REGISTER, register);
int cnt = db.update(UserRegisterTable.NAME, values, USER_REG_SELECT, args);
if (cnt == 0) {
db.insert(UserRegisterTable.NAME, null, values);
}
}
/**
* check if tweet exists in database
*

View File

@ -127,11 +127,11 @@ public class DatabaseAdapter {
* SQL query to create a table for user logins
*/
private static final String TABLE_LOGINS = "CREATE TABLE IF NOT EXISTS "
+ LoginTable.NAME + "("
+ LoginTable.ID + " INTEGER PRIMARY KEY,"
+ LoginTable.DATE + " INTEGER,"
+ LoginTable.KEY1 + " TEXT,"
+ LoginTable.KEY2 + " TEXT);";
+ AccountTable.NAME + "("
+ AccountTable.ID + " INTEGER PRIMARY KEY,"
+ AccountTable.DATE + " INTEGER,"
+ AccountTable.KEY1 + " TEXT,"
+ AccountTable.KEY2 + " TEXT);";
/**
* index for tweet table
@ -511,7 +511,7 @@ public class DatabaseAdapter {
/**
* Table for multi user login information
*/
public interface LoginTable {
public interface AccountTable {
/**
* SQL table name
*/

View File

@ -5,7 +5,7 @@ import androidx.appcompat.app.AlertDialog;
import org.nuclearfog.twidda.adapter.AccountAdapter;
import org.nuclearfog.twidda.adapter.AccountAdapter.OnLoginClickListener;
import org.nuclearfog.twidda.backend.LoginLoader;
import org.nuclearfog.twidda.backend.AccountLoader;
import org.nuclearfog.twidda.backend.engine.EngineException;
import org.nuclearfog.twidda.backend.model.Account;
import org.nuclearfog.twidda.backend.utils.ErrorHandler;
@ -29,7 +29,7 @@ import static org.nuclearfog.twidda.dialog.ConfirmDialog.DialogType;
public class AccountFragment extends ListFragment implements OnLoginClickListener, OnConfirmListener {
@Nullable
private LoginLoader loginTask;
private AccountLoader loginTask;
private GlobalSettings settings;
private AccountAdapter adapter;
private AlertDialog dialog;
@ -48,7 +48,7 @@ public class AccountFragment extends ListFragment implements OnLoginClickListene
super.onStart();
if (loginTask == null) {
setRefresh(true);
loginTask = new LoginLoader(this);
loginTask = new AccountLoader(this);
loginTask.execute();
}
}
@ -65,7 +65,7 @@ public class AccountFragment extends ListFragment implements OnLoginClickListene
@Override
protected void onReload() {
if (loginTask == null || loginTask.getStatus() != RUNNING)
loginTask = new LoginLoader(this);
loginTask = new AccountLoader(this);
loginTask.execute();
}
@ -73,7 +73,7 @@ public class AccountFragment extends ListFragment implements OnLoginClickListene
@Override
protected void onReset() {
adapter.clear();
loginTask = new LoginLoader(this);
loginTask = new AccountLoader(this);
loginTask.execute();
setRefresh(true);
}
@ -108,12 +108,12 @@ public class AccountFragment extends ListFragment implements OnLoginClickListene
@Override
public void onConfirm(DialogType type) {
loginTask = new LoginLoader(this);
loginTask = new AccountLoader(this);
loginTask.execute(selection);
}
/**
* called from {@link LoginLoader}
* called from {@link AccountLoader}
*
* @param result login information
*/
@ -123,7 +123,7 @@ public class AccountFragment extends ListFragment implements OnLoginClickListene
}
/**
* called from {@link LoginLoader} when an error occurs
* called from {@link AccountLoader} when an error occurs
*/
public void onError(EngineException err) {
ErrorHandler.handleFailure(requireContext(), err);