summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatadeen Mishra <matade@codeaurora.org>2015-10-01 17:30:16 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2015-10-08 05:22:46 -0700
commitbf51c8b4d63658986ff6c43befb38dfcb0ea3a2d (patch)
treea62ede432af7a712e5d7a1cffc5fe3d1e21754f1
parent584a7b64ad7468ae8f790d9d24cbf373dc869d38 (diff)
downloadpackages_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.xml6
-rwxr-xr-xres/values/dimens.xml8
-rw-r--r--src/com/android/settings/SubSettings.java1
-rw-r--r--src/com/android/settings/Utils.java8
-rw-r--r--src/com/android/settings/bluetooth/BluetoothSettings.java60
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();