mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2025-02-07 15:14:47 +01:00
Compare commits
No commits in common. "56c5043249f40fa8126f6af1b0ba49ace88c6aaf" and "726eac70a9cfbd8c4668300ee58ba01be86165dd" have entirely different histories.
56c5043249
...
726eac70a9
@ -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);
|
||||
|
@ -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) {
|
||||
|
@ -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());
|
||||
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
@ -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());
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
|
@ -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();
|
||||
|
@ -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());
|
||||
}
|
||||
}
|
||||
|
@ -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());
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
@ -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();
|
||||
|
@ -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);
|
||||
|
@ -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());
|
||||
|
@ -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);
|
||||
});
|
||||
}
|
||||
|
@ -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);
|
||||
});
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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 =
|
||||
|
@ -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"
|
||||
|
@ -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>
|
||||
|
@ -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"
|
||||
|
Loading…
x
Reference in New Issue
Block a user