Merge "Listen to category changes in preference fragment."
diff --git a/res/layout/bluetooth_pin_confirm.xml b/res/layout/bluetooth_pin_confirm.xml
index ebdf65d..1e5eb0b 100644
--- a/res/layout/bluetooth_pin_confirm.xml
+++ b/res/layout/bluetooth_pin_confirm.xml
@@ -27,6 +27,7 @@
android:paddingStart="16dip"
android:layout_height="match_parent"
android:layout_width="match_parent"
+ android:layout_marginTop="@dimen/bluetooth_dialog_padding_top"
android:orientation="vertical">
<TextView
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index f1c50d0..ba15a19 100755
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -204,6 +204,7 @@
<!-- Bluetooth Preferences -->
<dimen name="bluetooth_dialog_padding">8dip</dimen>
+ <dimen name="bluetooth_dialog_padding_top">20dp</dimen>
<integer name="bluetooth_name_length">32</integer>
<dimen name="bluetooth_pairing_padding">24dp</dimen>
<dimen name="bluetooth_pairing_edittext_padding">21dp</dimen>
diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java
index 575194b..b3f067a 100644
--- a/src/com/android/settings/SettingsPreferenceFragment.java
+++ b/src/com/android/settings/SettingsPreferenceFragment.java
@@ -46,6 +46,7 @@
import com.android.settings.applications.LayoutPreference;
import com.android.settings.core.InstrumentedFragment;
+import com.android.settings.core.instrumentation.Instrumentable;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settingslib.HelpUtils;
@@ -626,6 +627,9 @@
@Override
public int getMetricsCategory() {
+ if (mDialogCreatable == null) {
+ return Instrumentable.METRICS_CATEGORY_UNKNOWN;
+ }
final int metricsCategory = mDialogCreatable.getDialogMetricsCategory(mDialogId);
if (metricsCategory <= 0) {
throw new IllegalStateException("Dialog must provide a metrics category");
diff --git a/src/com/android/settings/bluetooth/BluetoothPairingDialog.java b/src/com/android/settings/bluetooth/BluetoothPairingDialog.java
index b176efd..fe48148 100755
--- a/src/com/android/settings/bluetooth/BluetoothPairingDialog.java
+++ b/src/com/android/settings/bluetooth/BluetoothPairingDialog.java
@@ -309,6 +309,8 @@
break;
case BluetoothDevice.PAIRING_VARIANT_CONSENT:
+ messagePairing.setVisibility(view.GONE);
+ break;
case BluetoothDevice.PAIRING_VARIANT_OOB_CONSENT:
messagePairing.setVisibility(View.VISIBLE);
break;
diff --git a/src/com/android/settings/core/instrumentation/Instrumentable.java b/src/com/android/settings/core/instrumentation/Instrumentable.java
index bd0bdf4..e48dbd7 100644
--- a/src/com/android/settings/core/instrumentation/Instrumentable.java
+++ b/src/com/android/settings/core/instrumentation/Instrumentable.java
@@ -18,6 +18,8 @@
public interface Instrumentable {
+ int METRICS_CATEGORY_UNKNOWN = 0;
+
/**
* Instrumented name for a view as defined in
* {@link com.android.internal.logging.MetricsProto.MetricsEvent}.
diff --git a/src/com/android/settings/core/instrumentation/VisibilityLoggerMixin.java b/src/com/android/settings/core/instrumentation/VisibilityLoggerMixin.java
index 101dccd..54183a2 100644
--- a/src/com/android/settings/core/instrumentation/VisibilityLoggerMixin.java
+++ b/src/com/android/settings/core/instrumentation/VisibilityLoggerMixin.java
@@ -24,6 +24,8 @@
import com.android.settings.core.lifecycle.events.OnResume;
import com.android.settings.overlay.FeatureFactory;
+import static com.android.settings.core.instrumentation.Instrumentable.METRICS_CATEGORY_UNKNOWN;
+
/**
* Logs visibility change of a fragment.
*/
@@ -50,14 +52,14 @@
@Override
public void onResume() {
- if (mMetricsFeature != null) {
+ if (mMetricsFeature != null && mMetricsCategory != METRICS_CATEGORY_UNKNOWN) {
mMetricsFeature.visible(null /* context */, mMetricsCategory);
}
}
@Override
public void onPause() {
- if (mMetricsFeature != null) {
+ if (mMetricsFeature != null && mMetricsCategory != METRICS_CATEGORY_UNKNOWN) {
mMetricsFeature.hidden(null /* context */, mMetricsCategory);
}
}
diff --git a/tests/robotests/src/com/android/settings/core/instrumentation/VisibilityLoggerMixinTest.java b/tests/robotests/src/com/android/settings/core/instrumentation/VisibilityLoggerMixinTest.java
index c009d0c..3fa8c94 100644
--- a/tests/robotests/src/com/android/settings/core/instrumentation/VisibilityLoggerMixinTest.java
+++ b/tests/robotests/src/com/android/settings/core/instrumentation/VisibilityLoggerMixinTest.java
@@ -27,6 +27,7 @@
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
+import static com.android.settings.core.instrumentation.Instrumentable.METRICS_CATEGORY_UNKNOWN;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.eq;
@@ -76,6 +77,17 @@
.hidden(any(Context.class), anyInt());
}
+ @Test
+ public void shouldNotLogIfMetricsCategoryIsUnknown() {
+ mMixin = new VisibilityLoggerMixin(METRICS_CATEGORY_UNKNOWN, mMetricsFeature);
+
+ mMixin.onResume();
+ mMixin.onPause();
+
+ verify(mMetricsFeature, never())
+ .hidden(any(Context.class), anyInt());
+ }
+
private final class TestInstrumentable implements Instrumentable {
public static final int TEST_METRIC = 12345;