bug fix
This commit is contained in:
parent
5e1bc04966
commit
cc8c621a9b
@ -290,13 +290,18 @@ public class StatusLoader extends AsyncTask<Long, Tweet, Void> {
|
|||||||
if (ui.get() == null) return;
|
if (ui.get() == null) return;
|
||||||
|
|
||||||
if (!failure) {
|
if (!failure) {
|
||||||
if (mode == Mode.DELETE) {
|
switch (mode) {
|
||||||
|
case FAVORITE:
|
||||||
|
ui.get().setResult(RETURN_TWEET_CHANGED);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case DELETE:
|
||||||
Toast.makeText(ui.get(), R.string.tweet_removed, Toast.LENGTH_SHORT).show();
|
Toast.makeText(ui.get(), R.string.tweet_removed, Toast.LENGTH_SHORT).show();
|
||||||
ui.get().setResult(RETURN_TWEET_CHANGED);
|
ui.get().setResult(RETURN_TWEET_CHANGED);
|
||||||
ui.get().finish();
|
ui.get().finish();
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else if (err != null) {
|
||||||
if (err != null) {
|
|
||||||
int rCode = err.getErrorCode();
|
int rCode = err.getErrorCode();
|
||||||
if (rCode == 144 || rCode == 34 || rCode == 63)
|
if (rCode == 144 || rCode == 34 || rCode == 63)
|
||||||
ui.get().setResult(RETURN_TWEET_CHANGED);
|
ui.get().setResult(RETURN_TWEET_CHANGED);
|
||||||
@ -305,5 +310,4 @@ public class StatusLoader extends AsyncTask<Long, Tweet, Void> {
|
|||||||
ui.get().finish();
|
ui.get().finish();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
}
|
@ -370,20 +370,24 @@ public class DatabaseAdapter {
|
|||||||
userColumn.put("following", user.getFollowing());
|
userColumn.put("following", user.getFollowing());
|
||||||
userColumn.put("follower", user.getFollower());
|
userColumn.put("follower", user.getFollower());
|
||||||
|
|
||||||
db.update("tweet", statColumn, "tweet.tweetID=" + tweet.getId(), null);
|
final String[] tweetIdArg = {Long.toString(tweet.getId())};
|
||||||
db.update("user", userColumn, "user.userID=" + user.getId(), null);
|
final String[] userIdArg = {Long.toString(user.getId())};
|
||||||
|
db.update("tweet", statColumn, "tweet.tweetID=?", tweetIdArg);
|
||||||
|
db.update("user", userColumn, "user.userID=?", userIdArg);
|
||||||
commit(db);
|
commit(db);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* remove status
|
* remove status
|
||||||
*
|
*
|
||||||
* @param id Tweet ID
|
* @param tweetId Tweet ID
|
||||||
*/
|
*/
|
||||||
public void removeStatus(long id) {
|
public void removeStatus(long tweetId) {
|
||||||
SQLiteDatabase db = getDbWrite();
|
SQLiteDatabase db = getDbWrite();
|
||||||
db.delete("tweet", "tweetID=" + id, null);
|
final String[] delTwt = {Long.toString(tweetId)};
|
||||||
db.delete("favorit", "tweetID=" + id + " AND ownerID=" + homeId, null);
|
final String[] delFav = {Long.toString(tweetId), Long.toString(homeId)};
|
||||||
|
db.delete("tweet", "tweetID=?", delTwt);
|
||||||
|
db.delete("favorit", "tweetID=? AND ownerID=?", delFav);
|
||||||
commit(db);
|
commit(db);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -396,8 +400,8 @@ public class DatabaseAdapter {
|
|||||||
Tweet tweet = getStatus(tweetId);
|
Tweet tweet = getStatus(tweetId);
|
||||||
if (tweet != null) {
|
if (tweet != null) {
|
||||||
SQLiteDatabase db = getDbWrite();
|
SQLiteDatabase db = getDbWrite();
|
||||||
long retweetedId = tweet.getMyRetweetId();
|
final String[] args = {Long.toString(tweet.getMyRetweetId())};
|
||||||
db.delete("tweet", "tweetID=" + retweetedId, null);
|
db.delete("tweet", "tweetID=?", args);
|
||||||
commit(db);
|
commit(db);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -409,12 +413,14 @@ public class DatabaseAdapter {
|
|||||||
*/
|
*/
|
||||||
public void removeFavorite(long tweetId) {
|
public void removeFavorite(long tweetId) {
|
||||||
SQLiteDatabase db = getDbWrite();
|
SQLiteDatabase db = getDbWrite();
|
||||||
|
final String[] delArgs = {Long.toString(tweetId), Long.toString(homeId)};
|
||||||
|
final String[] updateArgs = {Long.toString(tweetId)};
|
||||||
int register = getTweetStatus(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);
|
||||||
db.delete("favorit", "tweetID=" + tweetId + " AND ownerID=" + homeId, null);
|
db.delete("favorit", "tweetID=? AND ownerID=?", delArgs);
|
||||||
db.update("tweet", status, "tweet.tweetID=" + tweetId, null);
|
db.update("tweet", status, "tweet.tweetID=?", updateArgs);
|
||||||
commit(db);
|
commit(db);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -425,7 +431,8 @@ public class DatabaseAdapter {
|
|||||||
*/
|
*/
|
||||||
public void deleteDm(long id) {
|
public void deleteDm(long id) {
|
||||||
SQLiteDatabase db = getDbWrite();
|
SQLiteDatabase db = getDbWrite();
|
||||||
db.delete("message", "messageID=" + id, null);
|
final String[] messageId = {Long.toString(id)};
|
||||||
|
db.delete("message", "messageID=?", messageId);
|
||||||
commit(db);
|
commit(db);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ public class TweetListFragment extends Fragment implements OnRefreshListener, On
|
|||||||
public void onStart() {
|
public void onStart() {
|
||||||
super.onStart();
|
super.onStart();
|
||||||
if (tweetTask == null) {
|
if (tweetTask == null) {
|
||||||
load();
|
load(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -103,7 +103,7 @@ public class TweetListFragment extends Fragment implements OnRefreshListener, On
|
|||||||
public void onResume() {
|
public void onResume() {
|
||||||
super.onResume();
|
super.onResume();
|
||||||
if (tweetTask == null) {
|
if (tweetTask == null) {
|
||||||
load();
|
load(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -126,7 +126,7 @@ public class TweetListFragment extends Fragment implements OnRefreshListener, On
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onRefresh() {
|
public void onRefresh() {
|
||||||
load();
|
load(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -169,7 +169,7 @@ public class TweetListFragment extends Fragment implements OnRefreshListener, On
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void load() {
|
private void load(boolean loadAnswer) {
|
||||||
switch (mode) {
|
switch (mode) {
|
||||||
case HOME:
|
case HOME:
|
||||||
tweetTask = new TweetLoader(root, Mode.TL_HOME);
|
tweetTask = new TweetLoader(root, Mode.TL_HOME);
|
||||||
@ -192,8 +192,10 @@ public class TweetListFragment extends Fragment implements OnRefreshListener, On
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case TWEET_ANSR:
|
case TWEET_ANSR:
|
||||||
|
if (loadAnswer) {
|
||||||
tweetTask = new TweetLoader(root, Mode.TWEET_ANS);
|
tweetTask = new TweetLoader(root, Mode.TWEET_ANS);
|
||||||
tweetTask.execute(id, search);
|
tweetTask.execute(id, search);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SEARCH:
|
case SEARCH:
|
||||||
|
@ -18,6 +18,8 @@ import androidx.appcompat.app.AppCompatActivity;
|
|||||||
|
|
||||||
import org.nuclearfog.twidda.R;
|
import org.nuclearfog.twidda.R;
|
||||||
import org.nuclearfog.twidda.backend.StatusUploader;
|
import org.nuclearfog.twidda.backend.StatusUploader;
|
||||||
|
import org.nuclearfog.twidda.backend.helper.FilenameTools;
|
||||||
|
import org.nuclearfog.twidda.backend.helper.FilenameTools.FileType;
|
||||||
import org.nuclearfog.twidda.backend.items.TweetHolder;
|
import org.nuclearfog.twidda.backend.items.TweetHolder;
|
||||||
import org.nuclearfog.twidda.database.GlobalSettings;
|
import org.nuclearfog.twidda.database.GlobalSettings;
|
||||||
|
|
||||||
@ -54,8 +56,8 @@ public class TweetPopup extends AppCompatActivity implements OnClickListener {
|
|||||||
|
|
||||||
private static final String[] READ_STORAGE = {READ_EXTERNAL_STORAGE};
|
private static final String[] READ_STORAGE = {READ_EXTERNAL_STORAGE};
|
||||||
private static final String[] GET_MEDIA = {MediaStore.Images.Media.DATA};
|
private static final String[] GET_MEDIA = {MediaStore.Images.Media.DATA};
|
||||||
private static final String TYPE_IMAGE = "image/*.jpeg image/*.jpg image/*.png ";
|
private static final String TYPE_IMAGE = "image/*";
|
||||||
private static final String TYPE_VIDEO = "video/*.mp4 video/*.3gp video/*.gif ";
|
private static final String TYPE_VIDEO = "video/*";
|
||||||
private static final int PICK_MEDIA = 3;
|
private static final int PICK_MEDIA = 3;
|
||||||
private static final int CHECK_PERM = 4;
|
private static final int CHECK_PERM = 4;
|
||||||
private static final int MAX_IMAGES = 4;
|
private static final int MAX_IMAGES = 4;
|
||||||
@ -123,16 +125,10 @@ public class TweetPopup extends AppCompatActivity implements OnClickListener {
|
|||||||
if (cursor != null && cursor.moveToFirst()) {
|
if (cursor != null && cursor.moveToFirst()) {
|
||||||
int index = cursor.getColumnIndex(GET_MEDIA[0]);
|
int index = cursor.getColumnIndex(GET_MEDIA[0]);
|
||||||
String path = cursor.getString(index);
|
String path = cursor.getString(index);
|
||||||
String ext = "";
|
FileType type = FilenameTools.getFileType(path);
|
||||||
int pos = path.lastIndexOf(".") + 1;
|
|
||||||
if (pos > 0 && pos < path.length()) {
|
switch (type) {
|
||||||
ext = path.substring(pos);
|
case IMAGE:
|
||||||
ext = ext.toLowerCase();
|
|
||||||
}
|
|
||||||
switch (ext) {
|
|
||||||
case "png":
|
|
||||||
case "jpg":
|
|
||||||
case "jpeg":
|
|
||||||
if (mode == Mode.NONE)
|
if (mode == Mode.NONE)
|
||||||
mode = Mode.IMAGE;
|
mode = Mode.IMAGE;
|
||||||
if (mediaPath.size() < MAX_IMAGES && mode == Mode.IMAGE) {
|
if (mediaPath.size() < MAX_IMAGES && mode == Mode.IMAGE) {
|
||||||
@ -145,7 +141,7 @@ public class TweetPopup extends AppCompatActivity implements OnClickListener {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "gif":
|
case ANGIF:
|
||||||
if (mode == Mode.NONE)
|
if (mode == Mode.NONE)
|
||||||
mode = Mode.GIF;
|
mode = Mode.GIF;
|
||||||
if (mode == Mode.GIF) {
|
if (mode == Mode.GIF) {
|
||||||
@ -155,8 +151,7 @@ public class TweetPopup extends AppCompatActivity implements OnClickListener {
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case "mp4":
|
case VIDEO:
|
||||||
case "3gp":
|
|
||||||
if (mode == Mode.NONE)
|
if (mode == Mode.NONE)
|
||||||
mode = Mode.VIDEO;
|
mode = Mode.VIDEO;
|
||||||
if (mode == Mode.VIDEO) {
|
if (mode == Mode.VIDEO) {
|
||||||
@ -281,7 +276,8 @@ public class TweetPopup extends AppCompatActivity implements OnClickListener {
|
|||||||
mediaIntent.setDataAndType(EXTERNAL_CONTENT_URI, TYPE_IMAGE + TYPE_VIDEO);
|
mediaIntent.setDataAndType(EXTERNAL_CONTENT_URI, TYPE_IMAGE + TYPE_VIDEO);
|
||||||
startActivityForResult(mediaIntent, PICK_MEDIA);
|
startActivityForResult(mediaIntent, PICK_MEDIA);
|
||||||
} else if (mode == Mode.IMAGE) {
|
} else if (mode == Mode.IMAGE) {
|
||||||
Intent imageIntent = new Intent(ACTION_PICK, EXTERNAL_CONTENT_URI);
|
Intent imageIntent = new Intent(ACTION_PICK);
|
||||||
|
imageIntent.setDataAndType(EXTERNAL_CONTENT_URI, TYPE_IMAGE);
|
||||||
startActivityForResult(imageIntent, PICK_MEDIA);
|
startActivityForResult(imageIntent, PICK_MEDIA);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,8 +2,7 @@
|
|||||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent">
|
||||||
android:layout_margin="@dimen/preview_margin">
|
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
android:id="@+id/image_window"
|
android:id="@+id/image_window"
|
||||||
@ -30,7 +29,8 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="bottom"
|
android:layout_gravity="bottom"
|
||||||
android:scrollbars="horizontal" />
|
android:scrollbars="horizontal"
|
||||||
|
android:layout_margin="@dimen/preview_margin" />
|
||||||
|
|
||||||
</FrameLayout>
|
</FrameLayout>
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user