This commit is contained in:
NudeDude 2019-04-19 16:36:40 +02:00
parent cbd97d131b
commit fe188a4a55
7 changed files with 39 additions and 44 deletions

View File

@ -33,7 +33,6 @@ public class MessageLoader extends AsyncTask<Long, Void, Void> {
private MessageAdapter mAdapter; private MessageAdapter mAdapter;
private TwitterEngine twitter; private TwitterEngine twitter;
private TwitterException err; private TwitterException err;
private DatabaseAdapter mData;
private List<Message> message; private List<Message> message;
@ -42,7 +41,6 @@ public class MessageLoader extends AsyncTask<Long, Void, Void> {
RecyclerView dm_list = context.findViewById(R.id.messagelist); RecyclerView dm_list = context.findViewById(R.id.messagelist);
mAdapter = (MessageAdapter) dm_list.getAdapter(); mAdapter = (MessageAdapter) dm_list.getAdapter();
twitter = TwitterEngine.getInstance(context); twitter = TwitterEngine.getInstance(context);
mData = new DatabaseAdapter(context);
message = new ArrayList<>(); message = new ArrayList<>();
this.mode = mode; this.mode = mode;
} }
@ -60,22 +58,23 @@ public class MessageLoader extends AsyncTask<Long, Void, Void> {
@Override @Override
protected Void doInBackground(Long... param) { protected Void doInBackground(Long... param) {
long messageId = -1; long messageId = -1;
DatabaseAdapter db = new DatabaseAdapter(ui.get());
try { try {
switch (mode) { switch (mode) {
case GET: case GET:
message = twitter.getMessages(); message = twitter.getMessages();
mData.storeMessage(message); db.storeMessage(message);
break; break;
case DEL: case DEL:
messageId = param[0]; messageId = param[0];
twitter.deleteMessage(messageId); twitter.deleteMessage(messageId);
mData.deleteDm(messageId); db.deleteDm(messageId);
break; break;
} }
} catch (TwitterException err) { } catch (TwitterException err) {
if (err.getErrorCode() == 34) { if (err.getErrorCode() == 34) {
mData.deleteDm(messageId); db.deleteDm(messageId);
} else { } else {
this.err = err; this.err = err;
failure = true; failure = true;
@ -85,7 +84,7 @@ public class MessageLoader extends AsyncTask<Long, Void, Void> {
Log.e("Direct Message", err.getMessage()); Log.e("Direct Message", err.getMessage());
failure = true; failure = true;
} finally { } finally {
message = mData.getMessages(); message = db.getMessages();
} }
return null; return null;
} }

View File

@ -41,7 +41,6 @@ public class ProfileEditor extends AsyncTask<Void, Void, Void> {
private WeakReference<ProfileEdit> ui; private WeakReference<ProfileEdit> ui;
private TwitterEngine mTwitter; private TwitterEngine mTwitter;
private DatabaseAdapter mData;
private TwitterException err; private TwitterException err;
private TwitterUser user; private TwitterUser user;
private Editable edit_name, edit_link, edit_bio, edit_loc; private Editable edit_name, edit_link, edit_bio, edit_loc;
@ -52,7 +51,6 @@ public class ProfileEditor extends AsyncTask<Void, Void, Void> {
public ProfileEditor(@NonNull ProfileEdit c, Mode mode) { public ProfileEditor(@NonNull ProfileEdit c, Mode mode) {
ui = new WeakReference<>(c); ui = new WeakReference<>(c);
mTwitter = TwitterEngine.getInstance(c); mTwitter = TwitterEngine.getInstance(c);
mData = new DatabaseAdapter(c);
popup = new Dialog(c); popup = new Dialog(c);
this.mode = mode; this.mode = mode;
@ -106,7 +104,8 @@ public class ProfileEditor extends AsyncTask<Void, Void, Void> {
String user_loc = edit_loc.toString(); String user_loc = edit_loc.toString();
String user_bio = edit_bio.toString(); String user_bio = edit_bio.toString();
user = mTwitter.updateProfile(username, user_link, user_loc, user_bio); user = mTwitter.updateProfile(username, user_link, user_loc, user_bio);
mData.storeUser(user); DatabaseAdapter db = new DatabaseAdapter(ui.get());
db.storeUser(user);
if (!image_path.trim().isEmpty()) if (!image_path.trim().isEmpty())
mTwitter.updateProfileImage(new File(image_path)); mTwitter.updateProfileImage(new File(image_path));

View File

@ -58,7 +58,6 @@ public class ProfileLoader extends AsyncTask<Long, Void, Void> {
private SimpleDateFormat sdf; private SimpleDateFormat sdf;
private TwitterEngine mTwitter; private TwitterEngine mTwitter;
private TwitterException err; private TwitterException err;
private DatabaseAdapter database;
private TwitterUser user; private TwitterUser user;
private List<Tweet> tweets, favors; private List<Tweet> tweets, favors;
private NumberFormat formatter; private NumberFormat formatter;
@ -82,7 +81,6 @@ public class ProfileLoader extends AsyncTask<Long, Void, Void> {
mTwitter = TwitterEngine.getInstance(context); mTwitter = TwitterEngine.getInstance(context);
GlobalSettings settings = GlobalSettings.getInstance(context); GlobalSettings settings = GlobalSettings.getInstance(context);
formatter = NumberFormat.getIntegerInstance(); formatter = NumberFormat.getIntegerInstance();
database = new DatabaseAdapter(context);
sdf = settings.getDateFormatter(); sdf = settings.getDateFormatter();
imgEnabled = settings.getImageLoad(); imgEnabled = settings.getImageLoad();
homeId = settings.getUserId(); homeId = settings.getUserId();
@ -118,19 +116,20 @@ public class ProfileLoader extends AsyncTask<Long, Void, Void> {
long page = 1L; long page = 1L;
if (args.length > 2) if (args.length > 2)
page = args[2]; page = args[2];
DatabaseAdapter db = new DatabaseAdapter(ui.get());
isHome = homeId == UID; isHome = homeId == UID;
try { try {
if (mode == Mode.LDR_PROFILE) { if (mode == Mode.LDR_PROFILE) {
user = database.getUser(UID); user = db.getUser(UID);
if (user != null) { if (user != null) {
tweets = database.getUserTweets(UID); tweets = db.getUserTweets(UID);
favors = database.getUserFavs(UID); favors = db.getUserFavs(UID);
publishProgress(); publishProgress();
} }
} }
user = mTwitter.getUser(UID); user = mTwitter.getUser(UID);
publishProgress(); publishProgress();
database.storeUser(user); db.storeUser(user);
if (!isHome) { if (!isHome) {
boolean connection[] = mTwitter.getConnection(UID); boolean connection[] = mTwitter.getConnection(UID);
@ -146,13 +145,13 @@ public class ProfileLoader extends AsyncTask<Long, Void, Void> {
if (!user.isLocked() || isFollowing || isHome) { if (!user.isLocked() || isFollowing || isHome) {
if (tweets.isEmpty()) { if (tweets.isEmpty()) {
tweets = mTwitter.getUserTweets(UID, 1, page); tweets = mTwitter.getUserTweets(UID, 1, page);
database.storeUserTweets(tweets); db.storeUserTweets(tweets);
tweets.addAll(homeTl.getData()); tweets.addAll(homeTl.getData());
publishProgress(); publishProgress();
} }
if (favors.isEmpty()) { if (favors.isEmpty()) {
favors = mTwitter.getUserFavs(UID, 1, page); favors = mTwitter.getUserFavs(UID, 1, page);
database.storeUserFavs(favors, UID); db.storeUserFavs(favors, UID);
favors.addAll(homeFav.getData()); favors.addAll(homeFav.getData());
publishProgress(); publishProgress();
} }
@ -165,7 +164,7 @@ public class ProfileLoader extends AsyncTask<Long, Void, Void> {
if (homeTl.getItemCount() > 0) if (homeTl.getItemCount() > 0)
sinceId = homeTl.getItemId(0); sinceId = homeTl.getItemId(0);
tweets = mTwitter.getUserTweets(UID, sinceId, page); tweets = mTwitter.getUserTweets(UID, sinceId, page);
database.storeUserTweets(tweets); db.storeUserTweets(tweets);
tweets.addAll(homeTl.getData()); tweets.addAll(homeTl.getData());
publishProgress(); publishProgress();
} }
@ -177,7 +176,7 @@ public class ProfileLoader extends AsyncTask<Long, Void, Void> {
if (homeFav.getItemCount() > 0) if (homeFav.getItemCount() > 0)
sinceId = homeFav.getItemId(0); sinceId = homeFav.getItemId(0);
favors = mTwitter.getUserFavs(UID, sinceId, page); favors = mTwitter.getUserFavs(UID, sinceId, page);
database.storeUserFavs(favors, UID); db.storeUserFavs(favors, UID);
favors.addAll(homeFav.getData()); favors.addAll(homeFav.getData());
publishProgress(); publishProgress();
} }

View File

@ -39,10 +39,8 @@ public class StartPage extends AsyncTask<Integer, Void, Void> {
private TimelineAdapter timelineAdapter, mentionAdapter; private TimelineAdapter timelineAdapter, mentionAdapter;
private TrendAdapter trendsAdapter; private TrendAdapter trendsAdapter;
private DatabaseAdapter tweetDb;
private List<Tweet> tweets, mention; private List<Tweet> tweets, mention;
private List<Trend> trends; private List<Trend> trends;
private int woeId; private int woeId;
@ -50,7 +48,6 @@ public class StartPage extends AsyncTask<Integer, Void, Void> {
ui = new WeakReference<>(context); ui = new WeakReference<>(context);
mTwitter = TwitterEngine.getInstance(context); mTwitter = TwitterEngine.getInstance(context);
GlobalSettings settings = GlobalSettings.getInstance(context); GlobalSettings settings = GlobalSettings.getInstance(context);
tweetDb = new DatabaseAdapter(context);
woeId = settings.getWoeId(); woeId = settings.getWoeId();
tweets = new ArrayList<>(); tweets = new ArrayList<>();
@ -72,13 +69,14 @@ public class StartPage extends AsyncTask<Integer, Void, Void> {
protected Void doInBackground(Integer... args) { protected Void doInBackground(Integer... args) {
final int PAGE = args[0]; final int PAGE = args[0];
long sinceId = 1L; long sinceId = 1L;
DatabaseAdapter db = new DatabaseAdapter(ui.get());
try { try {
switch (mode) { switch (mode) {
case HOME: case HOME:
if (timelineAdapter.getItemCount() > 0) if (timelineAdapter.getItemCount() > 0)
sinceId = timelineAdapter.getItemId(0); sinceId = timelineAdapter.getItemId(0);
tweets = mTwitter.getHome(PAGE, sinceId); tweets = mTwitter.getHome(PAGE, sinceId);
tweetDb.storeHomeTimeline(tweets); db.storeHomeTimeline(tweets);
tweets.addAll(timelineAdapter.getData()); tweets.addAll(timelineAdapter.getData());
publishProgress(); publishProgress();
break; break;
@ -86,7 +84,7 @@ public class StartPage extends AsyncTask<Integer, Void, Void> {
case TRND: case TRND:
trends = mTwitter.getTrends(woeId); trends = mTwitter.getTrends(woeId);
publishProgress(); publishProgress();
tweetDb.storeTrends(trends, woeId); db.storeTrends(trends, woeId);
break; break;
case MENT: case MENT:
@ -94,14 +92,14 @@ public class StartPage extends AsyncTask<Integer, Void, Void> {
sinceId = mentionAdapter.getItemId(0); sinceId = mentionAdapter.getItemId(0);
mention = mTwitter.getMention(PAGE, sinceId); mention = mTwitter.getMention(PAGE, sinceId);
mention.addAll(mentionAdapter.getData()); mention.addAll(mentionAdapter.getData());
tweetDb.storeMentions(mention); db.storeMentions(mention);
publishProgress(); publishProgress();
break; break;
case DATA: case DATA:
tweets = tweetDb.getHomeTimeline(); tweets = db.getHomeTimeline();
trends = tweetDb.getTrends(woeId); trends = db.getTrends(woeId);
mention = tweetDb.getMentions(); mention = db.getMentions();
publishProgress(); publishProgress();
} }
} catch (TwitterException err) { } catch (TwitterException err) {

View File

@ -52,7 +52,6 @@ public class StatusLoader extends AsyncTask<Long, Void, Void> {
private TwitterException err; private TwitterException err;
private WeakReference<TweetDetail> ui; private WeakReference<TweetDetail> ui;
private TimelineAdapter answerAdapter; private TimelineAdapter answerAdapter;
private DatabaseAdapter database;
private SimpleDateFormat sdf; private SimpleDateFormat sdf;
private NumberFormat formatter; private NumberFormat formatter;
private List<Tweet> answers; private List<Tweet> answers;
@ -67,7 +66,6 @@ public class StatusLoader extends AsyncTask<Long, Void, Void> {
GlobalSettings settings = GlobalSettings.getInstance(context); GlobalSettings settings = GlobalSettings.getInstance(context);
RecyclerView replyList = context.findViewById(R.id.answer_list); RecyclerView replyList = context.findViewById(R.id.answer_list);
answerAdapter = (TimelineAdapter) replyList.getAdapter(); answerAdapter = (TimelineAdapter) replyList.getAdapter();
database = new DatabaseAdapter(context);
sdf = settings.getDateFormatter(); sdf = settings.getDateFormatter();
formatter = NumberFormat.getIntegerInstance(); formatter = NumberFormat.getIntegerInstance();
font_color = settings.getFontColor(); font_color = settings.getFontColor();
@ -96,37 +94,38 @@ public class StatusLoader extends AsyncTask<Long, Void, Void> {
final long TWEETID = data[0]; final long TWEETID = data[0];
long sinceId = TWEETID; long sinceId = TWEETID;
boolean updateStatus = false; boolean updateStatus = false;
DatabaseAdapter db = new DatabaseAdapter(ui.get());
try { try {
switch (mode) { switch (mode) {
case LOAD: case LOAD:
tweet = database.getStatus(TWEETID); tweet = db.getStatus(TWEETID);
if (tweet != null) { if (tweet != null) {
answers = database.getAnswers(TWEETID); answers = db.getAnswers(TWEETID);
publishProgress(); publishProgress();
updateStatus = true; updateStatus = true;
} }
case ANS: case ANS:
tweet = mTwitter.getStatus(TWEETID); tweet = mTwitter.getStatus(TWEETID);
if (!updateStatus) if (!updateStatus)
updateStatus = database.containStatus(TWEETID); updateStatus = db.containStatus(TWEETID);
if (mode == Mode.ANS || toggleAns) { if (mode == Mode.ANS || toggleAns) {
if (answerAdapter.getItemCount() > 0) if (answerAdapter.getItemCount() > 0)
sinceId = answerAdapter.getItemId(0); sinceId = answerAdapter.getItemId(0);
answers = mTwitter.getAnswers(tweet.getUser().getScreenname(), TWEETID, sinceId); answers = mTwitter.getAnswers(tweet.getUser().getScreenname(), TWEETID, sinceId);
if (updateStatus && !answers.isEmpty()) if (updateStatus && !answers.isEmpty())
database.storeReplies(answers); db.storeReplies(answers);
answers.addAll(answerAdapter.getData()); answers.addAll(answerAdapter.getData());
} }
publishProgress(); publishProgress();
if (updateStatus) if (updateStatus)
database.updateStatus(tweet); db.updateStatus(tweet);
break; break;
case DELETE: case DELETE:
mTwitter.deleteTweet(TWEETID); mTwitter.deleteTweet(TWEETID);
database.removeStatus(TWEETID); db.removeStatus(TWEETID);
break; break;
case RETWEET: case RETWEET:
@ -134,8 +133,8 @@ public class StatusLoader extends AsyncTask<Long, Void, Void> {
publishProgress(); publishProgress();
if (!tweet.retweeted()) if (!tweet.retweeted())
database.removeRetweet(TWEETID); db.removeRetweet(TWEETID);
database.updateStatus(tweet); db.updateStatus(tweet);
break; break;
case FAVORITE: case FAVORITE:
@ -143,16 +142,16 @@ public class StatusLoader extends AsyncTask<Long, Void, Void> {
publishProgress(); publishProgress();
if (tweet.favored()) if (tweet.favored())
database.storeFavorite(TWEETID); db.storeFavorite(TWEETID);
else else
database.removeFavorite(TWEETID); db.removeFavorite(TWEETID);
break; break;
} }
} catch (TwitterException err) { } catch (TwitterException err) {
this.err = err; this.err = err;
int rCode = err.getErrorCode(); int rCode = err.getErrorCode();
if (rCode == 144 || rCode == 34 || rCode == 63) if (rCode == 144 || rCode == 34 || rCode == 63)
database.removeStatus(TWEETID); db.removeStatus(TWEETID);
failure = true; failure = true;
} catch (Exception err) { } catch (Exception err) {
if (err.getMessage() != null) if (err.getMessage() != null)

View File

@ -35,7 +35,7 @@ public class DatabaseAdapter {
private AppDatabase dataHelper; private AppDatabase dataHelper;
private long homeId; private long homeId;
public DatabaseAdapter(@Nullable Context context) { public DatabaseAdapter(Context context) {
dataHelper = new AppDatabase(context); dataHelper = new AppDatabase(context);
GlobalSettings settings = GlobalSettings.getInstance(context); GlobalSettings settings = GlobalSettings.getInstance(context);
homeId = settings.getUserId(); homeId = settings.getUserId();
@ -663,11 +663,12 @@ public class DatabaseAdapter {
status.put("retweetID", rtId); status.put("retweetID", rtId);
status.put("source", tweet.getSource()); status.put("source", tweet.getSource());
status.put("replyID", tweet.getReplyId()); status.put("replyID", tweet.getReplyId());
status.put("replyname", tweet.getReplyName());
status.put("retweet", tweet.getRetweetCount()); status.put("retweet", tweet.getRetweetCount());
status.put("favorite", tweet.getFavorCount()); status.put("favorite", tweet.getFavorCount());
status.put("retweeterID", tweet.getMyRetweetId()); status.put("retweeterID", tweet.getMyRetweetId());
status.put("replyUserID", tweet.getReplyUserId()); status.put("replyUserID", tweet.getReplyUserId());
if (tweet.getReplyUserId() > 0)
status.put("replyname", tweet.getReplyName());
storeUser(user, db, CONFLICT_IGNORE); storeUser(user, db, CONFLICT_IGNORE);
db.insertWithOnConflict("tweet", null, status, CONFLICT_REPLACE); db.insertWithOnConflict("tweet", null, status, CONFLICT_REPLACE);
} }