diff options
Diffstat (limited to 'library/main/src/com/android')
4 files changed, 34 insertions, 9 deletions
diff --git a/library/main/src/com/android/car/setupwizardlib/CarSetupWizardBaseLayout.java b/library/main/src/com/android/car/setupwizardlib/CarSetupWizardBaseLayout.java index 526a5ca..e36980c 100644 --- a/library/main/src/com/android/car/setupwizardlib/CarSetupWizardBaseLayout.java +++ b/library/main/src/com/android/car/setupwizardlib/CarSetupWizardBaseLayout.java @@ -60,6 +60,8 @@ import java.util.Objects; class CarSetupWizardBaseLayout extends LinearLayout { private static final String TAG = CarSetupWizardBaseLayout.class.getSimpleName(); private static final int INVALID_COLOR = 0; + // For mirroring an image + private static final float IMAGE_MIRROR_ROTATION = 180.0f; private View mBackButton; private View mTitleBar; @@ -164,15 +166,22 @@ class CarSetupWizardBaseLayout extends LinearLayout { } LayoutInflater inflater = LayoutInflater.from(getContext()); - inflater.inflate(R.layout.car_setup_wizard_layout, this); + View view = inflater.inflate(R.layout.car_setup_wizard_layout, this); + // The layout will not be mirrored in RTL + view.setLayoutDirection(View.LAYOUT_DIRECTION_LTR); - // Set the back button visibility based on the custom attribute. setBackButton(findViewById(R.id.back_button)); Drawable drawable = mPartnerConfigHelper.getDrawable( getContext(), PartnerConfig.CONFIG_TOOLBAR_BUTTON_ICON_BACK); if (drawable != null) { ((ImageView) mBackButton).setImageDrawable(drawable); } + + if (shouldMirrorNavIcons()) { + Log.v(TAG, "Mirroring navigation icons"); + mBackButton.setRotation(IMAGE_MIRROR_ROTATION); + } + setBackButtonVisible(showBackButton); // Se the title bar. @@ -520,7 +529,6 @@ class CarSetupWizardBaseLayout extends LinearLayout { return; } int direction = TextUtils.getLayoutDirectionFromLocale(locale); - setLayoutDirection(direction); mToolbarTitle.setTextLocale(locale); mToolbarTitle.setLayoutDirection(direction); @@ -625,6 +633,15 @@ class CarSetupWizardBaseLayout extends LinearLayout { } } + @VisibleForTesting + boolean shouldMirrorNavIcons() { + return getResources().getConfiguration().getLayoutDirection() == View.LAYOUT_DIRECTION_RTL + && mPartnerConfigHelper.getBoolean( + getContext(), + PartnerConfig.CONFIG_TOOLBAR_NAV_ICON_MIRRORING_IN_RTL, + true); + } + /** Sets button type face with partner overlay if exists */ private void setButtonTypeFace(TextView button) { String fontFamily = mPartnerConfigHelper.getString( diff --git a/library/main/src/com/android/car/setupwizardlib/partner/PartnerConfig.java b/library/main/src/com/android/car/setupwizardlib/partner/PartnerConfig.java index 00c0ea3..27ea753 100644 --- a/library/main/src/com/android/car/setupwizardlib/partner/PartnerConfig.java +++ b/library/main/src/com/android/car/setupwizardlib/partner/PartnerConfig.java @@ -28,6 +28,9 @@ public enum PartnerConfig { CONFIG_TOOLBAR_BUTTON_ICON_BACK( PartnerConfigKey.KEY_TOOLBAR_BUTTON_ICON_BACK, ResourceType.DRAWABLE), + CONFIG_TOOLBAR_NAV_ICON_MIRRORING_IN_RTL( + PartnerConfigKey.KEY_TOOLBAR_NAV_BUTTON_MIRRORING_IN_RTL, ResourceType.BOOLEAN), + CONFIG_TOOLBAR_BUTTON_FONT_FAMILY( PartnerConfigKey.KEY_TOOLBAR_BUTTON_FONT_FAMILY, ResourceType.STRING), diff --git a/library/main/src/com/android/car/setupwizardlib/partner/PartnerConfigKey.java b/library/main/src/com/android/car/setupwizardlib/partner/PartnerConfigKey.java index 32caceb..8556fa7 100644 --- a/library/main/src/com/android/car/setupwizardlib/partner/PartnerConfigKey.java +++ b/library/main/src/com/android/car/setupwizardlib/partner/PartnerConfigKey.java @@ -26,6 +26,7 @@ import java.lang.annotation.RetentionPolicy; PartnerConfigKey.KEY_IMMERSIVE_MODE, PartnerConfigKey.KEY_TOOLBAR_BG_COLOR, PartnerConfigKey.KEY_TOOLBAR_BUTTON_ICON_BACK, + PartnerConfigKey.KEY_TOOLBAR_NAV_BUTTON_MIRRORING_IN_RTL, PartnerConfigKey.KEY_TOOLBAR_BUTTON_FONT_FAMILY, PartnerConfigKey.KEY_TOOLBAR_BUTTON_PADDING_HORIZONTAL, PartnerConfigKey.KEY_TOOLBAR_BUTTON_PADDING_VERTICAL, @@ -54,6 +55,9 @@ public @interface PartnerConfigKey { String KEY_TOOLBAR_BUTTON_ICON_BACK = "suw_compat_toolbar_button_icon_back"; + String KEY_TOOLBAR_NAV_BUTTON_MIRRORING_IN_RTL = + "suw_compat_toolbar_nav_button_mirroring_in_rtl"; + String KEY_TOOLBAR_BUTTON_FONT_FAMILY = "suw_compat_toolbar_button_font_family"; String KEY_TOOLBAR_BUTTON_TEXT_SIZE = "suw_compat_toolbar_button_text_size"; diff --git a/library/main/src/com/android/car/setupwizardlib/util/CarDrivingStateMonitor.java b/library/main/src/com/android/car/setupwizardlib/util/CarDrivingStateMonitor.java index ee6c8db..0cb667b 100644 --- a/library/main/src/com/android/car/setupwizardlib/util/CarDrivingStateMonitor.java +++ b/library/main/src/com/android/car/setupwizardlib/util/CarDrivingStateMonitor.java @@ -108,14 +108,14 @@ public class CarDrivingStateMonitor implements * Starts the monitor listening to driving state changes. */ public synchronized void startMonitor() { - if (isVerboseLoggable()) { - Log.v(TAG, "Starting monitor"); - } mMonitorStartedCount++; if (mMonitorStartedCount == 0) { + Log.w(TAG, "MonitorStartedCount was negative"); return; } mHandler.removeCallbacks(mDisconnectRunnable); + Log.i(TAG, String.format( + "Starting monitor, MonitorStartedCount = %d", mMonitorStartedCount)); if (mCar != null) { if (mCar.isConnected()) { try { @@ -189,12 +189,13 @@ public class CarDrivingStateMonitor implements } private void disconnectCarMonitor() { - if (isVerboseLoggable()) { - Log.v(TAG, "Timeout finished, disconnecting Car Monitor"); - } if (mMonitorStartedCount > 0) { + if (isVerboseLoggable()) { + Log.v(TAG, "MonitorStartedCount > 0, do nothing"); + } return; } + Log.i(TAG, "Disconnecting Car Monitor"); try { if (mRestrictionsManager != null) { mRestrictionsManager.unregisterListener(); |