package com.pennapps.labs.pennmobile;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.View;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.pennapps.labs.pennmobile.api.Labs;
import java.util.concurrent.atomic.AtomicInteger;
import butterknife.Bind;
/**
* Created by Jason on 1/26/2016.
*/
public abstract class SearchFavoriteTab extends ListFragment {
protected boolean fav;
protected String type;
protected ListView mListView;
protected MainActivity mActivity;
protected Labs mLabs;
private static final AtomicInteger sNextGeneratedId = new AtomicInteger(1);
protected @Bind(R.id.loadingPanel) RelativeLayout loadingPanel;
protected @Bind(R.id.no_results) TextView no_results;
protected @Bind(R.id.search_instructions) TextView search_instructions;
public SearchFavoriteTab() {
super();
}
@Override
public void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
fav = getArguments().getBoolean(getString(R.string.search_favorite), false);
type = getArguments().getString(getString(R.string.search_list), "");
mActivity = (MainActivity) getActivity();
mLabs = MainActivity.getLabsInstance();
}
public void processQuery(String query) {
if (search_instructions.getVisibility() == View.VISIBLE && !query.isEmpty()) {
search_instructions.setVisibility(View.GONE);
if(loadingPanel != null) {
loadingPanel.setVisibility(View.VISIBLE);
}
}
}
protected void noResults() {
if (loadingPanel != null) {
loadingPanel.setVisibility(View.GONE);
no_results.setVisibility(View.VISIBLE);
mListView.setVisibility(View.GONE);
search_instructions.setVisibility(View.GONE);
}
}
protected void notFavoriteInit() {
if (search_instructions != null) {
search_instructions.setVisibility(View.VISIBLE);
no_results.setVisibility(View.GONE);
loadingPanel.setVisibility(View.GONE);
mListView.setVisibility(View.GONE);
}
}
public abstract void initList();
public static int generateViewId() {
for (;;) {
final int result = sNextGeneratedId.get();
// aapt-generated IDs have the high byte nonzero; clamp to the range under that.
int newValue = result + 1;
if (newValue > 0x00FFFFFF) newValue = 1; // Roll over to 1, not 0.
if (sNextGeneratedId.compareAndSet(result, newValue)) {
return result;
}
}
}
}