diff --git a/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java b/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java
index 45f344961..d40b4ec2b 100644
--- a/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java
+++ b/mastodon/src/main/java/org/joinmastodon/android/fragments/ComposeFragment.java
@@ -41,6 +41,7 @@ import android.view.WindowManager;
import android.view.animation.LinearInterpolator;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
+import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.ImageButton;
@@ -152,6 +153,8 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
private ReorderableLinearLayout pollOptionsView;
private View pollWrap;
private View addPollOptionBtn;
+ private View pollAllowMultipleItem;
+ private CheckBox pollAllowMultipleCheckbox;
private View sensitiveItem;
private TextView pollDurationView;
@@ -297,6 +300,9 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
pollOptionsView=view.findViewById(R.id.poll_options);
pollWrap=view.findViewById(R.id.poll_wrap);
addPollOptionBtn=view.findViewById(R.id.add_poll_option);
+ pollAllowMultipleItem=view.findViewById(R.id.poll_allow_multiple);
+ pollAllowMultipleCheckbox=view.findViewById(R.id.poll_allow_multiple_checkbox);
+ pollAllowMultipleItem.setOnClickListener(v->this.togglePollAllowMultiple());
addPollOptionBtn.setOnClickListener(v->{
createDraftPollOption().edit.requestFocus();
@@ -311,6 +317,7 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
pollBtn.setSelected(true);
mediaBtn.setEnabled(false);
pollWrap.setVisibility(View.VISIBLE);
+ updatePollAllowMultiple(savedInstanceState.getBoolean("pollAllowMultiple", false));
for(String oldText:savedInstanceState.getStringArrayList("pollOptions")){
DraftPollOption opt=createDraftPollOption();
opt.edit.setText(oldText);
@@ -321,6 +328,7 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
pollBtn.setSelected(true);
mediaBtn.setEnabled(false);
pollWrap.setVisibility(View.VISIBLE);
+ updatePollAllowMultiple(editingStatus.poll.multiple);
for(Poll.Option eopt:editingStatus.poll.options){
DraftPollOption opt=createDraftPollOption();
opt.edit.setText(eopt.title);
@@ -391,6 +399,7 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
outState.putStringArrayList("pollOptions", opts);
outState.putInt("pollDuration", pollDuration);
outState.putString("pollDurationStr", pollDurationStr);
+ outState.putBoolean("pollAllowMultiple", pollAllowMultipleItem.isSelected());
}
outState.putBoolean("sensitive", sensitive);
outState.putBoolean("hasSpoiler", hasSpoiler);
@@ -527,15 +536,14 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
ignoreSelectionChanges=true;
mainEditText.setSelection(mainEditText.length());
ignoreSelectionChanges=false;
- if(!TextUtils.isEmpty(replyTo.spoilerText)){
+ if(!TextUtils.isEmpty(replyTo.spoilerText) && AccountSessionManager.getInstance().isSelf(accountID, replyTo.account)){
hasSpoiler=true;
spoilerEdit.setVisibility(View.VISIBLE);
spoilerEdit.setText(replyTo.spoilerText);
spoilerBtn.setSelected(true);
}
}
- }else if (editingStatus==null || editingStatus.inReplyToId==null){
- // TODO: remove workaround after https://github.com/mastodon/mastodon-android/issues/341 gets fixed
+ }else{
replyText.setVisibility(View.GONE);
}
if(savedInstanceState==null){
@@ -1208,6 +1216,11 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
option.view=LayoutInflater.from(getActivity()).inflate(R.layout.compose_poll_option, pollOptionsView, false);
option.edit=option.view.findViewById(R.id.edit);
option.dragger=option.view.findViewById(R.id.dragger_thingy);
+ ImageView icon = option.view.findViewById(R.id.icon);
+ icon.setImageDrawable(getContext().getDrawable(pollAllowMultipleItem.isSelected() ?
+ R.drawable.ic_poll_checkbox_regular_selector :
+ R.drawable.ic_poll_option_button
+ ));
option.dragger.setOnLongClickListener(v->{
pollOptionsView.startDragging(option.view);
@@ -1385,6 +1398,27 @@ public class ComposeFragment extends MastodonToolbarFragment implements OnBackPr
});
}
+ private void togglePollAllowMultiple() {
+ updatePollAllowMultiple(!pollAllowMultipleItem.isSelected());
+ }
+
+ private void updatePollAllowMultiple(boolean multiple){
+ pollAllowMultipleItem.setSelected(multiple);
+ pollAllowMultipleCheckbox.setChecked(multiple);
+ ImageView btn = addPollOptionBtn.findViewById(R.id.add_poll_option_icon);
+ btn.setImageDrawable(getContext().getDrawable(multiple ?
+ R.drawable.ic_fluent_add_square_24_regular :
+ R.drawable.ic_fluent_add_circle_24_regular
+ ));
+ for (DraftPollOption opt:pollOptions) {
+ ImageView icon = opt.view.findViewById(R.id.icon);
+ icon.setImageDrawable(getContext().getDrawable(multiple ?
+ R.drawable.ic_poll_checkbox_regular_selector :
+ R.drawable.ic_poll_option_button
+ ));
+ }
+ }
+
@Override
public void onSelectionChanged(int start, int end){
if(ignoreSelectionChanges)
diff --git a/mastodon/src/main/res/drawable/ic_fluent_add_square_24_regular.xml b/mastodon/src/main/res/drawable/ic_fluent_add_square_24_regular.xml
new file mode 100644
index 000000000..0aa232d6c
--- /dev/null
+++ b/mastodon/src/main/res/drawable/ic_fluent_add_square_24_regular.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/mastodon/src/main/res/layout/compose_poll_option.xml b/mastodon/src/main/res/layout/compose_poll_option.xml
index d806da362..d93a68014 100644
--- a/mastodon/src/main/res/layout/compose_poll_option.xml
+++ b/mastodon/src/main/res/layout/compose_poll_option.xml
@@ -15,6 +15,7 @@
android:outlineProvider="background"
android:elevation="2dp">
+
+
+
+
+
+
+
Welcome Back
Log in with the server where you created your account.
Server URL
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ Allow multiple choices
+
\ No newline at end of file