Skip to content

Instantly share code, notes, and snippets.

@frogermcs
Last active November 19, 2015 17:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save frogermcs/ccfeff9b3341a59fa38c to your computer and use it in GitHub Desktop.
Save frogermcs/ccfeff9b3341a59fa38c to your computer and use it in GitHub Desktop.
FlatBuffers performance in Android - sources
@Override
public View getView(int position, View convertView, ViewGroup parent) {
RepositoryHolder holder;
if (convertView == null) {
convertView = inflater.inflate(R.layout.list_item_repo, parent, false);
holder = new RepositoryHolder(convertView);
convertView.setTag(holder);
} else {
holder = (RepositoryHolder) convertView.getTag();
}
holder.bindItemOnPosition(getItem(position));
return convertView;
}
holder.bindItemOnPosition(getItem(position));
public static void openWithRepos(Activity openingActivity, ReposList reposList) {
Intent intent = new Intent(openingActivity, ReposListActivity.class);
intent.putExtra(KEY_REPOS, reposList.getByteBuffer().array());
intent.putExtra(KEY_MODE, MODE_FLAT_AS_IS);
openingActivity.startActivity(intent);
}
public static void openWithReposJson(Activity openingActivity, ReposListJson reposListJson) {
Intent intent = new Intent(openingActivity, ReposListActivity.class);
intent.putExtra(KEY_REPOS, reposListJson);
intent.putExtra(KEY_MODE, MODE_JSON);
openingActivity.startActivity(intent);
}
static class RepositoryHolder {
@Bind(R.id.tvTitle)
TextView tvTitle;
@Bind(R.id.tvSubtitle)
TextView tvSubtitle;
public RepositoryHolder(View view) {
ButterKnife.bind(this, view);
}
public void bindItemOnPosition(Repo repository) {
tvTitle.setText(repository.name());
tvSubtitle.setText(repository.description());
}
}
static class FlatRepositoryViewHolder {
@Bind(R.id.tvTitle)
TextView tvTitle;
@Bind(R.id.tvSubtitle)
TextView tvSubtitle;
private ReposList reposList;
private Repo repository;
public FlatRepositoryViewHolder(View view, ReposList reposList, int itemPosition) {
ButterKnife.bind(this, view);
this.reposList = reposList;
repository = reposList.repos(itemPosition);
}
public void bindItemOnPosition(int itemPosition) {
repository = reposList.repos(repository, itemPosition);
bindRepositoryName(repository.name());
bindRepositoryDescription(repository.description());
}
}
static class RepositoryHolder {
@Bind(R.id.tvTitle)
TextView tvTitle;
@Bind(R.id.tvSubtitle)
TextView tvSubtitle;
public RepositoryHolder(View view) {
ButterKnife.bind(this, view);
}
public void bindItemOnPosition(RepoJson repository) {
tvTitle.setText(repository.name);
tvSubtitle.setText(repository.description);
}
}
ByteBuffer bb = ByteBuffer.wrap(bytes);
ReposList reposListFlat = frogermcs.io.flatbuffs.model.flat.ReposList.getRootAsReposList(bb);
ReposListJson reposListJson = new Gson().fromJson(reposStr, ReposListJson.class);
private void setupEasyFlatAdapter() {
byte[] reposByteArray = getIntent().getByteArrayExtra(KEY_REPOS);
reposList = ReposList.getRootAsReposList(ByteBuffer.wrap(reposByteArray));
FlatRepositoriesListAdapter repositoriesListAdapter = new FlatRepositoriesListAdapter(this);
lvRepositories.setAdapter(repositoriesListAdapter);
repositoriesListAdapter.setReposList(reposList);
}
private void setupJsonAdapter() {
reposListJson = getIntent().getParcelableExtra(KEY_REPOS);
JsonRepositoriesListAdapter repositoriesListAdapter = new JsonRepositoriesListAdapter(this);
lvRepositories.setAdapter(repositoriesListAdapter);
repositoriesListAdapter.setReposList(reposListJson);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment