mirror of
https://codeberg.org/Bazsalanszky/Infinity-For-Lemmy.git
synced 2025-10-05 13:29:50 +02:00
Fix fab does not show in MultiReditListingFragment when first entering SubscribedThingListingActivity.
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
package ml.docilealligator.infinityforreddit.Activity;
|
package ml.docilealligator.infinityforreddit.Activity;
|
||||||
|
|
||||||
|
import android.content.Intent;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@@ -19,6 +20,7 @@ import androidx.viewpager.widget.ViewPager;
|
|||||||
|
|
||||||
import com.google.android.material.appbar.AppBarLayout;
|
import com.google.android.material.appbar.AppBarLayout;
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
|
||||||
|
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
||||||
import com.google.android.material.tabs.TabLayout;
|
import com.google.android.material.tabs.TabLayout;
|
||||||
import com.r0adkll.slidr.Slidr;
|
import com.r0adkll.slidr.Slidr;
|
||||||
import com.r0adkll.slidr.model.SlidrInterface;
|
import com.r0adkll.slidr.model.SlidrInterface;
|
||||||
@@ -77,6 +79,8 @@ public class SubscribedThingListingActivity extends BaseActivity implements Acti
|
|||||||
TabLayout tabLayout;
|
TabLayout tabLayout;
|
||||||
@BindView(R.id.view_pager_subscribed_thing_listing_activity)
|
@BindView(R.id.view_pager_subscribed_thing_listing_activity)
|
||||||
ViewPager viewPager;
|
ViewPager viewPager;
|
||||||
|
@BindView(R.id.fab_subscribed_thing_listing_activity)
|
||||||
|
public FloatingActionButton fab;
|
||||||
@Inject
|
@Inject
|
||||||
@Named("oauth")
|
@Named("oauth")
|
||||||
Retrofit mOauthRetrofit;
|
Retrofit mOauthRetrofit;
|
||||||
@@ -124,6 +128,13 @@ public class SubscribedThingListingActivity extends BaseActivity implements Acti
|
|||||||
if (isImmersiveInterface()) {
|
if (isImmersiveInterface()) {
|
||||||
window.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
|
window.setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
|
||||||
adjustToolbar(toolbar);
|
adjustToolbar(toolbar);
|
||||||
|
|
||||||
|
int navBarHeight = getNavBarHeight();
|
||||||
|
if (navBarHeight > 0) {
|
||||||
|
CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) fab.getLayoutParams();
|
||||||
|
params.bottomMargin = navBarHeight;
|
||||||
|
fab.setLayoutParams(params);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -163,6 +174,7 @@ public class SubscribedThingListingActivity extends BaseActivity implements Acti
|
|||||||
coordinatorLayout.setBackgroundColor(mCustomThemeWrapper.getBackgroundColor());
|
coordinatorLayout.setBackgroundColor(mCustomThemeWrapper.getBackgroundColor());
|
||||||
applyAppBarLayoutAndToolbarTheme(appBarLayout, toolbar);
|
applyAppBarLayoutAndToolbarTheme(appBarLayout, toolbar);
|
||||||
applyTabLayoutTheme(tabLayout);
|
applyTabLayoutTheme(tabLayout);
|
||||||
|
applyFABTheme(fab);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void getCurrentAccountAndInitializeViewPager() {
|
private void getCurrentAccountAndInitializeViewPager() {
|
||||||
@@ -178,6 +190,10 @@ public class SubscribedThingListingActivity extends BaseActivity implements Acti
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void initializeViewPagerAndLoadSubscriptions() {
|
private void initializeViewPagerAndLoadSubscriptions() {
|
||||||
|
fab.setOnClickListener(view -> {
|
||||||
|
Intent intent = new Intent(this, CreateMultiRedditActivity.class);
|
||||||
|
startActivity(intent);
|
||||||
|
});
|
||||||
sectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
|
sectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
|
||||||
viewPager.setAdapter(sectionsPagerAdapter);
|
viewPager.setAdapter(sectionsPagerAdapter);
|
||||||
viewPager.setOffscreenPageLimit(3);
|
viewPager.setOffscreenPageLimit(3);
|
||||||
@@ -186,8 +202,14 @@ public class SubscribedThingListingActivity extends BaseActivity implements Acti
|
|||||||
public void onPageSelected(int position) {
|
public void onPageSelected(int position) {
|
||||||
if (position == 0) {
|
if (position == 0) {
|
||||||
unlockSwipeRightToGoBack();
|
unlockSwipeRightToGoBack();
|
||||||
|
fab.hide();
|
||||||
} else {
|
} else {
|
||||||
lockSwipeRightToGoBack();
|
lockSwipeRightToGoBack();
|
||||||
|
if (position == 1) {
|
||||||
|
fab.hide();
|
||||||
|
} else {
|
||||||
|
fab.show();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@@ -1,9 +1,7 @@
|
|||||||
package ml.docilealligator.infinityforreddit.Fragment;
|
package ml.docilealligator.infinityforreddit.Fragment;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.content.res.ColorStateList;
|
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
@@ -15,7 +13,6 @@ import android.widget.LinearLayout;
|
|||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.appcompat.app.AppCompatActivity;
|
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
import androidx.lifecycle.ViewModelProvider;
|
import androidx.lifecycle.ViewModelProvider;
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
||||||
@@ -24,7 +21,6 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
|||||||
|
|
||||||
import com.bumptech.glide.Glide;
|
import com.bumptech.glide.Glide;
|
||||||
import com.bumptech.glide.RequestManager;
|
import com.bumptech.glide.RequestManager;
|
||||||
import com.google.android.material.floatingactionbutton.FloatingActionButton;
|
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import javax.inject.Named;
|
import javax.inject.Named;
|
||||||
@@ -33,7 +29,6 @@ import butterknife.BindView;
|
|||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
import me.zhanghai.android.fastscroll.FastScrollerBuilder;
|
import me.zhanghai.android.fastscroll.FastScrollerBuilder;
|
||||||
import ml.docilealligator.infinityforreddit.Activity.BaseActivity;
|
import ml.docilealligator.infinityforreddit.Activity.BaseActivity;
|
||||||
import ml.docilealligator.infinityforreddit.Activity.CreateMultiRedditActivity;
|
|
||||||
import ml.docilealligator.infinityforreddit.Activity.SubscribedThingListingActivity;
|
import ml.docilealligator.infinityforreddit.Activity.SubscribedThingListingActivity;
|
||||||
import ml.docilealligator.infinityforreddit.Adapter.MultiRedditListingRecyclerViewAdapter;
|
import ml.docilealligator.infinityforreddit.Adapter.MultiRedditListingRecyclerViewAdapter;
|
||||||
import ml.docilealligator.infinityforreddit.CustomTheme.CustomThemeWrapper;
|
import ml.docilealligator.infinityforreddit.CustomTheme.CustomThemeWrapper;
|
||||||
@@ -60,8 +55,6 @@ public class MultiRedditListingFragment extends Fragment implements FragmentComm
|
|||||||
ImageView mErrorImageView;
|
ImageView mErrorImageView;
|
||||||
@BindView(R.id.fetch_multi_reddit_listing_info_text_view_multi_reddit_listing_fragment)
|
@BindView(R.id.fetch_multi_reddit_listing_info_text_view_multi_reddit_listing_fragment)
|
||||||
TextView mErrorTextView;
|
TextView mErrorTextView;
|
||||||
@BindView(R.id.fab_multi_reddit_listing_fragment)
|
|
||||||
FloatingActionButton fab;
|
|
||||||
@Inject
|
@Inject
|
||||||
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
RedditDataRoomDatabase mRedditDataRoomDatabase;
|
||||||
@Inject
|
@Inject
|
||||||
@@ -74,7 +67,7 @@ public class MultiRedditListingFragment extends Fragment implements FragmentComm
|
|||||||
CustomThemeWrapper mCustomThemeWrapper;
|
CustomThemeWrapper mCustomThemeWrapper;
|
||||||
|
|
||||||
public MultiRedditViewModel mMultiRedditViewModel;
|
public MultiRedditViewModel mMultiRedditViewModel;
|
||||||
private AppCompatActivity mActivity;
|
private SubscribedThingListingActivity mActivity;
|
||||||
private RequestManager mGlide;
|
private RequestManager mGlide;
|
||||||
private LinearLayoutManager mLinearLayoutManager;
|
private LinearLayoutManager mLinearLayoutManager;
|
||||||
|
|
||||||
@@ -109,11 +102,6 @@ public class MultiRedditListingFragment extends Fragment implements FragmentComm
|
|||||||
|
|
||||||
mGlide = Glide.with(this);
|
mGlide = Glide.with(this);
|
||||||
|
|
||||||
fab.setOnClickListener(view -> {
|
|
||||||
Intent intent = new Intent(mActivity, CreateMultiRedditActivity.class);
|
|
||||||
startActivity(intent);
|
|
||||||
});
|
|
||||||
|
|
||||||
mLinearLayoutManager = new LinearLayoutManager(mActivity);
|
mLinearLayoutManager = new LinearLayoutManager(mActivity);
|
||||||
mRecyclerView.setLayoutManager(mLinearLayoutManager);
|
mRecyclerView.setLayoutManager(mLinearLayoutManager);
|
||||||
MultiRedditListingRecyclerViewAdapter adapter = new MultiRedditListingRecyclerViewAdapter(mActivity,
|
MultiRedditListingRecyclerViewAdapter adapter = new MultiRedditListingRecyclerViewAdapter(mActivity,
|
||||||
@@ -124,9 +112,9 @@ public class MultiRedditListingFragment extends Fragment implements FragmentComm
|
|||||||
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
|
public void onScrolled(@NonNull RecyclerView recyclerView, int dx, int dy) {
|
||||||
super.onScrolled(recyclerView, dx, dy);
|
super.onScrolled(recyclerView, dx, dy);
|
||||||
if (dy > 0) {
|
if (dy > 0) {
|
||||||
fab.hide();
|
mActivity.fab.hide();
|
||||||
} else {
|
} else {
|
||||||
fab.show();
|
mActivity.fab.show();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -136,7 +124,7 @@ public class MultiRedditListingFragment extends Fragment implements FragmentComm
|
|||||||
new MultiRedditViewModel.Factory(mActivity.getApplication(), mRedditDataRoomDatabase, accountName))
|
new MultiRedditViewModel.Factory(mActivity.getApplication(), mRedditDataRoomDatabase, accountName))
|
||||||
.get(MultiRedditViewModel.class);
|
.get(MultiRedditViewModel.class);
|
||||||
|
|
||||||
mMultiRedditViewModel.getAllMultiReddits().observe(this, subscribedUserData -> {
|
mMultiRedditViewModel.getAllMultiReddits().observe(getViewLifecycleOwner(), subscribedUserData -> {
|
||||||
if (subscribedUserData == null || subscribedUserData.size() == 0) {
|
if (subscribedUserData == null || subscribedUserData.size() == 0) {
|
||||||
mRecyclerView.setVisibility(View.GONE);
|
mRecyclerView.setVisibility(View.GONE);
|
||||||
mErrorLinearLayout.setVisibility(View.VISIBLE);
|
mErrorLinearLayout.setVisibility(View.VISIBLE);
|
||||||
@@ -149,7 +137,7 @@ public class MultiRedditListingFragment extends Fragment implements FragmentComm
|
|||||||
adapter.setMultiReddits(subscribedUserData);
|
adapter.setMultiReddits(subscribedUserData);
|
||||||
});
|
});
|
||||||
|
|
||||||
mMultiRedditViewModel.getAllFavoriteMultiReddits().observe(this, favoriteSubscribedUserData -> {
|
mMultiRedditViewModel.getAllFavoriteMultiReddits().observe(getViewLifecycleOwner(), favoriteSubscribedUserData -> {
|
||||||
if (favoriteSubscribedUserData != null && favoriteSubscribedUserData.size() > 0) {
|
if (favoriteSubscribedUserData != null && favoriteSubscribedUserData.size() > 0) {
|
||||||
mErrorLinearLayout.setVisibility(View.GONE);
|
mErrorLinearLayout.setVisibility(View.GONE);
|
||||||
mRecyclerView.setVisibility(View.VISIBLE);
|
mRecyclerView.setVisibility(View.VISIBLE);
|
||||||
@@ -170,7 +158,7 @@ public class MultiRedditListingFragment extends Fragment implements FragmentComm
|
|||||||
@Override
|
@Override
|
||||||
public void onAttach(@NonNull Context context) {
|
public void onAttach(@NonNull Context context) {
|
||||||
super.onAttach(context);
|
super.onAttach(context);
|
||||||
mActivity = (AppCompatActivity) context;
|
mActivity = (SubscribedThingListingActivity) context;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -184,8 +172,6 @@ public class MultiRedditListingFragment extends Fragment implements FragmentComm
|
|||||||
}
|
}
|
||||||
|
|
||||||
mErrorTextView.setTextColor(mCustomThemeWrapper.getSecondaryTextColor());
|
mErrorTextView.setTextColor(mCustomThemeWrapper.getSecondaryTextColor());
|
||||||
fab.setBackgroundTintList(ColorStateList.valueOf(mCustomThemeWrapper.getColorPrimaryLightTheme()));
|
|
||||||
fab.setImageTintList(ColorStateList.valueOf(mCustomThemeWrapper.getFABIconColor()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@@ -51,4 +51,13 @@
|
|||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
|
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
|
||||||
|
|
||||||
|
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||||
|
android:id="@+id/fab_subscribed_thing_listing_activity"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_margin="@dimen/fab_margin"
|
||||||
|
android:layout_gravity="bottom|end"
|
||||||
|
android:visibility="gone"
|
||||||
|
app:srcCompat="@drawable/ic_add_day_night_24dp" />
|
||||||
|
|
||||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
@@ -44,13 +44,4 @@
|
|||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
|
||||||
android:id="@+id/fab_multi_reddit_listing_fragment"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_margin="@dimen/fab_margin"
|
|
||||||
android:layout_gravity="bottom|end"
|
|
||||||
app:srcCompat="@drawable/ic_add_day_night_24dp"
|
|
||||||
app:tint="@android:color/white" />
|
|
||||||
|
|
||||||
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
</androidx.coordinatorlayout.widget.CoordinatorLayout>
|
Reference in New Issue
Block a user