Android Open Source - StravaFlow Base Activity






From Project

Back to project page StravaFlow.

License

The source code is released under:

MIT License

If you think the Android project StravaFlow listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package me.mattlogan.stravaflow.ui.activity;
// w  w w .j a  v  a  2s.  co  m
import android.app.ActionBar;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.os.Bundle;
import android.view.MenuItem;

import me.mattlogan.stravaflow.R;
import me.mattlogan.stravaflow.StravaFlowApplication;
import me.mattlogan.stravaflow.api.StravaApi;

public abstract class BaseActivity extends Activity
        implements FragmentManager.OnBackStackChangedListener, StravaApiInjector {

    FragmentManager fragmentManager;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.base);
        fragmentManager = getFragmentManager();
        fragmentManager.addOnBackStackChangedListener(this);
        if (savedInstanceState == null) {
            Fragment initialFragment = getInitialFragment();
            fragmentManager.beginTransaction()
                    .add(R.id.container, initialFragment,
                            initialFragment.getClass().getSimpleName())
                    .commit();
        } else {
            configureUpButton();
        }
    }

    protected abstract Fragment getInitialFragment();

    @Override
    public void onBackStackChanged() {
        configureUpButton();
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                fragmentManager.popBackStack();
                return true;
        }
        return super.onOptionsItemSelected(item);
    }

    void configureUpButton() {
        ActionBar actionBar = getActionBar();
        if (actionBar != null) {
            actionBar.setDisplayHomeAsUpEnabled(fragmentManager.getBackStackEntryCount() > 0);
        }
    }

    @Override
    public StravaApi getStravaApi() {
        return ((StravaFlowApplication) getApplication()).getStravaApi();
    }
}




Java Source Code List

me.mattlogan.stravaflow.ApplicationTest.java
me.mattlogan.stravaflow.StravaFlowApplication.java
me.mattlogan.stravaflow.api.StravaApi.java
me.mattlogan.stravaflow.api.model.AuthResponse.java
me.mattlogan.stravaflow.api.model.StravaActivity.java
me.mattlogan.stravaflow.api.model.StravaAthlete.java
me.mattlogan.stravaflow.api.util.ApiUtils.java
me.mattlogan.stravaflow.ui.activity.ActivitiesActivity.java
me.mattlogan.stravaflow.ui.activity.ActivitiesFragmentTest.java
me.mattlogan.stravaflow.ui.activity.AuthActivity.java
me.mattlogan.stravaflow.ui.activity.BaseActivity.java
me.mattlogan.stravaflow.ui.activity.LaunchActivity.java
me.mattlogan.stravaflow.ui.activity.StravaApiInjector.java
me.mattlogan.stravaflow.ui.fragment.ActivitiesFragment.java
me.mattlogan.stravaflow.ui.fragment.ActivityDetailFragment.java
me.mattlogan.stravaflow.ui.fragment.AuthFragment.java
me.mattlogan.stravaflow.ui.fragment.BaseFragment.java
me.mattlogan.stravaflow.ui.view.ActivitiesAdapter.java
me.mattlogan.stravaflow.util.DateUtils.java
me.mattlogan.stravaflow.util.DistanceUtils.java
me.mattlogan.stravaflow.util.PreferencesUtils.java
util.FragmentTestActivity.java
util.FragmentTestCase.java