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

View File

@ -41,7 +41,6 @@ public class ProfileEditor extends AsyncTask<Void, Void, Void> {
private WeakReference<ProfileEdit> ui;
private TwitterEngine mTwitter;
private DatabaseAdapter mData;
private TwitterException err;
private TwitterUser user;
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) {
ui = new WeakReference<>(c);
mTwitter = TwitterEngine.getInstance(c);
mData = new DatabaseAdapter(c);
popup = new Dialog(c);
this.mode = mode;
@ -106,7 +104,8 @@ public class ProfileEditor extends AsyncTask<Void, Void, Void> {
String user_loc = edit_loc.toString();
String user_bio = edit_bio.toString();
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())
mTwitter.updateProfileImage(new File(image_path));

View File

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

View File

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

View File

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

View File

@ -69,7 +69,7 @@ public class AppDatabase extends SQLiteOpenHelper {
db.execSQL(INDX_TWEET);
db.execSQL(INDX_FAVOR);
}
if(oldVersion < 4 && newVersion >=4) {
if (oldVersion < 4 && newVersion >= 4) {
db.execSQL(INDX_TREND);
}
}

View File

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