diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2015-10-12 04:20:21 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2015-10-12 04:20:21 -0700 |
commit | b17d7c45fc19ef4c694dd8df999d41a5ce49052c (patch) | |
tree | 97cac7ce6106a4c76777905a0563c4e883918efe /src/com/android | |
parent | e8a9d3dcd0c71be29cca739201ef1e699683a291 (diff) | |
parent | bf51c8b4d63658986ff6c43befb38dfcb0ea3a2d (diff) | |
download | packages_apps_Settings-b17d7c45fc19ef4c694dd8df999d41a5ce49052c.zip packages_apps_Settings-b17d7c45fc19ef4c694dd8df999d41a5ce49052c.tar.gz packages_apps_Settings-b17d7c45fc19ef4c694dd8df999d41a5ce49052c.tar.bz2 |
Merge "Bluetooth: Add Manifest configure to fix settings crash issue."
Diffstat (limited to 'src/com/android')
-rw-r--r-- | src/com/android/settings/SubSettings.java | 1 | ||||
-rw-r--r-- | src/com/android/settings/Utils.java | 8 | ||||
-rw-r--r-- | src/com/android/settings/bluetooth/BluetoothSettings.java | 60 |
3 files changed, 68 insertions, 1 deletions
diff --git a/src/com/android/settings/SubSettings.java b/src/com/android/settings/SubSettings.java index 04955b2..13ead6e 100644 --- a/src/com/android/settings/SubSettings.java +++ b/src/com/android/settings/SubSettings.java @@ -35,4 +35,5 @@ public class SubSettings extends SettingsActivity { Log.d("SubSettings", "Launching fragment " + fragmentName); return true; } + public static class BluetoothSubSettings extends SubSettings { /* empty */ } } diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java index 1122591..b6d9414 100644 --- a/src/com/android/settings/Utils.java +++ b/src/com/android/settings/Utils.java @@ -92,6 +92,7 @@ import com.android.settings.UserAdapter.UserDetails; import com.android.settings.dashboard.DashboardTile; import com.android.settings.drawable.CircleFramedDrawable; import com.android.settingslib.applications.ApplicationsState; +import com.android.settings.bluetooth.BluetoothSettings; import java.io.IOException; import java.io.InputStream; @@ -717,7 +718,12 @@ public final class Utils { Bundle args, String titleResPackageName, int titleResId, CharSequence title, boolean isShortcut) { Intent intent = new Intent(Intent.ACTION_MAIN); - intent.setClass(context, SubSettings.class); + if (BluetoothSettings.class.getName().equals(fragmentName)) { + intent.setClass(context, SubSettings.BluetoothSubSettings.class); + intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_AS_SUBSETTING, true); + } else { + intent.setClass(context, SubSettings.class); + } intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT, fragmentName); intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_ARGUMENTS, args); intent.putExtra(SettingsActivity.EXTRA_SHOW_FRAGMENT_TITLE_RES_PACKAGE_NAME, diff --git a/src/com/android/settings/bluetooth/BluetoothSettings.java b/src/com/android/settings/bluetooth/BluetoothSettings.java index 2663e07..ab5cf26 100644 --- a/src/com/android/settings/bluetooth/BluetoothSettings.java +++ b/src/com/android/settings/bluetooth/BluetoothSettings.java @@ -18,6 +18,8 @@ package com.android.settings.bluetooth; import static android.os.UserManager.DISALLOW_CONFIG_BLUETOOTH; +import android.app.ActionBar; +import android.app.Activity; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.content.BroadcastReceiver; @@ -25,6 +27,7 @@ import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; +import android.content.res.Configuration; import android.content.res.Resources; import android.os.Bundle; import android.preference.Preference; @@ -34,13 +37,17 @@ import android.preference.PreferenceScreen; import android.provider.Settings; import android.text.Spannable; import android.text.style.TextAppearanceSpan; +import android.util.DisplayMetrics; import android.util.Log; +import android.util.TypedValue; import android.view.Gravity; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; +import android.view.ViewGroup.LayoutParams; import android.widget.TextView; +import android.widget.Toolbar; import com.android.internal.logging.MetricsLogger; import com.android.settings.LinkifyUtils; @@ -146,6 +153,59 @@ public final class BluetoothSettings extends DeviceListPreferenceFragment implem } @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + Activity activity = getActivity(); + float titleTextSize; + int actionBarHeight; + int switchBarHeight; + if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { + titleTextSize = activity.getResources().getDimensionPixelSize( + R.dimen.bluetooth_landscape_title_textsize); + switchBarHeight = activity.getResources().getDimensionPixelSize( + R.dimen.bluetooth_landscape_switchbar_height); + actionBarHeight = activity.getResources().getDimensionPixelSize( + R.dimen.bluetooth_landscape_actionbar_height); + } else { + titleTextSize = activity.getResources().getDimensionPixelSize( + R.dimen.bluetooth_portrait_title_textsize); + switchBarHeight = activity.getResources().getDimensionPixelSize( + R.dimen.bluetooth_portrait_switchbar_height); + actionBarHeight = activity.getResources().getDimensionPixelSize( + R.dimen.bluetooth_portrait_switchbar_height); + } + resetBarSize(titleTextSize, actionBarHeight, switchBarHeight); + } + + private void resetBarSize(float titleTextSize, int actionBarHeight, int switchBarHeight) { + Activity activity = getActivity(); + DisplayMetrics displayMetrics = Resources.getSystem().getDisplayMetrics(); + int titleId = Resources.getSystem().getIdentifier("action_bar", "id", "android"); + Toolbar toolbar = (Toolbar) activity.getWindow().findViewById(titleId); + TextView title = null; + if (toolbar != null) { + LayoutParams layoutParams = toolbar.getLayoutParams(); + layoutParams.height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, + actionBarHeight, displayMetrics); + for (int i = 0; i < toolbar.getChildCount(); ++i) { + if (toolbar.getChildAt(i) instanceof TextView) { + title = (TextView) toolbar.getChildAt(i); + } + Toolbar.LayoutParams childLayoutParams = (Toolbar.LayoutParams) toolbar.getChildAt( + i).getLayoutParams(); + childLayoutParams.gravity = Gravity.CENTER_VERTICAL; + } + } + if (title != null) + title.setTextSize(TypedValue.COMPLEX_UNIT_DIP, titleTextSize); + if (mSwitchBar != null) { + LayoutParams layoutParams = mSwitchBar.getLayoutParams(); + layoutParams.height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, + switchBarHeight, displayMetrics); + } + } + + @Override public void onDestroyView() { super.onDestroyView(); |