Signal-Android/app/src/main/java/org/thoughtcrime/securesms/payments/preferences/PaymentsPagerItemFragment.java

71 wiersze
2.6 KiB
Java

package org.thoughtcrime.securesms.payments.preferences;
import android.os.Bundle;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.fragment.NavHostFragment;
import androidx.recyclerview.widget.RecyclerView;
import org.thoughtcrime.securesms.LoggingFragment;
import org.thoughtcrime.securesms.PaymentPreferencesDirections;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.payments.preferences.model.PaymentItem;
import org.thoughtcrime.securesms.util.navigation.SafeNavigation;
public class PaymentsPagerItemFragment extends LoggingFragment {
private static final String PAYMENT_CATEGORY = "payment_category";
private PaymentsPagerItemViewModel viewModel;
static @NonNull Fragment getFragmentForAllPayments() {
return getFragment(PaymentCategory.ALL);
}
static @NonNull Fragment getFragmentForSentPayments() {
return getFragment(PaymentCategory.SENT);
}
static @NonNull Fragment getFragmentForReceivedPayments() {
return getFragment(PaymentCategory.RECEIVED);
}
private static @NonNull Fragment getFragment(@NonNull PaymentCategory paymentCategory) {
Bundle arguments = new Bundle();
arguments.putString(PAYMENT_CATEGORY, paymentCategory.getCode());
Fragment fragment = new PaymentsPagerItemFragment();
fragment.setArguments(arguments);
return fragment;
}
public PaymentsPagerItemFragment() {
super(R.layout.payment_preferences_all_pager_item_fragment);
}
@Override
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
PaymentsPagerItemViewModel.Factory factory = new PaymentsPagerItemViewModel.Factory(PaymentCategory.forCode(requireArguments().getString(PAYMENT_CATEGORY)));
viewModel = new ViewModelProvider(this, factory).get(PaymentsPagerItemViewModel.class);
RecyclerView recycler = view.findViewById(R.id.payments_activity_pager_item_fragment_recycler);
PaymentsHomeAdapter adapter = new PaymentsHomeAdapter(new Callbacks());
recycler.setAdapter(adapter);
viewModel.getList().observe(getViewLifecycleOwner(), adapter::submitList);
}
private class Callbacks implements PaymentsHomeAdapter.Callbacks {
@Override
public void onPaymentItem(@NonNull PaymentItem model) {
SafeNavigation.safeNavigate(NavHostFragment.findNavController(PaymentsPagerItemFragment.this),
PaymentPreferencesDirections.actionDirectlyToPaymentDetails(model.getPaymentDetailsParcelable()));
}
}
}