database fix
This commit is contained in:
parent
33260ae84e
commit
3fdbe9af6c
|
@ -537,7 +537,6 @@ public class TweetActivity extends AppCompatActivity implements OnClickListener,
|
|||
} else {
|
||||
sensitive_media.setVisibility(GONE);
|
||||
}
|
||||
AppStyles.setDrawableColor(mediaButton, settings.getIconColor());
|
||||
switch(tweetUpdate.getMediaType()) {
|
||||
case Tweet.MIME_PHOTO:
|
||||
mediaButton.setVisibility(VISIBLE);
|
||||
|
@ -559,6 +558,7 @@ public class TweetActivity extends AppCompatActivity implements OnClickListener,
|
|||
mediaButton.setImageResource(0);
|
||||
break;
|
||||
}
|
||||
AppStyles.setDrawableColor(mediaButton, settings.getIconColor());
|
||||
if (settings.imagesEnabled() && !author.getImageUrl().isEmpty()) {
|
||||
String pbLink = author.getImageUrl();
|
||||
if (!author.hasDefaultProfileImage())
|
||||
|
|
|
@ -64,6 +64,7 @@ public class MessageHolder extends ViewHolder {
|
|||
button.setTypeface(settings.getTypeFace());
|
||||
AppStyles.setButtonColor(button, settings.getFontColor());
|
||||
}
|
||||
AppStyles.setButtonColor(mediaButton, settings.getFontColor());
|
||||
verifiedIcon.setColorFilter(settings.getIconColor(), SRC_IN);
|
||||
lockedIcon.setColorFilter(settings.getIconColor(), SRC_IN);
|
||||
mediaButton.setColorFilter(settings.getIconColor(), SRC_IN);
|
||||
|
|
|
@ -42,11 +42,11 @@ class UserV1 implements User {
|
|||
|
||||
|
||||
UserV1(JSONObject json) {
|
||||
String profileImage = json.optString("profile_image_url_https");
|
||||
profileBannerUrl = json.optString("profile_banner_url");
|
||||
description = json.optString("description");
|
||||
username = json.optString("name");
|
||||
screenName = '@' + json.optString("screen_name");
|
||||
profileImageUrl = json.optString("profile_image_url_https");
|
||||
location = json.optString("location");
|
||||
userID = json.optLong("id");
|
||||
isVerified = json.optBoolean("verified");
|
||||
|
@ -78,6 +78,14 @@ class UserV1 implements User {
|
|||
}
|
||||
}
|
||||
}
|
||||
// set profile image url
|
||||
int start = profileImage.lastIndexOf('_');
|
||||
int end = profileImage.lastIndexOf('.');
|
||||
if (!defaultImage && start > 0 && end > 0) {
|
||||
profileImageUrl = profileImage.substring(0, start) + profileImage.substring(end);
|
||||
} else {
|
||||
profileImageUrl = profileImage;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -13,8 +13,8 @@ import java.net.SocketAddress;
|
|||
*/
|
||||
public class UserProxy extends Proxy {
|
||||
|
||||
private UserProxy(Type type, SocketAddress sa) {
|
||||
super(type, sa);
|
||||
private UserProxy(SocketAddress sa) {
|
||||
super(Type.HTTP, sa);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -27,7 +27,7 @@ public class UserProxy extends Proxy {
|
|||
String proxyHost = settings.getProxyHost();
|
||||
int proxyPort = settings.getProxyPortNumber();
|
||||
InetSocketAddress addr = new InetSocketAddress(proxyHost, proxyPort);
|
||||
return new UserProxy(Type.HTTP, addr);
|
||||
return new UserProxy(addr);
|
||||
}
|
||||
return Proxy.NO_PROXY;
|
||||
}
|
||||
|
|
|
@ -24,8 +24,6 @@ import javax.crypto.spec.SecretKeySpec;
|
|||
*/
|
||||
public final class StringTools {
|
||||
|
||||
public static final String MIME_ALL = "*/*";
|
||||
|
||||
private static final SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.US);
|
||||
private static final long DEFAULT_TIME = 0x61D99F64;
|
||||
|
||||
|
|
|
@ -538,18 +538,17 @@ public class AppDatabase {
|
|||
* @param tweet Tweet to remove from the favorites
|
||||
*/
|
||||
public void removeFavorite(Tweet tweet) {
|
||||
long tweetId = tweet.getId();
|
||||
String[] delArgs = {Long.toString(tweetId), Long.toString(homeId)};
|
||||
String[] delArgs = {Long.toString(tweet.getId()), Long.toString(homeId)};
|
||||
|
||||
if (tweet.getEmbeddedTweet() != null) {
|
||||
tweetId = tweet.getEmbeddedTweet().getId();
|
||||
tweet = tweet.getEmbeddedTweet();
|
||||
}
|
||||
SQLiteDatabase db = getDbWrite();
|
||||
// get tweet register
|
||||
int register = getTweetRegister(db, tweetId);
|
||||
int register = getTweetRegister(db, tweet.getId());
|
||||
register &= ~FAV_MASK; // unset favorite flag
|
||||
// update database
|
||||
setTweetRegister(db, tweetId, register);
|
||||
setTweetRegister(db, tweet, register);
|
||||
db.delete(FavoriteTable.NAME, FAVORITE_SELECT, delArgs);
|
||||
commit(db);
|
||||
}
|
||||
|
@ -764,7 +763,6 @@ public class AppDatabase {
|
|||
status.put(TweetTable.REPLYTWEET, tweet.getReplyId());
|
||||
status.put(TweetTable.RETWEET, tweet.getRetweetCount());
|
||||
status.put(TweetTable.FAVORITE, tweet.getFavoriteCount());
|
||||
status.put(TweetTable.RETWEETUSER, tweet.getMyRetweetId());
|
||||
status.put(TweetTable.REPLYUSER, tweet.getReplyUserId());
|
||||
status.put(TweetTable.PLACE, tweet.getLocationName());
|
||||
status.put(TweetTable.COORDINATE, tweet.getLocationCoordinates());
|
||||
|
@ -774,7 +772,7 @@ public class AppDatabase {
|
|||
db.insertWithOnConflict(TweetTable.NAME, null, status, CONFLICT_REPLACE);
|
||||
|
||||
storeUser(user, db, CONFLICT_IGNORE);
|
||||
setTweetRegister(db, tweet.getId(), statusRegister);
|
||||
setTweetRegister(db, tweet, statusRegister);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -802,7 +800,6 @@ public class AppDatabase {
|
|||
tweetColumn.put(TweetTable.TWEET, tweet.getText());
|
||||
tweetColumn.put(TweetTable.RETWEET, tweet.getRetweetCount());
|
||||
tweetColumn.put(TweetTable.FAVORITE, tweet.getFavoriteCount());
|
||||
tweetColumn.put(TweetTable.RETWEETUSER, tweet.getMyRetweetId());
|
||||
tweetColumn.put(TweetTable.REPLYNAME, tweet.getReplyName());
|
||||
tweetColumn.put(TweetTable.MEDIA, getMediaLinks(tweet));
|
||||
|
||||
|
@ -819,7 +816,7 @@ public class AppDatabase {
|
|||
|
||||
db.update(TweetTable.NAME, tweetColumn, TWEET_SELECT, tweetIdArg);
|
||||
db.update(UserTable.NAME, userColumn, USER_SELECT, userIdArg);
|
||||
setTweetRegister(db, tweet.getId(), register);
|
||||
setTweetRegister(db, tweet, register);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -861,6 +858,7 @@ public class AppDatabase {
|
|||
messageColumn.put(MessageTable.FROM, message.getSender().getId());
|
||||
messageColumn.put(MessageTable.TO, message.getReceiver().getId());
|
||||
messageColumn.put(MessageTable.MESSAGE, message.getText());
|
||||
messageColumn.put(MessageTable.MEDIA, message.getMedia());
|
||||
db.insertWithOnConflict(MessageTable.NAME, null, messageColumn, CONFLICT_IGNORE);
|
||||
// store user information
|
||||
storeUser(message.getSender(), db, CONFLICT_IGNORE);
|
||||
|
@ -889,16 +887,17 @@ public class AppDatabase {
|
|||
* set status register of a tweet. if an entry exists, update it
|
||||
*
|
||||
* @param db database instance
|
||||
* @param id Tweet ID
|
||||
* @param tweet Tweet
|
||||
* @param register tweet register
|
||||
*/
|
||||
public void setTweetRegister(SQLiteDatabase db, long id, int register) {
|
||||
String[] args = {Long.toString(id), Long.toString(homeId)};
|
||||
public void setTweetRegister(SQLiteDatabase db, Tweet tweet, int register) {
|
||||
String[] args = {Long.toString(tweet.getId()), Long.toString(homeId)};
|
||||
|
||||
ContentValues values = new ContentValues(3);
|
||||
values.put(TweetRegisterTable.ID, id);
|
||||
values.put(TweetRegisterTable.ID, tweet.getId());
|
||||
values.put(TweetRegisterTable.OWNER, homeId);
|
||||
values.put(TweetRegisterTable.REGISTER, register);
|
||||
values.put(TweetRegisterTable.RETWEETUSER, tweet.getMyRetweetId());
|
||||
|
||||
int cnt = db.update(TweetRegisterTable.NAME, values, TWEET_REG_SELECT, args);
|
||||
if (cnt == 0) {
|
||||
|
|
|
@ -19,7 +19,7 @@ public class DatabaseAdapter {
|
|||
/**
|
||||
* database version number
|
||||
*/
|
||||
private static final int DB_VERSION = 4;
|
||||
private static final int DB_VERSION = 5;
|
||||
|
||||
/**
|
||||
* database file name
|
||||
|
@ -54,7 +54,6 @@ public class DatabaseAdapter {
|
|||
+ TweetTable.USER + " INTEGER,"
|
||||
+ TweetTable.EMBEDDED + " INTEGER,"
|
||||
+ TweetTable.REPLYTWEET + " INTEGER,"
|
||||
+ TweetTable.RETWEETUSER + " INTEGER,"
|
||||
+ TweetTable.REPLYNAME + " TEXT,"
|
||||
+ TweetTable.REPLYUSER + " INTEGER,"
|
||||
+ TweetTable.SINCE + " INTEGER,"
|
||||
|
@ -183,6 +182,15 @@ public class DatabaseAdapter {
|
|||
private static final String TABLE_TREND_ADD_VOL = "ALTER TABLE " + TrendTable.NAME
|
||||
+ " ADD COLUMN " + TrendTable.VOL + " INTEGER";
|
||||
|
||||
/**
|
||||
* update for the directmessage table to add a media link
|
||||
*/
|
||||
private static final String TABLE_MESSAGE_ADD_MEDIA = "ALTER TABLE " + MessageTable.NAME
|
||||
+ " ADD COLUMN " + MessageTable.MEDIA + " TEXT";
|
||||
|
||||
private static final String TABLE_TWEETREGISTER_ADD_RETWEETER_ID = "ALTER TABLE " + TweetRegisterTable.NAME
|
||||
+ " ADD COLUMN " + TweetRegisterTable.RETWEETUSER + " INTEGER";
|
||||
|
||||
/**
|
||||
* singleton instance
|
||||
*/
|
||||
|
@ -269,6 +277,11 @@ public class DatabaseAdapter {
|
|||
db.execSQL(TABLE_USER_REGISTER);
|
||||
db.setVersion(4);
|
||||
}
|
||||
if (db.getVersion() < 5) {
|
||||
db.execSQL(TABLE_MESSAGE_ADD_MEDIA);
|
||||
db.execSQL(TABLE_TWEETREGISTER_ADD_RETWEETER_ID);
|
||||
db.setVersion(5);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -460,11 +473,6 @@ public class DatabaseAdapter {
|
|||
* ID of the embedded (retweeted) status
|
||||
*/
|
||||
String EMBEDDED = "retweetID";
|
||||
|
||||
/**
|
||||
* ID of the
|
||||
*/
|
||||
String RETWEETUSER = "retweeterID";
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -549,6 +557,11 @@ public class DatabaseAdapter {
|
|||
* message text
|
||||
*/
|
||||
String MESSAGE = "message";
|
||||
|
||||
/**
|
||||
* media links
|
||||
*/
|
||||
String MEDIA = "media";
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -611,6 +624,11 @@ public class DatabaseAdapter {
|
|||
* Register with status bits
|
||||
*/
|
||||
String REGISTER = "tweetRegister";
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
String RETWEETUSER = "retweeterID";
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -2,6 +2,8 @@ package org.nuclearfog.twidda.database;
|
|||
|
||||
import android.database.Cursor;
|
||||
|
||||
import org.nuclearfog.twidda.database.DatabaseAdapter.MessageTable;
|
||||
import org.nuclearfog.twidda.database.DatabaseAdapter.UserTable;
|
||||
import org.nuclearfog.twidda.model.DirectMessage;
|
||||
import org.nuclearfog.twidda.model.User;
|
||||
|
||||
|
@ -21,11 +23,12 @@ class DirectMessageImpl implements DirectMessage {
|
|||
|
||||
|
||||
DirectMessageImpl(Cursor cursor, long currentId) {
|
||||
text = cursor.getString(cursor.getColumnIndexOrThrow(DatabaseAdapter.MessageTable.MESSAGE));
|
||||
time = cursor.getLong(cursor.getColumnIndexOrThrow(DatabaseAdapter.MessageTable.SINCE));
|
||||
id = cursor.getLong(cursor.getColumnIndexOrThrow(DatabaseAdapter.MessageTable.ID));
|
||||
sender = new UserImpl(cursor, DatabaseAdapter.UserTable.ALIAS_1 + ".", currentId);
|
||||
receiver = new UserImpl(cursor, DatabaseAdapter.UserTable.ALIAS_2 + ".", currentId);
|
||||
text = cursor.getString(cursor.getColumnIndexOrThrow(MessageTable.MESSAGE));
|
||||
time = cursor.getLong(cursor.getColumnIndexOrThrow(MessageTable.SINCE));
|
||||
id = cursor.getLong(cursor.getColumnIndexOrThrow(MessageTable.ID));
|
||||
media = cursor.getString(cursor.getColumnIndexOrThrow(MessageTable.MEDIA));
|
||||
sender = new UserImpl(cursor, UserTable.ALIAS_1 + ".", currentId);
|
||||
receiver = new UserImpl(cursor, UserTable.ALIAS_2 + ".", currentId);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -55,13 +55,13 @@ class TweetImpl implements Tweet {
|
|||
tweetId = cursor.getLong(cursor.getColumnIndexOrThrow(DatabaseAdapter.TweetTable.ID));
|
||||
replyName = cursor.getString(cursor.getColumnIndexOrThrow(DatabaseAdapter.TweetTable.REPLYNAME));
|
||||
replyID = cursor.getLong(cursor.getColumnIndexOrThrow(DatabaseAdapter.TweetTable.REPLYTWEET));
|
||||
myRetweetId = cursor.getLong(cursor.getColumnIndexOrThrow(DatabaseAdapter.TweetTable.RETWEETUSER));
|
||||
source = cursor.getString(cursor.getColumnIndexOrThrow(DatabaseAdapter.TweetTable.SOURCE));
|
||||
String links = cursor.getString(cursor.getColumnIndexOrThrow(DatabaseAdapter.TweetTable.MEDIA));
|
||||
locationName = cursor.getString(cursor.getColumnIndexOrThrow(DatabaseAdapter.TweetTable.PLACE));
|
||||
locationCoordinates = cursor.getString(cursor.getColumnIndexOrThrow(DatabaseAdapter.TweetTable.COORDINATE));
|
||||
replyUserId = cursor.getLong(cursor.getColumnIndexOrThrow(DatabaseAdapter.TweetTable.REPLYUSER));
|
||||
embeddedId = cursor.getLong(cursor.getColumnIndexOrThrow(DatabaseAdapter.TweetTable.EMBEDDED));
|
||||
myRetweetId = cursor.getLong(cursor.getColumnIndexOrThrow(DatabaseAdapter.TweetRegisterTable.RETWEETUSER));
|
||||
int tweetRegister = cursor.getInt(cursor.getColumnIndexOrThrow(DatabaseAdapter.TweetRegisterTable.REGISTER));
|
||||
favorited = (tweetRegister & FAV_MASK) != 0;
|
||||
retweeted = (tweetRegister & RTW_MASK) != 0;
|
||||
|
|
Loading…
Reference in New Issue