package com.alorma.github.ui.activity.gists; import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.support.v4.app.FragmentTransaction; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import com.alorma.github.R; import com.alorma.github.sdk.bean.dto.response.Gist; import com.alorma.github.sdk.bean.dto.response.GistFile; import com.alorma.github.ui.activity.base.BackActivity; import com.alorma.github.ui.fragment.gists.GistDetailFragment; import java.util.TreeMap; public class GistDetailActivity extends BackActivity implements GistDetailFragment.GistDetailListener { private Toolbar toolbar; private GistDetailFragment detailFragment; private Gist gist; public static Intent createLauncherIntent(Context context, String id) { Intent intent = new Intent(context, GistDetailActivity.class); intent.putExtra(GistDetailFragment.GIST_ID, id); return intent; } @Override protected int getAppDarkTheme() { return R.style.AppTheme_Dark_Gists; } @Override protected int getAppLightTheme() { return R.style.AppTheme_Gists; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.generic_toolbar_responsive); toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); if (findViewById(R.id.content) != null) { findViewById(R.id.content).setBackgroundColor(Color.TRANSPARENT); } detailFragment = GistDetailFragment.newInstance(getIntent().getStringExtra(GistDetailFragment.GIST_ID)); detailFragment.setGistDetailListener(this); FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.replace(R.id.content, detailFragment); ft.commit(); } @Override public boolean onCreateOptionsMenu(Menu menu) { if (detailFragment != null && gist != null) { getMenuInflater().inflate(detailFragment.getMenuId(), menu); } return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { boolean result = super.onOptionsItemSelected(item); if (!result) { detailFragment.onOptionsItemSelected(item); } return true; } @Override public void onGistLoaded(Gist gist) { this.gist = gist; TreeMap<String, GistFile> filesMap = new TreeMap<>(gist.files); GistFile firstFile = filesMap.firstEntry().getValue(); toolbar.setTitle(firstFile.filename); toolbar.setSubtitle(getString(R.string.num_of_files, gist.files.size())); invalidateOptionsMenu(); } }