aboutsummaryrefslogblamecommitdiff
path: root/app/src/main/java/ml/docilealligator/infinityforreddit/bottomsheetfragments/CustomThemeOptionsBottomSheetFragment.java
blob: ffd68c93f592ed7f20ffeb3e1a6251b9abae2d0a (plain) (tree)
1
2
3
4
5
6
7
8
9
                                                                  
 
                               



                                   

                                   
                                    

                                      
                                                                    
                                                                                  
                                                                                                          
                                                                                                     
                                                        



                                      
                                                                                                              

                                                        
                                                                          
                                                                   
 
                             
                                                                
                                  





                                                                    
                                                                                                                              

                                             
                                                                             
                                      


             
                                                                                   
                                                         
                                                                                                                                                

                                                               
                                                                                                     
 
                                                                                          
 
                                                                                                   
                                                                                                                                                                             


                      
                                                                                                    




                                                                                                                 


                      
                                                                                                         



                                                                                             
                                                                                                     



                                                                                         
                                        
                                                                              

         
                                 




                                                    
                                          

     
package ml.docilealligator.infinityforreddit.bottomsheetfragments;

import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;

import ml.docilealligator.infinityforreddit.activities.BaseActivity;
import ml.docilealligator.infinityforreddit.customtheme.OnlineCustomThemeMetadata;
import ml.docilealligator.infinityforreddit.customviews.LandscapeExpandedRoundedBottomSheetDialogFragment;
import ml.docilealligator.infinityforreddit.databinding.FragmentCustomThemeOptionsBottomSheetBinding;
import ml.docilealligator.infinityforreddit.utils.Utils;

/**
 * A simple {@link Fragment} subclass.
 */
public class CustomThemeOptionsBottomSheetFragment extends LandscapeExpandedRoundedBottomSheetDialogFragment {

    public static final String EXTRA_THEME_NAME = "ETN";
    public static final String EXTRA_ONLINE_CUSTOM_THEME_METADATA = "ECT";
    public static final String EXTRA_INDEX_IN_THEME_LIST = "EIITL";

    private String themeName;
    private OnlineCustomThemeMetadata onlineCustomThemeMetadata;
    private BaseActivity activity;

    public CustomThemeOptionsBottomSheetFragment() {
        // Required empty public constructor
    }

    public interface CustomThemeOptionsBottomSheetFragmentListener {
        void editTheme(String themeName, @Nullable OnlineCustomThemeMetadata onlineCustomThemeMetadata, int indexInThemeList);
        void changeName(String oldThemeName);
        void shareTheme(String themeName);
        void shareTheme(OnlineCustomThemeMetadata onlineCustomThemeMetadata);
        void delete(String themeName);
    }

    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        FragmentCustomThemeOptionsBottomSheetBinding binding = FragmentCustomThemeOptionsBottomSheetBinding.inflate(inflater, container, false);

        themeName = getArguments().getString(EXTRA_THEME_NAME);
        onlineCustomThemeMetadata = getArguments().getParcelable(EXTRA_ONLINE_CUSTOM_THEME_METADATA);

        binding.themeNameTextViewCustomThemeOptionsBottomSheetFragment.setText(themeName);

        binding.editThemeTextViewCustomThemeOptionsBottomSheetFragment.setOnClickListener(view -> {
            ((CustomThemeOptionsBottomSheetFragmentListener) activity).editTheme(themeName, onlineCustomThemeMetadata, getArguments().getInt(EXTRA_INDEX_IN_THEME_LIST, -1));
            dismiss();
        });

        binding.shareThemeTextViewCustomThemeOptionsBottomSheetFragment.setOnClickListener(view -> {
            if (onlineCustomThemeMetadata != null) {
                ((CustomThemeOptionsBottomSheetFragmentListener) activity).shareTheme(onlineCustomThemeMetadata);
            } else {
                ((CustomThemeOptionsBottomSheetFragmentListener) activity).shareTheme(themeName);
            }
            dismiss();
        });

        binding.changeThemeNameTextViewCustomThemeOptionsBottomSheetFragment.setOnClickListener(view -> {
            ((CustomThemeOptionsBottomSheetFragmentListener) activity).changeName(themeName);
            dismiss();
        });

        binding.deleteThemeTextViewCustomThemeOptionsBottomSheetFragment.setOnClickListener(view -> {
            ((CustomThemeOptionsBottomSheetFragmentListener) activity).delete(themeName);
            dismiss();
        });

        if (activity.typeface != null) {
            Utils.setFontToAllTextViews(binding.getRoot(), activity.typeface);
        }

        return binding.getRoot();
    }

    @Override
    public void onAttach(@NonNull Context context) {
        super.onAttach(context);
        activity = (BaseActivity) context;
    }
}