package com.sdsmdg.harjot.MusicDNA.fragments.LocalMusicFragments;
import android.content.Context;
import android.graphics.Color;
import android.support.design.widget.TabLayout;
import android.support.v4.app.FragmentManager;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.InputMethodManager;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import com.sdsmdg.harjot.MusicDNA.activities.HomeActivity;
import com.sdsmdg.harjot.MusicDNA.activities.SplashActivity;
import com.sdsmdg.harjot.MusicDNA.MusicDNAApplication;
import com.sdsmdg.harjot.MusicDNA.R;
import com.squareup.leakcanary.RefWatcher;
import java.util.ArrayList;
import java.util.List;
/**
* A simple {@link Fragment} subclass.
*/
public class LocalMusicViewPagerFragment extends Fragment {
ViewPager viewPager;
MyPageAdapter adapter;
TabLayout tabLayout;
ImageView backBtn;
public ImageView searchIcon;
public TextView fragTitle;
public EditText searchBox;
public boolean isSearchboxVisible = false;
public LocalMusicViewPagerFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_full_local_music, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
((HomeActivity) getActivity()).onQueryTextChange("");
isSearchboxVisible = false;
backBtn = (ImageView) view.findViewById(R.id.local_fragment_back_btn);
backBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getActivity().onBackPressed();
}
});
fragTitle = (TextView) view.findViewById(R.id.local_fragment_title);
if (SplashActivity.tf4 != null)
fragTitle.setTypeface(SplashActivity.tf4);
searchBox = (EditText) view.findViewById(R.id.local_fragment_search_box);
searchBox.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
((HomeActivity) getActivity()).onQueryTextChange(s.toString());
}
@Override
public void afterTextChanged(Editable s) {
}
});
searchIcon = (ImageView) view.findViewById(R.id.local_fragment_search_icon);
searchIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (isSearchboxVisible) {
searchBox.setText("");
searchBox.setVisibility(View.INVISIBLE);
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(getActivity().INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
searchIcon.setImageResource(R.drawable.ic_search);
fragTitle.setVisibility(View.VISIBLE);
} else {
searchBox.setVisibility(View.VISIBLE);
searchBox.requestFocus();
InputMethodManager imm = (InputMethodManager) getActivity().getSystemService(getActivity().INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
searchIcon.setImageResource(R.drawable.ic_cross_white);
fragTitle.setVisibility(View.INVISIBLE);
}
isSearchboxVisible = !isSearchboxVisible;
}
});
viewPager = (ViewPager) view.findViewById(R.id.viewpager);
tabLayout = (TabLayout) view.findViewById(R.id.tabs);
tabLayout.setBackgroundColor(Color.parseColor("#111111"));
tabLayout.setSelectedTabIndicatorColor(HomeActivity.themeColor);
viewPager.setAdapter(adapter);
tabLayout.setupWithViewPager(viewPager);
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
adapter = new MyPageAdapter(getChildFragmentManager());
adapter.addFragment(new LocalMusicFragment(), "Songs");
adapter.addFragment(new AlbumFragment(), "Albums");
adapter.addFragment(new ArtistFragment(), "Artists");
adapter.addFragment(new RecentlyAddedSongsFragment(), "Recent");
}
class MyPageAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public MyPageAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return this.fragments.get(position);
}
@Override
public int getCount() {
return this.fragments.size();
}
public void addFragment(Fragment fragment, String title) {
fragments.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
@Override
public void onDestroyView() {
super.onDestroyView();
RefWatcher refWatcher = MusicDNAApplication.getRefWatcher(getContext());
refWatcher.watch(this);
}
@Override
public void onDestroy() {
super.onDestroy();
RefWatcher refWatcher = MusicDNAApplication.getRefWatcher(getContext());
refWatcher.watch(this);
}
public Fragment getFragmentByPosition(int position) {
return (adapter != null) ? adapter.getItem(position) : null;
}
}