package com.alorma.github.ui.fragment.commit;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.alorma.github.R;
import com.alorma.github.sdk.bean.info.CommitInfo;
import com.alorma.github.ui.adapter.commit.CommitFilesAdapter;
import com.alorma.github.ui.fragment.base.BaseFragment;
import core.repositories.CommitFile;
import java.util.List;
public class CommitFilesFragment extends BaseFragment {
public static final String INFO = "INFO";
private RecyclerView recyclerView;
private UpdateReceiver updateReceiver;
private CommitFilesAdapter.OnFileRequestListener onFileRequestListener;
public static CommitFilesFragment newInstance(CommitInfo info) {
CommitFilesFragment f = new CommitFilesFragment();
Bundle b = new Bundle();
b.putParcelable(INFO, info);
f.setArguments(b);
return f;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.files_fragment, null);
}
@Override
protected int getLightTheme() {
return R.style.AppTheme_Repository;
}
@Override
protected int getDarkTheme() {
return R.style.AppTheme_Dark_Repository;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
if (getArguments() != null) {
recyclerView = (RecyclerView) view.findViewById(R.id.recycler);
recyclerView.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
getContent();
}
}
private void getContent() {
}
public void setFiles(List<CommitFile> files) {
if (getActivity() != null) {
CommitFilesAdapter adapter = new CommitFilesAdapter(LayoutInflater.from(getActivity()));
adapter.addAll(files);
adapter.setOnFileRequestListener(onFileRequestListener);
recyclerView.setAdapter(adapter);
}
}
public void reload() {
getContent();
}
@Override
public void onStart() {
super.onStart();
updateReceiver = new UpdateReceiver();
IntentFilter intentFilter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
getActivity().registerReceiver(updateReceiver, intentFilter);
}
@Override
public void onStop() {
super.onStop();
getActivity().unregisterReceiver(updateReceiver);
}
public void setOnFileRequestListener(CommitFilesAdapter.OnFileRequestListener onFileRequestListener) {
this.onFileRequestListener = onFileRequestListener;
}
public class UpdateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (isOnline(context)) {
reload();
}
}
public boolean isOnline(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfoMob = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
NetworkInfo netInfoWifi = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
return (netInfoMob != null && netInfoMob.isConnectedOrConnecting()) || (netInfoWifi != null && netInfoWifi.isConnectedOrConnecting());
}
}
}