package com.quinn.githubknife.ui.activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.support.v7.widget.Toolbar; import android.view.MenuItem; import com.quinn.githubknife.R; import com.quinn.githubknife.ui.BaseActivity; import com.quinn.githubknife.ui.fragments.BranchesFragment; import com.quinn.githubknife.ui.fragments.CollaboratorsFragment; import com.quinn.githubknife.ui.fragments.FollowerFragment; import com.quinn.githubknife.ui.fragments.FollowingFragment; import com.quinn.githubknife.ui.fragments.ForkersFragment; import com.quinn.githubknife.ui.fragments.StargazersFragment; import com.quinn.githubknife.ui.fragments.StarredRepoFragment; import com.quinn.githubknife.ui.fragments.TreeFragment; import com.quinn.githubknife.ui.fragments.UserEventFragment; import com.quinn.githubknife.ui.fragments.UserRepoFragment; import com.quinn.githubknife.utils.L; import butterknife.Bind; import butterknife.ButterKnife; public class FoActivity extends BaseActivity { private static final String TAG = FoActivity.class.getSimpleName(); @Bind(R.id.toolbar) Toolbar toolbar; private String user; private String repo; private String contentType; public static void launch(Context context, Bundle bundle){ Intent intent = new Intent(context,FoActivity.class); intent.putExtras(bundle); context.startActivity(intent); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_fo); ButterKnife.bind(this); Bundle bundle = getIntent().getExtras(); if(bundle != null){ user = (String)bundle.getString("user"); repo = (String)bundle.getString("repo"); contentType = bundle.getString("fragment"); }else if(savedInstanceState != null){ user = (String)savedInstanceState.getString("user"); repo = (String)savedInstanceState.getString("repo"); contentType = savedInstanceState.getString("fragment"); } L.i(TAG, bundle.toString()); toolbar.setTitle(user); if(repo != null){ toolbar.setTitle(repo); } toolbar.setSubtitle(subTitle(contentType)); setSupportActionBar(toolbar); getSupportActionBar().setHomeButtonEnabled(true); //设置返回键可用 getSupportActionBar().setDisplayHomeAsUpEnabled(true); FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); Fragment fragment = contentFragment(contentType); fragmentTransaction.add(R.id.container,fragment); fragmentTransaction.commit(); } public Fragment contentFragment(String type){ if(type.equals(FollowerFragment.TAG)){ return FollowerFragment.getInstance(user); }else if(type.equals(FollowingFragment.TAG)){ return FollowingFragment.getInstance(user); }else if(type.equals(StarredRepoFragment.TAG)){ return StarredRepoFragment.getInstance(user); }else if (type.equals(UserRepoFragment.TAG)) { return UserRepoFragment.getInstance(user); }else if(type.equals(StargazersFragment.TAG)){ return StargazersFragment.getInstance(user, repo); }else if(type.equals(ForkersFragment.TAG)){ return ForkersFragment.getInstance(user, repo); }else if(type.equals(CollaboratorsFragment.TAG)){ return CollaboratorsFragment.getInstance(user, repo); }else if(type.equals(TreeFragment.TAG)){ //return TreeFragment.getJsonRetrofitInstance(user,repo,branch); }else if(type.equals(BranchesFragment.TAG)){ return BranchesFragment.getInstance(user,repo); }else if(type.equals(UserEventFragment.TAG)){ return UserEventFragment.getInstance(user); } return null; } public String subTitle(String type){ if(type.equals(FollowerFragment.TAG)){ return "Followers"; }else if(type.equals(FollowingFragment.TAG)){ return "Following"; }else if(type.equals(StarredRepoFragment.TAG)){ return "Starred"; }else if (type.equals(UserRepoFragment.TAG)) { return "Repository"; }else if (type.equals(StargazersFragment.TAG)) { return "stargazers"; }else if (type.equals(ForkersFragment.TAG)) { return "forkers"; }else if (type.equals(CollaboratorsFragment.TAG)){ return "Contributors"; }else if (type.equals(TreeFragment.TAG)){ return "Code"; }else if(type.equals(BranchesFragment.TAG)){ return "Branch"; }else if(type.equals(UserEventFragment.TAG)){ return "Event"; } return null; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()) { case android.R.id.home: onBackPressed(); return true; } return super.onOptionsItemSelected(item); } @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState); outState.putString("user", user); outState.putString("repo", repo); outState.putString("fragment",contentType); } }