direct message bug fix
This commit is contained in:
parent
9533975d78
commit
ffe038a464
|
@ -21,8 +21,9 @@ import twitter4j.TwitterException;
|
|||
public class MessageLoader extends AsyncTask<Long, Void, Void> {
|
||||
|
||||
public enum Mode {
|
||||
LOAD,
|
||||
DELETE
|
||||
GET,
|
||||
LDR,
|
||||
DEL
|
||||
}
|
||||
private final Mode mode;
|
||||
private boolean failure = false;
|
||||
|
@ -57,36 +58,31 @@ public class MessageLoader extends AsyncTask<Long, Void, Void> {
|
|||
|
||||
@Override
|
||||
protected Void doInBackground(Long... param) {
|
||||
long messageId = -1;
|
||||
try {
|
||||
switch(mode) {
|
||||
case LOAD:
|
||||
if (mAdapter.getItemCount() > 0) {
|
||||
message = twitter.getMessages();
|
||||
mData.storeMessage(message);
|
||||
message = mData.getMessages();
|
||||
} else {
|
||||
message = mData.getMessages();
|
||||
if (message.isEmpty()) {
|
||||
message = twitter.getMessages();
|
||||
mData.storeMessage(message);
|
||||
}
|
||||
}
|
||||
case GET:
|
||||
message = twitter.getMessages();
|
||||
mData.storeMessage(message);
|
||||
break;
|
||||
|
||||
case DELETE:
|
||||
long messageId = param[0];
|
||||
case DEL:
|
||||
messageId = param[0];
|
||||
twitter.deleteMessage(messageId);
|
||||
mData.deleteDm(messageId);
|
||||
message = mData.getMessages();
|
||||
break;
|
||||
}
|
||||
} catch (TwitterException err) {
|
||||
if (err.getErrorCode() == 34)
|
||||
mData.deleteDm(messageId);
|
||||
this.err = err;
|
||||
failure = true;
|
||||
} catch (Exception err) {
|
||||
if(err.getMessage() != null)
|
||||
Log.e("Direct Message", err.getMessage());
|
||||
failure = true;
|
||||
} finally {
|
||||
message = mData.getMessages();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
@ -99,11 +95,11 @@ public class MessageLoader extends AsyncTask<Long, Void, Void> {
|
|||
SwipeRefreshLayout mRefresh = ui.get().findViewById(R.id.dm_reload);
|
||||
mRefresh.setRefreshing(false);
|
||||
|
||||
if (!failure) {
|
||||
mAdapter.setData(message);
|
||||
mAdapter.notifyDataSetChanged();
|
||||
} else {
|
||||
if (err != null)
|
||||
mAdapter.setData(message);
|
||||
mAdapter.notifyDataSetChanged();
|
||||
|
||||
if (failure) {
|
||||
if (err != null && err.getErrorCode() != 34)
|
||||
ErrorHandler.printError(ui.get(), err);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,8 +22,9 @@ import org.nuclearfog.twidda.backend.items.Message;
|
|||
import org.nuclearfog.twidda.database.GlobalSettings;
|
||||
|
||||
import static android.os.AsyncTask.Status.RUNNING;
|
||||
import static org.nuclearfog.twidda.backend.MessageLoader.Mode.DELETE;
|
||||
import static org.nuclearfog.twidda.backend.MessageLoader.Mode.LOAD;
|
||||
import static org.nuclearfog.twidda.backend.MessageLoader.Mode.DEL;
|
||||
import static org.nuclearfog.twidda.backend.MessageLoader.Mode.GET;
|
||||
import static org.nuclearfog.twidda.backend.MessageLoader.Mode.LDR;
|
||||
|
||||
/**
|
||||
* Direct Message page
|
||||
|
@ -70,7 +71,7 @@ public class DirectMessage extends AppCompatActivity implements OnRefreshListene
|
|||
mAdapter.setColor(settings.getFontColor(), settings.getHighlightColor());
|
||||
mAdapter.setImageLoad(settings.getImageLoad());
|
||||
dmList.setAdapter(mAdapter);
|
||||
mLoader = new MessageLoader(this, LOAD);
|
||||
mLoader = new MessageLoader(this, LDR);
|
||||
mLoader.execute();
|
||||
}
|
||||
}
|
||||
|
@ -108,7 +109,7 @@ public class DirectMessage extends AppCompatActivity implements OnRefreshListene
|
|||
|
||||
@Override
|
||||
public void onAnswer(int position) {
|
||||
if (mAdapter != null && !messageRefresh.isRefreshing()) {
|
||||
if (!messageRefresh.isRefreshing()) {
|
||||
Message message = mAdapter.getData(position);
|
||||
Intent sendDm = new Intent(this, MessagePopup.class);
|
||||
sendDm.putExtra("username", message.getSender().getScreenname());
|
||||
|
@ -119,7 +120,7 @@ public class DirectMessage extends AppCompatActivity implements OnRefreshListene
|
|||
|
||||
@Override
|
||||
public void onDelete(int position) {
|
||||
if (mAdapter != null && !messageRefresh.isRefreshing()) {
|
||||
if (!messageRefresh.isRefreshing()) {
|
||||
Message message = mAdapter.getData(position);
|
||||
final long messageId = message.getId();
|
||||
new Builder(this).setMessage(R.string.confirm_delete_dm)
|
||||
|
@ -127,7 +128,7 @@ public class DirectMessage extends AppCompatActivity implements OnRefreshListene
|
|||
.setPositiveButton(R.string.yes_confirm, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
mLoader = new MessageLoader(DirectMessage.this, DELETE);
|
||||
mLoader = new MessageLoader(DirectMessage.this, DEL);
|
||||
mLoader.execute(messageId);
|
||||
}
|
||||
}).show();
|
||||
|
@ -137,7 +138,7 @@ public class DirectMessage extends AppCompatActivity implements OnRefreshListene
|
|||
|
||||
@Override
|
||||
public void onProfileClick(int index) {
|
||||
if (mAdapter != null && !messageRefresh.isRefreshing()) {
|
||||
if (!messageRefresh.isRefreshing()) {
|
||||
Message message = mAdapter.getData(index);
|
||||
long userId = message.getSender().getId();
|
||||
String username = message.getSender().getScreenname();
|
||||
|
@ -151,15 +152,17 @@ public class DirectMessage extends AppCompatActivity implements OnRefreshListene
|
|||
|
||||
@Override
|
||||
public void onClick(String tag) {
|
||||
Intent intent = new Intent(this, SearchPage.class);
|
||||
intent.putExtra("search", tag);
|
||||
startActivity(intent);
|
||||
if (!messageRefresh.isRefreshing()) {
|
||||
Intent intent = new Intent(this, SearchPage.class);
|
||||
intent.putExtra("search", tag);
|
||||
startActivity(intent);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onRefresh() {
|
||||
mLoader = new MessageLoader(this, LOAD);
|
||||
mLoader = new MessageLoader(this, GET);
|
||||
mLoader.execute();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue