Settings drawer work
- Final visuals
- Show under status bar
- Fix activity flow surrounding drawer use
Change-Id: I161702219c26cabc6b2d1adbaa6fbfb1d9fd5b07
diff --git a/packages/SettingsLib/src/com/android/settingslib/drawer/SettingsDrawerActivity.java b/packages/SettingsLib/src/com/android/settingslib/drawer/SettingsDrawerActivity.java
index 5ffa581..1c032fa 100644
--- a/packages/SettingsLib/src/com/android/settingslib/drawer/SettingsDrawerActivity.java
+++ b/packages/SettingsLib/src/com/android/settingslib/drawer/SettingsDrawerActivity.java
@@ -25,6 +25,7 @@
import android.content.res.TypedArray;
import android.os.AsyncTask;
import android.os.Bundle;
+import android.provider.Settings;
import android.support.v4.widget.DrawerLayout;
import android.util.Log;
import android.util.Pair;
@@ -34,6 +35,7 @@
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
+import android.view.WindowManager.LayoutParams;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toolbar;
@@ -66,6 +68,8 @@
long startTime = System.currentTimeMillis();
+ getWindow().addFlags(LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
+ getWindow().addFlags(LayoutParams.FLAG_TRANSLUCENT_STATUS);
requestWindowFeature(Window.FEATURE_NO_TITLE);
super.setContentView(R.layout.settings_with_drawer);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
@@ -96,6 +100,16 @@
}
@Override
+ public void onBackPressed() {
+ if (mShowingMenu) {
+ // If we are showing the menu, then we are a top level activity and the back should
+ // kick back to settings home.
+ openTile(null);
+ }
+ super.onBackPressed();
+ }
+
+ @Override
public boolean onOptionsItemSelected(MenuItem item) {
if (mShowingMenu && mDrawerLayout != null && item.getItemId() == android.R.id.home
&& mDrawerAdapter.getCount() != 0) {
@@ -217,7 +231,9 @@
public boolean openTile(Tile tile) {
closeDrawer();
if (tile == null) {
- return false;
+ startActivity(new Intent(Settings.ACTION_SETTINGS).addFlags(
+ Intent.FLAG_ACTIVITY_CLEAR_TASK));
+ return true;
}
int numUserHandles = tile.userHandle.size();
if (numUserHandles > 1) {
@@ -226,10 +242,12 @@
} else if (numUserHandles == 1) {
// Show menu on top level items.
tile.intent.putExtra(EXTRA_SHOW_MENU, true);
+ tile.intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivityAsUser(tile.intent, tile.userHandle.get(0));
} else {
// Show menu on top level items.
tile.intent.putExtra(EXTRA_SHOW_MENU, true);
+ tile.intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(tile.intent);
}
return true;