package org.holoeverywhere.demo.fragments.about;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import org.holoeverywhere.app.ListFragment;
import org.holoeverywhere.demo.R;
import org.holoeverywhere.widget.ArrayAdapter;
import org.holoeverywhere.widget.TextView;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
public class LicensesFragment extends ListFragment {
private static final class License {
private String mLicenseText;
private final int mLicenseTextRawId;
private final String mProject;
public License(String project, int licenseTextRawId) {
mProject = project;
mLicenseTextRawId = licenseTextRawId;
}
}
private final class LicensesAdapter extends ArrayAdapter<License> {
public LicensesAdapter() {
super(getSupportActivity(), 0);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = getLayoutInflater().inflate(R.layout.license, parent, false);
}
License license = getItem(position);
TextView projectName = (TextView) convertView.findViewById(R.id.project);
projectName.setText(license.mProject);
TextView licenseText = (TextView) convertView.findViewById(R.id.licenseText);
if (license.mLicenseText == null) {
try {
InputStream is = getSupportActivity().getResources().openRawResource(
license.mLicenseTextRawId);
Reader reader = new InputStreamReader(is, "utf-8");
StringBuilder builder = new StringBuilder();
char[] buffer = new char[1024];
int c;
while ((c = reader.read(buffer)) > 0) {
builder.append(buffer, 0, c);
}
license.mLicenseText = builder.toString();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
licenseText.setText(license.mLicenseText);
return convertView;
}
}
private LicensesAdapter mAdapter;
private void addLicenses() {
mAdapter.add(new License("HoloEverywhere", R.raw.license_mit));
}
@Override
public void onResume() {
super.onResume();
getSupportActionBar().setSubtitle("Open source licenses");
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
setListAdapter(mAdapter = new LicensesAdapter());
addLicenses();
}
}