diff options
| author | Matadeen Mishra <matade@codeaurora.org> | 2015-10-01 17:30:16 +0530 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2015-10-08 05:22:46 -0700 |
| commit | bf51c8b4d63658986ff6c43befb38dfcb0ea3a2d (patch) | |
| tree | a62ede432af7a712e5d7a1cffc5fe3d1e21754f1 | |
| parent | 584a7b64ad7468ae8f790d9d24cbf373dc869d38 (diff) | |
| download | packages_apps_Settings-bf51c8b4d63658986ff6c43befb38dfcb0ea3a2d.tar.gz packages_apps_Settings-bf51c8b4d63658986ff6c43befb38dfcb0ea3a2d.tar.bz2 packages_apps_Settings-bf51c8b4d63658986ff6c43befb38dfcb0ea3a2d.zip | |
Bluetooth: Add Manifest configure to fix settings crash issue.
Settings is crashed when press back key after rotating screen when
Bluetooth profile activity is opened. Add manifest configure to
enable screen orientation feature.
Settings: Change the text size of title when rotate screen
The text size of bluetooth settings' title is not changed when
rotate the screen.
According to the configuration, change the text size of title.
Change-Id: I3f08d0dd8181ffc8999ed29ac31dcc19a7dd56e9
CRs-Fixed: 917010
| -rw-r--r-- | AndroidManifest.xml | 6 | ||||
| -rwxr-xr-x | res/values/dimens.xml | 8 | ||||
| -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 |
5 files changed, 82 insertions, 1 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index b536b2015..cc78228d2 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -375,6 +375,12 @@ android:value="com.android.settings.ApnSettings" /> </activity> + <activity android:name=".SubSettings$BluetoothSubSettings" + android:taskAffinity="com.android.settings" + android:configChanges="orientation|keyboardHidden|screenSize" + android:parentActivityName="Settings"> + </activity> + <activity android:name="Settings$BluetoothSettingsActivity" android:label="@string/bluetooth_settings_title" android:taskAffinity=""> diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 2d860d7c7..9a2786c11 100755 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -210,6 +210,14 @@ <integer name="bluetooth_name_length">32</integer> <dimen name="bluetooth_pairing_padding">20dp</dimen> + <!-- Bluetooth ActionBar --> + <dimen name="bluetooth_landscape_title_textsize">14px</dimen> + <dimen name="bluetooth_portrait_title_textsize">20px</dimen> + <dimen name="bluetooth_landscape_actionbar_height">46px</dimen> + <dimen name="bluetooth_portrait_actionbar_height">56px</dimen> + <dimen name="bluetooth_landscape_switchbar_height">46px</dimen> + <dimen name="bluetooth_portrait_switchbar_height">56px</dimen> + <!-- WiFi Preferences --> <dimen name="wifi_divider_height">1px</dimen> <dimen name="wifi_preference_badge_padding">8dip</dimen> diff --git a/src/com/android/settings/SubSettings.java b/src/com/android/settings/SubSettings.java index 04955b2b0..13ead6e8f 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 d25d8c399..b26a5ec6f 100644 --- a/src/com/android/settings/Utils.java +++ b/src/com/android/settings/Utils.java @@ -91,6 +91,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; @@ -716,7 +717,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 2663e0777..ab5cf2696 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(); |
