Update thread view after sent reply (closes #74)
This commit is contained in:
parent
f4109f38a8
commit
fce573f1ec
6 changed files with 60 additions and 4 deletions
|
@ -101,6 +101,7 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFrag
|
||||||
private static final int MEDIA_PICK_RESULT = 1;
|
private static final int MEDIA_PICK_RESULT = 1;
|
||||||
private static final int PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE = 1;
|
private static final int PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE = 1;
|
||||||
private static final int MEDIA_SIZE_UNKNOWN = -1;
|
private static final int MEDIA_SIZE_UNKNOWN = -1;
|
||||||
|
private static final int COMPOSE_SUCCESS = -1;
|
||||||
|
|
||||||
private String inReplyToId;
|
private String inReplyToId;
|
||||||
private EditText textEditor;
|
private EditText textEditor;
|
||||||
|
@ -816,6 +817,7 @@ public class ComposeActivity extends BaseActivity implements ComposeOptionsFrag
|
||||||
private void onSendSuccess() {
|
private void onSendSuccess() {
|
||||||
Snackbar bar = Snackbar.make(findViewById(R.id.activity_compose), getString(R.string.confirmation_send), Snackbar.LENGTH_SHORT);
|
Snackbar bar = Snackbar.make(findViewById(R.id.activity_compose), getString(R.string.confirmation_send), Snackbar.LENGTH_SHORT);
|
||||||
bar.show();
|
bar.show();
|
||||||
|
setResult(COMPOSE_SUCCESS);
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -66,6 +66,7 @@ import retrofit2.Response;
|
||||||
|
|
||||||
public class MainActivity extends BaseActivity {
|
public class MainActivity extends BaseActivity {
|
||||||
private static final String TAG = "MainActivity"; // logging tag and Volley request tag
|
private static final String TAG = "MainActivity"; // logging tag and Volley request tag
|
||||||
|
protected static int COMPOSE_RESULT = 1;
|
||||||
|
|
||||||
private String loggedInAccountId;
|
private String loggedInAccountId;
|
||||||
private String loggedInAccountUsername;
|
private String loggedInAccountUsername;
|
||||||
|
@ -99,7 +100,7 @@ public class MainActivity extends BaseActivity {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(View v) {
|
public void onClick(View v) {
|
||||||
Intent intent = new Intent(getApplicationContext(), ComposeActivity.class);
|
Intent intent = new Intent(getApplicationContext(), ComposeActivity.class);
|
||||||
startActivity(intent);
|
startActivityForResult(intent, COMPOSE_RESULT);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -474,6 +475,17 @@ public class MainActivity extends BaseActivity {
|
||||||
Log.e(TAG, "Failed to fetch user info. " + exception.getMessage());
|
Log.e(TAG, "Failed to fetch user info. " + exception.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
|
if (requestCode == COMPOSE_RESULT && resultCode == ComposeActivity.RESULT_OK) {
|
||||||
|
TimelinePagerAdapter adapter = (TimelinePagerAdapter) viewPager.getAdapter();
|
||||||
|
if (adapter.getCurrentFragment() instanceof SFragment) {
|
||||||
|
((SFragment) adapter.getCurrentFragment()).onSuccessfulStatus();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onBackPressed() {
|
public void onBackPressed() {
|
||||||
if(drawer != null && drawer.isDrawerOpen()) {
|
if(drawer != null && drawer.isDrawerOpen()) {
|
||||||
|
|
|
@ -44,9 +44,10 @@ import retrofit2.Callback;
|
||||||
* adapters. I feel like the profile pages and thread viewer, which I haven't made yet, will also
|
* adapters. I feel like the profile pages and thread viewer, which I haven't made yet, will also
|
||||||
* overlap functionality. So, I'm momentarily leaving it and hopefully working on those will clear
|
* overlap functionality. So, I'm momentarily leaving it and hopefully working on those will clear
|
||||||
* up what needs to be where. */
|
* up what needs to be where. */
|
||||||
public class SFragment extends BaseFragment {
|
public abstract class SFragment extends BaseFragment {
|
||||||
protected String loggedInAccountId;
|
protected String loggedInAccountId;
|
||||||
protected String loggedInUsername;
|
protected String loggedInUsername;
|
||||||
|
protected static int COMPOSE_RESULT = 1;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||||
|
@ -79,11 +80,23 @@ public class SFragment extends BaseFragment {
|
||||||
intent.putExtra("reply_visibility", replyVisibility);
|
intent.putExtra("reply_visibility", replyVisibility);
|
||||||
intent.putExtra("content_warning", contentWarning);
|
intent.putExtra("content_warning", contentWarning);
|
||||||
intent.putExtra("mentioned_usernames", mentionedUsernames.toArray(new String[0]));
|
intent.putExtra("mentioned_usernames", mentionedUsernames.toArray(new String[0]));
|
||||||
startActivity(intent);
|
startActivityForResult(intent, COMPOSE_RESULT);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void onSuccessfulStatus() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||||
|
if (requestCode == COMPOSE_RESULT && resultCode == ComposeActivity.RESULT_OK) {
|
||||||
|
onSuccessfulStatus();
|
||||||
|
} else {
|
||||||
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void reblog(final Status status, final boolean reblog,
|
protected void reblog(final Status status, final boolean reblog,
|
||||||
final RecyclerView.Adapter adapter, final int position) {
|
final RecyclerView.Adapter adapter, final int position) {
|
||||||
String id = status.getActionableId();
|
String id = status.getActionableId();
|
||||||
|
|
||||||
Callback<Status> cb = new Callback<Status>() {
|
Callback<Status> cb = new Callback<Status>() {
|
||||||
|
|
|
@ -299,6 +299,14 @@ public class TimelineFragment extends SFragment implements
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSuccessfulStatus() {
|
||||||
|
if (kind == Kind.HOME || kind == Kind.PUBLIC_FEDERATED || kind == Kind.PUBLIC_LOCAL) {
|
||||||
|
onRefresh();
|
||||||
|
}
|
||||||
|
super.onSuccessfulStatus();
|
||||||
|
}
|
||||||
|
|
||||||
public void onReply(int position) {
|
public void onReply(int position) {
|
||||||
super.reply(adapter.getItem(position));
|
super.reply(adapter.getItem(position));
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,12 +18,27 @@ package com.keylesspalace.tusky;
|
||||||
import android.support.v4.app.Fragment;
|
import android.support.v4.app.Fragment;
|
||||||
import android.support.v4.app.FragmentManager;
|
import android.support.v4.app.FragmentManager;
|
||||||
import android.support.v4.app.FragmentPagerAdapter;
|
import android.support.v4.app.FragmentPagerAdapter;
|
||||||
|
import android.view.ViewGroup;
|
||||||
|
|
||||||
class TimelinePagerAdapter extends FragmentPagerAdapter {
|
class TimelinePagerAdapter extends FragmentPagerAdapter {
|
||||||
|
private Fragment currentFragment;
|
||||||
|
|
||||||
TimelinePagerAdapter(FragmentManager manager) {
|
TimelinePagerAdapter(FragmentManager manager) {
|
||||||
super(manager);
|
super(manager);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Fragment getCurrentFragment() {
|
||||||
|
return currentFragment;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setPrimaryItem(ViewGroup container, int position, Object object) {
|
||||||
|
if (getCurrentFragment() != object) {
|
||||||
|
currentFragment = ((Fragment) object);
|
||||||
|
}
|
||||||
|
super.setPrimaryItem(container, position, object);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Fragment getItem(int i) {
|
public Fragment getItem(int i) {
|
||||||
switch (i) {
|
switch (i) {
|
||||||
|
|
|
@ -155,6 +155,12 @@ public class ViewThreadFragment extends SFragment implements
|
||||||
sendThreadRequest(thisThreadsStatusId);
|
sendThreadRequest(thisThreadsStatusId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onSuccessfulStatus() {
|
||||||
|
onRefresh();
|
||||||
|
super.onSuccessfulStatus();
|
||||||
|
}
|
||||||
|
|
||||||
public void onReply(int position) {
|
public void onReply(int position) {
|
||||||
super.reply(adapter.getItem(position));
|
super.reply(adapter.getItem(position));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue