Add proper 'up' affordance behavior

This commit is contained in:
YuviPanda 2013-02-22 17:41:29 +05:30
parent f5279d634e
commit 700bfee178
2 changed files with 18 additions and 5 deletions

View file

@ -5,6 +5,7 @@ import android.net.Uri;
import android.os.Environment; import android.os.Environment;
import android.os.IBinder; import android.os.IBinder;
import android.provider.MediaStore; import android.provider.MediaStore;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.LoaderManager; import android.support.v4.app.LoaderManager;
import android.support.v4.content.CursorLoader; import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader; import android.support.v4.content.Loader;
@ -30,7 +31,8 @@ public class ContributionsActivity
extends AuthenticatedActivity extends AuthenticatedActivity
implements LoaderManager.LoaderCallbacks<Cursor>, implements LoaderManager.LoaderCallbacks<Cursor>,
AdapterView.OnItemClickListener, AdapterView.OnItemClickListener,
MediaDetailPagerFragment.MediaDetailProvider { MediaDetailPagerFragment.MediaDetailProvider,
FragmentManager.OnBackStackChangedListener {
private final static int SELECT_FROM_GALLERY = 1; private final static int SELECT_FROM_GALLERY = 1;
private final static int SELECT_FROM_CAMERA = 2; private final static int SELECT_FROM_CAMERA = 2;
@ -97,8 +99,6 @@ public class ContributionsActivity
allContributions = getContentResolver().query(ContributionsContentProvider.BASE_URI, Contribution.Table.ALL_FIELDS, CONTRIBUTION_SELECTION, null, CONTRIBUTION_SORT); allContributions = getContentResolver().query(ContributionsContentProvider.BASE_URI, Contribution.Table.ALL_FIELDS, CONTRIBUTION_SELECTION, null, CONTRIBUTION_SORT);
getSupportLoaderManager().initLoader(0, null, this); getSupportLoaderManager().initLoader(0, null, this);
} }
@Override @Override
@ -109,6 +109,8 @@ public class ContributionsActivity
contributionsList = (ContributionsListFragment)getSupportFragmentManager().findFragmentById(R.id.contributionsListFragment); contributionsList = (ContributionsListFragment)getSupportFragmentManager().findFragmentById(R.id.contributionsListFragment);
getSupportFragmentManager().addOnBackStackChangedListener(this);
requestAuthToken(); requestAuthToken();
} }
@ -210,6 +212,11 @@ public class ContributionsActivity
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, lastGeneratedCaptureURI); takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, lastGeneratedCaptureURI);
startActivityForResult(takePictureIntent, SELECT_FROM_CAMERA); startActivityForResult(takePictureIntent, SELECT_FROM_CAMERA);
return true; return true;
case android.R.id.home:
if(mediaDetails.isVisible()) {
getSupportFragmentManager().popBackStack();
}
return true;
default: default:
return super.onOptionsItemSelected(item); return super.onOptionsItemSelected(item);
} }
@ -258,4 +265,12 @@ public class ContributionsActivity
} }
return allContributions.getCount(); return allContributions.getCount();
} }
public void onBackStackChanged() {
if(mediaDetails.isVisible()) {
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
} else {
getSupportActionBar().setDisplayHomeAsUpEnabled(false);
}
}
} }

View file

@ -59,8 +59,6 @@ public class MediaDetailPagerFragment extends SherlockFragment {
setHasOptionsMenu(true); setHasOptionsMenu(true);
} }
@Override @Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater); super.onCreateOptionsMenu(menu, inflater);