Loading app/src/main/java/app/fedilab/android/mastodon/activities/MastodonListActivity.java +28 −2 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.view.Menu; import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; import android.widget.ArrayAdapter; import androidx.activity.OnBackPressedCallback; import androidx.annotation.NonNull; Loading Loading @@ -391,13 +392,22 @@ public class MastodonListActivity extends BaseBarActivity implements MastodonLis PopupAddListBinding popupAddListBinding = PopupAddListBinding.inflate(getLayoutInflater()); dialogBuilder.setView(popupAddListBinding.getRoot()); popupAddListBinding.addList.setFilters(new InputFilter[]{new InputFilter.LengthFilter(255)}); String[] repliesPolicies = {getString(R.string.list_replies_policy_followed), getString(R.string.list_replies_policy_list), getString(R.string.list_replies_policy_none)}; ArrayAdapter<String> policiesAdapter = new ArrayAdapter<>(MastodonListActivity.this, android.R.layout.simple_spinner_dropdown_item, repliesPolicies); popupAddListBinding.repliesPolicySpinner.setAdapter(policiesAdapter); if (isMisskey) { popupAddListBinding.repliesPolicyLabel.setVisibility(View.GONE); popupAddListBinding.repliesPolicySpinner.setVisibility(View.GONE); } dialogBuilder.setPositiveButton(R.string.validate, (dialog, id) -> { if (popupAddListBinding.addList.getText() != null && popupAddListBinding.addList.getText().toString().trim().length() > 0) { LiveData<MastodonList> createLiveData; String[] policyValues = {"followed", "list", "none"}; String selectedPolicy = policyValues[popupAddListBinding.repliesPolicySpinner.getSelectedItemPosition()]; if (isMisskey) { createLiveData = misskeyTimelinesVM.createList(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, popupAddListBinding.addList.getText().toString().trim()); } else { createLiveData = timelinesVM.createList(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, popupAddListBinding.addList.getText().toString().trim(), null); createLiveData = timelinesVM.createList(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, popupAddListBinding.addList.getText().toString().trim(), selectedPolicy); } createLiveData.observe(MastodonListActivity.this, newMastodonList -> { if (mastodonListList == null) { Loading Loading @@ -443,13 +453,29 @@ public class MastodonListActivity extends BaseBarActivity implements MastodonLis popupAddListBinding.addList.setFilters(new InputFilter[]{new InputFilter.LengthFilter(255)}); popupAddListBinding.addList.setText(mastodonList.title); popupAddListBinding.addList.setSelection(Objects.requireNonNull(popupAddListBinding.addList.getText()).length()); String[] repliesPolicies = {getString(R.string.list_replies_policy_followed), getString(R.string.list_replies_policy_list), getString(R.string.list_replies_policy_none)}; String[] policyValues = {"followed", "list", "none"}; ArrayAdapter<String> policiesAdapter = new ArrayAdapter<>(MastodonListActivity.this, android.R.layout.simple_spinner_dropdown_item, repliesPolicies); popupAddListBinding.repliesPolicySpinner.setAdapter(policiesAdapter); if (isMisskey) { popupAddListBinding.repliesPolicyLabel.setVisibility(View.GONE); popupAddListBinding.repliesPolicySpinner.setVisibility(View.GONE); } else if (mastodonList.replies_policy != null) { for (int i = 0; i < policyValues.length; i++) { if (policyValues[i].equals(mastodonList.replies_policy)) { popupAddListBinding.repliesPolicySpinner.setSelection(i); break; } } } dialogBuilder.setPositiveButton(R.string.validate, (dialog, id) -> { if (popupAddListBinding.addList.getText() != null && popupAddListBinding.addList.getText().toString().trim().length() > 0) { LiveData<MastodonList> updateLiveData; String selectedPolicy = policyValues[popupAddListBinding.repliesPolicySpinner.getSelectedItemPosition()]; if (isMisskey) { updateLiveData = misskeyTimelinesVM.updateList(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, mastodonList.id, popupAddListBinding.addList.getText().toString().trim()); } else { updateLiveData = timelinesVM.updateList(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, mastodonList.id, popupAddListBinding.addList.getText().toString().trim(), null); updateLiveData = timelinesVM.updateList(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, mastodonList.id, popupAddListBinding.addList.getText().toString().trim(), selectedPolicy); } updateLiveData.observe(MastodonListActivity.this, newMastodonList -> { if (mastodonListList != null && newMastodonList != null) { Loading app/src/main/res/layouts/mastodon/layout/popup_add_list.xml +21 −5 Original line number Diff line number Diff line Loading @@ -2,16 +2,32 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="@dimen/fab_margin" android:orientation="vertical"> android:orientation="vertical" android:paddingStart="24dp" android:paddingTop="16dp" android:paddingEnd="24dp" android:paddingBottom="8dp"> <androidx.appcompat.widget.AppCompatEditText android:id="@+id/add_list" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:layout_marginBottom="20dp" android:layout_marginBottom="16dp" android:hint="@string/action_lists_title_placeholder" android:inputType="text" android:singleLine="true" /> <androidx.appcompat.widget.AppCompatTextView android:id="@+id/replies_policy_label" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="4dp" android:text="@string/list_replies_policy" android:textSize="14sp" /> <Spinner android:id="@+id/replies_policy_spinner" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="8dp" /> </LinearLayout> app/src/main/res/values/strings.xml +4 −0 Original line number Diff line number Diff line Loading @@ -328,6 +328,10 @@ <string name="action_lists_add_to">Add to list</string> <string name="action_lists_delete">Delete list</string> <string name="action_lists_title_placeholder">New list title</string> <string name="list_replies_policy">Show replies to</string> <string name="list_replies_policy_none">No one</string> <string name="list_replies_policy_list">Members of the list</string> <string name="list_replies_policy_followed">Any followed user</string> <string name="action_lists_add_user">The account was added to the list!</string> <string name="action_lists_empty">You don\'t have any lists yet!</string> <!-- Migration --> Loading Loading
app/src/main/java/app/fedilab/android/mastodon/activities/MastodonListActivity.java +28 −2 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.view.Menu; import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; import android.widget.ArrayAdapter; import androidx.activity.OnBackPressedCallback; import androidx.annotation.NonNull; Loading Loading @@ -391,13 +392,22 @@ public class MastodonListActivity extends BaseBarActivity implements MastodonLis PopupAddListBinding popupAddListBinding = PopupAddListBinding.inflate(getLayoutInflater()); dialogBuilder.setView(popupAddListBinding.getRoot()); popupAddListBinding.addList.setFilters(new InputFilter[]{new InputFilter.LengthFilter(255)}); String[] repliesPolicies = {getString(R.string.list_replies_policy_followed), getString(R.string.list_replies_policy_list), getString(R.string.list_replies_policy_none)}; ArrayAdapter<String> policiesAdapter = new ArrayAdapter<>(MastodonListActivity.this, android.R.layout.simple_spinner_dropdown_item, repliesPolicies); popupAddListBinding.repliesPolicySpinner.setAdapter(policiesAdapter); if (isMisskey) { popupAddListBinding.repliesPolicyLabel.setVisibility(View.GONE); popupAddListBinding.repliesPolicySpinner.setVisibility(View.GONE); } dialogBuilder.setPositiveButton(R.string.validate, (dialog, id) -> { if (popupAddListBinding.addList.getText() != null && popupAddListBinding.addList.getText().toString().trim().length() > 0) { LiveData<MastodonList> createLiveData; String[] policyValues = {"followed", "list", "none"}; String selectedPolicy = policyValues[popupAddListBinding.repliesPolicySpinner.getSelectedItemPosition()]; if (isMisskey) { createLiveData = misskeyTimelinesVM.createList(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, popupAddListBinding.addList.getText().toString().trim()); } else { createLiveData = timelinesVM.createList(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, popupAddListBinding.addList.getText().toString().trim(), null); createLiveData = timelinesVM.createList(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, popupAddListBinding.addList.getText().toString().trim(), selectedPolicy); } createLiveData.observe(MastodonListActivity.this, newMastodonList -> { if (mastodonListList == null) { Loading Loading @@ -443,13 +453,29 @@ public class MastodonListActivity extends BaseBarActivity implements MastodonLis popupAddListBinding.addList.setFilters(new InputFilter[]{new InputFilter.LengthFilter(255)}); popupAddListBinding.addList.setText(mastodonList.title); popupAddListBinding.addList.setSelection(Objects.requireNonNull(popupAddListBinding.addList.getText()).length()); String[] repliesPolicies = {getString(R.string.list_replies_policy_followed), getString(R.string.list_replies_policy_list), getString(R.string.list_replies_policy_none)}; String[] policyValues = {"followed", "list", "none"}; ArrayAdapter<String> policiesAdapter = new ArrayAdapter<>(MastodonListActivity.this, android.R.layout.simple_spinner_dropdown_item, repliesPolicies); popupAddListBinding.repliesPolicySpinner.setAdapter(policiesAdapter); if (isMisskey) { popupAddListBinding.repliesPolicyLabel.setVisibility(View.GONE); popupAddListBinding.repliesPolicySpinner.setVisibility(View.GONE); } else if (mastodonList.replies_policy != null) { for (int i = 0; i < policyValues.length; i++) { if (policyValues[i].equals(mastodonList.replies_policy)) { popupAddListBinding.repliesPolicySpinner.setSelection(i); break; } } } dialogBuilder.setPositiveButton(R.string.validate, (dialog, id) -> { if (popupAddListBinding.addList.getText() != null && popupAddListBinding.addList.getText().toString().trim().length() > 0) { LiveData<MastodonList> updateLiveData; String selectedPolicy = policyValues[popupAddListBinding.repliesPolicySpinner.getSelectedItemPosition()]; if (isMisskey) { updateLiveData = misskeyTimelinesVM.updateList(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, mastodonList.id, popupAddListBinding.addList.getText().toString().trim()); } else { updateLiveData = timelinesVM.updateList(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, mastodonList.id, popupAddListBinding.addList.getText().toString().trim(), null); updateLiveData = timelinesVM.updateList(BaseMainActivity.currentInstance, BaseMainActivity.currentToken, mastodonList.id, popupAddListBinding.addList.getText().toString().trim(), selectedPolicy); } updateLiveData.observe(MastodonListActivity.this, newMastodonList -> { if (mastodonListList != null && newMastodonList != null) { Loading
app/src/main/res/layouts/mastodon/layout/popup_add_list.xml +21 −5 Original line number Diff line number Diff line Loading @@ -2,16 +2,32 @@ <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="@dimen/fab_margin" android:orientation="vertical"> android:orientation="vertical" android:paddingStart="24dp" android:paddingTop="16dp" android:paddingEnd="24dp" android:paddingBottom="8dp"> <androidx.appcompat.widget.AppCompatEditText android:id="@+id/add_list" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" android:layout_marginBottom="20dp" android:layout_marginBottom="16dp" android:hint="@string/action_lists_title_placeholder" android:inputType="text" android:singleLine="true" /> <androidx.appcompat.widget.AppCompatTextView android:id="@+id/replies_policy_label" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="4dp" android:text="@string/list_replies_policy" android:textSize="14sp" /> <Spinner android:id="@+id/replies_policy_spinner" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="8dp" /> </LinearLayout>
app/src/main/res/values/strings.xml +4 −0 Original line number Diff line number Diff line Loading @@ -328,6 +328,10 @@ <string name="action_lists_add_to">Add to list</string> <string name="action_lists_delete">Delete list</string> <string name="action_lists_title_placeholder">New list title</string> <string name="list_replies_policy">Show replies to</string> <string name="list_replies_policy_none">No one</string> <string name="list_replies_policy_list">Members of the list</string> <string name="list_replies_policy_followed">Any followed user</string> <string name="action_lists_add_user">The account was added to the list!</string> <string name="action_lists_empty">You don\'t have any lists yet!</string> <!-- Migration --> Loading