Compare commits

..

No commits in common. "56c5043249f40fa8126f6af1b0ba49ace88c6aaf" and "726eac70a9cfbd8c4668300ee58ba01be86165dd" have entirely different histories.

22 changed files with 152 additions and 158 deletions

View File

@ -49,7 +49,7 @@ public class FetchPostFilterReadPostsAndConcatenatedSubredditNames {
if (anonymousSubscribedSubreddits != null && !anonymousSubscribedSubreddits.isEmpty()) {
StringBuilder stringBuilder = new StringBuilder();
for (SubscribedSubredditData s : anonymousSubscribedSubreddits) {
stringBuilder.append(s.getQualified_name()).append(",");
stringBuilder.append(s.getName()).append("+");
}
if (stringBuilder.length() > 0) {
stringBuilder.deleteCharAt(stringBuilder.length() - 1);

View File

@ -12,6 +12,7 @@ import android.view.View;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.Switch;
import android.widget.TextView;
import androidx.annotation.NonNull;
@ -24,7 +25,6 @@ import com.google.android.material.appbar.AppBarLayout;
import com.google.android.material.appbar.CollapsingToolbarLayout;
import com.google.android.material.snackbar.Snackbar;
import java.util.ArrayList;
import java.util.concurrent.Executor;
import javax.inject.Inject;
@ -40,7 +40,6 @@ import eu.toldi.infinityforlemmy.customviews.slidr.Slidr;
import eu.toldi.infinityforlemmy.multireddit.EditMultiReddit;
import eu.toldi.infinityforlemmy.multireddit.FetchMultiRedditInfo;
import eu.toldi.infinityforlemmy.multireddit.MultiReddit;
import eu.toldi.infinityforlemmy.subreddit.SubredditWithSelection;
import eu.toldi.infinityforlemmy.utils.SharedPreferencesUtils;
import eu.toldi.infinityforlemmy.utils.Utils;
import retrofit2.Retrofit;
@ -70,6 +69,12 @@ public class EditMultiRedditActivity extends BaseActivity {
EditText descriptionEditText;
@BindView(R.id.divider_2_edit_multi_reddit_activity)
View divider2;
@BindView(R.id.visibility_wrapper_linear_layout_edit_multi_reddit_activity)
LinearLayout visibilityLinearLayout;
@BindView(R.id.visibility_text_view_edit_multi_reddit_activity)
TextView visibilityTextView;
@BindView(R.id.visibility_switch_edit_multi_reddit_activity)
Switch visibilitySwitch;
@BindView(R.id.select_subreddit_text_view_edit_multi_reddit_activity)
TextView selectSubredditTextView;
@Inject
@ -120,6 +125,7 @@ public class EditMultiRedditActivity extends BaseActivity {
mAccountName = mCurrentAccountSharedPreferences.getString(SharedPreferencesUtils.ACCOUNT_QUALIFIED_NAME, "-");
if (mAccessToken == null) {
visibilityLinearLayout.setVisibility(View.GONE);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
nameEditText.setImeOptions(nameEditText.getImeOptions() | EditorInfoCompat.IME_FLAG_NO_PERSONALIZED_LEARNING);
descriptionEditText.setImeOptions(descriptionEditText.getImeOptions() | EditorInfoCompat.IME_FLAG_NO_PERSONALIZED_LEARNING);
@ -161,22 +167,14 @@ public class EditMultiRedditActivity extends BaseActivity {
linearLayout.setVisibility(View.VISIBLE);
nameEditText.setText(multiReddit.getDisplayName());
descriptionEditText.setText(multiReddit.getDescription());
visibilitySwitch.setChecked(!multiReddit.getVisibility().equals("public"));
}
selectSubredditTextView.setOnClickListener(view -> {
Intent intent = new Intent(EditMultiRedditActivity.this, SelectedSubredditsAndUsersActivity.class);
if (multiReddit.getSubreddits() != null) {
if (multiReddit.getSubreddits().isEmpty() && !multiReddit.getPath().equals("")) {
String[] communities = multiReddit.getPath().split(",");
ArrayList<SubredditWithSelection> communitiesList = new ArrayList<>();
for (String community : communities) {
communitiesList.add(new SubredditWithSelection(community.substring(0, community.indexOf('@')), null, community));
}
intent.putParcelableArrayListExtra(SelectedSubredditsAndUsersActivity.EXTRA_SELECTED_SUBREDDITS, communitiesList);
} else {
intent.putParcelableArrayListExtra(SelectedSubredditsAndUsersActivity.EXTRA_SELECTED_SUBREDDITS, multiReddit.getSubreddits());
}
}
startActivityForResult(intent, SUBREDDIT_SELECTION_REQUEST_CODE);
});
}
@ -205,18 +203,8 @@ public class EditMultiRedditActivity extends BaseActivity {
multiReddit.setDisplayName(name);
multiReddit.setName(name);
multiReddit.setDescription(descriptionEditText.getText().toString());
StringBuilder pathStringBuilder = new StringBuilder();
String prefix = "";
for (SubredditWithSelection s : multiReddit.getSubreddits()) {
pathStringBuilder.append(prefix);
prefix = ",";
pathStringBuilder.append(s.getQualifiedName());
}
multiReddit.setPath(pathStringBuilder.toString());
EditMultiReddit.anonymousEditMultiReddit(mExecutor, new Handler(), mRedditDataRoomDatabase,
multiReddit, multipath, new EditMultiReddit.EditMultiRedditListener() {
multiReddit, new EditMultiReddit.EditMultiRedditListener() {
@Override
public void success() {
finish();
@ -275,6 +263,7 @@ public class EditMultiRedditActivity extends BaseActivity {
divider2.setBackgroundColor(dividerColor);
descriptionEditText.setTextColor(primaryTextColor);
descriptionEditText.setHintTextColor(secondaryTextColor);
visibilityTextView.setTextColor(primaryTextColor);
selectSubredditTextView.setTextColor(primaryTextColor);
if (typeface != null) {

View File

@ -371,17 +371,20 @@ public class FilteredPostsActivity extends BaseActivity implements SortTypeSelec
} else if (itemId == R.id.action_sort_filtered_thing_activity) {
switch (postType) {
case PostPagingSource.TYPE_FRONT_PAGE:
case PostPagingSource.TYPE_SUBREDDIT:
case PostPagingSource.TYPE_MULTI_REDDIT:
case PostPagingSource.TYPE_ANONYMOUS_MULTIREDDIT:
case PostPagingSource.TYPE_ANONYMOUS_FRONT_PAGE:
SortTypeBottomSheetFragment bestSortTypeBottomSheetFragment = SortTypeBottomSheetFragment.getNewInstance(postType, mFragment.getSortType());
SortTypeBottomSheetFragment bestSortTypeBottomSheetFragment = SortTypeBottomSheetFragment.getNewInstance(false, mFragment.getSortType());
bestSortTypeBottomSheetFragment.show(getSupportFragmentManager(), bestSortTypeBottomSheetFragment.getTag());
break;
case PostPagingSource.TYPE_SEARCH:
SearchPostSortTypeBottomSheetFragment searchPostSortTypeBottomSheetFragment = SearchPostSortTypeBottomSheetFragment.getNewInstance(mFragment.getSortType());
searchPostSortTypeBottomSheetFragment.show(getSupportFragmentManager(), searchPostSortTypeBottomSheetFragment.getTag());
break;
case PostPagingSource.TYPE_SUBREDDIT:
case PostPagingSource.TYPE_MULTI_REDDIT:
case PostPagingSource.TYPE_ANONYMOUS_MULTIREDDIT:
case PostPagingSource.TYPE_ANONYMOUS_FRONT_PAGE:
SortTypeBottomSheetFragment sortTypeBottomSheetFragment = SortTypeBottomSheetFragment.getNewInstance(true, mFragment.getSortType());
sortTypeBottomSheetFragment.show(getSupportFragmentManager(), sortTypeBottomSheetFragment.getTag());
break;
case PostPagingSource.TYPE_USER:
UserThingSortTypeBottomSheetFragment userThingSortTypeBottomSheetFragment = UserThingSortTypeBottomSheetFragment.getNewInstance(mFragment.getSortType());
userThingSortTypeBottomSheetFragment.show(getSupportFragmentManager(), userThingSortTypeBottomSheetFragment.getTag());

View File

@ -1134,7 +1134,7 @@ public class MainActivity extends BaseActivity implements SortTypeSelectionCallb
int currentPostType = sectionsPagerAdapter.getCurrentPostType();
PostFragment postFragment = sectionsPagerAdapter.getCurrentFragment();
if (postFragment != null) {
SortTypeBottomSheetFragment sortTypeBottomSheetFragment = SortTypeBottomSheetFragment.getNewInstance(currentPostType, postFragment.getSortType());
SortTypeBottomSheetFragment sortTypeBottomSheetFragment = SortTypeBottomSheetFragment.getNewInstance(currentPostType != PostPagingSource.TYPE_FRONT_PAGE, postFragment.getSortType());
sortTypeBottomSheetFragment.show(getSupportFragmentManager(), sortTypeBottomSheetFragment.getTag());
}
}

View File

@ -28,6 +28,7 @@ import eu.toldi.infinityforlemmy.ActivityToolbarInterface;
import eu.toldi.infinityforlemmy.Infinity;
import eu.toldi.infinityforlemmy.R;
import eu.toldi.infinityforlemmy.adapters.SelectedSubredditsRecyclerViewAdapter;
import eu.toldi.infinityforlemmy.bottomsheetfragments.SelectSubredditsOrUsersOptionsBottomSheetFragment;
import eu.toldi.infinityforlemmy.customtheme.CustomThemeWrapper;
import eu.toldi.infinityforlemmy.customviews.LinearLayoutManagerBugFixed;
import eu.toldi.infinityforlemmy.customviews.slidr.Slidr;
@ -108,7 +109,8 @@ public class SelectedSubredditsAndUsersActivity extends BaseActivity implements
});
fab.setOnClickListener(view -> {
selectSubreddits();
SelectSubredditsOrUsersOptionsBottomSheetFragment selectSubredditsOrUsersOptionsBottomSheetFragment = new SelectSubredditsOrUsersOptionsBottomSheetFragment();
selectSubredditsOrUsersOptionsBottomSheetFragment.show(getSupportFragmentManager(), selectSubredditsOrUsersOptionsBottomSheetFragment.getTag());
});
}

View File

@ -257,7 +257,7 @@ public class SubscribedThingListingActivity extends BaseActivity implements Acti
tabLayout.setupWithViewPager(viewPager);
if (showMultiReddits) {
viewPager.setCurrentItem(1, false);
viewPager.setCurrentItem(2, false);
}
loadSubscriptions(false);

View File

@ -62,8 +62,10 @@ import eu.toldi.infinityforlemmy.customtheme.CustomThemeWrapper;
import eu.toldi.infinityforlemmy.customviews.NavigationWrapper;
import eu.toldi.infinityforlemmy.customviews.slidr.Slidr;
import eu.toldi.infinityforlemmy.events.GoBackToMainPageEvent;
import eu.toldi.infinityforlemmy.events.RefreshMultiRedditsEvent;
import eu.toldi.infinityforlemmy.events.SwitchAccountEvent;
import eu.toldi.infinityforlemmy.fragments.PostFragment;
import eu.toldi.infinityforlemmy.multireddit.DeleteMultiReddit;
import eu.toldi.infinityforlemmy.multireddit.MultiReddit;
import eu.toldi.infinityforlemmy.post.MarkPostAsRead;
import eu.toldi.infinityforlemmy.post.Post;
@ -590,7 +592,7 @@ public class ViewMultiRedditDetailActivity extends BaseActivity implements SortT
private void showSortTypeBottomSheetFragment() {
if (mFragment instanceof PostFragment) {
SortTypeBottomSheetFragment sortTypeBottomSheetFragment = SortTypeBottomSheetFragment.getNewInstance(SortTypeBottomSheetFragment.PAGE_TYPE_MULTICOMMUNITY, ((PostFragment) mFragment).getSortType());
SortTypeBottomSheetFragment sortTypeBottomSheetFragment = SortTypeBottomSheetFragment.getNewInstance(true, ((PostFragment) mFragment).getSortType());
sortTypeBottomSheetFragment.show(getSupportFragmentManager(), sortTypeBottomSheetFragment.getTag());
}
}
@ -676,7 +678,7 @@ public class ViewMultiRedditDetailActivity extends BaseActivity implements SortT
-> {
Utils.hideKeyboard(this);
Intent subredditIntent = new Intent(this, ViewSubredditDetailActivity.class);
subredditIntent.putExtra(ViewSubredditDetailActivity.EXTRA_COMMUNITY_FULL_NAME_KEY, thingEditText.getText().toString());
subredditIntent.putExtra(ViewSubredditDetailActivity.EXTRA_SUBREDDIT_NAME_KEY, thingEditText.getText().toString());
startActivity(subredditIntent);
})
.setNegativeButton(R.string.cancel, (dialogInterface, i) -> {
@ -697,7 +699,7 @@ public class ViewMultiRedditDetailActivity extends BaseActivity implements SortT
if (i == EditorInfo.IME_ACTION_DONE) {
Utils.hideKeyboard(this);
Intent userIntent = new Intent(this, ViewUserDetailActivity.class);
userIntent.putExtra(ViewUserDetailActivity.EXTRA_QUALIFIED_USER_NAME_KEY, thingEditText.getText().toString());
userIntent.putExtra(ViewUserDetailActivity.EXTRA_USER_NAME_KEY, thingEditText.getText().toString());
startActivity(userIntent);
return true;
}
@ -762,7 +764,6 @@ public class ViewMultiRedditDetailActivity extends BaseActivity implements SortT
Intent editIntent = new Intent(this, EditMultiRedditActivity.class);
editIntent.putExtra(EditMultiRedditActivity.EXTRA_MULTI_PATH, multiPath);
startActivity(editIntent);
finish();
return true;
} else if (itemId == R.id.action_delete_view_multi_reddit_detail_activity) {
new MaterialAlertDialogBuilder(this, R.style.MaterialAlertDialogTheme)
@ -770,13 +771,30 @@ public class ViewMultiRedditDetailActivity extends BaseActivity implements SortT
.setMessage(R.string.delete_multi_reddit_dialog_message)
.setPositiveButton(R.string.delete, (dialogInterface, i)
-> {
if (mAccessToken == null) {
DeleteMultiredditInDatabase.deleteMultiredditInDatabase(mExecutor, new Handler(), mRedditDataRoomDatabase, mAccountName, multiPath,
() -> {
Toast.makeText(this, R.string.delete_multi_reddit_success, Toast.LENGTH_SHORT).show();
finish();
});
} else {
DeleteMultiReddit.deleteMultiReddit(mExecutor, new Handler(), mOauthRetrofit, mRedditDataRoomDatabase,
mAccessToken, mAccountName, multiPath, new DeleteMultiReddit.DeleteMultiRedditListener() {
@Override
public void success() {
Toast.makeText(ViewMultiRedditDetailActivity.this,
R.string.delete_multi_reddit_success, Toast.LENGTH_SHORT).show();
EventBus.getDefault().post(new RefreshMultiRedditsEvent());
finish();
}
@Override
public void failed() {
Toast.makeText(ViewMultiRedditDetailActivity.this,
R.string.delete_multi_reddit_failed, Toast.LENGTH_SHORT).show();
}
});
}
})
.setNegativeButton(R.string.cancel, null)
.show();

View File

@ -1206,7 +1206,7 @@ public class ViewSubredditDetailActivity extends BaseActivity implements SortTyp
private void displaySortTypeBottomSheetFragment() {
Fragment fragment = fragmentManager.findFragmentByTag("f0");
if (fragment instanceof PostFragment) {
SortTypeBottomSheetFragment sortTypeBottomSheetFragment = SortTypeBottomSheetFragment.getNewInstance(SortTypeBottomSheetFragment.PAGE_TYPE_COMMUNITY, ((PostFragment) fragment).getSortType());
SortTypeBottomSheetFragment sortTypeBottomSheetFragment = SortTypeBottomSheetFragment.getNewInstance(true, ((PostFragment) fragment).getSortType());
sortTypeBottomSheetFragment.show(fragmentManager, sortTypeBottomSheetFragment.getTag());
}
}

View File

@ -43,7 +43,7 @@ public class SelectedSubredditsRecyclerViewAdapter extends RecyclerView.Adapter<
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
if (holder instanceof SubredditViewHolder) {
((SubredditViewHolder) holder).subredditNameTextView.setText(subreddits.get(holder.getBindingAdapterPosition()).getQualifiedName());
((SubredditViewHolder) holder).subredditNameTextView.setText(subreddits.get(holder.getBindingAdapterPosition()).getName());
((SubredditViewHolder) holder).deleteButton.setOnClickListener(view -> {
subreddits.remove(holder.getBindingAdapterPosition());
notifyItemRemoved(holder.getBindingAdapterPosition());
@ -58,11 +58,7 @@ public class SelectedSubredditsRecyclerViewAdapter extends RecyclerView.Adapter<
public void addSubreddits(ArrayList<SubredditWithSelection> newSubreddits) {
int oldSize = subreddits.size();
for (SubredditWithSelection subreddit : newSubreddits) {
if (!subreddits.contains(subreddit)) {
subreddits.add(subreddit);
}
}
subreddits.addAll(newSubreddits);
notifyItemRangeInserted(oldSize, newSubreddits.size());
}

View File

@ -53,7 +53,6 @@ public class SubredditMultiselectionRecyclerViewAdapter extends RecyclerView.Ada
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
if (holder instanceof SubscribedSubredditViewHolder) {
((SubscribedSubredditViewHolder) holder).nameTextView.setText(subscribedSubreddits.get(position).getName());
((SubscribedSubredditViewHolder) holder).instanceTextView.setText(subscribedSubreddits.get(position).getQualifiedName().substring(subscribedSubreddits.get(position).getQualifiedName().indexOf("@")));
glide.load(subscribedSubreddits.get(position).getIconUrl())
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(72, 0)))
.error(glide.load(R.drawable.subreddit_default_icon)
@ -108,9 +107,6 @@ public class SubredditMultiselectionRecyclerViewAdapter extends RecyclerView.Ada
GifImageView iconImageView;
@BindView(R.id.name_text_view_item_subscribed_subreddit_multiselection)
TextView nameTextView;
@BindView(R.id.instance_text_view_item_subscribed_subreddit_multiselection)
TextView instanceTextView;
@BindView(R.id.checkbox_item_subscribed_subreddit_multiselection)
CheckBox checkBox;
@ -119,12 +115,10 @@ public class SubredditMultiselectionRecyclerViewAdapter extends RecyclerView.Ada
this.itemView = itemView;
ButterKnife.bind(this, itemView);
nameTextView.setTextColor(primaryTextColor);
instanceTextView.setTextColor(primaryTextColor);
checkBox.setButtonTintList(ColorStateList.valueOf(colorAccent));
if (activity.typeface != null) {
nameTextView.setTypeface(activity.typeface);
instanceTextView.setTypeface(activity.typeface);
}
}
}

View File

@ -24,8 +24,8 @@ public class AccountSectionRecyclerViewAdapter extends RecyclerView.Adapter<Recy
private static final int VIEW_TYPE_MENU_GROUP_TITLE = 1;
private static final int VIEW_TYPE_MENU_ITEM = 2;
private static final int ACCOUNT_SECTION_ITEMS = 5;
private static final int ANONYMOUS_ACCOUNT_SECTION_ITEMS = 2;
private static final int ACCOUNT_SECTION_ITEMS = 4;
private static final int ANONYMOUS_ACCOUNT_SECTION_ITEMS = 1;
private BaseActivity baseActivity;
private int inboxCount;
@ -113,10 +113,6 @@ public class AccountSectionRecyclerViewAdapter extends RecyclerView.Adapter<Recy
baseActivity.startActivity(intent);
});
break;
case 4:
stringId = R.string.multi_reddit;
drawableId = R.drawable.ic_multi_reddit_24dp;
break;
default:
stringId = R.string.account_saved_thing_activity_label;
drawableId = R.drawable.ic_outline_bookmarks_24dp;
@ -129,10 +125,6 @@ public class AccountSectionRecyclerViewAdapter extends RecyclerView.Adapter<Recy
stringId = R.string.subscriptions;
drawableId = R.drawable.ic_subscritptions_bottom_app_bar_24dp;
break;
case 2:
stringId = R.string.multi_reddit;
drawableId = R.drawable.ic_multi_reddit_24dp;
break;
default:
stringId = R.string.anonymous_account_instance;
drawableId = R.drawable.ic_account_circle_24dp;

View File

@ -29,20 +29,11 @@ import eu.toldi.infinityforlemmy.utils.Utils;
*/
public class SortTypeBottomSheetFragment extends LandscapeExpandedRoundedBottomSheetDialogFragment {
public static final String EXTRA_NO_BEST_TYPE = "ENBT";
public static final String EXTRA_CURRENT_SORT_TYPE = "ECST";
public static final String EXTRA_PAGE_TYPE = "EPT";
public static final int PAGE_TYPE_FRONT_PAGE = 0;
public static final int PAGE_TYPE_COMMUNITY = 1;
public static final int PAGE_TYPE_USER = 2;
public static final int PAGE_TYPE_SEARCH = 3;
public static final int PAGE_TYPE_MULTICOMMUNITY = 4;
public static final int PAGE_TYPE_ANONYMOUS_FRONT_PAGE = 5;
@BindView(R.id.best_type_text_view_sort_type_bottom_sheet_fragment)
TextView activeTypeTextView;
TextView bestTypeTextView;
@BindView(R.id.hot_type_text_view_sort_type_bottom_sheet_fragment)
TextView hotTypeTextView;
@BindView(R.id.new_type_text_view_sort_type_bottom_sheet_fragment)
@ -58,10 +49,10 @@ public class SortTypeBottomSheetFragment extends LandscapeExpandedRoundedBottomS
// Required empty public constructor
}
public static SortTypeBottomSheetFragment getNewInstance(int pageType, SortType currentSortType) {
public static SortTypeBottomSheetFragment getNewInstance(boolean isNoBestType, SortType currentSortType) {
SortTypeBottomSheetFragment fragment = new SortTypeBottomSheetFragment();
Bundle bundle = new Bundle();
bundle.putInt(EXTRA_PAGE_TYPE, pageType);
bundle.putBoolean(EXTRA_NO_BEST_TYPE, isNoBestType);
bundle.putString(EXTRA_CURRENT_SORT_TYPE, currentSortType.getType().fullName);
fragment.setArguments(bundle);
return fragment;
@ -78,27 +69,18 @@ public class SortTypeBottomSheetFragment extends LandscapeExpandedRoundedBottomS
rootView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR);
}
int pageType = getArguments().getInt(EXTRA_PAGE_TYPE, PAGE_TYPE_USER);
switch (pageType) {
case PAGE_TYPE_MULTICOMMUNITY:
case PAGE_TYPE_USER:
case PAGE_TYPE_ANONYMOUS_FRONT_PAGE:
activeTypeTextView.setVisibility(View.GONE);
hotTypeTextView.setVisibility(View.GONE);
break;
default:
case PAGE_TYPE_COMMUNITY:
case PAGE_TYPE_FRONT_PAGE:
break;
if (getArguments().getBoolean(EXTRA_NO_BEST_TYPE)) {
bestTypeTextView.setVisibility(View.GONE);
} else {
bestTypeTextView.setOnClickListener(view -> {
((SortTypeSelectionCallback) activity).sortTypeSelected(new SortType(SortType.Type.ACTIVE));
dismiss();
});
}
String currentSortType = getArguments().getString(EXTRA_CURRENT_SORT_TYPE);
if (currentSortType.equals(SortType.Type.ACTIVE.fullName)) {
activeTypeTextView.setCompoundDrawablesRelativeWithIntrinsicBounds(activeTypeTextView.getCompoundDrawablesRelative()[0], null, AppCompatResources.getDrawable(activity, R.drawable.ic_round_check_circle_day_night_24dp), null);
bestTypeTextView.setCompoundDrawablesRelativeWithIntrinsicBounds(bestTypeTextView.getCompoundDrawablesRelative()[0], null, AppCompatResources.getDrawable(activity, R.drawable.ic_round_check_circle_day_night_24dp), null);
} else if (currentSortType.equals(SortType.Type.HOT.fullName)) {
hotTypeTextView.setCompoundDrawablesRelativeWithIntrinsicBounds(hotTypeTextView.getCompoundDrawablesRelative()[0], null, AppCompatResources.getDrawable(activity, R.drawable.ic_round_check_circle_day_night_24dp), null);
} else if (currentSortType.equals(SortType.Type.NEW.fullName)) {
@ -109,11 +91,6 @@ public class SortTypeBottomSheetFragment extends LandscapeExpandedRoundedBottomS
topTypeTextView.setCompoundDrawablesRelativeWithIntrinsicBounds(topTypeTextView.getCompoundDrawablesRelative()[0], null, AppCompatResources.getDrawable(activity, R.drawable.ic_round_check_circle_day_night_24dp), null);
}
activeTypeTextView.setOnClickListener(view -> {
((SortTypeSelectionCallback) activity).sortTypeSelected(new SortType(SortType.Type.ACTIVE));
dismiss();
});
hotTypeTextView.setOnClickListener(view -> {
((SortTypeSelectionCallback) activity).sortTypeSelected(new SortType(SortType.Type.HOT));
dismiss();

View File

@ -37,6 +37,8 @@ public class UserThingSortTypeBottomSheetFragment extends LandscapeExpandedRound
TextView hotTypeTextView;
@BindView(R.id.top_type_text_view_user_thing_sort_type_bottom_sheet_fragment)
TextView topTypeTextView;
@BindView(R.id.controversial_type_text_view_user_thing_sort_type_bottom_sheet_fragment)
TextView controversialTypeTextView;
private BaseActivity activity;
public UserThingSortTypeBottomSheetFragment() {
@ -93,6 +95,12 @@ public class UserThingSortTypeBottomSheetFragment extends LandscapeExpandedRound
dismiss();
});
/* controversialTypeTextView.setOnClickListener(view -> {
if (activity != null) {
((SortTypeSelectionCallback) activity).sortTypeSelected(SortType.Type.CONTROVERSIAL.name());
}
dismiss();
});*/
if (activity.typeface != null) {
Utils.setFontToAllTextViews(rootView, activity.typeface);

View File

@ -438,7 +438,7 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
postType = getArguments().getInt(EXTRA_POST_TYPE);
mSwipeRefreshLayout.setEnabled(mSharedPreferences.getBoolean(SharedPreferencesUtils.PULL_TO_REFRESH, true));
mSwipeRefreshLayout.setEnabled(mSharedPreferences.getBoolean(SharedPreferencesUtils.PULL_TO_REFRESH, true) && postType != PostPagingSource.TYPE_ANONYMOUS_FRONT_PAGE);
mSwipeRefreshLayout.setOnRefreshListener(this::refresh);
accessToken = getArguments().getString(EXTRA_ACCESS_TOKEN);
@ -600,7 +600,7 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
String sortTime = null;
sort = mSortTypeSharedPreferences.getString(SharedPreferencesUtils.SORT_TYPE_MULTI_REDDIT_POST_BASE + multiRedditPath,
SortType.Type.NEW.name());
SortType.Type.HOT.name());
if (sort.equals(SortType.Type.TOP.name())) {
sortTime = mSortTypeSharedPreferences.getString(SharedPreferencesUtils.SORT_TIME_MULTI_REDDIT_POST_BASE + multiRedditPath,
SortType.Time.ALL.name());
@ -731,7 +731,7 @@ public class PostFragment extends Fragment implements FragmentCommunicator {
nameOfUsage = PostFilterUsage.NO_USAGE;
subredditName = getArguments().getString(EXTRA_NAME);
String sort = mSortTypeSharedPreferences.getString(SharedPreferencesUtils.SORT_TYPE_SUBREDDIT_POST_BASE + "-", SortType.Type.NEW.name());
String sort = mSortTypeSharedPreferences.getString(SharedPreferencesUtils.SORT_TYPE_SUBREDDIT_POST_BASE + "-", SortType.Type.HOT.name());
String sortTime = null;
if (sort.equals(SortType.Type.TOP.name())) {
sortTime = mSortTypeSharedPreferences.getString(SharedPreferencesUtils.SORT_TIME_SUBREDDIT_POST_BASE + "-", SortType.Time.ALL.name());

View File

@ -4,6 +4,7 @@ import android.os.Handler;
import androidx.annotation.NonNull;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -72,12 +73,12 @@ public class CreateMultiReddit {
}
redditDataRoomDatabase.multiRedditDao().insert(new MultiReddit(multipath, name, name, description,
null, null, "private", accountName, 0, System.currentTimeMillis(), true, false, false));
/*List<AnonymousMultiredditSubreddit> anonymousMultiredditSubreddits = new ArrayList<>();
List<AnonymousMultiredditSubreddit> anonymousMultiredditSubreddits = new ArrayList<>();
for (SubredditWithSelection s : subreddits) {
anonymousMultiredditSubreddits.add(new AnonymousMultiredditSubreddit(multipath, s.getQualifiedName()));
}
redditDataRoomDatabase.anonymousMultiredditSubredditDao().insertAll(anonymousMultiredditSubreddits);
*/
handler.post(createMultiRedditListener::success);
});
}

View File

@ -49,14 +49,16 @@ public class EditMultiReddit {
public static void anonymousEditMultiReddit(Executor executor, Handler handler,
RedditDataRoomDatabase redditDataRoomDatabase,
MultiReddit multiReddit, String oldPath,
MultiReddit multiReddit,
EditMultiRedditListener editMultiRedditListener) {
executor.execute(() -> {
ArrayList<AnonymousMultiredditSubreddit> anonymousMultiredditSubreddits = new ArrayList<>();
ArrayList<SubredditWithSelection> subreddits = multiReddit.getSubreddits();
redditDataRoomDatabase.multiRedditDao().anonymousDeleteMultiReddit(oldPath);
redditDataRoomDatabase.multiRedditDao().insert(multiReddit);
for (SubredditWithSelection s : subreddits) {
anonymousMultiredditSubreddits.add(new AnonymousMultiredditSubreddit(multiReddit.getPath(), s.getQualifiedName()));
}
redditDataRoomDatabase.anonymousMultiredditSubredditDao().insertAll(anonymousMultiredditSubreddits);
handler.post(editMultiRedditListener::success);
});
}

View File

@ -19,7 +19,6 @@ import androidx.paging.PagingDataTransforms;
import androidx.paging.PagingLiveData;
import androidx.paging.PagingSource;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Executor;
import java.util.regex.Pattern;
@ -250,9 +249,8 @@ public class PostViewModel extends ViewModel {
break;
case PostPagingSource.TYPE_MULTI_REDDIT:
case PostPagingSource.TYPE_ANONYMOUS_FRONT_PAGE:
String[] communities = (name != null) ? name.split(Pattern.quote(",")) : new String[0];
paging3PagingSource = new MulticommunityPagingSource(retrofit.getRetrofit().create(LemmyAPI.class), List.of(communities), accessToken,
sortType, executor, postFilter, (readPostList != null) ? readPostList : new ArrayList<>(), postEnricher);
paging3PagingSource = new MulticommunityPagingSource(retrofit.getRetrofit().create(LemmyAPI.class), List.of(name.split(Pattern.quote(","))), accessToken,
sortType, executor, postFilter, readPostList, postEnricher);
break;
case PostPagingSource.TYPE_SEARCH:
paging3PagingSource = new PostPagingSource(executor, retrofit, accessToken, accountName,
@ -389,12 +387,12 @@ public class PostViewModel extends ViewModel {
this.executor = executor;
this.retrofit = retrofit;
this.sharedPreferences = sharedPreferences;
// TODO is this used? because it is getting overwritten with opt
this.name = concatenatedSubredditNames;
this.postType = postType;
this.sortType = sortType;
this.postFilter = postFilter;
this.name = opt;
this.postEnricher = postEnricher;
}

View File

@ -91,7 +91,7 @@ public class SubredditWithSelection implements Parcelable {
if (!(obj instanceof SubredditWithSelection)) {
return false;
} else {
return this.getQualifiedName().compareToIgnoreCase(((SubredditWithSelection) obj).getQualifiedName()) == 0;
return this.getName().compareToIgnoreCase(((SubredditWithSelection) obj).getName()) == 0;
}
}

View File

@ -22,7 +22,7 @@ import java.util.concurrent.Executor
class MulticommunityPagingSource(
private val api: LemmyAPI,
private val communities: List<String>,
private val accessToken: String?,
private val accessToken: String,
private val sortType: SortType,
private val executor: Executor,
private val postFilter: PostFilter,
@ -41,14 +41,12 @@ class MulticommunityPagingSource(
val wasCached = mutableMapOf<String, Boolean>()
// Loop through each community and fetch posts
for ((community, pageNumber) in currentPageMap) {
if (community == "all") continue // Skip all
if (undisplayedPosts.containsKey(community) && undisplayedPosts[community]!!.size > 10) {
val posts: List<Post> = undisplayedPosts[community] ?: listOf()
combinedPosts.addAll(posts)
undisplayedPosts[community]!!.clear() // Clear used posts
wasCached[community] = true
// Add a dummy future to the list
futuresList.add(Futures.immediateFuture(LoadResult.Page(posts, null, null)))
} else {
val future = fetchPostsFromCommunity(api, pageNumber, community)
futuresList.add(future)
@ -73,7 +71,6 @@ class MulticommunityPagingSource(
// Handle other cases like LoadResult.Error
}
val sorted = when (sortType.type) {
SortType.Type.NEW -> {
sortByNewest(combinedPosts)
@ -100,18 +97,10 @@ class MulticommunityPagingSource(
}
}
if (currentPageMap.containsKey("all")) {
nextPageMap["all"] = filteredPosts.size + currentPageMap["all"]!!
} else {
nextPageMap["all"] = filteredPosts.size
}
LoadResult.Page(
data = filteredPosts,
prevKey = null, // Define prevKey logic if needed
nextKey = if (filteredPosts.isNotEmpty()) nextPageMap else null
nextKey = nextPageMap
)
}, executor)
val partialLoadResultFuture =

View File

@ -85,6 +85,33 @@
android:layout_width="match_parent"
android:layout_height="1dp" />
<LinearLayout
android:id="@+id/visibility_wrapper_linear_layout_edit_multi_reddit_activity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:focusable="true"
android:padding="16dp"
tools:visibility="gone">
<TextView
android:id="@+id/visibility_text_view_edit_multi_reddit_activity"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="@string/private_multi_reddit"
android:textColor="?attr/primaryTextColor"
android:textSize="?attr/font_default" />
<Switch
android:id="@+id/visibility_switch_edit_multi_reddit_activity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true" />
</LinearLayout>
<TextView
android:id="@+id/select_subreddit_text_view_edit_multi_reddit_activity"
android:layout_width="match_parent"

View File

@ -63,4 +63,23 @@
android:textSize="?attr/font_default"
app:drawableTint="?attr/primaryTextColor" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/controversial_type_text_view_user_thing_sort_type_bottom_sheet_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackground"
android:clickable="true"
android:drawableStart="@drawable/ic_controversial_24"
android:drawablePadding="48dp"
android:focusable="true"
android:fontFamily="?attr/font_family"
android:paddingStart="32dp"
android:paddingTop="16dp"
android:paddingEnd="32dp"
android:paddingBottom="16dp"
android:text="@string/sort_controversial"
android:textColor="?attr/primaryTextColor"
android:textSize="?attr/font_default"
app:drawableTint="?attr/primaryTextColor" />
</LinearLayout>

View File

@ -18,36 +18,15 @@
android:layout_gravity="center_vertical"
android:layout_marginEnd="32dp" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:orientation="horizontal">
<TextView
android:id="@+id/name_text_view_item_subscribed_subreddit_multiselection"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="0dp"
android:ellipsize="end"
android:gravity="start"
android:maxLines="1"
android:fontFamily="?attr/font_family"
android:textSize="?attr/font_default" />
<TextView
android:id="@+id/instance_text_view_item_subscribed_subreddit_multiselection"
android:layout_width="wrap_content"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_gravity="center_vertical"
android:layout_marginEnd="32dp"
android:ellipsize="end"
android:gravity="start"
android:maxLines="1"
android:fontFamily="?attr/font_family"
android:textSize="?attr/font_default" />
</LinearLayout>
android:textSize="?attr/font_default"
android:fontFamily="?attr/font_family" />
<CheckBox
android:id="@+id/checkbox_item_subscribed_subreddit_multiselection"