Save reply info in draft, refactor (#449)
* Save reply info in draft, refactor * Handle replying to deleted status
This commit is contained in:
parent
a859ef0432
commit
2575b16dad
15 changed files with 575 additions and 390 deletions
|
|
@ -34,11 +34,12 @@ import android.widget.RadioButton;
|
|||
import android.widget.RadioGroup;
|
||||
|
||||
import com.keylesspalace.tusky.R;
|
||||
import com.keylesspalace.tusky.entity.Status;
|
||||
import com.keylesspalace.tusky.util.ThemeUtils;
|
||||
|
||||
public class ComposeOptionsFragment extends BottomSheetDialogFragment {
|
||||
public interface Listener {
|
||||
void onVisibilityChanged(String visibility);
|
||||
void onVisibilityChanged(Status.Visibility visibility);
|
||||
void onContentWarningChanged(boolean hideText);
|
||||
}
|
||||
|
||||
|
|
@ -46,10 +47,10 @@ public class ComposeOptionsFragment extends BottomSheetDialogFragment {
|
|||
private CheckBox hideText;
|
||||
private Listener listener;
|
||||
|
||||
public static ComposeOptionsFragment newInstance(String visibility, boolean hideText) {
|
||||
public static ComposeOptionsFragment newInstance(Status.Visibility visibility, boolean hideText) {
|
||||
Bundle arguments = new Bundle();
|
||||
ComposeOptionsFragment fragment = new ComposeOptionsFragment();
|
||||
arguments.putString("visibility", visibility);
|
||||
arguments.putInt("visibilityNum", visibility.getNum());
|
||||
arguments.putBoolean("hideText", hideText);
|
||||
fragment.setArguments(arguments);
|
||||
return fragment;
|
||||
|
|
@ -68,18 +69,18 @@ public class ComposeOptionsFragment extends BottomSheetDialogFragment {
|
|||
View rootView = inflater.inflate(R.layout.fragment_compose_options, container, false);
|
||||
|
||||
Bundle arguments = getArguments();
|
||||
String statusVisibility = arguments.getString("visibility");
|
||||
Status.Visibility visibility = Status.Visibility.byNum(
|
||||
arguments.getInt("visibilityNum", 0)
|
||||
);
|
||||
boolean statusHideText = arguments.getBoolean("hideText");
|
||||
|
||||
radio = rootView.findViewById(R.id.radio_visibility);
|
||||
int radioCheckedId = R.id.radio_public;
|
||||
if (statusVisibility != null) {
|
||||
switch (statusVisibility) {
|
||||
case "public": radioCheckedId = R.id.radio_public; break;
|
||||
case "private": radioCheckedId = R.id.radio_private; break;
|
||||
case "unlisted": radioCheckedId = R.id.radio_unlisted; break;
|
||||
case "direct": radioCheckedId = R.id.radio_direct; break;
|
||||
}
|
||||
switch (visibility) {
|
||||
case PUBLIC: radioCheckedId = R.id.radio_public; break;
|
||||
case PRIVATE: radioCheckedId = R.id.radio_private; break;
|
||||
case UNLISTED: radioCheckedId = R.id.radio_unlisted; break;
|
||||
case DIRECT: radioCheckedId = R.id.radio_direct; break;
|
||||
}
|
||||
radio.check(radioCheckedId);
|
||||
|
||||
|
|
@ -104,23 +105,23 @@ public class ComposeOptionsFragment extends BottomSheetDialogFragment {
|
|||
radio.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
|
||||
@Override
|
||||
public void onCheckedChanged(RadioGroup group, int checkedId) {
|
||||
String visibility;
|
||||
Status.Visibility visibility;
|
||||
switch (checkedId) {
|
||||
default:
|
||||
case R.id.radio_public: {
|
||||
visibility = "public";
|
||||
visibility = Status.Visibility.PUBLIC;
|
||||
break;
|
||||
}
|
||||
case R.id.radio_unlisted: {
|
||||
visibility = "unlisted";
|
||||
visibility = Status.Visibility.UNLISTED;
|
||||
break;
|
||||
}
|
||||
case R.id.radio_private: {
|
||||
visibility = "private";
|
||||
visibility = Status.Visibility.PRIVATE;
|
||||
break;
|
||||
}
|
||||
case R.id.radio_direct: {
|
||||
visibility = "direct";
|
||||
visibility = Status.Visibility.DIRECT;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ public abstract class SFragment extends BaseFragment implements AdapterItemRemov
|
|||
protected void reply(Status status) {
|
||||
String inReplyToId = status.getActionableId();
|
||||
Status actionableStatus = status.getActionableStatus();
|
||||
String replyVisibility = actionableStatus.getVisibility().toString().toLowerCase();
|
||||
Status.Visibility replyVisibility = actionableStatus.getVisibility();
|
||||
String contentWarning = actionableStatus.spoilerText;
|
||||
Status.Mention[] mentions = actionableStatus.mentions;
|
||||
List<String> mentionedUsernames = new ArrayList<>();
|
||||
|
|
@ -107,7 +107,7 @@ public abstract class SFragment extends BaseFragment implements AdapterItemRemov
|
|||
.replyVisibility(replyVisibility)
|
||||
.contentWarning(contentWarning)
|
||||
.mentionedUsernames(mentionedUsernames)
|
||||
.repyingStatusAuthor(actionableStatus.account)
|
||||
.repyingStatusAuthor(actionableStatus.account.localUsername)
|
||||
.replyingStatusContent(actionableStatus.content.toString())
|
||||
.build(getContext());
|
||||
startActivityForResult(intent, COMPOSE_RESULT);
|
||||
|
|
|
|||
|
|
@ -320,9 +320,9 @@ public class ViewThreadFragment extends SFragment implements
|
|||
call.enqueue(new Callback<StatusContext>() {
|
||||
@Override
|
||||
public void onResponse(@NonNull Call<StatusContext> call, @NonNull Response<StatusContext> response) {
|
||||
if (response.isSuccessful()) {
|
||||
StatusContext context = response.body();
|
||||
if (response.isSuccessful() && context != null) {
|
||||
swipeRefreshLayout.setRefreshing(false);
|
||||
StatusContext context = response.body();
|
||||
setContext(context.ancestors, context.descendants);
|
||||
} else {
|
||||
onThreadRequestFailure(id);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue