package com.duqing.missions.ui.main.home;
|
|
import android.content.Intent;
|
import android.os.Bundle;
|
import android.util.Log;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.widget.ImageView;
|
import android.widget.TextView;
|
|
import androidx.annotation.NonNull;
|
import androidx.annotation.Nullable;
|
import androidx.lifecycle.Observer;
|
import androidx.lifecycle.ViewModelProvider;
|
import androidx.recyclerview.widget.GridLayoutManager;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.RecyclerView;
|
|
import com.duqing.missions.base.BaseFragment;
|
import com.duqing.missions.databinding.FragmentHomeBinding;
|
import com.duqing.missions.ui.login.view.LoginActivity;
|
import com.duqing.missions.ui.main.home.adapter.MissionAdapter;
|
import com.duqing.missions.ui.main.home.adapter.MissionTopAdapter;
|
import com.duqing.missions.ui.main.home.model.MissionDesc;
|
import com.scwang.smart.refresh.footer.ClassicsFooter;
|
import com.scwang.smart.refresh.header.ClassicsHeader;
|
import com.scwang.smart.refresh.layout.SmartRefreshLayout;
|
import com.scwang.smart.refresh.layout.api.RefreshLayout;
|
import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener;
|
|
import java.util.List;
|
|
public class HomeFragment extends BaseFragment<FragmentHomeBinding> {
|
|
private HomeViewModel homeViewModel;
|
final String TAG = "HomeFragment";
|
|
|
@Override
|
public void initViews() {
|
homeViewModel = new ViewModelProvider(this).get(HomeViewModel.class);
|
binding.imgSearch.setOnClickListener(v -> startActivity(new Intent(getContext(), LoginActivity.class)));
|
final SmartRefreshLayout smartRefresh = binding.smartRefresh;
|
smartRefresh.setRefreshHeader(new ClassicsHeader(getContext()));
|
smartRefresh.setRefreshFooter(new ClassicsFooter(getContext()));
|
final TextView textView = binding.textRecommend;
|
final ImageView imgSearch = binding.imgSearch;
|
RecyclerView recyclerClassify = binding.recyclerClassify;
|
RecyclerView recyclerTop = binding.recyclerTop;
|
final RecyclerView recyclerRecommend = binding.recyclerRecommend;
|
recyclerRecommend.setLayoutManager(new LinearLayoutManager(getContext()));
|
LinearLayoutManager layoutManager = new LinearLayoutManager(getContext());
|
layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
|
recyclerClassify.setLayoutManager(layoutManager);
|
recyclerTop.setLayoutManager(new GridLayoutManager(getContext(),3));
|
smartRefresh.setOnRefreshLoadMoreListener(new OnRefreshLoadMoreListener() {
|
@Override
|
public void onLoadMore(@NonNull RefreshLayout refreshLayout) {
|
homeViewModel.onLoadMore();
|
}
|
|
@Override
|
public void onRefresh(@NonNull RefreshLayout refreshLayout) {
|
homeViewModel.onRefresh();
|
}
|
});
|
final MissionTopAdapter topAdapter = new MissionTopAdapter();
|
recyclerTop.setAdapter(topAdapter);
|
final MissionAdapter recommendAdapter = new MissionAdapter();
|
recyclerRecommend.setAdapter(recommendAdapter);
|
homeViewModel.getText().observe(getViewLifecycleOwner(), new Observer<String>() {
|
@Override
|
public void onChanged(@Nullable String s) {
|
textView.setText(s);
|
}
|
});
|
homeViewModel.getTopMissions().observe(getViewLifecycleOwner(), new Observer<List<MissionDesc>>() {
|
@Override
|
public void onChanged(List<MissionDesc> missionDescs) {
|
smartRefresh.finishRefresh();
|
topAdapter.setData(missionDescs);
|
}
|
});
|
homeViewModel.getRecommendMissions().observeForever(new Observer<List<MissionDesc>>() {
|
@Override
|
public void onChanged(List<MissionDesc> missionDescs) {
|
smartRefresh.finishLoadMore();
|
recommendAdapter.setData(missionDescs);
|
}
|
});
|
}
|
|
@Nullable
|
@Override
|
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
|
Log.e(TAG,"onCreateView");
|
return super.onCreateView(inflater, container, savedInstanceState);
|
}
|
|
@Override
|
public void onResume() {
|
super.onResume();
|
Log.e(TAG,"onResume");
|
}
|
|
@Override
|
public void onPause() {
|
super.onPause();
|
Log.e(TAG,"onPause");
|
}
|
|
@Override
|
public void onStop() {
|
super.onStop();
|
Log.e(TAG,"onStop");
|
}
|
|
@Override
|
public void onDestroyView() {
|
super.onDestroyView();
|
Log.e(TAG,"onDestroyView");
|
}
|
}
|