diff options
author | Richard MacGregor <rmacgregor@cyngn.com> | 2015-06-25 18:45:44 -0700 |
---|---|---|
committer | Steve Kondik <steve@cyngn.com> | 2016-11-02 17:38:51 -0700 |
commit | 2250ae7ee5e8ce66503359ccccd66ea7d1eb0013 (patch) | |
tree | 54eb60da541c09787a3310e4370693af3a0b36ae | |
parent | 6c6746d923b2c6b39ddb4f4f0368c4df6a39d7eb (diff) | |
download | android_packages_apps_CMFileManager-2250ae7ee5e8ce66503359ccccd66ea7d1eb0013.tar.gz android_packages_apps_CMFileManager-2250ae7ee5e8ce66503359ccccd66ea7d1eb0013.tar.bz2 android_packages_apps_CMFileManager-2250ae7ee5e8ce66503359ccccd66ea7d1eb0013.zip |
Replace back button with menu (hamburger)
Show menu button instead of back button.
Open drawer on click.
Change-Id: I81735b5d2df1fc2dfcd35aa0a228c0385cb39003
4 files changed, 61 insertions, 9 deletions
diff --git a/res/drawable/ic_menu.xml b/res/drawable/ic_menu.xml new file mode 100644 index 00000000..965fe452 --- /dev/null +++ b/res/drawable/ic_menu.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (c) 2015 The CyanogenMod Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="24dp" + android:height="24dp" + android:viewportWidth="24" + android:viewportHeight="24"> + + <path + android:fillColor="#FFFFFF" + android:pathData="M3,18h18v-2H3V18z M3,13h18v-2H3V13z M3,6v2h18V6H3z" /> +</vector>
\ No newline at end of file diff --git a/src/com/cyanogenmod/filemanager/activities/MainActivity.java b/src/com/cyanogenmod/filemanager/activities/MainActivity.java index 1c79a005..83d1936c 100755 --- a/src/com/cyanogenmod/filemanager/activities/MainActivity.java +++ b/src/com/cyanogenmod/filemanager/activities/MainActivity.java @@ -35,6 +35,7 @@ import android.support.v4.widget.DrawerLayout; import android.support.v7.app.ActionBarActivity; import android.support.v7.widget.Toolbar; import android.util.Log; +import android.view.Gravity; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; @@ -142,6 +143,8 @@ public class MainActivity extends ActionBarActivity private DrawerLayout mDrawerLayout; private NavigationView mNavigationDrawer; + private boolean mPopBackStack = false; + private static final int REQUEST_CODE_STORAGE_PERMS = 321; private boolean hasPermissions() { int res = checkCallingOrSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE); @@ -297,11 +300,12 @@ public class MainActivity extends ActionBarActivity switch (fragmentType) { case NAVIGATION: + mPopBackStack = false; currentFragment = new NavigationFragment(); break; case HOME: default: - // Default to HOME + mPopBackStack = false; currentFragment = HomeFragment.newInstance(); break; } @@ -518,4 +522,22 @@ public class MainActivity extends ActionBarActivity } } } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case android.R.id.home: + if (mPopBackStack) { + FragmentManager fm = getSupportFragmentManager(); + if (fm.getBackStackEntryCount() > 0) { + fm.popBackStack(); + } + } else { + mDrawerLayout.openDrawer(Gravity.START); + } + return true; + default: + return false; + } + } } diff --git a/src/com/cyanogenmod/filemanager/ui/fragments/HomeFragment.java b/src/com/cyanogenmod/filemanager/ui/fragments/HomeFragment.java index 38105d0d..e58d8b66 100644 --- a/src/com/cyanogenmod/filemanager/ui/fragments/HomeFragment.java +++ b/src/com/cyanogenmod/filemanager/ui/fragments/HomeFragment.java @@ -108,10 +108,12 @@ public class HomeFragment extends Fragment { public void onStart() { super.onStart(); - mToolBar = (Toolbar) mView.findViewById( - com.cyanogenmod.filemanager.R.id.material_toolbar); - ((ActionBarActivity) getActivity()).setSupportActionBar(mToolBar); - ((ActionBarActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true); + mToolBar = (Toolbar) mView.findViewById(R.id.material_toolbar); + ActionBarActivity actionBarActivity = (ActionBarActivity) getActivity(); + actionBarActivity.setSupportActionBar(mToolBar); + actionBarActivity.getSupportActionBar().setDisplayHomeAsUpEnabled(true); + actionBarActivity.getSupportActionBar().setHomeButtonEnabled(true); + actionBarActivity.getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_menu); initEasyModePlus(); } @@ -211,4 +213,4 @@ public class HomeFragment extends Fragment { startActivity(intent); } -}
\ No newline at end of file +} diff --git a/src/com/cyanogenmod/filemanager/ui/fragments/NavigationFragment.java b/src/com/cyanogenmod/filemanager/ui/fragments/NavigationFragment.java index 592c5d05..b2975b27 100644 --- a/src/com/cyanogenmod/filemanager/ui/fragments/NavigationFragment.java +++ b/src/com/cyanogenmod/filemanager/ui/fragments/NavigationFragment.java @@ -532,9 +532,11 @@ public class NavigationFragment extends Fragment super.onStart(); mToolBar = (Toolbar) mView.findViewById(R.id.material_toolbar); - ((ActionBarActivity) getActivity()).setSupportActionBar(mToolBar); - ((ActionBarActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true); - ((ActionBarActivity) getActivity()).getSupportActionBar().setHomeButtonEnabled(true); + ActionBarActivity actionBarActivity = (ActionBarActivity) getActivity(); + actionBarActivity.setSupportActionBar(mToolBar); + actionBarActivity.getSupportActionBar().setDisplayHomeAsUpEnabled(true); + actionBarActivity.getSupportActionBar().setHomeButtonEnabled(true); + actionBarActivity.getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_menu); //Initialize action bars initTitleActionBar(); |