/*
* Artcodes recognises a different marker scheme that allows the
* creation of aesthetically pleasing, even beautiful, codes.
* Copyright (C) 2013-2016 The University of Nottingham
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published
* by the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package uk.ac.horizon.artcodes.fragment;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import java.lang.reflect.Field;
import uk.ac.horizon.artcodes.Feature;
import uk.ac.horizon.artcodes.GoogleAnalytics;
import uk.ac.horizon.artcodes.R;
import uk.ac.horizon.artcodes.adapter.FeatureAdapter;
import uk.ac.horizon.artcodes.databinding.ListBinding;
public class FeatureListFragment extends Fragment
{
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
ListBinding binding = ListBinding.inflate(inflater, container, false);
final FeatureAdapter adapter = new FeatureAdapter(getActivity());
binding.setAdapter(adapter);
final R.bool features = new R.bool();
final Field[] fields = features.getClass().getDeclaredFields();
for (Field field : fields)
{
try
{
addFeature(adapter, field.getInt(features));
}
catch (Exception e)
{
GoogleAnalytics.trackException(e);
}
}
final uk.ac.horizon.artcodes.scanner.R.bool scannerFeatures = new uk.ac.horizon.artcodes.scanner.R.bool();
final Field[] scannerFields = scannerFeatures.getClass().getDeclaredFields();
for (Field field : scannerFields)
{
try
{
addFeature(adapter, field.getInt(features));
}
catch (Exception e)
{
GoogleAnalytics.trackException(e);
}
}
return binding.getRoot();
}
@Override
public void onResume()
{
super.onResume();
GoogleAnalytics.trackScreen("View Features");
}
private void addFeature(FeatureAdapter adapter, int featureID)
{
Feature feature = Feature.get(getActivity(), featureID);
if (feature.getName().startsWith("feature_"))
{
adapter.add(feature);
}
}
}