84.10 - Beta (84110)

This commit is contained in:
Juby210 2021-07-23 22:35:14 +02:00
parent aba2da8e06
commit 09492487ce
16378 changed files with 2 additions and 1469946 deletions

View file

@ -10,8 +10,8 @@ android {
applicationId 'com.discord'
minSdkVersion 21
targetSdkVersion 29
versionCode 84109
versionName "84.9 - Beta"
versionCode 84110
versionName "84.10 - Beta"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

View file

@ -1,272 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="84109" android:versionName="84.9 - Beta" android:installLocation="auto" android:compileSdkVersion="30" android:compileSdkVersionCodename="11" package="com.discord" platformBuildVersionCode="30" platformBuildVersionName="11">
<uses-sdk android:minSdkVersion="21" android:targetSdkVersion="29"/>
<uses-feature android:name="android.hardware.camera" android:required="false"/>
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false"/>
<uses-feature android:name="android.hardware.faketouch" android:required="false"/>
<uses-feature android:name="android.hardware.microphone" android:required="false"/>
<uses-feature android:name="android.hardware.bluetooth" android:required="false"/>
<uses-permission android:name="com.android.vending.BILLING"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BROADCAST_STICKY"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<permission android:label="@string/app_permission_connect_label" android:name="com.discord.permission.CONNECT" android:protectionLevel="dangerous" android:description="@string/app_permission_connect_desc"/>
<uses-feature android:name="android.hardware.camera.any" android:required="false"/>
<queries>
<package android:name="com.samsung.android.game.gametools"/>
<package android:name="com.samsung.android.game.gamehome"/>
<intent>
<action android:name="android.support.customtabs.action.CustomTabsService"/>
</intent>
</queries>
<uses-feature android:name="android.hardware.camera.front" android:required="false"/>
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
<uses-permission android:name="com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<application android:theme="@style/res_2131951648_apptheme_dark" android:label="@string/discord" android:icon="@mipmap/ic_logo_square_beta" android:name="com.discord.app.App" android:allowBackup="false" android:largeHeap="true" android:supportsRtl="true" android:networkSecurityConfig="@xml/network_security_config" android:roundIcon="@mipmap/ic_logo_round_beta" android:appCategory="social" android:appComponentFactory="androidx.core.app.CoreComponentFactory">
<activity android:theme="@style/res_2131951669_apptheme_translucent" android:name="com.discord.samsung.SamsungConnectActivity"/>
<activity android:theme="@style/res_2131951648_apptheme_dark" android:name="com.discord.app.AppActivity" android:screenOrientation="fullUser" android:windowSoftInputMode="stateHidden|adjustResize"/>
<activity android:theme="@style/res_2131951659_apptheme_loading" android:name="com.discord.app.AppActivity$Main" android:exported="true" android:launchMode="singleTask" android:screenOrientation="fullUser" android:windowSoftInputMode="stateHidden|adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="https" android:host="*.discord.com" android:pathPattern="/app"/>
<data android:scheme="https" android:host="discord.com" android:pathPattern="/app"/>
<data android:scheme="https" android:host="*.discord.com" android:pathPattern="/gifts/.*"/>
<data android:scheme="https" android:host="discord.com" android:pathPattern="/gifts/.*"/>
<data android:scheme="https" android:host="*.discord.com" android:pathPattern="/invite/.*"/>
<data android:scheme="https" android:host="discord.com" android:pathPattern="/invite/.*"/>
<data android:scheme="http" android:host="discord.com" android:pathPattern="/invite/.*"/>
<data android:scheme="https" android:host="*.discord.com" android:pathPattern="/template/.*"/>
<data android:scheme="https" android:host="discord.com" android:pathPattern="/template/.*"/>
<data android:scheme="http" android:host="discord.com" android:pathPattern="/template/.*"/>
<data android:scheme="https" android:host="*.discord.com" android:pathPattern="/channels/.*"/>
<data android:scheme="https" android:host="discord.com" android:pathPattern="/channels/.*"/>
<data android:scheme="http" android:host="discord.com" android:pathPattern="/channels/.*"/>
<data android:scheme="https" android:host="*.discord.com" android:pathPattern="/users/.*"/>
<data android:scheme="https" android:host="discord.com" android:pathPattern="/users/.*"/>
<data android:scheme="https" android:host="*.discord.com" android:pathPattern="/feature/.*"/>
<data android:scheme="https" android:host="discord.com" android:pathPattern="/feature/.*"/>
<data android:scheme="https" android:host="*.discord.com" android:pathPattern="/discovery"/>
<data android:scheme="https" android:host="discord.com" android:pathPattern="/discovery"/>
<data android:scheme="https" android:host="discord.com" android:pathPattern="/query/.*"/>
<data android:scheme="https" android:host="*.discord.com" android:pathPattern="/query/.*"/>
<data android:scheme="http" android:host="discord.com" android:pathPattern="/ra/.*"/>
<data android:scheme="https" android:host="discord.com" android:pathPattern="/ra/.*"/>
<data android:scheme="https" android:host="*.discordapp.com" android:pathPattern="/app"/>
<data android:scheme="https" android:host="discordapp.com" android:pathPattern="/app"/>
<data android:scheme="https" android:host="*.discordapp.com" android:pathPattern="/gifts/.*"/>
<data android:scheme="https" android:host="discordapp.com" android:pathPattern="/gifts/.*"/>
<data android:scheme="https" android:host="*.discordapp.com" android:pathPattern="/invite/.*"/>
<data android:scheme="https" android:host="discordapp.com" android:pathPattern="/invite/.*"/>
<data android:scheme="http" android:host="discordapp.com" android:pathPattern="/invite/.*"/>
<data android:scheme="https" android:host="*.discordapp.com" android:pathPattern="/template/.*"/>
<data android:scheme="https" android:host="discordapp.com" android:pathPattern="/template/.*"/>
<data android:scheme="http" android:host="discordapp.com" android:pathPattern="/template/.*"/>
<data android:scheme="https" android:host="*.discordapp.com" android:pathPattern="/channels/.*"/>
<data android:scheme="https" android:host="discordapp.com" android:pathPattern="/channels/.*"/>
<data android:scheme="http" android:host="discordapp.com" android:pathPattern="/channels/.*"/>
<data android:scheme="https" android:host="*.discordapp.com" android:pathPattern="/users/.*"/>
<data android:scheme="https" android:host="discordapp.com" android:pathPattern="/users/.*"/>
<data android:scheme="https" android:host="discordapp.com" android:pathPattern="/discovery"/>
<data android:scheme="https" android:host="*.discordapp.com" android:pathPattern="/discovery"/>
<data android:scheme="http" android:host="discordapp.com" android:pathPattern="/ra/.*"/>
<data android:scheme="https" android:host="discordapp.com" android:pathPattern="/ra/.*"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="discord" android:host="app" android:pathPattern="/.*"/>
<data android:scheme="https" android:host="discord.gift" android:pathPattern="/.*"/>
<data android:scheme="http" android:host="discord.gift" android:pathPattern="/.*"/>
<data android:scheme="https" android:host="discord.gg" android:pathPattern="/.*"/>
<data android:scheme="http" android:host="discord.gg" android:pathPattern="/.*"/>
<data android:scheme="https" android:host="discord.new" android:pathPattern="/.*"/>
<data android:scheme="http" android:host="discord.new" android:pathPattern="/.*"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="discord" android:host="action" android:pathPattern="/oauth2/authorize"/>
<data android:scheme="discord" android:host="action" android:pathPattern="/connect/authorize"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="https" android:host="discord.com" android:pathPattern="/connect/authorize"/>
<data android:scheme="https" android:host="*.discord.com" android:pathPattern="/connect/authorize"/>
</intent-filter>
<meta-data android:name="android.app.shortcuts" android:resource="@xml/shortcuts"/>
</activity>
<activity android:name="com.discord.app.AppActivity$Call" android:excludeFromRecents="true" android:launchMode="singleTask"/>
<activity android:name="com.discord.app.AppActivity$IncomingCall" android:excludeFromRecents="true" android:launchMode="singleTask" android:showOnLockScreen="true" android:showWhenLocked="true" android:turnScreenOn="true"/>
<activity android:theme="@style/res_2131951659_apptheme_loading" android:label="@string/discord" android:name="com.discord.app.AppActivity$AppAction" android:exported="true" android:launchMode="standard" android:windowSoftInputMode="stateHidden|adjustResize">
<intent-filter>
<action android:name="com.discord.intent.action.SDK"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.OPENABLE"/>
<data android:scheme="discord" android:host="sdk" android:pathPattern="/.*"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<action android:name="android.intent.action.SEND_MULTIPLE"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.OPENABLE"/>
<data android:mimeType="*/*"/>
</intent-filter>
<meta-data android:name="android.service.chooser.chooser_target_service" android:value="androidx.sharetarget.ChooserTargetServiceCompat"/>
</activity>
<activity android:name="com.facebook.flipper.android.diagnostics.FlipperDiagnosticActivity" android:exported="true"/>
<service android:name="com.discord.utilities.fcm.NotificationClient$FCMMessagingService" android:exported="false">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
<action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
</intent-filter>
</service>
<service android:name="com.discord.app.DiscordConnectService" android:permission="com.discord.permission.CONNECT" android:exported="true">
<intent-filter>
<action android:name="com.discord.intent.action.CONNECT"/>
<data android:scheme="discord" android:host="app" android:pathPattern="/connect/.*"/>
</intent-filter>
</service>
<service android:name="com.discord.utilities.voice.DiscordOverlayService" android:exported="false"/>
<meta-data android:name="com.discord.features.FLAG" android:value="1"/>
<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@drawable/asset_default_avatar_64dp"/>
<meta-data android:name="com.google.firebase.messaging.default_notification_color" android:resource="@color/brand_new_500"/>
<receiver android:name="com.discord.utilities.fcm.NotificationActions" android:exported="false">
<intent-filter>
<action android:name="com.discord.intent.action.ENQUEUE_WORK"/>
<action android:name="com.discord.intent.action.NOTIFICATION_DELETED"/>
<action android:name="com.discord.intent.action.NOTIFICATION_CANCEL"/>
</intent-filter>
</receiver>
<receiver android:name="com.discord.utilities.io.NetworkUtils$NetworkDownloadReceiver" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.DOWNLOAD_COMPLETE"/>
</intent-filter>
</receiver>
<service android:name="com.discord.utilities.voice.VoiceEngineForegroundService" android:foregroundServiceType="mediaProjection"/>
<provider android:name="androidx.core.content.FileProvider" android:exported="false" android:authorities="com.discord.file-provider" android:grantUriPermissions="true">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/file_paths"/>
</provider>
<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="true"/>
<meta-data android:name="com.google.android.nearby.messages.API_KEY" android:value="AIzaSyD-4L6bgKMixqBRtrG2UktVXK6IexXlsog"/>
<meta-data android:name="com.google.android.actions" android:resource="@xml/actions"/>
<meta-data android:name="libdiscord_version" android:value="89.0.6-poll-devices-fix"/>
<activity android:theme="@style/res_2131952267_theme_appcompat_light_noactionbar" android:name="com.yalantis.ucrop.UCropActivity"/>
<service android:name="androidx.sharetarget.ChooserTargetServiceCompat" android:permission="android.permission.BIND_CHOOSER_TARGET_SERVICE">
<intent-filter>
<action android:name="android.service.chooser.ChooserTargetService"/>
</intent-filter>
</service>
<receiver android:name="com.google.android.gms.analytics.AnalyticsReceiver" android:enabled="true" android:exported="false"/>
<service android:name="com.google.android.gms.analytics.AnalyticsService" android:enabled="true" android:exported="false"/>
<service android:name="com.google.android.gms.analytics.AnalyticsJobService" android:permission="android.permission.BIND_JOB_SERVICE" android:enabled="true" android:exported="false"/>
<activity android:theme="@android:style/Theme.Translucent.NoTitleBar" android:name="com.google.android.gms.auth.api.signin.internal.SignInHubActivity" android:exported="false" android:excludeFromRecents="true"/>
<service android:name="com.google.android.gms.auth.api.signin.RevocationBoundService" android:permission="com.google.android.gms.auth.api.signin.permission.REVOCATION_NOTIFICATION" android:exported="true" android:visibleToInstantApps="true"/>
<service android:name="com.google.firebase.components.ComponentDiscoveryService" android:exported="false" android:directBootAware="true">
<meta-data android:name="com.google.firebase.components:com.google.firebase.dynamiclinks.internal.FirebaseDynamicLinkRegistrar" android:value="com.google.firebase.components.ComponentRegistrar"/>
<meta-data android:name="com.google.firebase.components:com.google.firebase.messaging.ktx.FirebaseMessagingKtxRegistrar" android:value="com.google.firebase.components.ComponentRegistrar"/>
<meta-data android:name="com.google.firebase.components:com.google.firebase.messaging.FirebaseMessagingRegistrar" android:value="com.google.firebase.components.ComponentRegistrar"/>
<meta-data android:name="com.google.firebase.components:com.google.firebase.iid.Registrar" android:value="com.google.firebase.components.ComponentRegistrar"/>
<meta-data android:name="com.google.firebase.components:com.google.firebase.analytics.connector.internal.AnalyticsConnectorRegistrar" android:value="com.google.firebase.components.ComponentRegistrar"/>
<meta-data android:name="com.google.firebase.components:com.google.firebase.crashlytics.ndk.CrashlyticsNdkRegistrar" android:value="com.google.firebase.components.ComponentRegistrar"/>
<meta-data android:name="com.google.firebase.components:com.google.firebase.crashlytics.CrashlyticsRegistrar" android:value="com.google.firebase.components.ComponentRegistrar"/>
<meta-data android:name="com.google.firebase.components:com.google.firebase.ktx.FirebaseCommonKtxRegistrar" android:value="com.google.firebase.components.ComponentRegistrar"/>
<meta-data android:name="com.google.firebase.components:com.google.firebase.installations.FirebaseInstallationsRegistrar" android:value="com.google.firebase.components.ComponentRegistrar"/>
<meta-data android:name="com.google.firebase.components:com.google.firebase.datatransport.TransportRegistrar" android:value="com.google.firebase.components.ComponentRegistrar"/>
</service>
<service android:name="com.google.firebase.messaging.FirebaseMessagingService" android:exported="false" android:directBootAware="true">
<intent-filter android:priority="-500">
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
<receiver android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver" android:permission="com.google.android.c2dm.permission.SEND" android:exported="true">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE"/>
</intent-filter>
</receiver>
<activity android:theme="@android:style/Theme.Translucent.NoTitleBar" android:name="com.google.android.gms.common.api.GoogleApiActivity" android:exported="false"/>
<receiver android:name="com.google.android.gms.measurement.AppMeasurementReceiver" android:enabled="true" android:exported="false"/>
<service android:name="com.google.android.gms.measurement.AppMeasurementService" android:enabled="true" android:exported="false"/>
<service android:name="com.google.android.gms.measurement.AppMeasurementJobService" android:permission="android.permission.BIND_JOB_SERVICE" android:enabled="true" android:exported="false"/>
<provider android:name="com.google.firebase.provider.FirebaseInitProvider" android:exported="false" android:authorities="com.discord.firebaseinitprovider" android:initOrder="100" android:directBootAware="true"/>
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
<provider android:name="androidx.work.impl.WorkManagerInitializer" android:exported="false" android:multiprocess="true" android:authorities="com.discord.workmanager-init" android:directBootAware="false"/>
<service android:name="androidx.work.impl.background.systemalarm.SystemAlarmService" android:enabled="@bool/enable_system_alarm_service_default" android:exported="false" android:directBootAware="false"/>
<service android:name="androidx.work.impl.background.systemjob.SystemJobService" android:permission="android.permission.BIND_JOB_SERVICE" android:enabled="@bool/enable_system_job_service_default" android:exported="true" android:directBootAware="false"/>
<service android:name="androidx.work.impl.foreground.SystemForegroundService" android:enabled="@bool/enable_system_foreground_service_default" android:exported="false" android:directBootAware="false"/>
<receiver android:name="androidx.work.impl.utils.ForceStopRunnable$BroadcastReceiver" android:enabled="true" android:exported="false" android:directBootAware="false"/>
<receiver android:name="androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryChargingProxy" android:enabled="false" android:exported="false" android:directBootAware="false">
<intent-filter>
<action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>
<action android:name="android.intent.action.ACTION_POWER_DISCONNECTED"/>
</intent-filter>
</receiver>
<receiver android:name="androidx.work.impl.background.systemalarm.ConstraintProxy$BatteryNotLowProxy" android:enabled="false" android:exported="false" android:directBootAware="false">
<intent-filter>
<action android:name="android.intent.action.BATTERY_OKAY"/>
<action android:name="android.intent.action.BATTERY_LOW"/>
</intent-filter>
</receiver>
<receiver android:name="androidx.work.impl.background.systemalarm.ConstraintProxy$StorageNotLowProxy" android:enabled="false" android:exported="false" android:directBootAware="false">
<intent-filter>
<action android:name="android.intent.action.DEVICE_STORAGE_LOW"/>
<action android:name="android.intent.action.DEVICE_STORAGE_OK"/>
</intent-filter>
</receiver>
<receiver android:name="androidx.work.impl.background.systemalarm.ConstraintProxy$NetworkStateProxy" android:enabled="false" android:exported="false" android:directBootAware="false">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
</intent-filter>
</receiver>
<receiver android:name="androidx.work.impl.background.systemalarm.RescheduleReceiver" android:enabled="false" android:exported="false" android:directBootAware="false">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="android.intent.action.TIME_SET"/>
<action android:name="android.intent.action.TIMEZONE_CHANGED"/>
</intent-filter>
</receiver>
<receiver android:name="androidx.work.impl.background.systemalarm.ConstraintProxyUpdateReceiver" android:enabled="@bool/enable_system_alarm_service_default" android:exported="false" android:directBootAware="false">
<intent-filter>
<action android:name="androidx.work.impl.background.systemalarm.UpdateProxies"/>
</intent-filter>
</receiver>
<receiver android:name="androidx.work.impl.diagnostics.DiagnosticsReceiver" android:permission="android.permission.DUMP" android:enabled="true" android:exported="true" android:directBootAware="false">
<intent-filter>
<action android:name="androidx.work.diagnostics.REQUEST_DIAGNOSTICS"/>
</intent-filter>
</receiver>
<service android:name="com.google.android.datatransport.runtime.backends.TransportBackendDiscovery" android:exported="false">
<meta-data android:name="backend:com.google.android.datatransport.cct.CctBackendFactory" android:value="cct"/>
</service>
<service android:name="com.google.android.datatransport.runtime.scheduling.jobscheduling.JobInfoSchedulerService" android:permission="android.permission.BIND_JOB_SERVICE" android:exported="false"/>
<receiver android:name="com.google.android.datatransport.runtime.scheduling.jobscheduling.AlarmManagerSchedulerBroadcastReceiver" android:exported="false"/>
<service android:name="androidx.room.MultiInstanceInvalidationService" android:exported="false" android:directBootAware="true"/>
<meta-data android:name="com.google.android.play.billingclient.version" android:value="3.0.3"/>
<activity android:theme="@android:style/Theme.Translucent.NoTitleBar" android:name="com.android.billingclient.api.ProxyBillingActivity" android:exported="false" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize"/>
<meta-data android:name="com.android.vending.derived.apk.id" android:value="1"/>
</application>
</manifest>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1 +0,0 @@
[{"label":"Alberta","value":"AB"},{"label":"British Columbia","value":"BC"},{"label":"Manitoba","value":"MB"},{"label":"New Brunswick","value":"NB"},{"label":"Newfoundland and Labrador","value":"NL"},{"label":"Nova Scotia","value":"NS"},{"label":"Ontario","value":"ON"},{"label":"Prince Edward Island","value":"PE"},{"label":"Quebec","value":"QC"},{"label":"Saskatchewan","value":"SK"},{"label":"Northwest Territories","value":"NT"},{"label":"Nunavut","value":"NU"},{"label":"Yukon","value":"YT"}]

File diff suppressed because one or more lines are too long

View file

@ -1,255 +0,0 @@
[
{
"emoji": "angry",
"shortcuts": [
">:(",
">:-(",
">=(",
">=-("
]
},
{
"emoji": "blush",
"shortcuts": [
":\")",
":-\")",
"=\")",
"=-\")"
]
},
{
"emoji": "broken_heart",
"shortcuts": [
"</3",
"<\\3"
]
},
{
"emoji": "confused",
"shortcuts": [
":-\\",
":-/",
"=-\\",
"=-/"
]
},
{
"emoji": "cry",
"shortcuts": [
":'(",
":'-(",
":,(",
":,-(",
"='(",
"='-(",
"=,(",
"=,-("
]
},
{
"emoji": "frowning",
"shortcuts": [
":(",
":-(",
"=(",
"=-("
]
},
{
"emoji": "heart",
"shortcuts": [
"<3",
"♡"
]
},
{
"emoji": "imp",
"shortcuts": [
"]:(",
"]:-(",
"]=(",
"]=-("
]
},
{
"emoji": "innocent",
"shortcuts": [
"o:)",
"O:)",
"o:-)",
"O:-)",
"0:)",
"0:-)",
"o=)",
"O=)",
"o=-)",
"O=-)",
"0=)",
"0=-)"
]
},
{
"emoji": "joy",
"shortcuts": [
":')",
":'-)",
":,)",
":,-)",
":'D",
":'-D",
":,D",
":,-D",
"=')",
"='-)",
"=,)",
"=,-)",
"='D",
"='-D",
"=,D",
"=,-D"
]
},
{
"emoji": "kissing",
"shortcuts": [
":*",
":-*",
"=*",
"=-*"
]
},
{
"emoji": "laughing",
"shortcuts": [
"x-)",
"X-)"
]
},
{
"emoji": "neutral_face",
"shortcuts": [
":|",
":-|",
"=|",
"=-|"
]
},
{
"emoji": "open_mouth",
"shortcuts": [
":o",
":-o",
":O",
":-O",
"=o",
"=-o",
"=O",
"=-O"
]
},
{
"emoji": "rage",
"shortcuts": [
":@",
":-@",
"=@",
"=-@"
]
},
{
"emoji": "smile",
"shortcuts": [
":D",
":-D",
"=D",
"=-D"
]
},
{
"emoji": "slight_smile",
"shortcuts": [
":)",
":-)",
"=)",
"=-)"
]
},
{
"emoji": "smiling_imp",
"shortcuts": [
"]:)",
"]:-)",
"]=)",
"]=-)"
]
},
{
"emoji": "sob",
"shortcuts": [
":,'(",
":,'-(",
";(",
";-(",
"=,'(",
"=,'-("
]
},
{
"emoji": "stuck_out_tongue",
"shortcuts": [
":P",
":-P",
"=P",
"=-P"
]
},
{
"emoji": "sunglasses",
"shortcuts": [
"8-)",
"B-)"
]
},
{
"emoji": "sweat",
"shortcuts": [
",:(",
",:-(",
",=(",
",=-("
]
},
{
"emoji": "sweat_smile",
"shortcuts": [
",:)",
",:-)",
",=)",
",=-)"
]
},
{
"emoji": "unamused",
"shortcuts": [
":s",
":-S",
":z",
":-Z",
":$",
":-$",
"=s",
"=-S",
"=z",
"=-Z",
"=$",
"=-$"
]
},
{
"emoji": "wink",
"shortcuts": [
";)",
";-)"
]
}
]

File diff suppressed because it is too large Load diff

View file

@ -1 +0,0 @@
[{"label":"Alabama","value":"AL"},{"label":"Alaska","value":"AK"},{"label":"American Samoa","value":"AS"},{"label":"Arizona","value":"AZ"},{"label":"Arkansas","value":"AR"},{"label":"Armed Forces: Americas","value":"AA"},{"label":"Armed Forces: Europe","value":"AE"},{"label":"Armed Forces: Pacific","value":"AP"},{"label":"California","value":"CA"},{"label":"Colorado","value":"CO"},{"label":"Connecticut","value":"CT"},{"label":"Delaware","value":"DE"},{"label":"District Of Columbia","value":"DC"},{"label":"Federated States Of Micronesia","value":"FM"},{"label":"Florida","value":"FL"},{"label":"Georgia","value":"GA"},{"label":"Guam","value":"GU"},{"label":"Hawaii","value":"HI"},{"label":"Idaho","value":"ID"},{"label":"Illinois","value":"IL"},{"label":"Indiana","value":"IN"},{"label":"Iowa","value":"IA"},{"label":"Kansas","value":"KS"},{"label":"Kentucky","value":"KY"},{"label":"Louisiana","value":"LA"},{"label":"Maine","value":"ME"},{"label":"Marshall Islands","value":"MH"},{"label":"Maryland","value":"MD"},{"label":"Massachusetts","value":"MA"},{"label":"Michigan","value":"MI"},{"label":"Minnesota","value":"MN"},{"label":"Mississippi","value":"MS"},{"label":"Missouri","value":"MO"},{"label":"Montana","value":"MT"},{"label":"Nebraska","value":"NE"},{"label":"Nevada","value":"NV"},{"label":"New Hampshire","value":"NH"},{"label":"New Jersey","value":"NJ"},{"label":"New Mexico","value":"NM"},{"label":"New York","value":"NY"},{"label":"North Carolina","value":"NC"},{"label":"North Dakota","value":"ND"},{"label":"Northern Mariana Islands","value":"MP"},{"label":"Ohio","value":"OH"},{"label":"Oklahoma","value":"OK"},{"label":"Oregon","value":"OR"},{"label":"Palau","value":"PW"},{"label":"Pennsylvania","value":"PA"},{"label":"Puerto Rico","value":"PR"},{"label":"Rhode Island","value":"RI"},{"label":"South Carolina","value":"SC"},{"label":"South Dakota","value":"SD"},{"label":"Tennessee","value":"TN"},{"label":"Texas","value":"TX"},{"label":"Utah","value":"UT"},{"label":"Vermont","value":"VT"},{"label":"Virgin Islands","value":"VI"},{"label":"Virginia","value":"VA"},{"label":"Washington","value":"WA"},{"label":"West Virginia","value":"WV"},{"label":"Wisconsin","value":"WI"},{"label":"Wyoming","value":"WY"}]

View file

@ -1,162 +0,0 @@
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"/>
<style>
* {
padding: 0;
margin: 0;
}
body {
display: table;
width: 100%;
height: 100%;
text-align: center;
}
#hcaptcha-container {
margin-top: 5px;
display: table-cell;
vertical-align: middle;
}
/* overwrite hCaptcha iframe overlay which adds a #FFF background with opacity 0.05 */
div > div:nth-child(2) {
opacity: 0 !important;
}
</style>
</head>
<body>
<div id="hcaptcha-container"></div>
<script type="text/javascript">
// Android will inject this bridge object as `JSInterface`
// Browser is missing it so we mock it
var BridgeObject = window.JSInterface || {
getConfig: function getConfig() {
return JSON.stringify({
siteKey: '10000000-ffff-ffff-ffff-000000000001',
locale: 'ro',
size: 'compact',
theme: 'dark',
sentry: true,
rqdata: null,
apiEndpoint: 'https://hcaptcha.com/1/api.js',
endpoint: null,
assethost: null,
imghost: null,
reportapi: null
});
},
onPass: function onPass(token) {
return console.log("pass: token ".concat(token));
},
onError: function onError(errCode) {
return console.log("error: code ".concat(errCode));
},
onLoaded: function onLoaded() {
return console.log('cb: challenge or checkbox is visible');
}
};
var bridgeConfig = JSON.parse(BridgeObject.getConfig());
function getRenderConfig() {
return {
sitekey: bridgeConfig.siteKey,
size: bridgeConfig.size,
theme: bridgeConfig.theme,
'callback': function callback(token) {
return BridgeObject.onPass(token);
},
'expired-callback': function expiredCallback() {
return BridgeObject.onError(15);
},
'chalexpired-callback': function chalexpiredCallback() {
return BridgeObject.onError(15);
},
'close-callback': function closeCallback() {
return BridgeObject.onError(30);
},
'error-callback': function errorCallback() {
return BridgeObject.onError(31);
},
'open-callback': function openCallback() {
return BridgeObject.onLoaded();
}
};
}
function onHcaptchaLoaded() {
try {
var renderConfig = getRenderConfig();
var rqdata = bridgeConfig.rqdata;
var hCaptchaID = hcaptcha.render('hcaptcha-container', renderConfig);
if (rqdata) {
hcaptcha.setData(hCaptchaID, {
rqdata: rqdata
});
}
if (renderConfig.size === 'invisible') {
hcaptcha.execute(hCaptchaID);
} else {
BridgeObject.onLoaded();
}
} catch (e) {
console.error(e);
BridgeObject.onError(29);
}
}
function addQueryParamIfDefined(url, queryName, queryValue) {
if (queryValue !== undefined && queryValue !== null) {
var link = url.indexOf('?') !== -1 ? '&' : '?';
return url + link + queryName + '=' + encodeURIComponent(queryValue);
}
return url;
}
function loadApi() {
var siteKey = bridgeConfig.siteKey;
var locale = bridgeConfig.locale;
var sentry = bridgeConfig.sentry;
var apiEndpoint = bridgeConfig.apiEndpoint;
var endpoint = bridgeConfig.endpoint;
var assethost = bridgeConfig.assethost;
var imghost = bridgeConfig.imghost;
var reportapi = bridgeConfig.reportapi;
var host = siteKey + '.android-sdk.hcaptcha.com';
var scriptSrc = apiEndpoint + '?render=explicit&onload=' + onHcaptchaLoaded.name;
scriptSrc = addQueryParamIfDefined(scriptSrc, 'recaptchacompat', 'off');
scriptSrc = addQueryParamIfDefined(scriptSrc, 'hl', locale);
scriptSrc = addQueryParamIfDefined(scriptSrc, 'host', host);
scriptSrc = addQueryParamIfDefined(scriptSrc, 'sentry', sentry);
scriptSrc = addQueryParamIfDefined(scriptSrc, 'endpoint', endpoint);
scriptSrc = addQueryParamIfDefined(scriptSrc, 'assethost', assethost);
scriptSrc = addQueryParamIfDefined(scriptSrc, 'imghost', imghost);
scriptSrc = addQueryParamIfDefined(scriptSrc, 'reportapi', reportapi);
var script = document.createElement('script');
script.async = true;
script.src = scriptSrc;
script.onerror = function () {
// network issue
BridgeObject.onError(7);
};
document.head.appendChild(script);
}
document.body.onclick = function () {
if (window.hcaptcha) {
window.hcaptcha.close();
} else {
BridgeObject.onError(30);
}
};
loadApi();
</script>
</body>
</html>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

View file

@ -1 +0,0 @@
https://www.reddit.com/r/discordapp/comments/dlkvza/theres_a_cute_catdog_image_hidden_inside_the/

View file

@ -1,105 +0,0 @@
package androidx.constraintlayout.solver;
import c.d.b.a.a;
import java.util.ArrayList;
public class Metrics {
public long additionalMeasures;
public long barrierConnectionResolved;
public long bfs;
public long centerConnectionResolved;
public long chainConnectionResolved;
public long constraints;
public long determineGroups;
public long errors;
public long extravariables;
public long fullySolved;
public long graphOptimizer;
public long graphSolved;
public long grouping;
public long infeasibleDetermineGroups;
public long iterations;
public long lastTableSize;
public long layouts;
public long linearSolved;
public long matchConnectionResolved;
public long maxRows;
public long maxTableSize;
public long maxVariables;
public long measuredMatchWidgets;
public long measuredWidgets;
public long measures;
public long measuresLayoutDuration;
public long measuresWidgetsDuration;
public long measuresWrap;
public long measuresWrapInfeasible;
public long minimize;
public long minimizeGoal;
public long nonresolvedWidgets;
public long oldresolvedWidgets;
public long optimize;
public long pivots;
public ArrayList<String> problematicLayouts = new ArrayList<>();
public long resolutions;
public long resolvedWidgets;
public long simpleconstraints;
public long slackvariables;
public long tableSizeIncrease;
public long variables;
public long widgets;
public void reset() {
this.measures = 0;
this.widgets = 0;
this.additionalMeasures = 0;
this.resolutions = 0;
this.tableSizeIncrease = 0;
this.maxTableSize = 0;
this.lastTableSize = 0;
this.maxVariables = 0;
this.maxRows = 0;
this.minimize = 0;
this.minimizeGoal = 0;
this.constraints = 0;
this.simpleconstraints = 0;
this.optimize = 0;
this.iterations = 0;
this.pivots = 0;
this.bfs = 0;
this.variables = 0;
this.errors = 0;
this.slackvariables = 0;
this.extravariables = 0;
this.fullySolved = 0;
this.graphOptimizer = 0;
this.graphSolved = 0;
this.resolvedWidgets = 0;
this.oldresolvedWidgets = 0;
this.nonresolvedWidgets = 0;
this.centerConnectionResolved = 0;
this.matchConnectionResolved = 0;
this.chainConnectionResolved = 0;
this.barrierConnectionResolved = 0;
this.problematicLayouts.clear();
}
public String toString() {
StringBuilder K = a.K("\n*** Metrics ***\nmeasures: ");
K.append(this.measures);
K.append("\nmeasuresWrap: ");
K.append(this.measuresWrap);
K.append("\nmeasuresWrapInfeasible: ");
K.append(this.measuresWrapInfeasible);
K.append("\ndetermineGroups: ");
K.append(this.determineGroups);
K.append("\ninfeasibleDetermineGroups: ");
K.append(this.infeasibleDetermineGroups);
K.append("\ngraphOptimizer: ");
K.append(this.graphOptimizer);
K.append("\nwidgets: ");
K.append(this.widgets);
K.append("\ngraphSolved: ");
K.append(this.graphSolved);
K.append("\nlinearSolved: ");
return a.y(K, this.linearSolved, "\n");
}
}

View file

@ -1,79 +0,0 @@
package androidx.constraintlayout.solver;
public final class Pools {
private static final boolean DEBUG = false;
public interface Pool<T> {
T acquire();
boolean release(T t);
void releaseAll(T[] tArr, int i);
}
public static class SimplePool<T> implements Pool<T> {
private final Object[] mPool;
private int mPoolSize;
public SimplePool(int i) {
if (i > 0) {
this.mPool = new Object[i];
return;
}
throw new IllegalArgumentException("The max pool size must be > 0");
}
private boolean isInPool(T t) {
for (int i = 0; i < this.mPoolSize; i++) {
if (this.mPool[i] == t) {
return true;
}
}
return false;
}
@Override // androidx.constraintlayout.solver.Pools.Pool
public T acquire() {
int i = this.mPoolSize;
if (i <= 0) {
return null;
}
int i2 = i - 1;
Object[] objArr = this.mPool;
T t = (T) objArr[i2];
objArr[i2] = null;
this.mPoolSize = i - 1;
return t;
}
@Override // androidx.constraintlayout.solver.Pools.Pool
public boolean release(T t) {
int i = this.mPoolSize;
Object[] objArr = this.mPool;
if (i >= objArr.length) {
return false;
}
objArr[i] = t;
this.mPoolSize = i + 1;
return true;
}
@Override // androidx.constraintlayout.solver.Pools.Pool
public void releaseAll(T[] tArr, int i) {
if (i > tArr.length) {
i = tArr.length;
}
for (int i2 = 0; i2 < i; i2++) {
T t = tArr[i2];
int i3 = this.mPoolSize;
Object[] objArr = this.mPool;
if (i3 < objArr.length) {
objArr[i3] = t;
this.mPoolSize = i3 + 1;
}
}
}
}
private Pools() {
}
}

View file

@ -1,283 +0,0 @@
package androidx.constraintlayout.solver;
import androidx.constraintlayout.solver.ArrayRow;
import c.d.b.a.a;
import java.util.Arrays;
import java.util.Comparator;
public class PriorityGoalRow extends ArrayRow {
private static final boolean DEBUG = false;
public static final int NOT_FOUND = -1;
private static final float epsilon = 1.0E-4f;
private int TABLE_SIZE = 128;
public GoalVariableAccessor accessor = new GoalVariableAccessor(this);
private SolverVariable[] arrayGoals = new SolverVariable[128];
public Cache mCache;
private int numGoals = 0;
private SolverVariable[] sortArray = new SolverVariable[128];
/* renamed from: androidx.constraintlayout.solver.PriorityGoalRow$1 reason: invalid class name */
public class AnonymousClass1 implements Comparator<SolverVariable> {
public AnonymousClass1() {
}
public int compare(SolverVariable solverVariable, SolverVariable solverVariable2) {
return solverVariable.f20id - solverVariable2.f20id;
}
}
public class GoalVariableAccessor implements Comparable {
public PriorityGoalRow row;
public SolverVariable variable;
public GoalVariableAccessor(PriorityGoalRow priorityGoalRow) {
this.row = priorityGoalRow;
}
public void add(SolverVariable solverVariable) {
for (int i = 0; i < 9; i++) {
float[] fArr = this.variable.goalStrengthVector;
fArr[i] = fArr[i] + solverVariable.goalStrengthVector[i];
if (Math.abs(fArr[i]) < 1.0E-4f) {
this.variable.goalStrengthVector[i] = 0.0f;
}
}
}
public boolean addToGoal(SolverVariable solverVariable, float f) {
boolean z2 = true;
if (this.variable.inGoal) {
for (int i = 0; i < 9; i++) {
float[] fArr = this.variable.goalStrengthVector;
fArr[i] = (solverVariable.goalStrengthVector[i] * f) + fArr[i];
if (Math.abs(fArr[i]) < 1.0E-4f) {
this.variable.goalStrengthVector[i] = 0.0f;
} else {
z2 = false;
}
}
if (z2) {
PriorityGoalRow.access$000(PriorityGoalRow.this, this.variable);
}
return false;
}
for (int i2 = 0; i2 < 9; i2++) {
float f2 = solverVariable.goalStrengthVector[i2];
if (f2 != 0.0f) {
float f3 = f2 * f;
if (Math.abs(f3) < 1.0E-4f) {
f3 = 0.0f;
}
this.variable.goalStrengthVector[i2] = f3;
} else {
this.variable.goalStrengthVector[i2] = 0.0f;
}
}
return true;
}
@Override // java.lang.Comparable
public int compareTo(Object obj) {
return this.variable.f20id - ((SolverVariable) obj).f20id;
}
public void init(SolverVariable solverVariable) {
this.variable = solverVariable;
}
public final boolean isNegative() {
for (int i = 8; i >= 0; i--) {
float f = this.variable.goalStrengthVector[i];
if (f > 0.0f) {
return false;
}
if (f < 0.0f) {
return true;
}
}
return false;
}
public final boolean isNull() {
for (int i = 0; i < 9; i++) {
if (this.variable.goalStrengthVector[i] != 0.0f) {
return false;
}
}
return true;
}
public final boolean isSmallerThan(SolverVariable solverVariable) {
int i = 8;
while (true) {
if (i < 0) {
break;
}
float f = solverVariable.goalStrengthVector[i];
float f2 = this.variable.goalStrengthVector[i];
if (f2 == f) {
i--;
} else if (f2 < f) {
return true;
}
}
return false;
}
public void reset() {
Arrays.fill(this.variable.goalStrengthVector, 0.0f);
}
@Override // java.lang.Object
public String toString() {
String str = "[ ";
if (this.variable != null) {
for (int i = 0; i < 9; i++) {
StringBuilder K = a.K(str);
K.append(this.variable.goalStrengthVector[i]);
K.append(" ");
str = K.toString();
}
}
StringBuilder O = a.O(str, "] ");
O.append(this.variable);
return O.toString();
}
}
public PriorityGoalRow(Cache cache) {
super(cache);
this.mCache = cache;
}
public static /* synthetic */ void access$000(PriorityGoalRow priorityGoalRow, SolverVariable solverVariable) {
priorityGoalRow.removeGoal(solverVariable);
}
private final void addToGoal(SolverVariable solverVariable) {
int i;
int i2 = this.numGoals + 1;
SolverVariable[] solverVariableArr = this.arrayGoals;
if (i2 > solverVariableArr.length) {
SolverVariable[] solverVariableArr2 = (SolverVariable[]) Arrays.copyOf(solverVariableArr, solverVariableArr.length * 2);
this.arrayGoals = solverVariableArr2;
this.sortArray = (SolverVariable[]) Arrays.copyOf(solverVariableArr2, solverVariableArr2.length * 2);
}
SolverVariable[] solverVariableArr3 = this.arrayGoals;
int i3 = this.numGoals;
solverVariableArr3[i3] = solverVariable;
int i4 = i3 + 1;
this.numGoals = i4;
if (i4 > 1 && solverVariableArr3[i4 - 1].f20id > solverVariable.f20id) {
int i5 = 0;
while (true) {
i = this.numGoals;
if (i5 >= i) {
break;
}
this.sortArray[i5] = this.arrayGoals[i5];
i5++;
}
Arrays.sort(this.sortArray, 0, i, new AnonymousClass1());
for (int i6 = 0; i6 < this.numGoals; i6++) {
this.arrayGoals[i6] = this.sortArray[i6];
}
}
solverVariable.inGoal = true;
solverVariable.addToRow(this);
}
private final void removeGoal(SolverVariable solverVariable) {
int i = 0;
while (i < this.numGoals) {
if (this.arrayGoals[i] == solverVariable) {
while (true) {
int i2 = this.numGoals;
if (i < i2 - 1) {
SolverVariable[] solverVariableArr = this.arrayGoals;
int i3 = i + 1;
solverVariableArr[i] = solverVariableArr[i3];
i = i3;
} else {
this.numGoals = i2 - 1;
solverVariable.inGoal = false;
return;
}
}
} else {
i++;
}
}
}
@Override // androidx.constraintlayout.solver.ArrayRow, androidx.constraintlayout.solver.LinearSystem.Row
public void addError(SolverVariable solverVariable) {
this.accessor.init(solverVariable);
this.accessor.reset();
solverVariable.goalStrengthVector[solverVariable.strength] = 1.0f;
addToGoal(solverVariable);
}
@Override // androidx.constraintlayout.solver.ArrayRow, androidx.constraintlayout.solver.LinearSystem.Row
public void clear() {
this.numGoals = 0;
this.constantValue = 0.0f;
}
@Override // androidx.constraintlayout.solver.ArrayRow, androidx.constraintlayout.solver.LinearSystem.Row
public SolverVariable getPivotCandidate(LinearSystem linearSystem, boolean[] zArr) {
int i = -1;
for (int i2 = 0; i2 < this.numGoals; i2++) {
SolverVariable solverVariable = this.arrayGoals[i2];
if (!zArr[solverVariable.f20id]) {
this.accessor.init(solverVariable);
if (i == -1) {
if (!this.accessor.isNegative()) {
}
} else if (!this.accessor.isSmallerThan(this.arrayGoals[i])) {
}
i = i2;
}
}
if (i == -1) {
return null;
}
return this.arrayGoals[i];
}
@Override // androidx.constraintlayout.solver.ArrayRow, androidx.constraintlayout.solver.LinearSystem.Row
public boolean isEmpty() {
return this.numGoals == 0;
}
@Override // androidx.constraintlayout.solver.ArrayRow
public String toString() {
StringBuilder O = a.O("", " goal -> (");
O.append(this.constantValue);
O.append(") : ");
String sb = O.toString();
for (int i = 0; i < this.numGoals; i++) {
this.accessor.init(this.arrayGoals[i]);
sb = sb + this.accessor + " ";
}
return sb;
}
@Override // androidx.constraintlayout.solver.ArrayRow, androidx.constraintlayout.solver.LinearSystem.Row
public void updateFromRow(LinearSystem linearSystem, ArrayRow arrayRow, boolean z2) {
SolverVariable solverVariable = arrayRow.variable;
if (solverVariable != null) {
ArrayRow.ArrayRowVariables arrayRowVariables = arrayRow.variables;
int currentSize = arrayRowVariables.getCurrentSize();
for (int i = 0; i < currentSize; i++) {
SolverVariable variable = arrayRowVariables.getVariable(i);
float variableValue = arrayRowVariables.getVariableValue(i);
this.accessor.init(variable);
if (this.accessor.addToGoal(solverVariable, variableValue)) {
addToGoal(variable);
}
this.constantValue = (arrayRow.constantValue * variableValue) + this.constantValue;
}
removeGoal(solverVariable);
}
}
}

View file

@ -1,315 +0,0 @@
package androidx.constraintlayout.solver;
import c.d.b.a.a;
import java.util.Arrays;
import java.util.HashSet;
public class SolverVariable {
private static final boolean INTERNAL_DEBUG = false;
public static final int MAX_STRENGTH = 9;
public static final int STRENGTH_BARRIER = 6;
public static final int STRENGTH_CENTERING = 7;
public static final int STRENGTH_EQUALITY = 5;
public static final int STRENGTH_FIXED = 8;
public static final int STRENGTH_HIGH = 3;
public static final int STRENGTH_HIGHEST = 4;
public static final int STRENGTH_LOW = 1;
public static final int STRENGTH_MEDIUM = 2;
public static final int STRENGTH_NONE = 0;
private static final boolean VAR_USE_HASH = false;
private static int uniqueConstantId = 1;
private static int uniqueErrorId = 1;
private static int uniqueId = 1;
private static int uniqueSlackId = 1;
private static int uniqueUnrestrictedId = 1;
public float computedValue;
public int definitionId;
public float[] goalStrengthVector;
/* renamed from: id reason: collision with root package name */
public int f20id;
public boolean inGoal;
public HashSet<ArrayRow> inRows;
public boolean isFinalValue;
public boolean isSynonym;
public ArrayRow[] mClientEquations;
public int mClientEquationsCount;
private String mName;
public Type mType;
public int strength;
public float[] strengthVector;
public int synonym;
public float synonymDelta;
public int usageInRowCount;
/* renamed from: androidx.constraintlayout.solver.SolverVariable$1 reason: invalid class name */
public static /* synthetic */ class AnonymousClass1 {
public static final /* synthetic */ int[] $SwitchMap$androidx$constraintlayout$solver$SolverVariable$Type;
static {
Type.values();
int[] iArr = new int[5];
$SwitchMap$androidx$constraintlayout$solver$SolverVariable$Type = iArr;
try {
iArr[Type.UNRESTRICTED.ordinal()] = 1;
} catch (NoSuchFieldError unused) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$SolverVariable$Type[Type.CONSTANT.ordinal()] = 2;
} catch (NoSuchFieldError unused2) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$SolverVariable$Type[Type.SLACK.ordinal()] = 3;
} catch (NoSuchFieldError unused3) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$SolverVariable$Type[Type.ERROR.ordinal()] = 4;
} catch (NoSuchFieldError unused4) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$SolverVariable$Type[Type.UNKNOWN.ordinal()] = 5;
} catch (NoSuchFieldError unused5) {
}
}
}
public enum Type {
UNRESTRICTED,
CONSTANT,
SLACK,
ERROR,
UNKNOWN
}
public SolverVariable(Type type, String str) {
this.f20id = -1;
this.definitionId = -1;
this.strength = 0;
this.isFinalValue = false;
this.strengthVector = new float[9];
this.goalStrengthVector = new float[9];
this.mClientEquations = new ArrayRow[16];
this.mClientEquationsCount = 0;
this.usageInRowCount = 0;
this.isSynonym = false;
this.synonym = -1;
this.synonymDelta = 0.0f;
this.inRows = null;
this.mType = type;
}
public SolverVariable(String str, Type type) {
this.f20id = -1;
this.definitionId = -1;
this.strength = 0;
this.isFinalValue = false;
this.strengthVector = new float[9];
this.goalStrengthVector = new float[9];
this.mClientEquations = new ArrayRow[16];
this.mClientEquationsCount = 0;
this.usageInRowCount = 0;
this.isSynonym = false;
this.synonym = -1;
this.synonymDelta = 0.0f;
this.inRows = null;
this.mName = str;
this.mType = type;
}
private static String getUniqueName(Type type, String str) {
if (str != null) {
StringBuilder K = a.K(str);
K.append(uniqueErrorId);
return K.toString();
}
int ordinal = type.ordinal();
if (ordinal == 0) {
StringBuilder K2 = a.K("U");
int i = uniqueUnrestrictedId + 1;
uniqueUnrestrictedId = i;
K2.append(i);
return K2.toString();
} else if (ordinal == 1) {
StringBuilder K3 = a.K("C");
int i2 = uniqueConstantId + 1;
uniqueConstantId = i2;
K3.append(i2);
return K3.toString();
} else if (ordinal == 2) {
StringBuilder K4 = a.K("S");
int i3 = uniqueSlackId + 1;
uniqueSlackId = i3;
K4.append(i3);
return K4.toString();
} else if (ordinal == 3) {
StringBuilder K5 = a.K("e");
int i4 = uniqueErrorId + 1;
uniqueErrorId = i4;
K5.append(i4);
return K5.toString();
} else if (ordinal == 4) {
StringBuilder K6 = a.K("V");
int i5 = uniqueId + 1;
uniqueId = i5;
K6.append(i5);
return K6.toString();
} else {
throw new AssertionError(type.name());
}
}
public static void increaseErrorId() {
uniqueErrorId++;
}
public final void addToRow(ArrayRow arrayRow) {
int i = 0;
while (true) {
int i2 = this.mClientEquationsCount;
if (i >= i2) {
ArrayRow[] arrayRowArr = this.mClientEquations;
if (i2 >= arrayRowArr.length) {
this.mClientEquations = (ArrayRow[]) Arrays.copyOf(arrayRowArr, arrayRowArr.length * 2);
}
ArrayRow[] arrayRowArr2 = this.mClientEquations;
int i3 = this.mClientEquationsCount;
arrayRowArr2[i3] = arrayRow;
this.mClientEquationsCount = i3 + 1;
return;
} else if (this.mClientEquations[i] != arrayRow) {
i++;
} else {
return;
}
}
}
public void clearStrengths() {
for (int i = 0; i < 9; i++) {
this.strengthVector[i] = 0.0f;
}
}
public String getName() {
return this.mName;
}
public final void removeFromRow(ArrayRow arrayRow) {
int i = this.mClientEquationsCount;
int i2 = 0;
while (i2 < i) {
if (this.mClientEquations[i2] == arrayRow) {
while (i2 < i - 1) {
ArrayRow[] arrayRowArr = this.mClientEquations;
int i3 = i2 + 1;
arrayRowArr[i2] = arrayRowArr[i3];
i2 = i3;
}
this.mClientEquationsCount--;
return;
}
i2++;
}
}
public void reset() {
this.mName = null;
this.mType = Type.UNKNOWN;
this.strength = 0;
this.f20id = -1;
this.definitionId = -1;
this.computedValue = 0.0f;
this.isFinalValue = false;
this.isSynonym = false;
this.synonym = -1;
this.synonymDelta = 0.0f;
int i = this.mClientEquationsCount;
for (int i2 = 0; i2 < i; i2++) {
this.mClientEquations[i2] = null;
}
this.mClientEquationsCount = 0;
this.usageInRowCount = 0;
this.inGoal = false;
Arrays.fill(this.goalStrengthVector, 0.0f);
}
public void setFinalValue(LinearSystem linearSystem, float f) {
this.computedValue = f;
this.isFinalValue = true;
this.isSynonym = false;
this.synonym = -1;
this.synonymDelta = 0.0f;
int i = this.mClientEquationsCount;
this.definitionId = -1;
for (int i2 = 0; i2 < i; i2++) {
this.mClientEquations[i2].updateFromFinalVariable(linearSystem, this, false);
}
this.mClientEquationsCount = 0;
}
public void setName(String str) {
this.mName = str;
}
public void setSynonym(LinearSystem linearSystem, SolverVariable solverVariable, float f) {
this.isSynonym = true;
this.synonym = solverVariable.f20id;
this.synonymDelta = f;
int i = this.mClientEquationsCount;
this.definitionId = -1;
for (int i2 = 0; i2 < i; i2++) {
this.mClientEquations[i2].updateFromSynonymVariable(linearSystem, this, false);
}
this.mClientEquationsCount = 0;
linearSystem.displayReadableRows();
}
public void setType(Type type, String str) {
this.mType = type;
}
public String strengthsToString() {
String str = this + "[";
int i = 0;
boolean z2 = false;
boolean z3 = true;
while (i < this.strengthVector.length) {
StringBuilder K = a.K(str);
K.append(this.strengthVector[i]);
String sb = K.toString();
float[] fArr = this.strengthVector;
if (fArr[i] > 0.0f) {
z2 = false;
} else if (fArr[i] < 0.0f) {
z2 = true;
}
if (fArr[i] != 0.0f) {
z3 = false;
}
str = i < fArr.length + -1 ? a.s(sb, ", ") : a.s(sb, "] ");
i++;
}
if (z2) {
str = a.s(str, " (-)");
}
return z3 ? a.s(str, " (*)") : str;
}
public String toString() {
if (this.mName != null) {
StringBuilder K = a.K("");
K.append(this.mName);
return K.toString();
}
StringBuilder K2 = a.K("");
K2.append(this.f20id);
return K2.toString();
}
public final void updateReferencesWithNewDefinition(LinearSystem linearSystem, ArrayRow arrayRow) {
int i = this.mClientEquationsCount;
for (int i2 = 0; i2 < i; i2++) {
this.mClientEquations[i2].updateFromRow(linearSystem, arrayRow, false);
}
this.mClientEquationsCount = 0;
}
}

View file

@ -1,447 +0,0 @@
package androidx.constraintlayout.solver;
import androidx.constraintlayout.solver.ArrayRow;
import c.d.b.a.a;
import java.io.PrintStream;
import java.util.Arrays;
public class SolverVariableValues implements ArrayRow.ArrayRowVariables {
private static final boolean DEBUG = false;
private static final boolean HASH = true;
private static float epsilon = 0.001f;
private int HASH_SIZE = 16;
private final int NONE = -1;
private int SIZE = 16;
public int head = -1;
public int[] keys = new int[16];
public final Cache mCache;
public int mCount = 0;
private final ArrayRow mRow;
public int[] next = new int[16];
public int[] nextKeys = new int[16];
public int[] previous = new int[16];
public float[] values = new float[16];
public int[] variables = new int[16];
public SolverVariableValues(ArrayRow arrayRow, Cache cache) {
this.mRow = arrayRow;
this.mCache = cache;
clear();
}
private void addToHashMap(SolverVariable solverVariable, int i) {
int[] iArr;
int i2 = solverVariable.f20id % this.HASH_SIZE;
int[] iArr2 = this.keys;
int i3 = iArr2[i2];
if (i3 == -1) {
iArr2[i2] = i;
} else {
while (true) {
iArr = this.nextKeys;
if (iArr[i3] == -1) {
break;
}
i3 = iArr[i3];
}
iArr[i3] = i;
}
this.nextKeys[i] = -1;
}
private void addVariable(int i, SolverVariable solverVariable, float f) {
this.variables[i] = solverVariable.f20id;
this.values[i] = f;
this.previous[i] = -1;
this.next[i] = -1;
solverVariable.addToRow(this.mRow);
solverVariable.usageInRowCount++;
this.mCount++;
}
private void displayHash() {
for (int i = 0; i < this.HASH_SIZE; i++) {
if (this.keys[i] != -1) {
String str = hashCode() + " hash [" + i + "] => ";
int i2 = this.keys[i];
boolean z2 = false;
while (!z2) {
StringBuilder O = a.O(str, " ");
O.append(this.variables[i2]);
str = O.toString();
int[] iArr = this.nextKeys;
if (iArr[i2] != -1) {
i2 = iArr[i2];
} else {
z2 = true;
}
}
System.out.println(str);
}
}
}
private int findEmptySlot() {
for (int i = 0; i < this.SIZE; i++) {
if (this.variables[i] == -1) {
return i;
}
}
return -1;
}
private void increaseSize() {
int i = this.SIZE * 2;
this.variables = Arrays.copyOf(this.variables, i);
this.values = Arrays.copyOf(this.values, i);
this.previous = Arrays.copyOf(this.previous, i);
this.next = Arrays.copyOf(this.next, i);
this.nextKeys = Arrays.copyOf(this.nextKeys, i);
for (int i2 = this.SIZE; i2 < i; i2++) {
this.variables[i2] = -1;
this.nextKeys[i2] = -1;
}
this.SIZE = i;
}
private void insertVariable(int i, SolverVariable solverVariable, float f) {
int findEmptySlot = findEmptySlot();
addVariable(findEmptySlot, solverVariable, f);
if (i != -1) {
this.previous[findEmptySlot] = i;
int[] iArr = this.next;
iArr[findEmptySlot] = iArr[i];
iArr[i] = findEmptySlot;
} else {
this.previous[findEmptySlot] = -1;
if (this.mCount > 0) {
this.next[findEmptySlot] = this.head;
this.head = findEmptySlot;
} else {
this.next[findEmptySlot] = -1;
}
}
int[] iArr2 = this.next;
if (iArr2[findEmptySlot] != -1) {
this.previous[iArr2[findEmptySlot]] = findEmptySlot;
}
addToHashMap(solverVariable, findEmptySlot);
}
private void removeFromHashMap(SolverVariable solverVariable) {
int[] iArr;
int i = solverVariable.f20id;
int i2 = i % this.HASH_SIZE;
int[] iArr2 = this.keys;
int i3 = iArr2[i2];
if (i3 != -1) {
if (this.variables[i3] == i) {
int[] iArr3 = this.nextKeys;
iArr2[i2] = iArr3[i3];
iArr3[i3] = -1;
return;
}
while (true) {
iArr = this.nextKeys;
if (iArr[i3] == -1 || this.variables[iArr[i3]] == i) {
break;
}
i3 = iArr[i3];
}
int i4 = iArr[i3];
if (i4 != -1 && this.variables[i4] == i) {
iArr[i3] = iArr[i4];
iArr[i4] = -1;
}
}
}
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
public void add(SolverVariable solverVariable, float f, boolean z2) {
float f2 = epsilon;
if (f <= (-f2) || f >= f2) {
int indexOf = indexOf(solverVariable);
if (indexOf == -1) {
put(solverVariable, f);
return;
}
float[] fArr = this.values;
fArr[indexOf] = fArr[indexOf] + f;
float f3 = fArr[indexOf];
float f4 = epsilon;
if (f3 > (-f4) && fArr[indexOf] < f4) {
fArr[indexOf] = 0.0f;
remove(solverVariable, z2);
}
}
}
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
public void clear() {
int i = this.mCount;
for (int i2 = 0; i2 < i; i2++) {
SolverVariable variable = getVariable(i2);
if (variable != null) {
variable.removeFromRow(this.mRow);
}
}
for (int i3 = 0; i3 < this.SIZE; i3++) {
this.variables[i3] = -1;
this.nextKeys[i3] = -1;
}
for (int i4 = 0; i4 < this.HASH_SIZE; i4++) {
this.keys[i4] = -1;
}
this.mCount = 0;
this.head = -1;
}
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
public boolean contains(SolverVariable solverVariable) {
return indexOf(solverVariable) != -1;
}
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
public void display() {
int i = this.mCount;
System.out.print("{ ");
for (int i2 = 0; i2 < i; i2++) {
SolverVariable variable = getVariable(i2);
if (variable != null) {
PrintStream printStream = System.out;
printStream.print(variable + " = " + getVariableValue(i2) + " ");
}
}
System.out.println(" }");
}
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
public void divideByAmount(float f) {
int i = this.mCount;
int i2 = this.head;
for (int i3 = 0; i3 < i; i3++) {
float[] fArr = this.values;
fArr[i2] = fArr[i2] / f;
i2 = this.next[i2];
if (i2 == -1) {
return;
}
}
}
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
public float get(SolverVariable solverVariable) {
int indexOf = indexOf(solverVariable);
if (indexOf != -1) {
return this.values[indexOf];
}
return 0.0f;
}
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
public int getCurrentSize() {
return this.mCount;
}
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
public SolverVariable getVariable(int i) {
int i2 = this.mCount;
if (i2 == 0) {
return null;
}
int i3 = this.head;
for (int i4 = 0; i4 < i2; i4++) {
if (i4 == i && i3 != -1) {
return this.mCache.mIndexedVariables[this.variables[i3]];
}
i3 = this.next[i3];
if (i3 == -1) {
break;
}
}
return null;
}
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
public float getVariableValue(int i) {
int i2 = this.mCount;
int i3 = this.head;
for (int i4 = 0; i4 < i2; i4++) {
if (i4 == i) {
return this.values[i3];
}
i3 = this.next[i3];
if (i3 == -1) {
return 0.0f;
}
}
return 0.0f;
}
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
public int indexOf(SolverVariable solverVariable) {
int[] iArr;
if (!(this.mCount == 0 || solverVariable == null)) {
int i = solverVariable.f20id;
int i2 = this.keys[i % this.HASH_SIZE];
if (i2 == -1) {
return -1;
}
if (this.variables[i2] == i) {
return i2;
}
while (true) {
iArr = this.nextKeys;
if (iArr[i2] == -1 || this.variables[iArr[i2]] == i) {
break;
}
i2 = iArr[i2];
}
if (iArr[i2] != -1 && this.variables[iArr[i2]] == i) {
return iArr[i2];
}
}
return -1;
}
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
public void invert() {
int i = this.mCount;
int i2 = this.head;
for (int i3 = 0; i3 < i; i3++) {
float[] fArr = this.values;
fArr[i2] = fArr[i2] * -1.0f;
i2 = this.next[i2];
if (i2 == -1) {
return;
}
}
}
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
public void put(SolverVariable solverVariable, float f) {
float f2 = epsilon;
if (f <= (-f2) || f >= f2) {
if (this.mCount == 0) {
addVariable(0, solverVariable, f);
addToHashMap(solverVariable, 0);
this.head = 0;
return;
}
int indexOf = indexOf(solverVariable);
if (indexOf != -1) {
this.values[indexOf] = f;
return;
}
if (this.mCount + 1 >= this.SIZE) {
increaseSize();
}
int i = this.mCount;
int i2 = this.head;
int i3 = -1;
for (int i4 = 0; i4 < i; i4++) {
int[] iArr = this.variables;
int i5 = iArr[i2];
int i6 = solverVariable.f20id;
if (i5 == i6) {
this.values[i2] = f;
return;
}
if (iArr[i2] < i6) {
i3 = i2;
}
i2 = this.next[i2];
if (i2 == -1) {
break;
}
}
insertVariable(i3, solverVariable, f);
return;
}
remove(solverVariable, true);
}
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
public float remove(SolverVariable solverVariable, boolean z2) {
int indexOf = indexOf(solverVariable);
if (indexOf == -1) {
return 0.0f;
}
removeFromHashMap(solverVariable);
float f = this.values[indexOf];
if (this.head == indexOf) {
this.head = this.next[indexOf];
}
this.variables[indexOf] = -1;
int[] iArr = this.previous;
if (iArr[indexOf] != -1) {
int[] iArr2 = this.next;
iArr2[iArr[indexOf]] = iArr2[indexOf];
}
int[] iArr3 = this.next;
if (iArr3[indexOf] != -1) {
iArr[iArr3[indexOf]] = iArr[indexOf];
}
this.mCount--;
solverVariable.usageInRowCount--;
if (z2) {
solverVariable.removeFromRow(this.mRow);
}
return f;
}
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
public int sizeInBytes() {
return 0;
}
public String toString() {
String str;
String str2;
String str3 = hashCode() + " { ";
int i = this.mCount;
for (int i2 = 0; i2 < i; i2++) {
SolverVariable variable = getVariable(i2);
if (variable != null) {
String str4 = str3 + variable + " = " + getVariableValue(i2) + " ";
int indexOf = indexOf(variable);
String s2 = a.s(str4, "[p: ");
if (this.previous[indexOf] != -1) {
StringBuilder K = a.K(s2);
K.append(this.mCache.mIndexedVariables[this.variables[this.previous[indexOf]]]);
str = K.toString();
} else {
str = a.s(s2, "none");
}
String s3 = a.s(str, ", n: ");
if (this.next[indexOf] != -1) {
StringBuilder K2 = a.K(s3);
K2.append(this.mCache.mIndexedVariables[this.variables[this.next[indexOf]]]);
str2 = K2.toString();
} else {
str2 = a.s(s3, "none");
}
str3 = a.s(str2, "]");
}
}
return a.s(str3, " }");
}
@Override // androidx.constraintlayout.solver.ArrayRow.ArrayRowVariables
public float use(ArrayRow arrayRow, boolean z2) {
float f = get(arrayRow.variable);
remove(arrayRow.variable, z2);
SolverVariableValues solverVariableValues = (SolverVariableValues) arrayRow.variables;
int currentSize = solverVariableValues.getCurrentSize();
int i = 0;
int i2 = 0;
while (i < currentSize) {
int[] iArr = solverVariableValues.variables;
if (iArr[i2] != -1) {
add(this.mCache.mIndexedVariables[iArr[i2]], solverVariableValues.values[i2] * f, z2);
i++;
}
i2++;
}
return f;
}
}

View file

@ -1,748 +0,0 @@
package androidx.constraintlayout.solver.state;
import androidx.constraintlayout.solver.state.State;
import androidx.constraintlayout.solver.widgets.ConstraintAnchor;
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
import c.d.b.a.a;
import java.util.ArrayList;
public class ConstraintReference implements Reference {
private Object key;
public Object mBaselineToBaseline = null;
public Object mBottomToBottom = null;
public Object mBottomToTop = null;
private ConstraintWidget mConstraintWidget;
public Object mEndToEnd = null;
public Object mEndToStart = null;
public float mHorizontalBias = 0.5f;
public int mHorizontalChainStyle = 0;
public Dimension mHorizontalDimension;
public State.Constraint mLast = null;
public Object mLeftToLeft = null;
public Object mLeftToRight = null;
public int mMarginBottom = 0;
public int mMarginBottomGone = 0;
public int mMarginEnd = 0;
public int mMarginEndGone = 0;
public int mMarginLeft = 0;
public int mMarginLeftGone = 0;
public int mMarginRight = 0;
public int mMarginRightGone = 0;
public int mMarginStart = 0;
public int mMarginStartGone = 0;
public int mMarginTop = 0;
public int mMarginTopGone = 0;
public Object mRightToLeft = null;
public Object mRightToRight = null;
public Object mStartToEnd = null;
public Object mStartToStart = null;
public final State mState;
public Object mTopToBottom = null;
public Object mTopToTop = null;
public float mVerticalBias = 0.5f;
public int mVerticalChainStyle = 0;
public Dimension mVerticalDimension;
private Object mView;
/* renamed from: androidx.constraintlayout.solver.state.ConstraintReference$1 reason: invalid class name */
public static /* synthetic */ class AnonymousClass1 {
public static final /* synthetic */ int[] $SwitchMap$androidx$constraintlayout$solver$state$State$Constraint;
static {
State.Constraint.values();
int[] iArr = new int[15];
$SwitchMap$androidx$constraintlayout$solver$state$State$Constraint = iArr;
try {
iArr[State.Constraint.LEFT_TO_LEFT.ordinal()] = 1;
} catch (NoSuchFieldError unused) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$state$State$Constraint[State.Constraint.LEFT_TO_RIGHT.ordinal()] = 2;
} catch (NoSuchFieldError unused2) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$state$State$Constraint[State.Constraint.RIGHT_TO_LEFT.ordinal()] = 3;
} catch (NoSuchFieldError unused3) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$state$State$Constraint[State.Constraint.RIGHT_TO_RIGHT.ordinal()] = 4;
} catch (NoSuchFieldError unused4) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$state$State$Constraint[State.Constraint.START_TO_START.ordinal()] = 5;
} catch (NoSuchFieldError unused5) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$state$State$Constraint[State.Constraint.START_TO_END.ordinal()] = 6;
} catch (NoSuchFieldError unused6) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$state$State$Constraint[State.Constraint.END_TO_START.ordinal()] = 7;
} catch (NoSuchFieldError unused7) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$state$State$Constraint[State.Constraint.END_TO_END.ordinal()] = 8;
} catch (NoSuchFieldError unused8) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$state$State$Constraint[State.Constraint.TOP_TO_TOP.ordinal()] = 9;
} catch (NoSuchFieldError unused9) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$state$State$Constraint[State.Constraint.TOP_TO_BOTTOM.ordinal()] = 10;
} catch (NoSuchFieldError unused10) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$state$State$Constraint[State.Constraint.BOTTOM_TO_TOP.ordinal()] = 11;
} catch (NoSuchFieldError unused11) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$state$State$Constraint[State.Constraint.BOTTOM_TO_BOTTOM.ordinal()] = 12;
} catch (NoSuchFieldError unused12) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$state$State$Constraint[State.Constraint.BASELINE_TO_BASELINE.ordinal()] = 13;
} catch (NoSuchFieldError unused13) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$state$State$Constraint[State.Constraint.CENTER_HORIZONTALLY.ordinal()] = 14;
} catch (NoSuchFieldError unused14) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$state$State$Constraint[State.Constraint.CENTER_VERTICALLY.ordinal()] = 15;
} catch (NoSuchFieldError unused15) {
}
}
}
public interface ConstraintReferenceFactory {
ConstraintReference create(State state);
}
public class IncorrectConstraintException extends Exception {
private final ArrayList<String> mErrors;
public IncorrectConstraintException(ArrayList<String> arrayList) {
this.mErrors = arrayList;
}
public ArrayList<String> getErrors() {
return this.mErrors;
}
@Override // java.lang.Throwable, java.lang.Object
public String toString() {
StringBuilder K = a.K("IncorrectConstraintException: ");
K.append(this.mErrors.toString());
return K.toString();
}
}
public ConstraintReference(State state) {
Object obj = Dimension.WRAP_DIMENSION;
this.mHorizontalDimension = Dimension.Fixed(obj);
this.mVerticalDimension = Dimension.Fixed(obj);
this.mState = state;
}
private void applyConnection(ConstraintWidget constraintWidget, Object obj, State.Constraint constraint) {
ConstraintWidget target = getTarget(obj);
if (target != null) {
int i = AnonymousClass1.$SwitchMap$androidx$constraintlayout$solver$state$State$Constraint[constraint.ordinal()];
switch (constraint.ordinal()) {
case 0:
ConstraintAnchor.Type type = ConstraintAnchor.Type.LEFT;
constraintWidget.getAnchor(type).connect(target.getAnchor(type), this.mMarginLeft, this.mMarginLeftGone, false);
return;
case 1:
constraintWidget.getAnchor(ConstraintAnchor.Type.LEFT).connect(target.getAnchor(ConstraintAnchor.Type.RIGHT), this.mMarginLeft, this.mMarginLeftGone, false);
return;
case 2:
constraintWidget.getAnchor(ConstraintAnchor.Type.RIGHT).connect(target.getAnchor(ConstraintAnchor.Type.LEFT), this.mMarginRight, this.mMarginRightGone, false);
return;
case 3:
ConstraintAnchor.Type type2 = ConstraintAnchor.Type.RIGHT;
constraintWidget.getAnchor(type2).connect(target.getAnchor(type2), this.mMarginRight, this.mMarginRightGone, false);
return;
case 4:
ConstraintAnchor.Type type3 = ConstraintAnchor.Type.LEFT;
constraintWidget.getAnchor(type3).connect(target.getAnchor(type3), this.mMarginStart, this.mMarginStartGone, false);
return;
case 5:
constraintWidget.getAnchor(ConstraintAnchor.Type.LEFT).connect(target.getAnchor(ConstraintAnchor.Type.RIGHT), this.mMarginStart, this.mMarginStartGone, false);
return;
case 6:
constraintWidget.getAnchor(ConstraintAnchor.Type.RIGHT).connect(target.getAnchor(ConstraintAnchor.Type.LEFT), this.mMarginEnd, this.mMarginEndGone, false);
return;
case 7:
ConstraintAnchor.Type type4 = ConstraintAnchor.Type.RIGHT;
constraintWidget.getAnchor(type4).connect(target.getAnchor(type4), this.mMarginEnd, this.mMarginEndGone, false);
return;
case 8:
ConstraintAnchor.Type type5 = ConstraintAnchor.Type.TOP;
constraintWidget.getAnchor(type5).connect(target.getAnchor(type5), this.mMarginTop, this.mMarginTopGone, false);
return;
case 9:
constraintWidget.getAnchor(ConstraintAnchor.Type.TOP).connect(target.getAnchor(ConstraintAnchor.Type.BOTTOM), this.mMarginTop, this.mMarginTopGone, false);
return;
case 10:
constraintWidget.getAnchor(ConstraintAnchor.Type.BOTTOM).connect(target.getAnchor(ConstraintAnchor.Type.TOP), this.mMarginBottom, this.mMarginBottomGone, false);
return;
case 11:
ConstraintAnchor.Type type6 = ConstraintAnchor.Type.BOTTOM;
constraintWidget.getAnchor(type6).connect(target.getAnchor(type6), this.mMarginBottom, this.mMarginBottomGone, false);
return;
case 12:
ConstraintAnchor.Type type7 = ConstraintAnchor.Type.BASELINE;
constraintWidget.immediateConnect(type7, target, type7, 0, 0);
return;
default:
return;
}
}
}
private void dereference() {
this.mLeftToLeft = get(this.mLeftToLeft);
this.mLeftToRight = get(this.mLeftToRight);
this.mRightToLeft = get(this.mRightToLeft);
this.mRightToRight = get(this.mRightToRight);
this.mStartToStart = get(this.mStartToStart);
this.mStartToEnd = get(this.mStartToEnd);
this.mEndToStart = get(this.mEndToStart);
this.mEndToEnd = get(this.mEndToEnd);
this.mTopToTop = get(this.mTopToTop);
this.mTopToBottom = get(this.mTopToBottom);
this.mBottomToTop = get(this.mBottomToTop);
this.mBottomToBottom = get(this.mBottomToBottom);
this.mBaselineToBaseline = get(this.mBaselineToBaseline);
}
private Object get(Object obj) {
if (obj == null) {
return null;
}
return !(obj instanceof ConstraintReference) ? this.mState.reference(obj) : obj;
}
private ConstraintWidget getTarget(Object obj) {
if (obj instanceof Reference) {
return ((Reference) obj).getConstraintWidget();
}
return null;
}
@Override // androidx.constraintlayout.solver.state.Reference
public void apply() {
ConstraintWidget constraintWidget = this.mConstraintWidget;
if (constraintWidget != null) {
this.mHorizontalDimension.apply(this.mState, constraintWidget, 0);
this.mVerticalDimension.apply(this.mState, this.mConstraintWidget, 1);
dereference();
applyConnection(this.mConstraintWidget, this.mLeftToLeft, State.Constraint.LEFT_TO_LEFT);
applyConnection(this.mConstraintWidget, this.mLeftToRight, State.Constraint.LEFT_TO_RIGHT);
applyConnection(this.mConstraintWidget, this.mRightToLeft, State.Constraint.RIGHT_TO_LEFT);
applyConnection(this.mConstraintWidget, this.mRightToRight, State.Constraint.RIGHT_TO_RIGHT);
applyConnection(this.mConstraintWidget, this.mStartToStart, State.Constraint.START_TO_START);
applyConnection(this.mConstraintWidget, this.mStartToEnd, State.Constraint.START_TO_END);
applyConnection(this.mConstraintWidget, this.mEndToStart, State.Constraint.END_TO_START);
applyConnection(this.mConstraintWidget, this.mEndToEnd, State.Constraint.END_TO_END);
applyConnection(this.mConstraintWidget, this.mTopToTop, State.Constraint.TOP_TO_TOP);
applyConnection(this.mConstraintWidget, this.mTopToBottom, State.Constraint.TOP_TO_BOTTOM);
applyConnection(this.mConstraintWidget, this.mBottomToTop, State.Constraint.BOTTOM_TO_TOP);
applyConnection(this.mConstraintWidget, this.mBottomToBottom, State.Constraint.BOTTOM_TO_BOTTOM);
applyConnection(this.mConstraintWidget, this.mBaselineToBaseline, State.Constraint.BASELINE_TO_BASELINE);
int i = this.mHorizontalChainStyle;
if (i != 0) {
this.mConstraintWidget.setHorizontalChainStyle(i);
}
int i2 = this.mVerticalChainStyle;
if (i2 != 0) {
this.mConstraintWidget.setVerticalChainStyle(i2);
}
this.mConstraintWidget.setHorizontalBiasPercent(this.mHorizontalBias);
this.mConstraintWidget.setVerticalBiasPercent(this.mVerticalBias);
}
}
public ConstraintReference baseline() {
this.mLast = State.Constraint.BASELINE_TO_BASELINE;
return this;
}
public ConstraintReference baselineToBaseline(Object obj) {
this.mLast = State.Constraint.BASELINE_TO_BASELINE;
this.mBaselineToBaseline = obj;
return this;
}
public ConstraintReference bias(float f) {
State.Constraint constraint = this.mLast;
if (constraint == null) {
return this;
}
switch (constraint.ordinal()) {
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 13:
this.mHorizontalBias = f;
break;
case 8:
case 9:
case 10:
case 11:
case 14:
this.mVerticalBias = f;
break;
}
return this;
}
public ConstraintReference bottom() {
if (this.mBottomToTop != null) {
this.mLast = State.Constraint.BOTTOM_TO_TOP;
} else {
this.mLast = State.Constraint.BOTTOM_TO_BOTTOM;
}
return this;
}
public ConstraintReference bottomToBottom(Object obj) {
this.mLast = State.Constraint.BOTTOM_TO_BOTTOM;
this.mBottomToBottom = obj;
return this;
}
public ConstraintReference bottomToTop(Object obj) {
this.mLast = State.Constraint.BOTTOM_TO_TOP;
this.mBottomToTop = obj;
return this;
}
public ConstraintReference centerHorizontally(Object obj) {
Object obj2 = get(obj);
this.mStartToStart = obj2;
this.mEndToEnd = obj2;
this.mLast = State.Constraint.CENTER_HORIZONTALLY;
this.mHorizontalBias = 0.5f;
return this;
}
public ConstraintReference centerVertically(Object obj) {
Object obj2 = get(obj);
this.mTopToTop = obj2;
this.mBottomToBottom = obj2;
this.mLast = State.Constraint.CENTER_VERTICALLY;
this.mVerticalBias = 0.5f;
return this;
}
public ConstraintReference clear() {
State.Constraint constraint = this.mLast;
if (constraint != null) {
switch (constraint.ordinal()) {
case 0:
case 1:
this.mLeftToLeft = null;
this.mLeftToRight = null;
this.mMarginLeft = 0;
this.mMarginLeftGone = 0;
break;
case 2:
case 3:
this.mRightToLeft = null;
this.mRightToRight = null;
this.mMarginRight = 0;
this.mMarginRightGone = 0;
break;
case 4:
case 5:
this.mStartToStart = null;
this.mStartToEnd = null;
this.mMarginStart = 0;
this.mMarginStartGone = 0;
break;
case 6:
case 7:
this.mEndToStart = null;
this.mEndToEnd = null;
this.mMarginEnd = 0;
this.mMarginEndGone = 0;
break;
case 8:
case 9:
this.mTopToTop = null;
this.mTopToBottom = null;
this.mMarginTop = 0;
this.mMarginTopGone = 0;
break;
case 10:
case 11:
this.mBottomToTop = null;
this.mBottomToBottom = null;
this.mMarginBottom = 0;
this.mMarginBottomGone = 0;
break;
case 12:
this.mBaselineToBaseline = null;
break;
}
} else {
this.mLeftToLeft = null;
this.mLeftToRight = null;
this.mMarginLeft = 0;
this.mRightToLeft = null;
this.mRightToRight = null;
this.mMarginRight = 0;
this.mStartToStart = null;
this.mStartToEnd = null;
this.mMarginStart = 0;
this.mEndToStart = null;
this.mEndToEnd = null;
this.mMarginEnd = 0;
this.mTopToTop = null;
this.mTopToBottom = null;
this.mMarginTop = 0;
this.mBottomToTop = null;
this.mBottomToBottom = null;
this.mMarginBottom = 0;
this.mBaselineToBaseline = null;
this.mHorizontalBias = 0.5f;
this.mVerticalBias = 0.5f;
this.mMarginLeftGone = 0;
this.mMarginRightGone = 0;
this.mMarginStartGone = 0;
this.mMarginEndGone = 0;
this.mMarginTopGone = 0;
this.mMarginBottomGone = 0;
}
return this;
}
public ConstraintReference clearHorizontal() {
start().clear();
end().clear();
left().clear();
right().clear();
return this;
}
public ConstraintReference clearVertical() {
top().clear();
baseline().clear();
bottom().clear();
return this;
}
public ConstraintWidget createConstraintWidget() {
return new ConstraintWidget(getWidth().getValue(), getHeight().getValue());
}
public ConstraintReference end() {
if (this.mEndToStart != null) {
this.mLast = State.Constraint.END_TO_START;
} else {
this.mLast = State.Constraint.END_TO_END;
}
return this;
}
public ConstraintReference endToEnd(Object obj) {
this.mLast = State.Constraint.END_TO_END;
this.mEndToEnd = obj;
return this;
}
public ConstraintReference endToStart(Object obj) {
this.mLast = State.Constraint.END_TO_START;
this.mEndToStart = obj;
return this;
}
@Override // androidx.constraintlayout.solver.state.Reference
public ConstraintWidget getConstraintWidget() {
if (this.mConstraintWidget == null) {
ConstraintWidget createConstraintWidget = createConstraintWidget();
this.mConstraintWidget = createConstraintWidget;
createConstraintWidget.setCompanionWidget(this.mView);
}
return this.mConstraintWidget;
}
public Dimension getHeight() {
return this.mVerticalDimension;
}
public int getHorizontalChainStyle() {
return this.mHorizontalChainStyle;
}
@Override // androidx.constraintlayout.solver.state.Reference
public Object getKey() {
return this.key;
}
public int getVerticalChainStyle(int i) {
return this.mVerticalChainStyle;
}
public Object getView() {
return this.mView;
}
public Dimension getWidth() {
return this.mHorizontalDimension;
}
public ConstraintReference height(Dimension dimension) {
return setHeight(dimension);
}
public ConstraintReference horizontalBias(float f) {
this.mHorizontalBias = f;
return this;
}
public ConstraintReference left() {
if (this.mLeftToLeft != null) {
this.mLast = State.Constraint.LEFT_TO_LEFT;
} else {
this.mLast = State.Constraint.LEFT_TO_RIGHT;
}
return this;
}
public ConstraintReference leftToLeft(Object obj) {
this.mLast = State.Constraint.LEFT_TO_LEFT;
this.mLeftToLeft = obj;
return this;
}
public ConstraintReference leftToRight(Object obj) {
this.mLast = State.Constraint.LEFT_TO_RIGHT;
this.mLeftToRight = obj;
return this;
}
public ConstraintReference margin(int i) {
State.Constraint constraint = this.mLast;
if (constraint != null) {
switch (constraint.ordinal()) {
case 0:
case 1:
this.mMarginLeft = i;
break;
case 2:
case 3:
this.mMarginRight = i;
break;
case 4:
case 5:
this.mMarginStart = i;
break;
case 6:
case 7:
this.mMarginEnd = i;
break;
case 8:
case 9:
this.mMarginTop = i;
break;
case 10:
case 11:
this.mMarginBottom = i;
break;
}
} else {
this.mMarginLeft = i;
this.mMarginRight = i;
this.mMarginStart = i;
this.mMarginEnd = i;
this.mMarginTop = i;
this.mMarginBottom = i;
}
return this;
}
public ConstraintReference margin(Object obj) {
return margin(this.mState.convertDimension(obj));
}
public ConstraintReference marginGone(int i) {
State.Constraint constraint = this.mLast;
if (constraint != null) {
switch (constraint.ordinal()) {
case 0:
case 1:
this.mMarginLeftGone = i;
break;
case 2:
case 3:
this.mMarginRightGone = i;
break;
case 4:
case 5:
this.mMarginStartGone = i;
break;
case 6:
case 7:
this.mMarginEndGone = i;
break;
case 8:
case 9:
this.mMarginTopGone = i;
break;
case 10:
case 11:
this.mMarginBottomGone = i;
break;
}
} else {
this.mMarginLeftGone = i;
this.mMarginRightGone = i;
this.mMarginStartGone = i;
this.mMarginEndGone = i;
this.mMarginTopGone = i;
this.mMarginBottomGone = i;
}
return this;
}
public ConstraintReference right() {
if (this.mRightToLeft != null) {
this.mLast = State.Constraint.RIGHT_TO_LEFT;
} else {
this.mLast = State.Constraint.RIGHT_TO_RIGHT;
}
return this;
}
public ConstraintReference rightToLeft(Object obj) {
this.mLast = State.Constraint.RIGHT_TO_LEFT;
this.mRightToLeft = obj;
return this;
}
public ConstraintReference rightToRight(Object obj) {
this.mLast = State.Constraint.RIGHT_TO_RIGHT;
this.mRightToRight = obj;
return this;
}
@Override // androidx.constraintlayout.solver.state.Reference
public void setConstraintWidget(ConstraintWidget constraintWidget) {
if (constraintWidget != null) {
this.mConstraintWidget = constraintWidget;
constraintWidget.setCompanionWidget(this.mView);
}
}
public ConstraintReference setHeight(Dimension dimension) {
this.mVerticalDimension = dimension;
return this;
}
public void setHorizontalChainStyle(int i) {
this.mHorizontalChainStyle = i;
}
@Override // androidx.constraintlayout.solver.state.Reference
public void setKey(Object obj) {
this.key = obj;
}
public void setVerticalChainStyle(int i) {
this.mVerticalChainStyle = i;
}
public void setView(Object obj) {
this.mView = obj;
ConstraintWidget constraintWidget = this.mConstraintWidget;
if (constraintWidget != null) {
constraintWidget.setCompanionWidget(obj);
}
}
public ConstraintReference setWidth(Dimension dimension) {
this.mHorizontalDimension = dimension;
return this;
}
public ConstraintReference start() {
if (this.mStartToStart != null) {
this.mLast = State.Constraint.START_TO_START;
} else {
this.mLast = State.Constraint.START_TO_END;
}
return this;
}
public ConstraintReference startToEnd(Object obj) {
this.mLast = State.Constraint.START_TO_END;
this.mStartToEnd = obj;
return this;
}
public ConstraintReference startToStart(Object obj) {
this.mLast = State.Constraint.START_TO_START;
this.mStartToStart = obj;
return this;
}
public ConstraintReference top() {
if (this.mTopToTop != null) {
this.mLast = State.Constraint.TOP_TO_TOP;
} else {
this.mLast = State.Constraint.TOP_TO_BOTTOM;
}
return this;
}
public ConstraintReference topToBottom(Object obj) {
this.mLast = State.Constraint.TOP_TO_BOTTOM;
this.mTopToBottom = obj;
return this;
}
public ConstraintReference topToTop(Object obj) {
this.mLast = State.Constraint.TOP_TO_TOP;
this.mTopToTop = obj;
return this;
}
public void validate() throws IncorrectConstraintException {
ArrayList arrayList = new ArrayList();
if (!(this.mLeftToLeft == null || this.mLeftToRight == null)) {
arrayList.add("LeftToLeft and LeftToRight both defined");
}
if (!(this.mRightToLeft == null || this.mRightToRight == null)) {
arrayList.add("RightToLeft and RightToRight both defined");
}
if (!(this.mStartToStart == null || this.mStartToEnd == null)) {
arrayList.add("StartToStart and StartToEnd both defined");
}
if (!(this.mEndToStart == null || this.mEndToEnd == null)) {
arrayList.add("EndToStart and EndToEnd both defined");
}
if (!((this.mLeftToLeft == null && this.mLeftToRight == null && this.mRightToLeft == null && this.mRightToRight == null) || (this.mStartToStart == null && this.mStartToEnd == null && this.mEndToStart == null && this.mEndToEnd == null))) {
arrayList.add("Both left/right and start/end constraints defined");
}
if (arrayList.size() > 0) {
throw new IncorrectConstraintException(arrayList);
}
}
public ConstraintReference verticalBias(float f) {
this.mVerticalBias = f;
return this;
}
public ConstraintReference width(Dimension dimension) {
return setWidth(dimension);
}
}

View file

@ -1,218 +0,0 @@
package androidx.constraintlayout.solver.state;
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
public class Dimension {
public static final Object FIXED_DIMENSION = new Object();
public static final Object PARENT_DIMENSION = new Object();
public static final Object PERCENT_DIMENSION = new Object();
public static final Object SPREAD_DIMENSION = new Object();
public static final Object WRAP_DIMENSION = new Object();
private final int WRAP_CONTENT = -2;
public Object mInitialValue = WRAP_DIMENSION;
public boolean mIsSuggested = false;
public int mMax = Integer.MAX_VALUE;
public int mMin = 0;
public float mPercent = 1.0f;
public float mRatio = 1.0f;
public int mValue = 0;
public enum Type {
FIXED,
WRAP,
MATCH_PARENT,
MATCH_CONSTRAINT
}
private Dimension() {
}
private Dimension(Object obj) {
this.mInitialValue = obj;
}
public static Dimension Fixed(int i) {
Dimension dimension = new Dimension(FIXED_DIMENSION);
dimension.fixed(i);
return dimension;
}
public static Dimension Fixed(Object obj) {
Dimension dimension = new Dimension(FIXED_DIMENSION);
dimension.fixed(obj);
return dimension;
}
public static Dimension Parent() {
return new Dimension(PARENT_DIMENSION);
}
public static Dimension Percent(Object obj, float f) {
Dimension dimension = new Dimension(PERCENT_DIMENSION);
dimension.percent(obj, f);
return dimension;
}
public static Dimension Spread() {
return new Dimension(SPREAD_DIMENSION);
}
public static Dimension Suggested(int i) {
Dimension dimension = new Dimension();
dimension.suggested(i);
return dimension;
}
public static Dimension Suggested(Object obj) {
Dimension dimension = new Dimension();
dimension.suggested(obj);
return dimension;
}
public static Dimension Wrap() {
return new Dimension(WRAP_DIMENSION);
}
public void apply(State state, ConstraintWidget constraintWidget, int i) {
int i2 = 2;
if (i == 0) {
if (this.mIsSuggested) {
constraintWidget.setHorizontalDimensionBehaviour(ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT);
Object obj = this.mInitialValue;
if (obj == WRAP_DIMENSION) {
i2 = 1;
} else if (obj != PERCENT_DIMENSION) {
i2 = 0;
}
constraintWidget.setHorizontalMatchStyle(i2, this.mMin, this.mMax, this.mPercent);
return;
}
int i3 = this.mMin;
if (i3 > 0) {
constraintWidget.setMinWidth(i3);
}
int i4 = this.mMax;
if (i4 < Integer.MAX_VALUE) {
constraintWidget.setMaxWidth(i4);
}
Object obj2 = this.mInitialValue;
if (obj2 == WRAP_DIMENSION) {
constraintWidget.setHorizontalDimensionBehaviour(ConstraintWidget.DimensionBehaviour.WRAP_CONTENT);
} else if (obj2 == PARENT_DIMENSION) {
constraintWidget.setHorizontalDimensionBehaviour(ConstraintWidget.DimensionBehaviour.MATCH_PARENT);
} else if (obj2 == null) {
constraintWidget.setHorizontalDimensionBehaviour(ConstraintWidget.DimensionBehaviour.FIXED);
constraintWidget.setWidth(this.mValue);
}
} else if (this.mIsSuggested) {
constraintWidget.setVerticalDimensionBehaviour(ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT);
Object obj3 = this.mInitialValue;
if (obj3 == WRAP_DIMENSION) {
i2 = 1;
} else if (obj3 != PERCENT_DIMENSION) {
i2 = 0;
}
constraintWidget.setVerticalMatchStyle(i2, this.mMin, this.mMax, this.mPercent);
} else {
int i5 = this.mMin;
if (i5 > 0) {
constraintWidget.setMinHeight(i5);
}
int i6 = this.mMax;
if (i6 < Integer.MAX_VALUE) {
constraintWidget.setMaxHeight(i6);
}
Object obj4 = this.mInitialValue;
if (obj4 == WRAP_DIMENSION) {
constraintWidget.setVerticalDimensionBehaviour(ConstraintWidget.DimensionBehaviour.WRAP_CONTENT);
} else if (obj4 == PARENT_DIMENSION) {
constraintWidget.setVerticalDimensionBehaviour(ConstraintWidget.DimensionBehaviour.MATCH_PARENT);
} else if (obj4 == null) {
constraintWidget.setVerticalDimensionBehaviour(ConstraintWidget.DimensionBehaviour.FIXED);
constraintWidget.setHeight(this.mValue);
}
}
}
public Dimension fixed(int i) {
this.mInitialValue = null;
this.mValue = i;
return this;
}
public Dimension fixed(Object obj) {
this.mInitialValue = obj;
if (obj instanceof Integer) {
this.mValue = ((Integer) obj).intValue();
this.mInitialValue = null;
}
return this;
}
public float getRatio() {
return this.mRatio;
}
public int getValue() {
return this.mValue;
}
public Dimension max(int i) {
if (this.mMax >= 0) {
this.mMax = i;
}
return this;
}
public Dimension max(Object obj) {
Object obj2 = WRAP_DIMENSION;
if (obj == obj2 && this.mIsSuggested) {
this.mInitialValue = obj2;
this.mMax = Integer.MAX_VALUE;
}
return this;
}
public Dimension min(int i) {
if (i >= 0) {
this.mMin = i;
}
return this;
}
public Dimension min(Object obj) {
if (obj == WRAP_DIMENSION) {
this.mMin = -2;
}
return this;
}
public Dimension percent(Object obj, float f) {
this.mPercent = f;
return this;
}
public Dimension ratio(float f) {
return this;
}
public void setRatio(float f) {
this.mRatio = f;
}
public void setValue(int i) {
this.mIsSuggested = false;
this.mInitialValue = null;
this.mValue = i;
}
public Dimension suggested(int i) {
this.mIsSuggested = true;
return this;
}
public Dimension suggested(Object obj) {
this.mInitialValue = obj;
this.mIsSuggested = true;
return this;
}
}

View file

@ -1,38 +0,0 @@
package androidx.constraintlayout.solver.state;
import androidx.constraintlayout.solver.state.State;
import androidx.constraintlayout.solver.widgets.HelperWidget;
import java.util.ArrayList;
public class HelperReference {
private HelperWidget mHelperWidget;
public ArrayList<Object> mReferences = new ArrayList<>();
public final State mState;
public final State.Helper mType;
public HelperReference(State state, State.Helper helper) {
this.mState = state;
this.mType = helper;
}
public HelperReference add(Object... objArr) {
for (Object obj : objArr) {
this.mReferences.add(obj);
}
return this;
}
public void apply() {
}
public HelperWidget getHelperWidget() {
return this.mHelperWidget;
}
public State.Helper getType() {
return this.mType;
}
public void setHelperWidget(HelperWidget helperWidget) {
this.mHelperWidget = helperWidget;
}
}

View file

@ -1,14 +0,0 @@
package androidx.constraintlayout.solver.state;
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
public interface Reference {
void apply();
ConstraintWidget getConstraintWidget();
Object getKey();
void setConstraintWidget(ConstraintWidget constraintWidget);
void setKey(Object obj);
}

View file

@ -1,297 +0,0 @@
package androidx.constraintlayout.solver.state;
import androidx.constraintlayout.solver.state.helpers.AlignHorizontallyReference;
import androidx.constraintlayout.solver.state.helpers.AlignVerticallyReference;
import androidx.constraintlayout.solver.state.helpers.BarrierReference;
import androidx.constraintlayout.solver.state.helpers.GuidelineReference;
import androidx.constraintlayout.solver.state.helpers.HorizontalChainReference;
import androidx.constraintlayout.solver.state.helpers.VerticalChainReference;
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
import androidx.constraintlayout.solver.widgets.ConstraintWidgetContainer;
import androidx.constraintlayout.solver.widgets.HelperWidget;
import c.d.b.a.a;
import java.util.HashMap;
import java.util.Iterator;
public class State {
public static final int CONSTRAINT_RATIO = 2;
public static final int CONSTRAINT_SPREAD = 0;
public static final int CONSTRAINT_WRAP = 1;
public static final Integer PARENT = 0;
public static final int UNKNOWN = -1;
public HashMap<Object, HelperReference> mHelperReferences = new HashMap<>();
public final ConstraintReference mParent;
public HashMap<Object, Reference> mReferences = new HashMap<>();
private int numHelpers;
/* renamed from: androidx.constraintlayout.solver.state.State$1 reason: invalid class name */
public static /* synthetic */ class AnonymousClass1 {
public static final /* synthetic */ int[] $SwitchMap$androidx$constraintlayout$solver$state$State$Helper;
static {
Helper.values();
int[] iArr = new int[7];
$SwitchMap$androidx$constraintlayout$solver$state$State$Helper = iArr;
try {
iArr[Helper.HORIZONTAL_CHAIN.ordinal()] = 1;
} catch (NoSuchFieldError unused) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$state$State$Helper[Helper.VERTICAL_CHAIN.ordinal()] = 2;
} catch (NoSuchFieldError unused2) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$state$State$Helper[Helper.ALIGN_HORIZONTALLY.ordinal()] = 3;
} catch (NoSuchFieldError unused3) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$state$State$Helper[Helper.ALIGN_VERTICALLY.ordinal()] = 4;
} catch (NoSuchFieldError unused4) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$state$State$Helper[Helper.BARRIER.ordinal()] = 5;
} catch (NoSuchFieldError unused5) {
}
}
}
public enum Chain {
SPREAD,
SPREAD_INSIDE,
PACKED
}
public enum Constraint {
LEFT_TO_LEFT,
LEFT_TO_RIGHT,
RIGHT_TO_LEFT,
RIGHT_TO_RIGHT,
START_TO_START,
START_TO_END,
END_TO_START,
END_TO_END,
TOP_TO_TOP,
TOP_TO_BOTTOM,
BOTTOM_TO_TOP,
BOTTOM_TO_BOTTOM,
BASELINE_TO_BASELINE,
CENTER_HORIZONTALLY,
CENTER_VERTICALLY
}
public enum Direction {
LEFT,
RIGHT,
START,
END,
TOP,
BOTTOM
}
public enum Helper {
HORIZONTAL_CHAIN,
VERTICAL_CHAIN,
ALIGN_HORIZONTALLY,
ALIGN_VERTICALLY,
BARRIER,
LAYER,
FLOW
}
public State() {
ConstraintReference constraintReference = new ConstraintReference(this);
this.mParent = constraintReference;
this.numHelpers = 0;
this.mReferences.put(PARENT, constraintReference);
}
private String createHelperKey() {
StringBuilder K = a.K("__HELPER_KEY_");
int i = this.numHelpers;
this.numHelpers = i + 1;
return a.w(K, i, "__");
}
public void apply(ConstraintWidgetContainer constraintWidgetContainer) {
constraintWidgetContainer.removeAllChildren();
this.mParent.getWidth().apply(this, constraintWidgetContainer, 0);
this.mParent.getHeight().apply(this, constraintWidgetContainer, 1);
for (Object obj : this.mHelperReferences.keySet()) {
HelperWidget helperWidget = this.mHelperReferences.get(obj).getHelperWidget();
if (helperWidget != null) {
Reference reference = this.mReferences.get(obj);
if (reference == null) {
reference = constraints(obj);
}
reference.setConstraintWidget(helperWidget);
}
}
for (Object obj2 : this.mReferences.keySet()) {
Reference reference2 = this.mReferences.get(obj2);
if (reference2 != this.mParent) {
ConstraintWidget constraintWidget = reference2.getConstraintWidget();
constraintWidget.setParent(null);
if (reference2 instanceof GuidelineReference) {
reference2.apply();
}
constraintWidgetContainer.add(constraintWidget);
} else {
reference2.setConstraintWidget(constraintWidgetContainer);
}
}
for (Object obj3 : this.mHelperReferences.keySet()) {
HelperReference helperReference = this.mHelperReferences.get(obj3);
if (helperReference.getHelperWidget() != null) {
Iterator<Object> it = helperReference.mReferences.iterator();
while (it.hasNext()) {
helperReference.getHelperWidget().add(this.mReferences.get(it.next()).getConstraintWidget());
}
helperReference.apply();
}
}
for (Object obj4 : this.mReferences.keySet()) {
this.mReferences.get(obj4).apply();
}
}
public BarrierReference barrier(Object obj, Direction direction) {
BarrierReference barrierReference = (BarrierReference) helper(obj, Helper.BARRIER);
barrierReference.setBarrierDirection(direction);
return barrierReference;
}
public AlignHorizontallyReference centerHorizontally(Object... objArr) {
AlignHorizontallyReference alignHorizontallyReference = (AlignHorizontallyReference) helper(null, Helper.ALIGN_HORIZONTALLY);
alignHorizontallyReference.add(objArr);
return alignHorizontallyReference;
}
public AlignVerticallyReference centerVertically(Object... objArr) {
AlignVerticallyReference alignVerticallyReference = (AlignVerticallyReference) helper(null, Helper.ALIGN_VERTICALLY);
alignVerticallyReference.add(objArr);
return alignVerticallyReference;
}
public ConstraintReference constraints(Object obj) {
Reference reference = this.mReferences.get(obj);
if (reference == null) {
reference = createConstraintReference(obj);
this.mReferences.put(obj, reference);
reference.setKey(obj);
}
if (reference instanceof ConstraintReference) {
return (ConstraintReference) reference;
}
return null;
}
public int convertDimension(Object obj) {
if (obj instanceof Float) {
return ((Float) obj).intValue();
}
if (obj instanceof Integer) {
return ((Integer) obj).intValue();
}
return 0;
}
public ConstraintReference createConstraintReference(Object obj) {
return new ConstraintReference(this);
}
public void directMapping() {
for (Object obj : this.mReferences.keySet()) {
constraints(obj).setView(obj);
}
}
public GuidelineReference guideline(Object obj, int i) {
Reference reference = this.mReferences.get(obj);
GuidelineReference guidelineReference = reference;
if (reference == null) {
GuidelineReference guidelineReference2 = new GuidelineReference(this);
guidelineReference2.setOrientation(i);
guidelineReference2.setKey(obj);
this.mReferences.put(obj, guidelineReference2);
guidelineReference = guidelineReference2;
}
return (GuidelineReference) guidelineReference;
}
public State height(Dimension dimension) {
return setHeight(dimension);
}
public HelperReference helper(Object obj, Helper helper) {
HelperReference helperReference;
if (obj == null) {
obj = createHelperKey();
}
HelperReference helperReference2 = this.mHelperReferences.get(obj);
if (helperReference2 == null) {
int ordinal = helper.ordinal();
if (ordinal == 0) {
helperReference = new HorizontalChainReference(this);
} else if (ordinal == 1) {
helperReference = new VerticalChainReference(this);
} else if (ordinal == 2) {
helperReference = new AlignHorizontallyReference(this);
} else if (ordinal == 3) {
helperReference = new AlignVerticallyReference(this);
} else if (ordinal != 4) {
helperReference2 = new HelperReference(this, helper);
this.mHelperReferences.put(obj, helperReference2);
} else {
helperReference = new BarrierReference(this);
}
helperReference2 = helperReference;
this.mHelperReferences.put(obj, helperReference2);
}
return helperReference2;
}
public HorizontalChainReference horizontalChain(Object... objArr) {
HorizontalChainReference horizontalChainReference = (HorizontalChainReference) helper(null, Helper.HORIZONTAL_CHAIN);
horizontalChainReference.add(objArr);
return horizontalChainReference;
}
public GuidelineReference horizontalGuideline(Object obj) {
return guideline(obj, 0);
}
public void map(Object obj, Object obj2) {
constraints(obj).setView(obj2);
}
public Reference reference(Object obj) {
return this.mReferences.get(obj);
}
public void reset() {
this.mHelperReferences.clear();
}
public State setHeight(Dimension dimension) {
this.mParent.setHeight(dimension);
return this;
}
public State setWidth(Dimension dimension) {
this.mParent.setWidth(dimension);
return this;
}
public VerticalChainReference verticalChain(Object... objArr) {
VerticalChainReference verticalChainReference = (VerticalChainReference) helper(null, Helper.VERTICAL_CHAIN);
verticalChainReference.add(objArr);
return verticalChainReference;
}
public GuidelineReference verticalGuideline(Object obj) {
return guideline(obj, 1);
}
public State width(Dimension dimension) {
return setWidth(dimension);
}
}

View file

@ -1,72 +0,0 @@
package androidx.constraintlayout.solver.state.helpers;
import androidx.constraintlayout.solver.state.ConstraintReference;
import androidx.constraintlayout.solver.state.HelperReference;
import androidx.constraintlayout.solver.state.State;
import java.util.Iterator;
public class AlignHorizontallyReference extends HelperReference {
private float mBias = 0.5f;
private Object mEndToEnd;
private Object mEndToStart;
private Object mStartToEnd;
private Object mStartToStart;
public AlignHorizontallyReference(State state) {
super(state, State.Helper.ALIGN_VERTICALLY);
}
@Override // androidx.constraintlayout.solver.state.HelperReference
public void apply() {
Iterator<Object> it = this.mReferences.iterator();
while (it.hasNext()) {
ConstraintReference constraints = this.mState.constraints(it.next());
constraints.clearHorizontal();
Object obj = this.mStartToStart;
if (obj != null) {
constraints.startToStart(obj);
} else {
Object obj2 = this.mStartToEnd;
if (obj2 != null) {
constraints.startToEnd(obj2);
} else {
constraints.startToStart(State.PARENT);
}
}
Object obj3 = this.mEndToStart;
if (obj3 != null) {
constraints.endToStart(obj3);
} else {
Object obj4 = this.mEndToEnd;
if (obj4 != null) {
constraints.endToEnd(obj4);
} else {
constraints.endToEnd(State.PARENT);
}
}
float f = this.mBias;
if (f != 0.5f) {
constraints.horizontalBias(f);
}
}
}
public void bias(float f) {
this.mBias = f;
}
public void endToEnd(Object obj) {
this.mEndToEnd = obj;
}
public void endToStart(Object obj) {
this.mEndToStart = obj;
}
public void startToEnd(Object obj) {
this.mStartToEnd = obj;
}
public void startToStart(Object obj) {
this.mStartToStart = obj;
}
}

View file

@ -1,72 +0,0 @@
package androidx.constraintlayout.solver.state.helpers;
import androidx.constraintlayout.solver.state.ConstraintReference;
import androidx.constraintlayout.solver.state.HelperReference;
import androidx.constraintlayout.solver.state.State;
import java.util.Iterator;
public class AlignVerticallyReference extends HelperReference {
private float mBias = 0.5f;
private Object mBottomToBottom;
private Object mBottomToTop;
private Object mTopToBottom;
private Object mTopToTop;
public AlignVerticallyReference(State state) {
super(state, State.Helper.ALIGN_VERTICALLY);
}
@Override // androidx.constraintlayout.solver.state.HelperReference
public void apply() {
Iterator<Object> it = this.mReferences.iterator();
while (it.hasNext()) {
ConstraintReference constraints = this.mState.constraints(it.next());
constraints.clearVertical();
Object obj = this.mTopToTop;
if (obj != null) {
constraints.topToTop(obj);
} else {
Object obj2 = this.mTopToBottom;
if (obj2 != null) {
constraints.topToBottom(obj2);
} else {
constraints.topToTop(State.PARENT);
}
}
Object obj3 = this.mBottomToTop;
if (obj3 != null) {
constraints.bottomToTop(obj3);
} else {
Object obj4 = this.mBottomToBottom;
if (obj4 != null) {
constraints.bottomToBottom(obj4);
} else {
constraints.bottomToBottom(State.PARENT);
}
}
float f = this.mBias;
if (f != 0.5f) {
constraints.verticalBias(f);
}
}
}
public void bias(float f) {
this.mBias = f;
}
public void bottomToBottom(Object obj) {
this.mBottomToBottom = obj;
}
public void bottomToTop(Object obj) {
this.mBottomToTop = obj;
}
public void topToBottom(Object obj) {
this.mTopToBottom = obj;
}
public void topToTop(Object obj) {
this.mTopToTop = obj;
}
}

View file

@ -1,99 +0,0 @@
package androidx.constraintlayout.solver.state.helpers;
import androidx.constraintlayout.solver.state.HelperReference;
import androidx.constraintlayout.solver.state.State;
import androidx.constraintlayout.solver.widgets.Barrier;
import androidx.constraintlayout.solver.widgets.HelperWidget;
public class BarrierReference extends HelperReference {
private Barrier mBarrierWidget;
private State.Direction mDirection;
private int mMargin;
/* renamed from: androidx.constraintlayout.solver.state.helpers.BarrierReference$1 reason: invalid class name */
public static /* synthetic */ class AnonymousClass1 {
public static final /* synthetic */ int[] $SwitchMap$androidx$constraintlayout$solver$state$State$Direction;
static {
State.Direction.values();
int[] iArr = new int[6];
$SwitchMap$androidx$constraintlayout$solver$state$State$Direction = iArr;
try {
iArr[State.Direction.LEFT.ordinal()] = 1;
} catch (NoSuchFieldError unused) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$state$State$Direction[State.Direction.START.ordinal()] = 2;
} catch (NoSuchFieldError unused2) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$state$State$Direction[State.Direction.RIGHT.ordinal()] = 3;
} catch (NoSuchFieldError unused3) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$state$State$Direction[State.Direction.END.ordinal()] = 4;
} catch (NoSuchFieldError unused4) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$state$State$Direction[State.Direction.TOP.ordinal()] = 5;
} catch (NoSuchFieldError unused5) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$state$State$Direction[State.Direction.BOTTOM.ordinal()] = 6;
} catch (NoSuchFieldError unused6) {
}
}
}
public BarrierReference(State state) {
super(state, State.Helper.BARRIER);
}
/* JADX WARNING: Code restructure failed: missing block: B:8:0x0019, code lost:
if (r0 != 5) goto L_0x001b;
*/
@Override // androidx.constraintlayout.solver.state.HelperReference
public void apply() {
getHelperWidget();
int ordinal = this.mDirection.ordinal();
int i = 3;
if (ordinal != 0) {
if (ordinal != 1) {
if (ordinal != 2) {
if (ordinal != 3) {
if (ordinal == 4) {
i = 2;
}
this.mBarrierWidget.setBarrierType(i);
this.mBarrierWidget.setMargin(this.mMargin);
}
}
}
i = 1;
this.mBarrierWidget.setBarrierType(i);
this.mBarrierWidget.setMargin(this.mMargin);
}
i = 0;
this.mBarrierWidget.setBarrierType(i);
this.mBarrierWidget.setMargin(this.mMargin);
}
@Override // androidx.constraintlayout.solver.state.HelperReference
public HelperWidget getHelperWidget() {
if (this.mBarrierWidget == null) {
this.mBarrierWidget = new Barrier();
}
return this.mBarrierWidget;
}
public void margin(int i) {
this.mMargin = i;
}
public void margin(Object obj) {
margin(this.mState.convertDimension(obj));
}
public void setBarrierDirection(State.Direction direction) {
this.mDirection = direction;
}
}

View file

@ -1,28 +0,0 @@
package androidx.constraintlayout.solver.state.helpers;
import androidx.constraintlayout.solver.state.HelperReference;
import androidx.constraintlayout.solver.state.State;
public class ChainReference extends HelperReference {
public float mBias = 0.5f;
public State.Chain mStyle = State.Chain.SPREAD;
public ChainReference(State state, State.Helper helper) {
super(state, helper);
}
public void bias(float f) {
this.mBias = f;
}
public float getBias() {
return this.mBias;
}
public State.Chain getStyle() {
return State.Chain.SPREAD;
}
public void style(State.Chain chain) {
this.mStyle = chain;
}
}

View file

@ -1,88 +0,0 @@
package androidx.constraintlayout.solver.state.helpers;
import androidx.constraintlayout.solver.state.Reference;
import androidx.constraintlayout.solver.state.State;
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
import androidx.constraintlayout.solver.widgets.Guideline;
public class GuidelineReference implements Reference {
private Object key;
private int mEnd = -1;
private Guideline mGuidelineWidget;
private int mOrientation;
private float mPercent = 0.0f;
private int mStart = -1;
public final State mState;
public GuidelineReference(State state) {
this.mState = state;
}
@Override // androidx.constraintlayout.solver.state.Reference
public void apply() {
this.mGuidelineWidget.setOrientation(this.mOrientation);
int i = this.mStart;
if (i != -1) {
this.mGuidelineWidget.setGuideBegin(i);
return;
}
int i2 = this.mEnd;
if (i2 != -1) {
this.mGuidelineWidget.setGuideEnd(i2);
} else {
this.mGuidelineWidget.setGuidePercent(this.mPercent);
}
}
public void end(Object obj) {
this.mStart = -1;
this.mEnd = this.mState.convertDimension(obj);
this.mPercent = 0.0f;
}
@Override // androidx.constraintlayout.solver.state.Reference
public ConstraintWidget getConstraintWidget() {
if (this.mGuidelineWidget == null) {
this.mGuidelineWidget = new Guideline();
}
return this.mGuidelineWidget;
}
@Override // androidx.constraintlayout.solver.state.Reference
public Object getKey() {
return this.key;
}
public int getOrientation() {
return this.mOrientation;
}
public void percent(float f) {
this.mStart = -1;
this.mEnd = -1;
this.mPercent = f;
}
@Override // androidx.constraintlayout.solver.state.Reference
public void setConstraintWidget(ConstraintWidget constraintWidget) {
if (constraintWidget instanceof Guideline) {
this.mGuidelineWidget = (Guideline) constraintWidget;
} else {
this.mGuidelineWidget = null;
}
}
@Override // androidx.constraintlayout.solver.state.Reference
public void setKey(Object obj) {
this.key = obj;
}
public void setOrientation(int i) {
this.mOrientation = i;
}
public void start(Object obj) {
this.mStart = this.mState.convertDimension(obj);
this.mEnd = -1;
this.mPercent = 0.0f;
}
}

View file

@ -1,114 +0,0 @@
package androidx.constraintlayout.solver.state.helpers;
import androidx.constraintlayout.solver.state.ConstraintReference;
import androidx.constraintlayout.solver.state.State;
import java.util.Iterator;
public class HorizontalChainReference extends ChainReference {
private Object mEndToEnd;
private Object mEndToStart;
private Object mStartToEnd;
private Object mStartToStart;
/* renamed from: androidx.constraintlayout.solver.state.helpers.HorizontalChainReference$1 reason: invalid class name */
public static /* synthetic */ class AnonymousClass1 {
public static final /* synthetic */ int[] $SwitchMap$androidx$constraintlayout$solver$state$State$Chain;
static {
State.Chain.values();
int[] iArr = new int[3];
$SwitchMap$androidx$constraintlayout$solver$state$State$Chain = iArr;
try {
iArr[State.Chain.SPREAD.ordinal()] = 1;
} catch (NoSuchFieldError unused) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$state$State$Chain[State.Chain.SPREAD_INSIDE.ordinal()] = 2;
} catch (NoSuchFieldError unused2) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$state$State$Chain[State.Chain.PACKED.ordinal()] = 3;
} catch (NoSuchFieldError unused3) {
}
}
}
public HorizontalChainReference(State state) {
super(state, State.Helper.HORIZONTAL_CHAIN);
}
@Override // androidx.constraintlayout.solver.state.HelperReference
public void apply() {
Iterator<Object> it = this.mReferences.iterator();
while (it.hasNext()) {
this.mState.constraints(it.next()).clearHorizontal();
}
Iterator<Object> it2 = this.mReferences.iterator();
ConstraintReference constraintReference = null;
ConstraintReference constraintReference2 = null;
while (it2.hasNext()) {
ConstraintReference constraints = this.mState.constraints(it2.next());
if (constraintReference2 == null) {
Object obj = this.mStartToStart;
if (obj != null) {
constraints.startToStart(obj);
} else {
Object obj2 = this.mStartToEnd;
if (obj2 != null) {
constraints.startToEnd(obj2);
} else {
constraints.startToStart(State.PARENT);
}
}
constraintReference2 = constraints;
}
if (constraintReference != null) {
constraintReference.endToStart(constraints.getKey());
constraints.startToEnd(constraintReference.getKey());
}
constraintReference = constraints;
}
if (constraintReference != null) {
Object obj3 = this.mEndToStart;
if (obj3 != null) {
constraintReference.endToStart(obj3);
} else {
Object obj4 = this.mEndToEnd;
if (obj4 != null) {
constraintReference.endToEnd(obj4);
} else {
constraintReference.endToEnd(State.PARENT);
}
}
}
if (constraintReference2 != null) {
float f = this.mBias;
if (f != 0.5f) {
constraintReference2.horizontalBias(f);
}
}
int ordinal = this.mStyle.ordinal();
if (ordinal == 0) {
constraintReference2.setHorizontalChainStyle(0);
} else if (ordinal == 1) {
constraintReference2.setHorizontalChainStyle(1);
} else if (ordinal == 2) {
constraintReference2.setHorizontalChainStyle(2);
}
}
public void endToEnd(Object obj) {
this.mEndToEnd = obj;
}
public void endToStart(Object obj) {
this.mEndToStart = obj;
}
public void startToEnd(Object obj) {
this.mStartToEnd = obj;
}
public void startToStart(Object obj) {
this.mStartToStart = obj;
}
}

View file

@ -1,114 +0,0 @@
package androidx.constraintlayout.solver.state.helpers;
import androidx.constraintlayout.solver.state.ConstraintReference;
import androidx.constraintlayout.solver.state.State;
import java.util.Iterator;
public class VerticalChainReference extends ChainReference {
private Object mBottomToBottom;
private Object mBottomToTop;
private Object mTopToBottom;
private Object mTopToTop;
/* renamed from: androidx.constraintlayout.solver.state.helpers.VerticalChainReference$1 reason: invalid class name */
public static /* synthetic */ class AnonymousClass1 {
public static final /* synthetic */ int[] $SwitchMap$androidx$constraintlayout$solver$state$State$Chain;
static {
State.Chain.values();
int[] iArr = new int[3];
$SwitchMap$androidx$constraintlayout$solver$state$State$Chain = iArr;
try {
iArr[State.Chain.SPREAD.ordinal()] = 1;
} catch (NoSuchFieldError unused) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$state$State$Chain[State.Chain.SPREAD_INSIDE.ordinal()] = 2;
} catch (NoSuchFieldError unused2) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$state$State$Chain[State.Chain.PACKED.ordinal()] = 3;
} catch (NoSuchFieldError unused3) {
}
}
}
public VerticalChainReference(State state) {
super(state, State.Helper.VERTICAL_CHAIN);
}
@Override // androidx.constraintlayout.solver.state.HelperReference
public void apply() {
Iterator<Object> it = this.mReferences.iterator();
while (it.hasNext()) {
this.mState.constraints(it.next()).clearVertical();
}
Iterator<Object> it2 = this.mReferences.iterator();
ConstraintReference constraintReference = null;
ConstraintReference constraintReference2 = null;
while (it2.hasNext()) {
ConstraintReference constraints = this.mState.constraints(it2.next());
if (constraintReference2 == null) {
Object obj = this.mTopToTop;
if (obj != null) {
constraints.topToTop(obj);
} else {
Object obj2 = this.mTopToBottom;
if (obj2 != null) {
constraints.topToBottom(obj2);
} else {
constraints.topToTop(State.PARENT);
}
}
constraintReference2 = constraints;
}
if (constraintReference != null) {
constraintReference.bottomToTop(constraints.getKey());
constraints.topToBottom(constraintReference.getKey());
}
constraintReference = constraints;
}
if (constraintReference != null) {
Object obj3 = this.mBottomToTop;
if (obj3 != null) {
constraintReference.bottomToTop(obj3);
} else {
Object obj4 = this.mBottomToBottom;
if (obj4 != null) {
constraintReference.bottomToBottom(obj4);
} else {
constraintReference.bottomToBottom(State.PARENT);
}
}
}
if (constraintReference2 != null) {
float f = this.mBias;
if (f != 0.5f) {
constraintReference2.verticalBias(f);
}
}
int ordinal = this.mStyle.ordinal();
if (ordinal == 0) {
constraintReference2.setVerticalChainStyle(0);
} else if (ordinal == 1) {
constraintReference2.setVerticalChainStyle(1);
} else if (ordinal == 2) {
constraintReference2.setVerticalChainStyle(2);
}
}
public void bottomToBottom(Object obj) {
this.mBottomToBottom = obj;
}
public void bottomToTop(Object obj) {
this.mBottomToTop = obj;
}
public void topToBottom(Object obj) {
this.mTopToBottom = obj;
}
public void topToTop(Object obj) {
this.mTopToTop = obj;
}
}

View file

@ -1,270 +0,0 @@
package androidx.constraintlayout.solver.widgets;
import androidx.constraintlayout.solver.LinearSystem;
import androidx.constraintlayout.solver.SolverVariable;
import androidx.constraintlayout.solver.widgets.ConstraintAnchor;
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
import c.d.b.a.a;
import java.util.HashMap;
public class Barrier extends HelperWidget {
public static final int BOTTOM = 3;
public static final int LEFT = 0;
public static final int RIGHT = 1;
public static final int TOP = 2;
private static final boolean USE_RELAX_GONE = false;
private static final boolean USE_RESOLUTION = true;
private boolean mAllowsGoneWidget = true;
private int mBarrierType = 0;
private int mMargin = 0;
public boolean resolved = false;
public Barrier() {
}
public Barrier(String str) {
setDebugName(str);
}
@Override // androidx.constraintlayout.solver.widgets.ConstraintWidget
public void addToSolver(LinearSystem linearSystem, boolean z2) {
Object[] objArr;
boolean z3;
int i;
int i2;
int i3;
ConstraintAnchor[] constraintAnchorArr = this.mListAnchors;
constraintAnchorArr[0] = this.mLeft;
constraintAnchorArr[2] = this.mTop;
constraintAnchorArr[1] = this.mRight;
constraintAnchorArr[3] = this.mBottom;
int i4 = 0;
while (true) {
objArr = this.mListAnchors;
if (i4 >= objArr.length) {
break;
}
objArr[i4].mSolverVariable = linearSystem.createObjectVariable(objArr[i4]);
i4++;
}
int i5 = this.mBarrierType;
if (i5 >= 0 && i5 < 4) {
ConstraintAnchor constraintAnchor = objArr[i5];
if (!this.resolved) {
allSolved();
}
if (this.resolved) {
this.resolved = false;
int i6 = this.mBarrierType;
if (i6 == 0 || i6 == 1) {
linearSystem.addEquality(this.mLeft.mSolverVariable, this.mX);
linearSystem.addEquality(this.mRight.mSolverVariable, this.mX);
} else if (i6 == 2 || i6 == 3) {
linearSystem.addEquality(this.mTop.mSolverVariable, this.mY);
linearSystem.addEquality(this.mBottom.mSolverVariable, this.mY);
}
} else {
int i7 = 0;
while (true) {
if (i7 >= this.mWidgetsCount) {
z3 = false;
break;
}
ConstraintWidget constraintWidget = this.mWidgets[i7];
if ((this.mAllowsGoneWidget || constraintWidget.allowedInBarrier()) && ((((i2 = this.mBarrierType) == 0 || i2 == 1) && constraintWidget.getHorizontalDimensionBehaviour() == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT && constraintWidget.mLeft.mTarget != null && constraintWidget.mRight.mTarget != null) || (((i3 = this.mBarrierType) == 2 || i3 == 3) && constraintWidget.getVerticalDimensionBehaviour() == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT && constraintWidget.mTop.mTarget != null && constraintWidget.mBottom.mTarget != null))) {
break;
}
i7++;
}
z3 = true;
boolean z4 = this.mLeft.hasCenteredDependents() || this.mRight.hasCenteredDependents();
boolean z5 = this.mTop.hasCenteredDependents() || this.mBottom.hasCenteredDependents();
boolean z6 = !z3 && (((i = this.mBarrierType) == 0 && z4) || ((i == 2 && z5) || ((i == 1 && z4) || (i == 3 && z5))));
int i8 = 5;
if (!z6) {
i8 = 4;
}
for (int i9 = 0; i9 < this.mWidgetsCount; i9++) {
ConstraintWidget constraintWidget2 = this.mWidgets[i9];
if (this.mAllowsGoneWidget || constraintWidget2.allowedInBarrier()) {
SolverVariable createObjectVariable = linearSystem.createObjectVariable(constraintWidget2.mListAnchors[this.mBarrierType]);
ConstraintAnchor[] constraintAnchorArr2 = constraintWidget2.mListAnchors;
int i10 = this.mBarrierType;
constraintAnchorArr2[i10].mSolverVariable = createObjectVariable;
int i11 = (constraintAnchorArr2[i10].mTarget == null || constraintAnchorArr2[i10].mTarget.mOwner != this) ? 0 : constraintAnchorArr2[i10].mMargin + 0;
if (i10 == 0 || i10 == 2) {
linearSystem.addLowerBarrier(constraintAnchor.mSolverVariable, createObjectVariable, this.mMargin - i11, z3);
} else {
linearSystem.addGreaterBarrier(constraintAnchor.mSolverVariable, createObjectVariable, this.mMargin + i11, z3);
}
linearSystem.addEquality(constraintAnchor.mSolverVariable, createObjectVariable, this.mMargin + i11, i8);
}
}
int i12 = this.mBarrierType;
if (i12 == 0) {
linearSystem.addEquality(this.mRight.mSolverVariable, this.mLeft.mSolverVariable, 0, 8);
linearSystem.addEquality(this.mLeft.mSolverVariable, this.mParent.mRight.mSolverVariable, 0, 4);
linearSystem.addEquality(this.mLeft.mSolverVariable, this.mParent.mLeft.mSolverVariable, 0, 0);
} else if (i12 == 1) {
linearSystem.addEquality(this.mLeft.mSolverVariable, this.mRight.mSolverVariable, 0, 8);
linearSystem.addEquality(this.mLeft.mSolverVariable, this.mParent.mLeft.mSolverVariable, 0, 4);
linearSystem.addEquality(this.mLeft.mSolverVariable, this.mParent.mRight.mSolverVariable, 0, 0);
} else if (i12 == 2) {
linearSystem.addEquality(this.mBottom.mSolverVariable, this.mTop.mSolverVariable, 0, 8);
linearSystem.addEquality(this.mTop.mSolverVariable, this.mParent.mBottom.mSolverVariable, 0, 4);
linearSystem.addEquality(this.mTop.mSolverVariable, this.mParent.mTop.mSolverVariable, 0, 0);
} else if (i12 == 3) {
linearSystem.addEquality(this.mTop.mSolverVariable, this.mBottom.mSolverVariable, 0, 8);
linearSystem.addEquality(this.mTop.mSolverVariable, this.mParent.mTop.mSolverVariable, 0, 4);
linearSystem.addEquality(this.mTop.mSolverVariable, this.mParent.mBottom.mSolverVariable, 0, 0);
}
}
}
}
public boolean allSolved() {
int i;
int i2;
int i3;
int i4 = 0;
boolean z2 = true;
while (true) {
i = this.mWidgetsCount;
if (i4 >= i) {
break;
}
ConstraintWidget constraintWidget = this.mWidgets[i4];
if ((this.mAllowsGoneWidget || constraintWidget.allowedInBarrier()) && ((((i2 = this.mBarrierType) == 0 || i2 == 1) && !constraintWidget.isResolvedHorizontally()) || (((i3 = this.mBarrierType) == 2 || i3 == 3) && !constraintWidget.isResolvedVertically()))) {
z2 = false;
}
i4++;
}
if (!z2 || i <= 0) {
return false;
}
int i5 = 0;
boolean z3 = false;
for (int i6 = 0; i6 < this.mWidgetsCount; i6++) {
ConstraintWidget constraintWidget2 = this.mWidgets[i6];
if (this.mAllowsGoneWidget || constraintWidget2.allowedInBarrier()) {
if (!z3) {
int i7 = this.mBarrierType;
if (i7 == 0) {
i5 = constraintWidget2.getAnchor(ConstraintAnchor.Type.LEFT).getFinalValue();
} else if (i7 == 1) {
i5 = constraintWidget2.getAnchor(ConstraintAnchor.Type.RIGHT).getFinalValue();
} else if (i7 == 2) {
i5 = constraintWidget2.getAnchor(ConstraintAnchor.Type.TOP).getFinalValue();
} else if (i7 == 3) {
i5 = constraintWidget2.getAnchor(ConstraintAnchor.Type.BOTTOM).getFinalValue();
}
z3 = true;
}
int i8 = this.mBarrierType;
if (i8 == 0) {
i5 = Math.min(i5, constraintWidget2.getAnchor(ConstraintAnchor.Type.LEFT).getFinalValue());
} else if (i8 == 1) {
i5 = Math.max(i5, constraintWidget2.getAnchor(ConstraintAnchor.Type.RIGHT).getFinalValue());
} else if (i8 == 2) {
i5 = Math.min(i5, constraintWidget2.getAnchor(ConstraintAnchor.Type.TOP).getFinalValue());
} else if (i8 == 3) {
i5 = Math.max(i5, constraintWidget2.getAnchor(ConstraintAnchor.Type.BOTTOM).getFinalValue());
}
}
}
int i9 = i5 + this.mMargin;
int i10 = this.mBarrierType;
if (i10 == 0 || i10 == 1) {
setFinalHorizontal(i9, i9);
} else {
setFinalVertical(i9, i9);
}
this.resolved = true;
return true;
}
@Override // androidx.constraintlayout.solver.widgets.ConstraintWidget
public boolean allowedInBarrier() {
return true;
}
public boolean allowsGoneWidget() {
return this.mAllowsGoneWidget;
}
@Override // androidx.constraintlayout.solver.widgets.HelperWidget, androidx.constraintlayout.solver.widgets.ConstraintWidget
public void copy(ConstraintWidget constraintWidget, HashMap<ConstraintWidget, ConstraintWidget> hashMap) {
super.copy(constraintWidget, hashMap);
Barrier barrier = (Barrier) constraintWidget;
this.mBarrierType = barrier.mBarrierType;
this.mAllowsGoneWidget = barrier.mAllowsGoneWidget;
this.mMargin = barrier.mMargin;
}
public int getBarrierType() {
return this.mBarrierType;
}
public int getMargin() {
return this.mMargin;
}
public int getOrientation() {
int i = this.mBarrierType;
if (i == 0 || i == 1) {
return 0;
}
return (i == 2 || i == 3) ? 1 : -1;
}
@Override // androidx.constraintlayout.solver.widgets.ConstraintWidget
public boolean isResolvedHorizontally() {
return this.resolved;
}
@Override // androidx.constraintlayout.solver.widgets.ConstraintWidget
public boolean isResolvedVertically() {
return this.resolved;
}
public void markWidgets() {
for (int i = 0; i < this.mWidgetsCount; i++) {
ConstraintWidget constraintWidget = this.mWidgets[i];
int i2 = this.mBarrierType;
if (i2 == 0 || i2 == 1) {
constraintWidget.setInBarrier(0, true);
} else if (i2 == 2 || i2 == 3) {
constraintWidget.setInBarrier(1, true);
}
}
}
public void setAllowsGoneWidget(boolean z2) {
this.mAllowsGoneWidget = z2;
}
public void setBarrierType(int i) {
this.mBarrierType = i;
}
public void setMargin(int i) {
this.mMargin = i;
}
@Override // androidx.constraintlayout.solver.widgets.ConstraintWidget
public String toString() {
StringBuilder K = a.K("[Barrier] ");
K.append(getDebugName());
K.append(" {");
String sb = K.toString();
for (int i = 0; i < this.mWidgetsCount; i++) {
ConstraintWidget constraintWidget = this.mWidgets[i];
if (i > 0) {
sb = a.s(sb, ", ");
}
StringBuilder K2 = a.K(sb);
K2.append(constraintWidget.getDebugName());
sb = K2.toString();
}
return a.s(sb, "}");
}
}

View file

@ -1,551 +0,0 @@
package androidx.constraintlayout.solver.widgets;
import androidx.constraintlayout.solver.ArrayRow;
import androidx.constraintlayout.solver.LinearSystem;
import androidx.constraintlayout.solver.SolverVariable;
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
import java.util.ArrayList;
public class Chain {
private static final boolean DEBUG = false;
public static final boolean USE_CHAIN_OPTIMIZATION = false;
/* JADX DEBUG: Multi-variable search result rejected for r2v56, resolved type: androidx.constraintlayout.solver.widgets.ConstraintWidget */
/* JADX WARN: Multi-variable type inference failed */
/* JADX WARNING: Code restructure failed: missing block: B:13:0x002d, code lost:
if (r8 == 2) goto L_0x003e;
*/
/* JADX WARNING: Code restructure failed: missing block: B:21:0x003c, code lost:
if (r8 == 2) goto L_0x003e;
*/
/* JADX WARNING: Code restructure failed: missing block: B:23:0x0040, code lost:
r5 = false;
*/
/* JADX WARNING: Removed duplicated region for block: B:100:0x0197 */
/* JADX WARNING: Removed duplicated region for block: B:107:0x01bf */
/* JADX WARNING: Removed duplicated region for block: B:113:0x01d1 */
/* JADX WARNING: Removed duplicated region for block: B:131:0x0258 A[ADDED_TO_REGION] */
/* JADX WARNING: Removed duplicated region for block: B:150:0x02b1 A[ADDED_TO_REGION] */
/* JADX WARNING: Removed duplicated region for block: B:208:0x039a */
/* JADX WARNING: Removed duplicated region for block: B:215:0x03a9 */
/* JADX WARNING: Removed duplicated region for block: B:221:0x03b6 */
/* JADX WARNING: Removed duplicated region for block: B:267:0x0488 */
/* JADX WARNING: Removed duplicated region for block: B:272:0x04bd */
/* JADX WARNING: Removed duplicated region for block: B:277:0x04d0 A[ADDED_TO_REGION] */
/* JADX WARNING: Removed duplicated region for block: B:282:0x04e4 */
/* JADX WARNING: Removed duplicated region for block: B:283:0x04e7 */
/* JADX WARNING: Removed duplicated region for block: B:286:0x04ed */
/* JADX WARNING: Removed duplicated region for block: B:287:0x04f0 */
/* JADX WARNING: Removed duplicated region for block: B:289:0x04f4 */
/* JADX WARNING: Removed duplicated region for block: B:294:0x0504 */
/* JADX WARNING: Removed duplicated region for block: B:296:0x050a A[ADDED_TO_REGION] */
/* JADX WARNING: Removed duplicated region for block: B:306:0x039b A[SYNTHETIC] */
/* JADX WARNING: Removed duplicated region for block: B:318:? A[ADDED_TO_REGION, RETURN, SYNTHETIC] */
public static void applyChainConstraints(ConstraintWidgetContainer constraintWidgetContainer, LinearSystem linearSystem, int i, int i2, ChainHead chainHead) {
boolean z2;
boolean z3;
ConstraintWidget constraintWidget;
SolverVariable solverVariable;
ConstraintWidget constraintWidget2;
ConstraintAnchor constraintAnchor;
ConstraintAnchor constraintAnchor2;
ConstraintAnchor constraintAnchor3;
int i3;
ConstraintWidget constraintWidget3;
int i4;
SolverVariable solverVariable2;
SolverVariable solverVariable3;
ConstraintAnchor constraintAnchor4;
ConstraintWidget constraintWidget4;
ConstraintWidget constraintWidget5;
SolverVariable solverVariable4;
SolverVariable solverVariable5;
ConstraintAnchor constraintAnchor5;
int size;
int i5;
ArrayList<ConstraintWidget> arrayList;
boolean z4;
boolean z5;
boolean z6;
ConstraintWidget constraintWidget6;
ConstraintWidget constraintWidget7;
int i6;
ConstraintWidget constraintWidget8 = chainHead.mFirst;
ConstraintWidget constraintWidget9 = chainHead.mLast;
ConstraintWidget constraintWidget10 = chainHead.mFirstVisibleWidget;
ConstraintWidget constraintWidget11 = chainHead.mLastVisibleWidget;
ConstraintWidget constraintWidget12 = chainHead.mHead;
float f = chainHead.mTotalWeight;
boolean z7 = constraintWidgetContainer.mListDimensionBehaviors[i] == ConstraintWidget.DimensionBehaviour.WRAP_CONTENT;
if (i == 0) {
int i7 = constraintWidget12.mHorizontalChainStyle;
z3 = i7 == 0;
z2 = i7 == 1;
} else {
int i8 = constraintWidget12.mVerticalChainStyle;
z3 = i8 == 0;
z2 = i8 == 1;
}
boolean z8 = true;
ConstraintWidget constraintWidget13 = constraintWidget8;
boolean z9 = false;
while (true) {
constraintWidget = null;
if (z9) {
break;
}
ConstraintAnchor constraintAnchor6 = constraintWidget13.mListAnchors[i2];
int i9 = z8 ? 1 : 4;
int margin = constraintAnchor6.getMargin();
ConstraintWidget.DimensionBehaviour dimensionBehaviour = constraintWidget13.mListDimensionBehaviors[i];
ConstraintWidget.DimensionBehaviour dimensionBehaviour2 = ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT;
if (dimensionBehaviour == dimensionBehaviour2 && constraintWidget13.mResolvedMatchConstraintDefault[i] == 0) {
z4 = z2;
z5 = true;
} else {
z4 = z2;
z5 = false;
}
ConstraintAnchor constraintAnchor7 = constraintAnchor6.mTarget;
if (!(constraintAnchor7 == null || constraintWidget13 == constraintWidget8)) {
margin = constraintAnchor7.getMargin() + margin;
}
if (!z8 || constraintWidget13 == constraintWidget8 || constraintWidget13 == constraintWidget10) {
z6 = z3;
} else {
z6 = z3;
i9 = 8;
}
ConstraintAnchor constraintAnchor8 = constraintAnchor6.mTarget;
if (constraintAnchor8 != null) {
if (constraintWidget13 == constraintWidget10) {
constraintWidget7 = constraintWidget12;
constraintWidget6 = constraintWidget8;
linearSystem.addGreaterThan(constraintAnchor6.mSolverVariable, constraintAnchor8.mSolverVariable, margin, 6);
} else {
constraintWidget7 = constraintWidget12;
constraintWidget6 = constraintWidget8;
linearSystem.addGreaterThan(constraintAnchor6.mSolverVariable, constraintAnchor8.mSolverVariable, margin, 8);
}
linearSystem.addEquality(constraintAnchor6.mSolverVariable, constraintAnchor6.mTarget.mSolverVariable, margin, (!z5 || z8) ? i9 : 5);
} else {
constraintWidget7 = constraintWidget12;
constraintWidget6 = constraintWidget8;
}
if (z7) {
if (constraintWidget13.getVisibility() == 8 || constraintWidget13.mListDimensionBehaviors[i] != dimensionBehaviour2) {
i6 = 0;
} else {
ConstraintAnchor[] constraintAnchorArr = constraintWidget13.mListAnchors;
i6 = 0;
linearSystem.addGreaterThan(constraintAnchorArr[i2 + 1].mSolverVariable, constraintAnchorArr[i2].mSolverVariable, 0, 5);
}
linearSystem.addGreaterThan(constraintWidget13.mListAnchors[i2].mSolverVariable, constraintWidgetContainer.mListAnchors[i2].mSolverVariable, i6, 8);
}
ConstraintAnchor constraintAnchor9 = constraintWidget13.mListAnchors[i2 + 1].mTarget;
if (constraintAnchor9 != null) {
ConstraintWidget constraintWidget14 = constraintAnchor9.mOwner;
ConstraintAnchor[] constraintAnchorArr2 = constraintWidget14.mListAnchors;
if (constraintAnchorArr2[i2].mTarget != null && constraintAnchorArr2[i2].mTarget.mOwner == constraintWidget13) {
constraintWidget = constraintWidget14;
}
}
if (constraintWidget != null) {
constraintWidget13 = constraintWidget;
z9 = z9;
} else {
z9 = true;
}
z3 = z6;
f = f;
z2 = z4;
constraintWidget12 = constraintWidget7;
constraintWidget8 = constraintWidget6;
}
if (constraintWidget11 != null) {
int i10 = i2 + 1;
if (constraintWidget9.mListAnchors[i10].mTarget != null) {
ConstraintAnchor constraintAnchor10 = constraintWidget11.mListAnchors[i10];
if ((constraintWidget11.mListDimensionBehaviors[i] == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT && constraintWidget11.mResolvedMatchConstraintDefault[i] == 0) && !z8) {
ConstraintAnchor constraintAnchor11 = constraintAnchor10.mTarget;
if (constraintAnchor11.mOwner == constraintWidgetContainer) {
linearSystem.addEquality(constraintAnchor10.mSolverVariable, constraintAnchor11.mSolverVariable, -constraintAnchor10.getMargin(), 5);
linearSystem.addLowerThan(constraintAnchor10.mSolverVariable, constraintWidget9.mListAnchors[i10].mTarget.mSolverVariable, -constraintAnchor10.getMargin(), 6);
if (z7) {
int i11 = i2 + 1;
SolverVariable solverVariable6 = constraintWidgetContainer.mListAnchors[i11].mSolverVariable;
ConstraintAnchor[] constraintAnchorArr3 = constraintWidget9.mListAnchors;
linearSystem.addGreaterThan(solverVariable6, constraintAnchorArr3[i11].mSolverVariable, constraintAnchorArr3[i11].getMargin(), 8);
}
ArrayList<ConstraintWidget> arrayList2 = chainHead.mWeightedMatchConstraintsWidgets;
if (arrayList2 != null && (size = arrayList2.size()) > 1) {
float f2 = (chainHead.mHasUndefinedWeights || chainHead.mHasComplexMatchWeights) ? f : (float) chainHead.mWidgetsMatchCount;
float f3 = 0.0f;
ConstraintWidget constraintWidget15 = null;
i5 = 0;
float f4 = 0.0f;
while (i5 < size) {
ConstraintWidget constraintWidget16 = arrayList2.get(i5);
float f5 = constraintWidget16.mWeight[i];
if (f5 < f3) {
if (chainHead.mHasComplexMatchWeights) {
ConstraintAnchor[] constraintAnchorArr4 = constraintWidget16.mListAnchors;
linearSystem.addEquality(constraintAnchorArr4[i2 + 1].mSolverVariable, constraintAnchorArr4[i2].mSolverVariable, 0, 4);
arrayList = arrayList2;
i5++;
arrayList2 = arrayList;
f3 = 0.0f;
} else {
f5 = 1.0f;
}
}
if (f5 == f3) {
ConstraintAnchor[] constraintAnchorArr5 = constraintWidget16.mListAnchors;
linearSystem.addEquality(constraintAnchorArr5[i2 + 1].mSolverVariable, constraintAnchorArr5[i2].mSolverVariable, 0, 8);
arrayList = arrayList2;
i5++;
arrayList2 = arrayList;
f3 = 0.0f;
} else {
if (constraintWidget15 != null) {
ConstraintAnchor[] constraintAnchorArr6 = constraintWidget15.mListAnchors;
SolverVariable solverVariable7 = constraintAnchorArr6[i2].mSolverVariable;
int i12 = i2 + 1;
SolverVariable solverVariable8 = constraintAnchorArr6[i12].mSolverVariable;
ConstraintAnchor[] constraintAnchorArr7 = constraintWidget16.mListAnchors;
SolverVariable solverVariable9 = constraintAnchorArr7[i2].mSolverVariable;
SolverVariable solverVariable10 = constraintAnchorArr7[i12].mSolverVariable;
arrayList = arrayList2;
ArrayRow createRow = linearSystem.createRow();
createRow.createRowEqualMatchDimensions(f4, f2, f5, solverVariable7, solverVariable8, solverVariable9, solverVariable10);
linearSystem.addConstraint(createRow);
} else {
arrayList = arrayList2;
}
constraintWidget15 = constraintWidget16;
f4 = f5;
i5++;
arrayList2 = arrayList;
f3 = 0.0f;
}
}
}
if (constraintWidget10 == null && (constraintWidget10 == constraintWidget11 || z8)) {
ConstraintAnchor constraintAnchor12 = constraintWidget8.mListAnchors[i2];
int i13 = i2 + 1;
ConstraintAnchor constraintAnchor13 = constraintWidget9.mListAnchors[i13];
ConstraintAnchor constraintAnchor14 = constraintAnchor12.mTarget;
SolverVariable solverVariable11 = constraintAnchor14 != null ? constraintAnchor14.mSolverVariable : null;
ConstraintAnchor constraintAnchor15 = constraintAnchor13.mTarget;
SolverVariable solverVariable12 = constraintAnchor15 != null ? constraintAnchor15.mSolverVariable : null;
ConstraintAnchor constraintAnchor16 = constraintWidget10.mListAnchors[i2];
ConstraintAnchor constraintAnchor17 = constraintWidget11.mListAnchors[i13];
if (!(solverVariable11 == null || solverVariable12 == null)) {
linearSystem.addCentering(constraintAnchor16.mSolverVariable, solverVariable11, constraintAnchor16.getMargin(), i == 0 ? constraintWidget12.mHorizontalBiasPercent : constraintWidget12.mVerticalBiasPercent, solverVariable12, constraintAnchor17.mSolverVariable, constraintAnchor17.getMargin(), 7);
}
} else if (z3 || constraintWidget10 == null) {
int i14 = 8;
if (z2 && constraintWidget10 != null) {
int i15 = chainHead.mWidgetsMatchCount;
boolean z10 = i15 <= 0 && chainHead.mWidgetsCount == i15;
constraintWidget2 = constraintWidget10;
ConstraintWidget constraintWidget17 = constraintWidget2;
while (constraintWidget2 != null) {
ConstraintWidget constraintWidget18 = constraintWidget2.mNextChainWidget[i];
while (constraintWidget18 != null && constraintWidget18.getVisibility() == i14) {
constraintWidget18 = constraintWidget18.mNextChainWidget[i];
}
if (constraintWidget2 == constraintWidget10 || constraintWidget2 == constraintWidget11 || constraintWidget18 == null) {
constraintWidget3 = constraintWidget17;
i4 = 8;
} else {
ConstraintWidget constraintWidget19 = constraintWidget18 == constraintWidget11 ? null : constraintWidget18;
ConstraintAnchor constraintAnchor18 = constraintWidget2.mListAnchors[i2];
SolverVariable solverVariable13 = constraintAnchor18.mSolverVariable;
ConstraintAnchor constraintAnchor19 = constraintAnchor18.mTarget;
if (constraintAnchor19 != null) {
SolverVariable solverVariable14 = constraintAnchor19.mSolverVariable;
}
int i16 = i2 + 1;
SolverVariable solverVariable15 = constraintWidget17.mListAnchors[i16].mSolverVariable;
int margin2 = constraintAnchor18.getMargin();
int margin3 = constraintWidget2.mListAnchors[i16].getMargin();
if (constraintWidget19 != null) {
constraintAnchor4 = constraintWidget19.mListAnchors[i2];
solverVariable3 = constraintAnchor4.mSolverVariable;
ConstraintAnchor constraintAnchor20 = constraintAnchor4.mTarget;
solverVariable2 = constraintAnchor20 != null ? constraintAnchor20.mSolverVariable : null;
} else {
constraintAnchor4 = constraintWidget11.mListAnchors[i2];
solverVariable3 = constraintAnchor4 != null ? constraintAnchor4.mSolverVariable : null;
solverVariable2 = constraintWidget2.mListAnchors[i16].mSolverVariable;
}
int margin4 = constraintAnchor4 != null ? constraintAnchor4.getMargin() + margin3 : margin3;
int margin5 = constraintWidget17.mListAnchors[i16].getMargin() + margin2;
int i17 = z10 ? 8 : 4;
if (solverVariable13 == null || solverVariable15 == null || solverVariable3 == null || solverVariable2 == null) {
constraintWidget4 = constraintWidget19;
constraintWidget3 = constraintWidget17;
i4 = 8;
} else {
constraintWidget4 = constraintWidget19;
constraintWidget3 = constraintWidget17;
i4 = 8;
linearSystem.addCentering(solverVariable13, solverVariable15, margin5, 0.5f, solverVariable3, solverVariable2, margin4, i17);
}
constraintWidget18 = constraintWidget4;
}
if (constraintWidget2.getVisibility() == i4) {
constraintWidget2 = constraintWidget3;
}
constraintWidget17 = constraintWidget2;
i14 = 8;
constraintWidget2 = constraintWidget18;
}
ConstraintAnchor constraintAnchor21 = constraintWidget10.mListAnchors[i2];
constraintAnchor = constraintWidget8.mListAnchors[i2].mTarget;
int i18 = i2 + 1;
constraintAnchor2 = constraintWidget11.mListAnchors[i18];
constraintAnchor3 = constraintWidget9.mListAnchors[i18].mTarget;
if (constraintAnchor == null) {
i3 = 5;
} else if (constraintWidget10 != constraintWidget11) {
i3 = 5;
linearSystem.addEquality(constraintAnchor21.mSolverVariable, constraintAnchor.mSolverVariable, constraintAnchor21.getMargin(), 5);
} else {
i3 = 5;
if (constraintAnchor3 != null) {
linearSystem.addCentering(constraintAnchor21.mSolverVariable, constraintAnchor.mSolverVariable, constraintAnchor21.getMargin(), 0.5f, constraintAnchor2.mSolverVariable, constraintAnchor3.mSolverVariable, constraintAnchor2.getMargin(), 5);
}
}
if (!(constraintAnchor3 == null || constraintWidget10 == constraintWidget11)) {
linearSystem.addEquality(constraintAnchor2.mSolverVariable, constraintAnchor3.mSolverVariable, -constraintAnchor2.getMargin(), i3);
}
}
} else {
int i19 = chainHead.mWidgetsMatchCount;
boolean z11 = i19 > 0 && chainHead.mWidgetsCount == i19;
ConstraintWidget constraintWidget20 = constraintWidget10;
ConstraintWidget constraintWidget21 = constraintWidget20;
while (constraintWidget20 != null) {
ConstraintWidget constraintWidget22 = constraintWidget20.mNextChainWidget[i];
while (true) {
if (constraintWidget22 != null) {
if (constraintWidget22.getVisibility() != 8) {
break;
}
constraintWidget22 = constraintWidget22.mNextChainWidget[i];
} else {
break;
}
}
if (constraintWidget22 != null || constraintWidget20 == constraintWidget11) {
ConstraintAnchor constraintAnchor22 = constraintWidget20.mListAnchors[i2];
SolverVariable solverVariable16 = constraintAnchor22.mSolverVariable;
ConstraintAnchor constraintAnchor23 = constraintAnchor22.mTarget;
SolverVariable solverVariable17 = constraintAnchor23 != null ? constraintAnchor23.mSolverVariable : null;
if (constraintWidget21 != constraintWidget20) {
solverVariable17 = constraintWidget21.mListAnchors[i2 + 1].mSolverVariable;
} else if (constraintWidget20 == constraintWidget10 && constraintWidget21 == constraintWidget20) {
ConstraintAnchor[] constraintAnchorArr8 = constraintWidget8.mListAnchors;
solverVariable17 = constraintAnchorArr8[i2].mTarget != null ? constraintAnchorArr8[i2].mTarget.mSolverVariable : null;
}
int margin6 = constraintAnchor22.getMargin();
int i20 = i2 + 1;
int margin7 = constraintWidget20.mListAnchors[i20].getMargin();
if (constraintWidget22 != null) {
constraintAnchor5 = constraintWidget22.mListAnchors[i2];
SolverVariable solverVariable18 = constraintAnchor5.mSolverVariable;
solverVariable4 = constraintWidget20.mListAnchors[i20].mSolverVariable;
solverVariable5 = solverVariable18;
} else {
constraintAnchor5 = constraintWidget9.mListAnchors[i20].mTarget;
solverVariable5 = constraintAnchor5 != null ? constraintAnchor5.mSolverVariable : null;
solverVariable4 = constraintWidget20.mListAnchors[i20].mSolverVariable;
}
if (constraintAnchor5 != null) {
margin7 += constraintAnchor5.getMargin();
}
if (constraintWidget21 != null) {
margin6 += constraintWidget21.mListAnchors[i20].getMargin();
}
if (!(solverVariable16 == null || solverVariable17 == null || solverVariable5 == null || solverVariable4 == null)) {
if (constraintWidget20 == constraintWidget10) {
margin6 = constraintWidget10.mListAnchors[i2].getMargin();
}
constraintWidget5 = constraintWidget22;
linearSystem.addCentering(solverVariable16, solverVariable17, margin6, 0.5f, solverVariable5, solverVariable4, constraintWidget20 == constraintWidget11 ? constraintWidget11.mListAnchors[i20].getMargin() : margin7, z11 ? 8 : 5);
if (constraintWidget20.getVisibility() == 8) {
constraintWidget21 = constraintWidget20;
}
constraintWidget20 = constraintWidget5;
}
}
constraintWidget5 = constraintWidget22;
if (constraintWidget20.getVisibility() == 8) {
}
constraintWidget20 = constraintWidget5;
}
}
if ((!z3 || z2) && constraintWidget10 != null && constraintWidget10 != constraintWidget11) {
ConstraintAnchor[] constraintAnchorArr9 = constraintWidget10.mListAnchors;
ConstraintAnchor constraintAnchor24 = constraintAnchorArr9[i2];
int i21 = i2 + 1;
ConstraintAnchor constraintAnchor25 = constraintWidget11.mListAnchors[i21];
ConstraintAnchor constraintAnchor26 = constraintAnchor24.mTarget;
solverVariable = constraintAnchor26 != null ? constraintAnchor26.mSolverVariable : null;
ConstraintAnchor constraintAnchor27 = constraintAnchor25.mTarget;
SolverVariable solverVariable19 = constraintAnchor27 != null ? constraintAnchor27.mSolverVariable : null;
if (constraintWidget9 != constraintWidget11) {
ConstraintAnchor constraintAnchor28 = constraintWidget9.mListAnchors[i21].mTarget;
if (constraintAnchor28 != null) {
constraintWidget = constraintAnchor28.mSolverVariable;
}
solverVariable19 = constraintWidget;
}
if (constraintWidget10 == constraintWidget11) {
constraintAnchor24 = constraintAnchorArr9[i2];
constraintAnchor25 = constraintAnchorArr9[i21];
}
if (solverVariable == null && solverVariable19 != null) {
linearSystem.addCentering(constraintAnchor24.mSolverVariable, solverVariable, constraintAnchor24.getMargin(), 0.5f, solverVariable19, constraintAnchor25.mSolverVariable, constraintWidget11.mListAnchors[i21].getMargin(), 5);
return;
}
return;
}
return;
}
}
if (z8) {
ConstraintAnchor constraintAnchor29 = constraintAnchor10.mTarget;
if (constraintAnchor29.mOwner == constraintWidgetContainer) {
linearSystem.addEquality(constraintAnchor10.mSolverVariable, constraintAnchor29.mSolverVariable, -constraintAnchor10.getMargin(), 4);
}
}
linearSystem.addLowerThan(constraintAnchor10.mSolverVariable, constraintWidget9.mListAnchors[i10].mTarget.mSolverVariable, -constraintAnchor10.getMargin(), 6);
if (z7) {
}
ArrayList<ConstraintWidget> arrayList2 = chainHead.mWeightedMatchConstraintsWidgets;
if (chainHead.mHasUndefinedWeights) {
}
float f3 = 0.0f;
ConstraintWidget constraintWidget15 = null;
i5 = 0;
float f4 = 0.0f;
while (i5 < size) {
}
if (constraintWidget10 == null) {
}
if (z3) {
}
int i14 = 8;
int i15 = chainHead.mWidgetsMatchCount;
if (i15 <= 0) {
}
constraintWidget2 = constraintWidget10;
ConstraintWidget constraintWidget17 = constraintWidget2;
while (constraintWidget2 != null) {
}
ConstraintAnchor constraintAnchor21 = constraintWidget10.mListAnchors[i2];
constraintAnchor = constraintWidget8.mListAnchors[i2].mTarget;
int i18 = i2 + 1;
constraintAnchor2 = constraintWidget11.mListAnchors[i18];
constraintAnchor3 = constraintWidget9.mListAnchors[i18].mTarget;
if (constraintAnchor == null) {
}
linearSystem.addEquality(constraintAnchor2.mSolverVariable, constraintAnchor3.mSolverVariable, -constraintAnchor2.getMargin(), i3);
if (!z3) {
}
ConstraintAnchor[] constraintAnchorArr9 = constraintWidget10.mListAnchors;
ConstraintAnchor constraintAnchor24 = constraintAnchorArr9[i2];
int i21 = i2 + 1;
ConstraintAnchor constraintAnchor25 = constraintWidget11.mListAnchors[i21];
ConstraintAnchor constraintAnchor26 = constraintAnchor24.mTarget;
if (constraintAnchor26 != null) {
}
ConstraintAnchor constraintAnchor27 = constraintAnchor25.mTarget;
if (constraintAnchor27 != null) {
}
if (constraintWidget9 != constraintWidget11) {
}
if (constraintWidget10 == constraintWidget11) {
}
if (solverVariable == null) {
return;
}
return;
}
}
if (z7) {
}
ArrayList<ConstraintWidget> arrayList2 = chainHead.mWeightedMatchConstraintsWidgets;
if (chainHead.mHasUndefinedWeights) {
}
float f3 = 0.0f;
ConstraintWidget constraintWidget15 = null;
i5 = 0;
float f4 = 0.0f;
while (i5 < size) {
}
if (constraintWidget10 == null) {
}
if (z3) {
}
int i14 = 8;
int i15 = chainHead.mWidgetsMatchCount;
if (i15 <= 0) {
}
constraintWidget2 = constraintWidget10;
ConstraintWidget constraintWidget17 = constraintWidget2;
while (constraintWidget2 != null) {
}
ConstraintAnchor constraintAnchor21 = constraintWidget10.mListAnchors[i2];
constraintAnchor = constraintWidget8.mListAnchors[i2].mTarget;
int i18 = i2 + 1;
constraintAnchor2 = constraintWidget11.mListAnchors[i18];
constraintAnchor3 = constraintWidget9.mListAnchors[i18].mTarget;
if (constraintAnchor == null) {
}
linearSystem.addEquality(constraintAnchor2.mSolverVariable, constraintAnchor3.mSolverVariable, -constraintAnchor2.getMargin(), i3);
if (!z3) {
}
ConstraintAnchor[] constraintAnchorArr9 = constraintWidget10.mListAnchors;
ConstraintAnchor constraintAnchor24 = constraintAnchorArr9[i2];
int i21 = i2 + 1;
ConstraintAnchor constraintAnchor25 = constraintWidget11.mListAnchors[i21];
ConstraintAnchor constraintAnchor26 = constraintAnchor24.mTarget;
if (constraintAnchor26 != null) {
}
ConstraintAnchor constraintAnchor27 = constraintAnchor25.mTarget;
if (constraintAnchor27 != null) {
}
if (constraintWidget9 != constraintWidget11) {
}
if (constraintWidget10 == constraintWidget11) {
}
if (solverVariable == null) {
}
}
public static void applyChainConstraints(ConstraintWidgetContainer constraintWidgetContainer, LinearSystem linearSystem, ArrayList<ConstraintWidget> arrayList, int i) {
ChainHead[] chainHeadArr;
int i2;
int i3;
if (i == 0) {
i3 = constraintWidgetContainer.mHorizontalChainsSize;
chainHeadArr = constraintWidgetContainer.mHorizontalChainsArray;
i2 = 0;
} else {
int i4 = constraintWidgetContainer.mVerticalChainsSize;
chainHeadArr = constraintWidgetContainer.mVerticalChainsArray;
i3 = i4;
i2 = 2;
}
for (int i5 = 0; i5 < i3; i5++) {
ChainHead chainHead = chainHeadArr[i5];
chainHead.define();
if (arrayList == null || arrayList.contains(chainHead.mFirst)) {
applyChainConstraints(constraintWidgetContainer, linearSystem, i, i2, chainHead);
}
}
}
}

View file

@ -1,201 +0,0 @@
package androidx.constraintlayout.solver.widgets;
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
import java.util.ArrayList;
public class ChainHead {
private boolean mDefined;
public ConstraintWidget mFirst;
public ConstraintWidget mFirstMatchConstraintWidget;
public ConstraintWidget mFirstVisibleWidget;
public boolean mHasComplexMatchWeights;
public boolean mHasDefinedWeights;
public boolean mHasRatio;
public boolean mHasUndefinedWeights;
public ConstraintWidget mHead;
private boolean mIsRtl = false;
public ConstraintWidget mLast;
public ConstraintWidget mLastMatchConstraintWidget;
public ConstraintWidget mLastVisibleWidget;
public boolean mOptimizable;
private int mOrientation;
public int mTotalMargins;
public int mTotalSize;
public float mTotalWeight = 0.0f;
public int mVisibleWidgets;
public ArrayList<ConstraintWidget> mWeightedMatchConstraintsWidgets;
public int mWidgetsCount;
public int mWidgetsMatchCount;
public ChainHead(ConstraintWidget constraintWidget, int i, boolean z2) {
this.mFirst = constraintWidget;
this.mOrientation = i;
this.mIsRtl = z2;
}
private void defineChainProperties() {
int i = this.mOrientation * 2;
ConstraintWidget constraintWidget = this.mFirst;
boolean z2 = true;
this.mOptimizable = true;
ConstraintWidget constraintWidget2 = constraintWidget;
boolean z3 = false;
while (!z3) {
this.mWidgetsCount++;
ConstraintWidget[] constraintWidgetArr = constraintWidget.mNextChainWidget;
int i2 = this.mOrientation;
ConstraintWidget constraintWidget3 = null;
constraintWidgetArr[i2] = null;
constraintWidget.mListNextMatchConstraintsWidget[i2] = null;
if (constraintWidget.getVisibility() != 8) {
this.mVisibleWidgets++;
ConstraintWidget.DimensionBehaviour dimensionBehaviour = constraintWidget.getDimensionBehaviour(this.mOrientation);
ConstraintWidget.DimensionBehaviour dimensionBehaviour2 = ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT;
if (dimensionBehaviour != dimensionBehaviour2) {
this.mTotalSize = constraintWidget.getLength(this.mOrientation) + this.mTotalSize;
}
int margin = constraintWidget.mListAnchors[i].getMargin() + this.mTotalSize;
this.mTotalSize = margin;
int i3 = i + 1;
this.mTotalSize = constraintWidget.mListAnchors[i3].getMargin() + margin;
int margin2 = constraintWidget.mListAnchors[i].getMargin() + this.mTotalMargins;
this.mTotalMargins = margin2;
this.mTotalMargins = constraintWidget.mListAnchors[i3].getMargin() + margin2;
if (this.mFirstVisibleWidget == null) {
this.mFirstVisibleWidget = constraintWidget;
}
this.mLastVisibleWidget = constraintWidget;
ConstraintWidget.DimensionBehaviour[] dimensionBehaviourArr = constraintWidget.mListDimensionBehaviors;
int i4 = this.mOrientation;
if (dimensionBehaviourArr[i4] == dimensionBehaviour2) {
int[] iArr = constraintWidget.mResolvedMatchConstraintDefault;
if (iArr[i4] == 0 || iArr[i4] == 3 || iArr[i4] == 2) {
this.mWidgetsMatchCount++;
float[] fArr = constraintWidget.mWeight;
float f = fArr[i4];
if (f > 0.0f) {
this.mTotalWeight += fArr[i4];
}
if (isMatchConstraintEqualityCandidate(constraintWidget, i4)) {
if (f < 0.0f) {
this.mHasUndefinedWeights = true;
} else {
this.mHasDefinedWeights = true;
}
if (this.mWeightedMatchConstraintsWidgets == null) {
this.mWeightedMatchConstraintsWidgets = new ArrayList<>();
}
this.mWeightedMatchConstraintsWidgets.add(constraintWidget);
}
if (this.mFirstMatchConstraintWidget == null) {
this.mFirstMatchConstraintWidget = constraintWidget;
}
ConstraintWidget constraintWidget4 = this.mLastMatchConstraintWidget;
if (constraintWidget4 != null) {
constraintWidget4.mListNextMatchConstraintsWidget[this.mOrientation] = constraintWidget;
}
this.mLastMatchConstraintWidget = constraintWidget;
}
if (this.mOrientation == 0) {
if (constraintWidget.mMatchConstraintDefaultWidth != 0) {
this.mOptimizable = false;
} else if (!(constraintWidget.mMatchConstraintMinWidth == 0 && constraintWidget.mMatchConstraintMaxWidth == 0)) {
this.mOptimizable = false;
}
} else if (constraintWidget.mMatchConstraintDefaultHeight != 0) {
this.mOptimizable = false;
} else if (!(constraintWidget.mMatchConstraintMinHeight == 0 && constraintWidget.mMatchConstraintMaxHeight == 0)) {
this.mOptimizable = false;
}
if (constraintWidget.mDimensionRatio != 0.0f) {
this.mOptimizable = false;
this.mHasRatio = true;
}
}
}
if (constraintWidget2 != constraintWidget) {
constraintWidget2.mNextChainWidget[this.mOrientation] = constraintWidget;
}
ConstraintAnchor constraintAnchor = constraintWidget.mListAnchors[i + 1].mTarget;
if (constraintAnchor != null) {
ConstraintWidget constraintWidget5 = constraintAnchor.mOwner;
ConstraintAnchor[] constraintAnchorArr = constraintWidget5.mListAnchors;
if (constraintAnchorArr[i].mTarget != null && constraintAnchorArr[i].mTarget.mOwner == constraintWidget) {
constraintWidget3 = constraintWidget5;
}
}
if (constraintWidget3 == null) {
constraintWidget3 = constraintWidget;
z3 = true;
}
constraintWidget2 = constraintWidget;
constraintWidget = constraintWidget3;
}
ConstraintWidget constraintWidget6 = this.mFirstVisibleWidget;
if (constraintWidget6 != null) {
this.mTotalSize -= constraintWidget6.mListAnchors[i].getMargin();
}
ConstraintWidget constraintWidget7 = this.mLastVisibleWidget;
if (constraintWidget7 != null) {
this.mTotalSize -= constraintWidget7.mListAnchors[i + 1].getMargin();
}
this.mLast = constraintWidget;
if (this.mOrientation != 0 || !this.mIsRtl) {
this.mHead = this.mFirst;
} else {
this.mHead = constraintWidget;
}
if (!this.mHasDefinedWeights || !this.mHasUndefinedWeights) {
z2 = false;
}
this.mHasComplexMatchWeights = z2;
}
private static boolean isMatchConstraintEqualityCandidate(ConstraintWidget constraintWidget, int i) {
if (constraintWidget.getVisibility() != 8 && constraintWidget.mListDimensionBehaviors[i] == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT) {
int[] iArr = constraintWidget.mResolvedMatchConstraintDefault;
if (iArr[i] == 0 || iArr[i] == 3) {
return true;
}
}
return false;
}
public void define() {
if (!this.mDefined) {
defineChainProperties();
}
this.mDefined = true;
}
public ConstraintWidget getFirst() {
return this.mFirst;
}
public ConstraintWidget getFirstMatchConstraintWidget() {
return this.mFirstMatchConstraintWidget;
}
public ConstraintWidget getFirstVisibleWidget() {
return this.mFirstVisibleWidget;
}
public ConstraintWidget getHead() {
return this.mHead;
}
public ConstraintWidget getLast() {
return this.mLast;
}
public ConstraintWidget getLastMatchConstraintWidget() {
return this.mLastMatchConstraintWidget;
}
public ConstraintWidget getLastVisibleWidget() {
return this.mLastVisibleWidget;
}
public float getTotalWeight() {
return this.mTotalWeight;
}
}

View file

@ -1,419 +0,0 @@
package androidx.constraintlayout.solver.widgets;
import androidx.constraintlayout.solver.Cache;
import androidx.constraintlayout.solver.SolverVariable;
import androidx.constraintlayout.solver.widgets.analyzer.Grouping;
import androidx.constraintlayout.solver.widgets.analyzer.WidgetGroup;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
public class ConstraintAnchor {
private static final boolean ALLOW_BINARY = false;
private static final int UNSET_GONE_MARGIN = -1;
private HashSet<ConstraintAnchor> mDependents = null;
private int mFinalValue;
public int mGoneMargin = -1;
private boolean mHasFinalValue;
public int mMargin = 0;
public final ConstraintWidget mOwner;
public SolverVariable mSolverVariable;
public ConstraintAnchor mTarget;
public final Type mType;
/* renamed from: androidx.constraintlayout.solver.widgets.ConstraintAnchor$1 reason: invalid class name */
public static /* synthetic */ class AnonymousClass1 {
public static final /* synthetic */ int[] $SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type;
static {
Type.values();
int[] iArr = new int[9];
$SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type = iArr;
try {
iArr[Type.CENTER.ordinal()] = 1;
} catch (NoSuchFieldError unused) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[Type.LEFT.ordinal()] = 2;
} catch (NoSuchFieldError unused2) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[Type.RIGHT.ordinal()] = 3;
} catch (NoSuchFieldError unused3) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[Type.TOP.ordinal()] = 4;
} catch (NoSuchFieldError unused4) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[Type.BOTTOM.ordinal()] = 5;
} catch (NoSuchFieldError unused5) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[Type.BASELINE.ordinal()] = 6;
} catch (NoSuchFieldError unused6) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[Type.CENTER_X.ordinal()] = 7;
} catch (NoSuchFieldError unused7) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[Type.CENTER_Y.ordinal()] = 8;
} catch (NoSuchFieldError unused8) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[Type.NONE.ordinal()] = 9;
} catch (NoSuchFieldError unused9) {
}
}
}
public enum Type {
NONE,
LEFT,
TOP,
RIGHT,
BOTTOM,
BASELINE,
CENTER,
CENTER_X,
CENTER_Y
}
public ConstraintAnchor(ConstraintWidget constraintWidget, Type type) {
this.mOwner = constraintWidget;
this.mType = type;
}
private boolean isConnectionToMe(ConstraintWidget constraintWidget, HashSet<ConstraintWidget> hashSet) {
if (hashSet.contains(constraintWidget)) {
return false;
}
hashSet.add(constraintWidget);
if (constraintWidget == getOwner()) {
return true;
}
ArrayList<ConstraintAnchor> anchors = constraintWidget.getAnchors();
int size = anchors.size();
for (int i = 0; i < size; i++) {
ConstraintAnchor constraintAnchor = anchors.get(i);
if (constraintAnchor.isSimilarDimensionConnection(this) && constraintAnchor.isConnected() && isConnectionToMe(constraintAnchor.getTarget().getOwner(), hashSet)) {
return true;
}
}
return false;
}
public boolean connect(ConstraintAnchor constraintAnchor, int i) {
return connect(constraintAnchor, i, -1, false);
}
public boolean connect(ConstraintAnchor constraintAnchor, int i, int i2, boolean z2) {
if (constraintAnchor == null) {
reset();
return true;
} else if (!z2 && !isValidConnection(constraintAnchor)) {
return false;
} else {
this.mTarget = constraintAnchor;
if (constraintAnchor.mDependents == null) {
constraintAnchor.mDependents = new HashSet<>();
}
HashSet<ConstraintAnchor> hashSet = this.mTarget.mDependents;
if (hashSet != null) {
hashSet.add(this);
}
if (i > 0) {
this.mMargin = i;
} else {
this.mMargin = 0;
}
this.mGoneMargin = i2;
return true;
}
}
public void copyFrom(ConstraintAnchor constraintAnchor, HashMap<ConstraintWidget, ConstraintWidget> hashMap) {
HashSet<ConstraintAnchor> hashSet;
ConstraintAnchor constraintAnchor2 = this.mTarget;
if (!(constraintAnchor2 == null || (hashSet = constraintAnchor2.mDependents) == null)) {
hashSet.remove(this);
}
ConstraintAnchor constraintAnchor3 = constraintAnchor.mTarget;
if (constraintAnchor3 != null) {
this.mTarget = hashMap.get(constraintAnchor.mTarget.mOwner).getAnchor(constraintAnchor3.getType());
} else {
this.mTarget = null;
}
ConstraintAnchor constraintAnchor4 = this.mTarget;
if (constraintAnchor4 != null) {
if (constraintAnchor4.mDependents == null) {
constraintAnchor4.mDependents = new HashSet<>();
}
this.mTarget.mDependents.add(this);
}
this.mMargin = constraintAnchor.mMargin;
this.mGoneMargin = constraintAnchor.mGoneMargin;
}
public void findDependents(int i, ArrayList<WidgetGroup> arrayList, WidgetGroup widgetGroup) {
HashSet<ConstraintAnchor> hashSet = this.mDependents;
if (hashSet != null) {
Iterator<ConstraintAnchor> it = hashSet.iterator();
while (it.hasNext()) {
Grouping.findDependents(it.next().mOwner, i, arrayList, widgetGroup);
}
}
}
public HashSet<ConstraintAnchor> getDependents() {
return this.mDependents;
}
public int getFinalValue() {
if (!this.mHasFinalValue) {
return 0;
}
return this.mFinalValue;
}
public int getMargin() {
ConstraintAnchor constraintAnchor;
if (this.mOwner.getVisibility() == 8) {
return 0;
}
return (this.mGoneMargin <= -1 || (constraintAnchor = this.mTarget) == null || constraintAnchor.mOwner.getVisibility() != 8) ? this.mMargin : this.mGoneMargin;
}
public final ConstraintAnchor getOpposite() {
switch (this.mType.ordinal()) {
case 0:
case 5:
case 6:
case 7:
case 8:
return null;
case 1:
return this.mOwner.mRight;
case 2:
return this.mOwner.mBottom;
case 3:
return this.mOwner.mLeft;
case 4:
return this.mOwner.mTop;
default:
throw new AssertionError(this.mType.name());
}
}
public ConstraintWidget getOwner() {
return this.mOwner;
}
public SolverVariable getSolverVariable() {
return this.mSolverVariable;
}
public ConstraintAnchor getTarget() {
return this.mTarget;
}
public Type getType() {
return this.mType;
}
public boolean hasCenteredDependents() {
HashSet<ConstraintAnchor> hashSet = this.mDependents;
if (hashSet == null) {
return false;
}
Iterator<ConstraintAnchor> it = hashSet.iterator();
while (it.hasNext()) {
if (it.next().getOpposite().isConnected()) {
return true;
}
}
return false;
}
public boolean hasDependents() {
HashSet<ConstraintAnchor> hashSet = this.mDependents;
return hashSet != null && hashSet.size() > 0;
}
public boolean hasFinalValue() {
return this.mHasFinalValue;
}
public boolean isConnected() {
return this.mTarget != null;
}
public boolean isConnectionAllowed(ConstraintWidget constraintWidget) {
if (isConnectionToMe(constraintWidget, new HashSet<>())) {
return false;
}
ConstraintWidget parent = getOwner().getParent();
return parent == constraintWidget || constraintWidget.getParent() == parent;
}
public boolean isConnectionAllowed(ConstraintWidget constraintWidget, ConstraintAnchor constraintAnchor) {
return isConnectionAllowed(constraintWidget);
}
public boolean isSideAnchor() {
switch (this.mType.ordinal()) {
case 0:
case 5:
case 6:
case 7:
case 8:
return false;
case 1:
case 2:
case 3:
case 4:
return true;
default:
throw new AssertionError(this.mType.name());
}
}
public boolean isSimilarDimensionConnection(ConstraintAnchor constraintAnchor) {
Type type = constraintAnchor.getType();
Type type2 = this.mType;
if (type == type2) {
return true;
}
switch (type2.ordinal()) {
case 0:
return false;
case 1:
case 3:
case 7:
return type == Type.LEFT || type == Type.RIGHT || type == Type.CENTER_X;
case 2:
case 4:
case 5:
case 8:
return type == Type.TOP || type == Type.BOTTOM || type == Type.CENTER_Y || type == Type.BASELINE;
case 6:
return type != Type.BASELINE;
default:
throw new AssertionError(this.mType.name());
}
}
public boolean isValidConnection(ConstraintAnchor constraintAnchor) {
boolean z2 = false;
if (constraintAnchor == null) {
return false;
}
Type type = constraintAnchor.getType();
Type type2 = this.mType;
if (type == type2) {
return type2 != Type.BASELINE || (constraintAnchor.getOwner().hasBaseline() && getOwner().hasBaseline());
}
switch (type2.ordinal()) {
case 0:
case 5:
case 7:
case 8:
return false;
case 1:
case 3:
boolean z3 = type == Type.LEFT || type == Type.RIGHT;
if (!(constraintAnchor.getOwner() instanceof Guideline)) {
return z3;
}
if (z3 || type == Type.CENTER_X) {
z2 = true;
}
return z2;
case 2:
case 4:
boolean z4 = type == Type.TOP || type == Type.BOTTOM;
if (!(constraintAnchor.getOwner() instanceof Guideline)) {
return z4;
}
if (z4 || type == Type.CENTER_Y) {
z2 = true;
}
return z2;
case 6:
return (type == Type.BASELINE || type == Type.CENTER_X || type == Type.CENTER_Y) ? false : true;
default:
throw new AssertionError(this.mType.name());
}
}
public boolean isVerticalAnchor() {
switch (this.mType.ordinal()) {
case 0:
case 2:
case 4:
case 5:
case 8:
return true;
case 1:
case 3:
case 6:
case 7:
return false;
default:
throw new AssertionError(this.mType.name());
}
}
public void reset() {
HashSet<ConstraintAnchor> hashSet;
ConstraintAnchor constraintAnchor = this.mTarget;
if (!(constraintAnchor == null || (hashSet = constraintAnchor.mDependents) == null)) {
hashSet.remove(this);
if (this.mTarget.mDependents.size() == 0) {
this.mTarget.mDependents = null;
}
}
this.mDependents = null;
this.mTarget = null;
this.mMargin = 0;
this.mGoneMargin = -1;
this.mHasFinalValue = false;
this.mFinalValue = 0;
}
public void resetFinalResolution() {
this.mHasFinalValue = false;
this.mFinalValue = 0;
}
public void resetSolverVariable(Cache cache) {
SolverVariable solverVariable = this.mSolverVariable;
if (solverVariable == null) {
this.mSolverVariable = new SolverVariable(SolverVariable.Type.UNRESTRICTED, (String) null);
} else {
solverVariable.reset();
}
}
public void setFinalValue(int i) {
this.mFinalValue = i;
this.mHasFinalValue = true;
}
public void setGoneMargin(int i) {
if (isConnected()) {
this.mGoneMargin = i;
}
}
public void setMargin(int i) {
if (isConnected()) {
this.mMargin = i;
}
}
public String toString() {
return this.mOwner.getDebugName() + ":" + this.mType.toString();
}
}

View file

@ -1,774 +0,0 @@
package androidx.constraintlayout.solver.widgets;
import androidx.constraintlayout.solver.LinearSystem;
import androidx.constraintlayout.solver.Metrics;
import androidx.constraintlayout.solver.SolverVariable;
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
import androidx.constraintlayout.solver.widgets.analyzer.BasicMeasure;
import androidx.constraintlayout.solver.widgets.analyzer.DependencyGraph;
import androidx.constraintlayout.solver.widgets.analyzer.Direct;
import androidx.constraintlayout.solver.widgets.analyzer.Grouping;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Iterator;
public class ConstraintWidgetContainer extends WidgetContainer {
private static final boolean DEBUG = false;
public static final boolean DEBUG_GRAPH = false;
private static final boolean DEBUG_LAYOUT = false;
private static final int MAX_ITERATIONS = 8;
public static int mycounter;
private WeakReference<ConstraintAnchor> horizontalWrapMax;
private WeakReference<ConstraintAnchor> horizontalWrapMin;
public BasicMeasure mBasicMeasureSolver;
public int mDebugSolverPassCount;
public DependencyGraph mDependencyGraph;
public boolean mGroupsWrapOptimized;
private boolean mHeightMeasuredTooSmall;
public ChainHead[] mHorizontalChainsArray;
public int mHorizontalChainsSize;
public boolean mHorizontalWrapOptimized;
private boolean mIsRtl;
public BasicMeasure.Measure mMeasure;
public BasicMeasure.Measurer mMeasurer;
public Metrics mMetrics;
private int mOptimizationLevel;
public int mPaddingBottom;
public int mPaddingLeft;
public int mPaddingRight;
public int mPaddingTop;
public boolean mSkipSolver;
public LinearSystem mSystem;
public ChainHead[] mVerticalChainsArray;
public int mVerticalChainsSize;
public boolean mVerticalWrapOptimized;
private boolean mWidthMeasuredTooSmall;
public int mWrapFixedHeight;
public int mWrapFixedWidth;
private WeakReference<ConstraintAnchor> verticalWrapMax;
private WeakReference<ConstraintAnchor> verticalWrapMin;
public ConstraintWidgetContainer() {
this.mBasicMeasureSolver = new BasicMeasure(this);
this.mDependencyGraph = new DependencyGraph(this);
this.mMeasurer = null;
this.mIsRtl = false;
this.mSystem = new LinearSystem();
this.mHorizontalChainsSize = 0;
this.mVerticalChainsSize = 0;
this.mVerticalChainsArray = new ChainHead[4];
this.mHorizontalChainsArray = new ChainHead[4];
this.mGroupsWrapOptimized = false;
this.mHorizontalWrapOptimized = false;
this.mVerticalWrapOptimized = false;
this.mWrapFixedWidth = 0;
this.mWrapFixedHeight = 0;
this.mOptimizationLevel = 257;
this.mSkipSolver = false;
this.mWidthMeasuredTooSmall = false;
this.mHeightMeasuredTooSmall = false;
this.mDebugSolverPassCount = 0;
this.verticalWrapMin = null;
this.horizontalWrapMin = null;
this.verticalWrapMax = null;
this.horizontalWrapMax = null;
this.mMeasure = new BasicMeasure.Measure();
}
public ConstraintWidgetContainer(int i, int i2) {
super(i, i2);
this.mBasicMeasureSolver = new BasicMeasure(this);
this.mDependencyGraph = new DependencyGraph(this);
this.mMeasurer = null;
this.mIsRtl = false;
this.mSystem = new LinearSystem();
this.mHorizontalChainsSize = 0;
this.mVerticalChainsSize = 0;
this.mVerticalChainsArray = new ChainHead[4];
this.mHorizontalChainsArray = new ChainHead[4];
this.mGroupsWrapOptimized = false;
this.mHorizontalWrapOptimized = false;
this.mVerticalWrapOptimized = false;
this.mWrapFixedWidth = 0;
this.mWrapFixedHeight = 0;
this.mOptimizationLevel = 257;
this.mSkipSolver = false;
this.mWidthMeasuredTooSmall = false;
this.mHeightMeasuredTooSmall = false;
this.mDebugSolverPassCount = 0;
this.verticalWrapMin = null;
this.horizontalWrapMin = null;
this.verticalWrapMax = null;
this.horizontalWrapMax = null;
this.mMeasure = new BasicMeasure.Measure();
}
public ConstraintWidgetContainer(int i, int i2, int i3, int i4) {
super(i, i2, i3, i4);
this.mBasicMeasureSolver = new BasicMeasure(this);
this.mDependencyGraph = new DependencyGraph(this);
this.mMeasurer = null;
this.mIsRtl = false;
this.mSystem = new LinearSystem();
this.mHorizontalChainsSize = 0;
this.mVerticalChainsSize = 0;
this.mVerticalChainsArray = new ChainHead[4];
this.mHorizontalChainsArray = new ChainHead[4];
this.mGroupsWrapOptimized = false;
this.mHorizontalWrapOptimized = false;
this.mVerticalWrapOptimized = false;
this.mWrapFixedWidth = 0;
this.mWrapFixedHeight = 0;
this.mOptimizationLevel = 257;
this.mSkipSolver = false;
this.mWidthMeasuredTooSmall = false;
this.mHeightMeasuredTooSmall = false;
this.mDebugSolverPassCount = 0;
this.verticalWrapMin = null;
this.horizontalWrapMin = null;
this.verticalWrapMax = null;
this.horizontalWrapMax = null;
this.mMeasure = new BasicMeasure.Measure();
}
public ConstraintWidgetContainer(String str, int i, int i2) {
super(i, i2);
this.mBasicMeasureSolver = new BasicMeasure(this);
this.mDependencyGraph = new DependencyGraph(this);
this.mMeasurer = null;
this.mIsRtl = false;
this.mSystem = new LinearSystem();
this.mHorizontalChainsSize = 0;
this.mVerticalChainsSize = 0;
this.mVerticalChainsArray = new ChainHead[4];
this.mHorizontalChainsArray = new ChainHead[4];
this.mGroupsWrapOptimized = false;
this.mHorizontalWrapOptimized = false;
this.mVerticalWrapOptimized = false;
this.mWrapFixedWidth = 0;
this.mWrapFixedHeight = 0;
this.mOptimizationLevel = 257;
this.mSkipSolver = false;
this.mWidthMeasuredTooSmall = false;
this.mHeightMeasuredTooSmall = false;
this.mDebugSolverPassCount = 0;
this.verticalWrapMin = null;
this.horizontalWrapMin = null;
this.verticalWrapMax = null;
this.horizontalWrapMax = null;
this.mMeasure = new BasicMeasure.Measure();
setDebugName(str);
}
private void addHorizontalChain(ConstraintWidget constraintWidget) {
int i = this.mHorizontalChainsSize + 1;
ChainHead[] chainHeadArr = this.mHorizontalChainsArray;
if (i >= chainHeadArr.length) {
this.mHorizontalChainsArray = (ChainHead[]) Arrays.copyOf(chainHeadArr, chainHeadArr.length * 2);
}
this.mHorizontalChainsArray[this.mHorizontalChainsSize] = new ChainHead(constraintWidget, 0, isRtl());
this.mHorizontalChainsSize++;
}
private void addMaxWrap(ConstraintAnchor constraintAnchor, SolverVariable solverVariable) {
this.mSystem.addGreaterThan(solverVariable, this.mSystem.createObjectVariable(constraintAnchor), 0, 5);
}
private void addMinWrap(ConstraintAnchor constraintAnchor, SolverVariable solverVariable) {
this.mSystem.addGreaterThan(this.mSystem.createObjectVariable(constraintAnchor), solverVariable, 0, 5);
}
private void addVerticalChain(ConstraintWidget constraintWidget) {
int i = this.mVerticalChainsSize + 1;
ChainHead[] chainHeadArr = this.mVerticalChainsArray;
if (i >= chainHeadArr.length) {
this.mVerticalChainsArray = (ChainHead[]) Arrays.copyOf(chainHeadArr, chainHeadArr.length * 2);
}
this.mVerticalChainsArray[this.mVerticalChainsSize] = new ChainHead(constraintWidget, 1, isRtl());
this.mVerticalChainsSize++;
}
public static boolean measure(ConstraintWidget constraintWidget, BasicMeasure.Measurer measurer, BasicMeasure.Measure measure, int i) {
int i2;
int i3;
if (measurer == null) {
return false;
}
measure.horizontalBehavior = constraintWidget.getHorizontalDimensionBehaviour();
measure.verticalBehavior = constraintWidget.getVerticalDimensionBehaviour();
measure.horizontalDimension = constraintWidget.getWidth();
measure.verticalDimension = constraintWidget.getHeight();
measure.measuredNeedsSolverPass = false;
measure.measureStrategy = i;
ConstraintWidget.DimensionBehaviour dimensionBehaviour = measure.horizontalBehavior;
ConstraintWidget.DimensionBehaviour dimensionBehaviour2 = ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT;
boolean z2 = dimensionBehaviour == dimensionBehaviour2;
boolean z3 = measure.verticalBehavior == dimensionBehaviour2;
boolean z4 = z2 && constraintWidget.mDimensionRatio > 0.0f;
boolean z5 = z3 && constraintWidget.mDimensionRatio > 0.0f;
if (z2 && constraintWidget.hasDanglingDimension(0) && constraintWidget.mMatchConstraintDefaultWidth == 0 && !z4) {
measure.horizontalBehavior = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT;
if (z3 && constraintWidget.mMatchConstraintDefaultHeight == 0) {
measure.horizontalBehavior = ConstraintWidget.DimensionBehaviour.FIXED;
}
z2 = false;
}
if (z3 && constraintWidget.hasDanglingDimension(1) && constraintWidget.mMatchConstraintDefaultHeight == 0 && !z5) {
measure.verticalBehavior = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT;
if (z2 && constraintWidget.mMatchConstraintDefaultWidth == 0) {
measure.verticalBehavior = ConstraintWidget.DimensionBehaviour.FIXED;
}
z3 = false;
}
if (constraintWidget.isResolvedHorizontally()) {
measure.horizontalBehavior = ConstraintWidget.DimensionBehaviour.FIXED;
z2 = false;
}
if (constraintWidget.isResolvedVertically()) {
measure.verticalBehavior = ConstraintWidget.DimensionBehaviour.FIXED;
z3 = false;
}
if (z4) {
if (constraintWidget.mResolvedMatchConstraintDefault[0] == 4) {
measure.horizontalBehavior = ConstraintWidget.DimensionBehaviour.FIXED;
} else if (!z3) {
ConstraintWidget.DimensionBehaviour dimensionBehaviour3 = measure.verticalBehavior;
ConstraintWidget.DimensionBehaviour dimensionBehaviour4 = ConstraintWidget.DimensionBehaviour.FIXED;
if (dimensionBehaviour3 == dimensionBehaviour4) {
i3 = measure.verticalDimension;
} else {
measure.horizontalBehavior = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT;
measurer.measure(constraintWidget, measure);
i3 = measure.measuredHeight;
}
measure.horizontalBehavior = dimensionBehaviour4;
int i4 = constraintWidget.mDimensionRatioSide;
if (i4 == 0 || i4 == -1) {
measure.horizontalDimension = (int) (constraintWidget.getDimensionRatio() * ((float) i3));
} else {
measure.horizontalDimension = (int) (constraintWidget.getDimensionRatio() / ((float) i3));
}
}
}
if (z5) {
if (constraintWidget.mResolvedMatchConstraintDefault[1] == 4) {
measure.verticalBehavior = ConstraintWidget.DimensionBehaviour.FIXED;
} else if (!z2) {
ConstraintWidget.DimensionBehaviour dimensionBehaviour5 = measure.horizontalBehavior;
ConstraintWidget.DimensionBehaviour dimensionBehaviour6 = ConstraintWidget.DimensionBehaviour.FIXED;
if (dimensionBehaviour5 == dimensionBehaviour6) {
i2 = measure.horizontalDimension;
} else {
measure.verticalBehavior = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT;
measurer.measure(constraintWidget, measure);
i2 = measure.measuredWidth;
}
measure.verticalBehavior = dimensionBehaviour6;
int i5 = constraintWidget.mDimensionRatioSide;
if (i5 == 0 || i5 == -1) {
measure.verticalDimension = (int) (((float) i2) / constraintWidget.getDimensionRatio());
} else {
measure.verticalDimension = (int) (constraintWidget.getDimensionRatio() * ((float) i2));
}
}
}
measurer.measure(constraintWidget, measure);
constraintWidget.setWidth(measure.measuredWidth);
constraintWidget.setHeight(measure.measuredHeight);
constraintWidget.setHasBaseline(measure.measuredHasBaseline);
constraintWidget.setBaselineDistance(measure.measuredBaseline);
measure.measureStrategy = BasicMeasure.Measure.SELF_DIMENSIONS;
return measure.measuredNeedsSolverPass;
}
private void resetChains() {
this.mHorizontalChainsSize = 0;
this.mVerticalChainsSize = 0;
}
public void addChain(ConstraintWidget constraintWidget, int i) {
if (i == 0) {
addHorizontalChain(constraintWidget);
} else if (i == 1) {
addVerticalChain(constraintWidget);
}
}
public boolean addChildrenToSolver(LinearSystem linearSystem) {
boolean optimizeFor = optimizeFor(64);
addToSolver(linearSystem, optimizeFor);
int size = this.mChildren.size();
boolean z2 = false;
for (int i = 0; i < size; i++) {
ConstraintWidget constraintWidget = this.mChildren.get(i);
constraintWidget.setInBarrier(0, false);
constraintWidget.setInBarrier(1, false);
if (constraintWidget instanceof Barrier) {
z2 = true;
}
}
if (z2) {
for (int i2 = 0; i2 < size; i2++) {
ConstraintWidget constraintWidget2 = this.mChildren.get(i2);
if (constraintWidget2 instanceof Barrier) {
((Barrier) constraintWidget2).markWidgets();
}
}
}
for (int i3 = 0; i3 < size; i3++) {
ConstraintWidget constraintWidget3 = this.mChildren.get(i3);
if (constraintWidget3.addFirst()) {
constraintWidget3.addToSolver(linearSystem, optimizeFor);
}
}
if (LinearSystem.USE_DEPENDENCY_ORDERING) {
HashSet<ConstraintWidget> hashSet = new HashSet<>();
for (int i4 = 0; i4 < size; i4++) {
ConstraintWidget constraintWidget4 = this.mChildren.get(i4);
if (!constraintWidget4.addFirst()) {
hashSet.add(constraintWidget4);
}
}
addChildrenToSolverByDependency(this, linearSystem, hashSet, getHorizontalDimensionBehaviour() == ConstraintWidget.DimensionBehaviour.WRAP_CONTENT ? 0 : 1, false);
Iterator<ConstraintWidget> it = hashSet.iterator();
while (it.hasNext()) {
ConstraintWidget next = it.next();
Optimizer.checkMatchParent(this, linearSystem, next);
next.addToSolver(linearSystem, optimizeFor);
}
} else {
for (int i5 = 0; i5 < size; i5++) {
ConstraintWidget constraintWidget5 = this.mChildren.get(i5);
if (constraintWidget5 instanceof ConstraintWidgetContainer) {
ConstraintWidget.DimensionBehaviour[] dimensionBehaviourArr = constraintWidget5.mListDimensionBehaviors;
ConstraintWidget.DimensionBehaviour dimensionBehaviour = dimensionBehaviourArr[0];
ConstraintWidget.DimensionBehaviour dimensionBehaviour2 = dimensionBehaviourArr[1];
ConstraintWidget.DimensionBehaviour dimensionBehaviour3 = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT;
if (dimensionBehaviour == dimensionBehaviour3) {
constraintWidget5.setHorizontalDimensionBehaviour(ConstraintWidget.DimensionBehaviour.FIXED);
}
if (dimensionBehaviour2 == dimensionBehaviour3) {
constraintWidget5.setVerticalDimensionBehaviour(ConstraintWidget.DimensionBehaviour.FIXED);
}
constraintWidget5.addToSolver(linearSystem, optimizeFor);
if (dimensionBehaviour == dimensionBehaviour3) {
constraintWidget5.setHorizontalDimensionBehaviour(dimensionBehaviour);
}
if (dimensionBehaviour2 == dimensionBehaviour3) {
constraintWidget5.setVerticalDimensionBehaviour(dimensionBehaviour2);
}
} else {
Optimizer.checkMatchParent(this, linearSystem, constraintWidget5);
if (!constraintWidget5.addFirst()) {
constraintWidget5.addToSolver(linearSystem, optimizeFor);
}
}
}
}
if (this.mHorizontalChainsSize > 0) {
Chain.applyChainConstraints(this, linearSystem, null, 0);
}
if (this.mVerticalChainsSize > 0) {
Chain.applyChainConstraints(this, linearSystem, null, 1);
}
return true;
}
public void addHorizontalWrapMaxVariable(ConstraintAnchor constraintAnchor) {
WeakReference<ConstraintAnchor> weakReference = this.horizontalWrapMax;
if (weakReference == null || weakReference.get() == null || constraintAnchor.getFinalValue() > this.horizontalWrapMax.get().getFinalValue()) {
this.horizontalWrapMax = new WeakReference<>(constraintAnchor);
}
}
public void addHorizontalWrapMinVariable(ConstraintAnchor constraintAnchor) {
WeakReference<ConstraintAnchor> weakReference = this.horizontalWrapMin;
if (weakReference == null || weakReference.get() == null || constraintAnchor.getFinalValue() > this.horizontalWrapMin.get().getFinalValue()) {
this.horizontalWrapMin = new WeakReference<>(constraintAnchor);
}
}
public void addVerticalWrapMaxVariable(ConstraintAnchor constraintAnchor) {
WeakReference<ConstraintAnchor> weakReference = this.verticalWrapMax;
if (weakReference == null || weakReference.get() == null || constraintAnchor.getFinalValue() > this.verticalWrapMax.get().getFinalValue()) {
this.verticalWrapMax = new WeakReference<>(constraintAnchor);
}
}
public void addVerticalWrapMinVariable(ConstraintAnchor constraintAnchor) {
WeakReference<ConstraintAnchor> weakReference = this.verticalWrapMin;
if (weakReference == null || weakReference.get() == null || constraintAnchor.getFinalValue() > this.verticalWrapMin.get().getFinalValue()) {
this.verticalWrapMin = new WeakReference<>(constraintAnchor);
}
}
public void defineTerminalWidgets() {
this.mDependencyGraph.defineTerminalWidgets(getHorizontalDimensionBehaviour(), getVerticalDimensionBehaviour());
}
public boolean directMeasure(boolean z2) {
return this.mDependencyGraph.directMeasure(z2);
}
public boolean directMeasureSetup(boolean z2) {
return this.mDependencyGraph.directMeasureSetup(z2);
}
public boolean directMeasureWithOrientation(boolean z2, int i) {
return this.mDependencyGraph.directMeasureWithOrientation(z2, i);
}
public void fillMetrics(Metrics metrics) {
this.mMetrics = metrics;
this.mSystem.fillMetrics(metrics);
}
public ArrayList<Guideline> getHorizontalGuidelines() {
ArrayList<Guideline> arrayList = new ArrayList<>();
int size = this.mChildren.size();
for (int i = 0; i < size; i++) {
ConstraintWidget constraintWidget = this.mChildren.get(i);
if (constraintWidget instanceof Guideline) {
Guideline guideline = (Guideline) constraintWidget;
if (guideline.getOrientation() == 0) {
arrayList.add(guideline);
}
}
}
return arrayList;
}
public BasicMeasure.Measurer getMeasurer() {
return this.mMeasurer;
}
public int getOptimizationLevel() {
return this.mOptimizationLevel;
}
public LinearSystem getSystem() {
return this.mSystem;
}
@Override // androidx.constraintlayout.solver.widgets.ConstraintWidget
public String getType() {
return "ConstraintLayout";
}
public ArrayList<Guideline> getVerticalGuidelines() {
ArrayList<Guideline> arrayList = new ArrayList<>();
int size = this.mChildren.size();
for (int i = 0; i < size; i++) {
ConstraintWidget constraintWidget = this.mChildren.get(i);
if (constraintWidget instanceof Guideline) {
Guideline guideline = (Guideline) constraintWidget;
if (guideline.getOrientation() == 1) {
arrayList.add(guideline);
}
}
}
return arrayList;
}
public boolean handlesInternalConstraints() {
return false;
}
public void invalidateGraph() {
this.mDependencyGraph.invalidateGraph();
}
public void invalidateMeasures() {
this.mDependencyGraph.invalidateMeasures();
}
public boolean isHeightMeasuredTooSmall() {
return this.mHeightMeasuredTooSmall;
}
public boolean isRtl() {
return this.mIsRtl;
}
public boolean isWidthMeasuredTooSmall() {
return this.mWidthMeasuredTooSmall;
}
/* JADX WARNING: Unknown variable types count: 1 */
@Override // androidx.constraintlayout.solver.widgets.WidgetContainer
public void layout() {
int i;
int i2;
boolean z2;
boolean z3;
?? r6;
boolean z4;
ConstraintWidget.DimensionBehaviour dimensionBehaviour;
this.mX = 0;
this.mY = 0;
this.mWidthMeasuredTooSmall = false;
this.mHeightMeasuredTooSmall = false;
int size = this.mChildren.size();
int max = Math.max(0, getWidth());
int max2 = Math.max(0, getHeight());
ConstraintWidget.DimensionBehaviour[] dimensionBehaviourArr = this.mListDimensionBehaviors;
ConstraintWidget.DimensionBehaviour dimensionBehaviour2 = dimensionBehaviourArr[1];
ConstraintWidget.DimensionBehaviour dimensionBehaviour3 = dimensionBehaviourArr[0];
Metrics metrics = this.mMetrics;
if (metrics != null) {
metrics.layouts++;
}
if (Optimizer.enabled(this.mOptimizationLevel, 1)) {
Direct.solvingPass(this, getMeasurer());
for (int i3 = 0; i3 < size; i3++) {
ConstraintWidget constraintWidget = this.mChildren.get(i3);
if (constraintWidget.isMeasureRequested() && !(constraintWidget instanceof Guideline) && !(constraintWidget instanceof Barrier) && !(constraintWidget instanceof VirtualLayout) && !constraintWidget.isInVirtualLayout()) {
ConstraintWidget.DimensionBehaviour dimensionBehaviour4 = constraintWidget.getDimensionBehaviour(0);
ConstraintWidget.DimensionBehaviour dimensionBehaviour5 = constraintWidget.getDimensionBehaviour(1);
ConstraintWidget.DimensionBehaviour dimensionBehaviour6 = ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT;
if (!(dimensionBehaviour4 == dimensionBehaviour6 && constraintWidget.mMatchConstraintDefaultWidth != 1 && dimensionBehaviour5 == dimensionBehaviour6 && constraintWidget.mMatchConstraintDefaultHeight != 1)) {
measure(constraintWidget, this.mMeasurer, new BasicMeasure.Measure(), BasicMeasure.Measure.SELF_DIMENSIONS);
}
}
}
}
if (size <= 2 || (!(dimensionBehaviour3 == (dimensionBehaviour = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT) || dimensionBehaviour2 == dimensionBehaviour) || !Optimizer.enabled(this.mOptimizationLevel, 1024) || !Grouping.simpleSolvingPass(this, getMeasurer()))) {
i = max2;
i2 = max;
z2 = false;
} else {
if (dimensionBehaviour3 == dimensionBehaviour) {
if (max >= getWidth() || max <= 0) {
max = getWidth();
} else {
setWidth(max);
this.mWidthMeasuredTooSmall = true;
}
}
if (dimensionBehaviour2 == dimensionBehaviour) {
if (max2 >= getHeight() || max2 <= 0) {
max2 = getHeight();
} else {
setHeight(max2);
this.mHeightMeasuredTooSmall = true;
}
}
i = max2;
i2 = max;
z2 = true;
}
boolean z5 = optimizeFor(64) || optimizeFor(128);
LinearSystem linearSystem = this.mSystem;
linearSystem.graphOptimizer = false;
linearSystem.newgraphOptimizer = false;
if (this.mOptimizationLevel != 0 && z5) {
linearSystem.newgraphOptimizer = true;
}
ArrayList<ConstraintWidget> arrayList = this.mChildren;
ConstraintWidget.DimensionBehaviour horizontalDimensionBehaviour = getHorizontalDimensionBehaviour();
ConstraintWidget.DimensionBehaviour dimensionBehaviour7 = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT;
boolean z6 = horizontalDimensionBehaviour == dimensionBehaviour7 || getVerticalDimensionBehaviour() == dimensionBehaviour7;
resetChains();
for (int i4 = 0; i4 < size; i4++) {
ConstraintWidget constraintWidget2 = this.mChildren.get(i4);
if (constraintWidget2 instanceof WidgetContainer) {
((WidgetContainer) constraintWidget2).layout();
}
}
boolean optimizeFor = optimizeFor(64);
boolean z7 = z2;
int i5 = 0;
boolean z8 = true;
while (z8) {
int i6 = i5 + 1;
try {
this.mSystem.reset();
resetChains();
createObjectVariables(this.mSystem);
for (int i7 = 0; i7 < size; i7++) {
this.mChildren.get(i7).createObjectVariables(this.mSystem);
}
z8 = addChildrenToSolver(this.mSystem);
WeakReference<ConstraintAnchor> weakReference = this.verticalWrapMin;
if (!(weakReference == null || weakReference.get() == null)) {
addMinWrap(this.verticalWrapMin.get(), this.mSystem.createObjectVariable(this.mTop));
this.verticalWrapMin = null;
}
WeakReference<ConstraintAnchor> weakReference2 = this.verticalWrapMax;
if (!(weakReference2 == null || weakReference2.get() == null)) {
addMaxWrap(this.verticalWrapMax.get(), this.mSystem.createObjectVariable(this.mBottom));
this.verticalWrapMax = null;
}
WeakReference<ConstraintAnchor> weakReference3 = this.horizontalWrapMin;
if (!(weakReference3 == null || weakReference3.get() == null)) {
addMinWrap(this.horizontalWrapMin.get(), this.mSystem.createObjectVariable(this.mLeft));
this.horizontalWrapMin = null;
}
WeakReference<ConstraintAnchor> weakReference4 = this.horizontalWrapMax;
if (!(weakReference4 == null || weakReference4.get() == null)) {
addMaxWrap(this.horizontalWrapMax.get(), this.mSystem.createObjectVariable(this.mRight));
this.horizontalWrapMax = null;
}
if (z8) {
this.mSystem.minimize();
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("EXCEPTION : " + e);
}
if (z8) {
updateChildrenFromSolver(this.mSystem, Optimizer.flags);
} else {
updateFromSolver(this.mSystem, optimizeFor);
for (int i8 = 0; i8 < size; i8++) {
this.mChildren.get(i8).updateFromSolver(this.mSystem, optimizeFor);
}
}
if (!z6 || i6 >= 8 || !Optimizer.flags[2]) {
z3 = false;
} else {
int i9 = 0;
int i10 = 0;
for (int i11 = 0; i11 < size; i11++) {
ConstraintWidget constraintWidget3 = this.mChildren.get(i11);
i9 = Math.max(i9, constraintWidget3.getWidth() + constraintWidget3.mX);
i10 = Math.max(i10, constraintWidget3.getHeight() + constraintWidget3.mY);
}
int max3 = Math.max(this.mMinWidth, i9);
int max4 = Math.max(this.mMinHeight, i10);
ConstraintWidget.DimensionBehaviour dimensionBehaviour8 = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT;
if (dimensionBehaviour3 != dimensionBehaviour8 || getWidth() >= max3) {
z3 = false;
} else {
setWidth(max3);
this.mListDimensionBehaviors[0] = dimensionBehaviour8;
z3 = true;
z7 = true;
}
if (dimensionBehaviour2 == dimensionBehaviour8 && getHeight() < max4) {
setHeight(max4);
this.mListDimensionBehaviors[1] = dimensionBehaviour8;
z3 = true;
z7 = true;
}
}
int max5 = Math.max(this.mMinWidth, getWidth());
if (max5 > getWidth()) {
setWidth(max5);
this.mListDimensionBehaviors[0] = ConstraintWidget.DimensionBehaviour.FIXED;
z3 = true;
z7 = true;
}
int max6 = Math.max(this.mMinHeight, getHeight());
if (max6 > getHeight()) {
setHeight(max6);
r6 = 1;
this.mListDimensionBehaviors[1] = ConstraintWidget.DimensionBehaviour.FIXED;
z3 = true;
z4 = true;
} else {
r6 = 1;
z4 = z7;
}
if (!z4) {
ConstraintWidget.DimensionBehaviour dimensionBehaviour9 = this.mListDimensionBehaviors[0];
ConstraintWidget.DimensionBehaviour dimensionBehaviour10 = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT;
if (dimensionBehaviour9 == dimensionBehaviour10 && i2 > 0 && getWidth() > i2) {
this.mWidthMeasuredTooSmall = r6;
this.mListDimensionBehaviors[0] = ConstraintWidget.DimensionBehaviour.FIXED;
setWidth(i2);
z3 = true;
z4 = true;
}
ConstraintWidget.DimensionBehaviour[] dimensionBehaviourArr2 = this.mListDimensionBehaviors;
char c2 = r6 == true ? 1 : 0;
char c3 = r6 == true ? 1 : 0;
char c4 = r6 == true ? 1 : 0;
if (dimensionBehaviourArr2[c2] == dimensionBehaviour10 && i > 0 && getHeight() > i) {
this.mHeightMeasuredTooSmall = r6;
this.mListDimensionBehaviors[r6] = ConstraintWidget.DimensionBehaviour.FIXED;
setHeight(i);
z7 = true;
z8 = true;
i5 = i6;
}
}
z8 = z3;
z7 = z4;
i5 = i6;
}
this.mChildren = arrayList;
if (z7) {
ConstraintWidget.DimensionBehaviour[] dimensionBehaviourArr3 = this.mListDimensionBehaviors;
dimensionBehaviourArr3[0] = dimensionBehaviour3;
dimensionBehaviourArr3[1] = dimensionBehaviour2;
}
resetSolverVariables(this.mSystem.getCache());
}
public long measure(int i, int i2, int i3, int i4, int i5, int i6, int i7, int i8, int i9) {
this.mPaddingLeft = i8;
this.mPaddingTop = i9;
return this.mBasicMeasureSolver.solverMeasure(this, i, i8, i9, i2, i3, i4, i5, i6, i7);
}
public boolean optimizeFor(int i) {
return (this.mOptimizationLevel & i) == i;
}
@Override // androidx.constraintlayout.solver.widgets.WidgetContainer, androidx.constraintlayout.solver.widgets.ConstraintWidget
public void reset() {
this.mSystem.reset();
this.mPaddingLeft = 0;
this.mPaddingRight = 0;
this.mPaddingTop = 0;
this.mPaddingBottom = 0;
this.mSkipSolver = false;
super.reset();
}
public void setMeasurer(BasicMeasure.Measurer measurer) {
this.mMeasurer = measurer;
this.mDependencyGraph.setMeasurer(measurer);
}
public void setOptimizationLevel(int i) {
this.mOptimizationLevel = i;
LinearSystem.USE_DEPENDENCY_ORDERING = optimizeFor(512);
}
public void setPadding(int i, int i2, int i3, int i4) {
this.mPaddingLeft = i;
this.mPaddingTop = i2;
this.mPaddingRight = i3;
this.mPaddingBottom = i4;
}
public void setRtl(boolean z2) {
this.mIsRtl = z2;
}
public void updateChildrenFromSolver(LinearSystem linearSystem, boolean[] zArr) {
zArr[2] = false;
boolean optimizeFor = optimizeFor(64);
updateFromSolver(linearSystem, optimizeFor);
int size = this.mChildren.size();
for (int i = 0; i < size; i++) {
this.mChildren.get(i).updateFromSolver(linearSystem, optimizeFor);
}
}
@Override // androidx.constraintlayout.solver.widgets.ConstraintWidget
public void updateFromRuns(boolean z2, boolean z3) {
super.updateFromRuns(z2, z3);
int size = this.mChildren.size();
for (int i = 0; i < size; i++) {
this.mChildren.get(i).updateFromRuns(z2, z3);
}
}
public void updateHierarchy() {
this.mBasicMeasureSolver.updateHierarchy(this);
}
}

View file

@ -1,326 +0,0 @@
package androidx.constraintlayout.solver.widgets;
import androidx.constraintlayout.solver.LinearSystem;
import androidx.constraintlayout.solver.SolverVariable;
import androidx.constraintlayout.solver.widgets.ConstraintAnchor;
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
import java.util.HashMap;
public class Guideline extends ConstraintWidget {
public static final int HORIZONTAL = 0;
public static final int RELATIVE_BEGIN = 1;
public static final int RELATIVE_END = 2;
public static final int RELATIVE_PERCENT = 0;
public static final int RELATIVE_UNKNWON = -1;
public static final int VERTICAL = 1;
private ConstraintAnchor mAnchor = this.mTop;
private int mMinimumPosition;
private int mOrientation;
public int mRelativeBegin = -1;
public int mRelativeEnd = -1;
public float mRelativePercent = -1.0f;
private boolean resolved;
/* renamed from: androidx.constraintlayout.solver.widgets.Guideline$1 reason: invalid class name */
public static /* synthetic */ class AnonymousClass1 {
public static final /* synthetic */ int[] $SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type;
static {
ConstraintAnchor.Type.values();
int[] iArr = new int[9];
$SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type = iArr;
try {
iArr[ConstraintAnchor.Type.LEFT.ordinal()] = 1;
} catch (NoSuchFieldError unused) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[ConstraintAnchor.Type.RIGHT.ordinal()] = 2;
} catch (NoSuchFieldError unused2) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[ConstraintAnchor.Type.TOP.ordinal()] = 3;
} catch (NoSuchFieldError unused3) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[ConstraintAnchor.Type.BOTTOM.ordinal()] = 4;
} catch (NoSuchFieldError unused4) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[ConstraintAnchor.Type.BASELINE.ordinal()] = 5;
} catch (NoSuchFieldError unused5) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[ConstraintAnchor.Type.CENTER.ordinal()] = 6;
} catch (NoSuchFieldError unused6) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[ConstraintAnchor.Type.CENTER_X.ordinal()] = 7;
} catch (NoSuchFieldError unused7) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[ConstraintAnchor.Type.CENTER_Y.ordinal()] = 8;
} catch (NoSuchFieldError unused8) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[ConstraintAnchor.Type.NONE.ordinal()] = 9;
} catch (NoSuchFieldError unused9) {
}
}
}
public Guideline() {
this.mOrientation = 0;
this.mMinimumPosition = 0;
this.mAnchors.clear();
this.mAnchors.add(this.mAnchor);
int length = this.mListAnchors.length;
for (int i = 0; i < length; i++) {
this.mListAnchors[i] = this.mAnchor;
}
}
@Override // androidx.constraintlayout.solver.widgets.ConstraintWidget
public void addToSolver(LinearSystem linearSystem, boolean z2) {
ConstraintWidgetContainer constraintWidgetContainer = (ConstraintWidgetContainer) getParent();
if (constraintWidgetContainer != null) {
ConstraintAnchor anchor = constraintWidgetContainer.getAnchor(ConstraintAnchor.Type.LEFT);
ConstraintAnchor anchor2 = constraintWidgetContainer.getAnchor(ConstraintAnchor.Type.RIGHT);
ConstraintWidget constraintWidget = this.mParent;
boolean z3 = true;
boolean z4 = constraintWidget != null && constraintWidget.mListDimensionBehaviors[0] == ConstraintWidget.DimensionBehaviour.WRAP_CONTENT;
if (this.mOrientation == 0) {
anchor = constraintWidgetContainer.getAnchor(ConstraintAnchor.Type.TOP);
anchor2 = constraintWidgetContainer.getAnchor(ConstraintAnchor.Type.BOTTOM);
ConstraintWidget constraintWidget2 = this.mParent;
if (constraintWidget2 == null || constraintWidget2.mListDimensionBehaviors[1] != ConstraintWidget.DimensionBehaviour.WRAP_CONTENT) {
z3 = false;
}
z4 = z3;
}
if (this.resolved && this.mAnchor.hasFinalValue()) {
SolverVariable createObjectVariable = linearSystem.createObjectVariable(this.mAnchor);
linearSystem.addEquality(createObjectVariable, this.mAnchor.getFinalValue());
if (this.mRelativeBegin != -1) {
if (z4) {
linearSystem.addGreaterThan(linearSystem.createObjectVariable(anchor2), createObjectVariable, 0, 5);
}
} else if (this.mRelativeEnd != -1 && z4) {
SolverVariable createObjectVariable2 = linearSystem.createObjectVariable(anchor2);
linearSystem.addGreaterThan(createObjectVariable, linearSystem.createObjectVariable(anchor), 0, 5);
linearSystem.addGreaterThan(createObjectVariable2, createObjectVariable, 0, 5);
}
this.resolved = false;
} else if (this.mRelativeBegin != -1) {
SolverVariable createObjectVariable3 = linearSystem.createObjectVariable(this.mAnchor);
linearSystem.addEquality(createObjectVariable3, linearSystem.createObjectVariable(anchor), this.mRelativeBegin, 8);
if (z4) {
linearSystem.addGreaterThan(linearSystem.createObjectVariable(anchor2), createObjectVariable3, 0, 5);
}
} else if (this.mRelativeEnd != -1) {
SolverVariable createObjectVariable4 = linearSystem.createObjectVariable(this.mAnchor);
SolverVariable createObjectVariable5 = linearSystem.createObjectVariable(anchor2);
linearSystem.addEquality(createObjectVariable4, createObjectVariable5, -this.mRelativeEnd, 8);
if (z4) {
linearSystem.addGreaterThan(createObjectVariable4, linearSystem.createObjectVariable(anchor), 0, 5);
linearSystem.addGreaterThan(createObjectVariable5, createObjectVariable4, 0, 5);
}
} else if (this.mRelativePercent != -1.0f) {
linearSystem.addConstraint(LinearSystem.createRowDimensionPercent(linearSystem, linearSystem.createObjectVariable(this.mAnchor), linearSystem.createObjectVariable(anchor2), this.mRelativePercent));
}
}
}
@Override // androidx.constraintlayout.solver.widgets.ConstraintWidget
public boolean allowedInBarrier() {
return true;
}
@Override // androidx.constraintlayout.solver.widgets.ConstraintWidget
public void copy(ConstraintWidget constraintWidget, HashMap<ConstraintWidget, ConstraintWidget> hashMap) {
super.copy(constraintWidget, hashMap);
Guideline guideline = (Guideline) constraintWidget;
this.mRelativePercent = guideline.mRelativePercent;
this.mRelativeBegin = guideline.mRelativeBegin;
this.mRelativeEnd = guideline.mRelativeEnd;
setOrientation(guideline.mOrientation);
}
public void cyclePosition() {
if (this.mRelativeBegin != -1) {
inferRelativePercentPosition();
} else if (this.mRelativePercent != -1.0f) {
inferRelativeEndPosition();
} else if (this.mRelativeEnd != -1) {
inferRelativeBeginPosition();
}
}
public ConstraintAnchor getAnchor() {
return this.mAnchor;
}
@Override // androidx.constraintlayout.solver.widgets.ConstraintWidget
public ConstraintAnchor getAnchor(ConstraintAnchor.Type type) {
switch (type.ordinal()) {
case 0:
case 5:
case 6:
case 7:
case 8:
return null;
case 1:
case 3:
if (this.mOrientation == 1) {
return this.mAnchor;
}
break;
case 2:
case 4:
if (this.mOrientation == 0) {
return this.mAnchor;
}
break;
}
throw new AssertionError(type.name());
}
public int getOrientation() {
return this.mOrientation;
}
public int getRelativeBegin() {
return this.mRelativeBegin;
}
public int getRelativeBehaviour() {
if (this.mRelativePercent != -1.0f) {
return 0;
}
if (this.mRelativeBegin != -1) {
return 1;
}
return this.mRelativeEnd != -1 ? 2 : -1;
}
public int getRelativeEnd() {
return this.mRelativeEnd;
}
public float getRelativePercent() {
return this.mRelativePercent;
}
@Override // androidx.constraintlayout.solver.widgets.ConstraintWidget
public String getType() {
return "Guideline";
}
public void inferRelativeBeginPosition() {
int x2 = getX();
if (this.mOrientation == 0) {
x2 = getY();
}
setGuideBegin(x2);
}
public void inferRelativeEndPosition() {
int width = getParent().getWidth() - getX();
if (this.mOrientation == 0) {
width = getParent().getHeight() - getY();
}
setGuideEnd(width);
}
public void inferRelativePercentPosition() {
float x2 = ((float) getX()) / ((float) getParent().getWidth());
if (this.mOrientation == 0) {
x2 = ((float) getY()) / ((float) getParent().getHeight());
}
setGuidePercent(x2);
}
public boolean isPercent() {
return this.mRelativePercent != -1.0f && this.mRelativeBegin == -1 && this.mRelativeEnd == -1;
}
@Override // androidx.constraintlayout.solver.widgets.ConstraintWidget
public boolean isResolvedHorizontally() {
return this.resolved;
}
@Override // androidx.constraintlayout.solver.widgets.ConstraintWidget
public boolean isResolvedVertically() {
return this.resolved;
}
public void setFinalValue(int i) {
this.mAnchor.setFinalValue(i);
this.resolved = true;
}
public void setGuideBegin(int i) {
if (i > -1) {
this.mRelativePercent = -1.0f;
this.mRelativeBegin = i;
this.mRelativeEnd = -1;
}
}
public void setGuideEnd(int i) {
if (i > -1) {
this.mRelativePercent = -1.0f;
this.mRelativeBegin = -1;
this.mRelativeEnd = i;
}
}
public void setGuidePercent(float f) {
if (f > -1.0f) {
this.mRelativePercent = f;
this.mRelativeBegin = -1;
this.mRelativeEnd = -1;
}
}
public void setGuidePercent(int i) {
setGuidePercent(((float) i) / 100.0f);
}
public void setMinimumPosition(int i) {
this.mMinimumPosition = i;
}
public void setOrientation(int i) {
if (this.mOrientation != i) {
this.mOrientation = i;
this.mAnchors.clear();
if (this.mOrientation == 1) {
this.mAnchor = this.mLeft;
} else {
this.mAnchor = this.mTop;
}
this.mAnchors.add(this.mAnchor);
int length = this.mListAnchors.length;
for (int i2 = 0; i2 < length; i2++) {
this.mListAnchors[i2] = this.mAnchor;
}
}
}
@Override // androidx.constraintlayout.solver.widgets.ConstraintWidget
public void updateFromSolver(LinearSystem linearSystem, boolean z2) {
if (getParent() != null) {
int objectVariableValue = linearSystem.getObjectVariableValue(this.mAnchor);
if (this.mOrientation == 1) {
setX(objectVariableValue);
setY(0);
setHeight(getParent().getHeight());
setWidth(0);
return;
}
setX(0);
setY(objectVariableValue);
setWidth(getParent().getWidth());
setHeight(0);
}
}
}

View file

@ -1,8 +0,0 @@
package androidx.constraintlayout.solver.widgets;
public interface Helper {
void add(ConstraintWidget constraintWidget);
void removeAllIds();
void updateConstraints(ConstraintWidgetContainer constraintWidgetContainer);
}

View file

@ -1,71 +0,0 @@
package androidx.constraintlayout.solver.widgets;
import androidx.constraintlayout.solver.widgets.analyzer.Grouping;
import androidx.constraintlayout.solver.widgets.analyzer.WidgetGroup;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
public class HelperWidget extends ConstraintWidget implements Helper {
public ConstraintWidget[] mWidgets = new ConstraintWidget[4];
public int mWidgetsCount = 0;
@Override // androidx.constraintlayout.solver.widgets.Helper
public void add(ConstraintWidget constraintWidget) {
if (constraintWidget != this && constraintWidget != null) {
int i = this.mWidgetsCount + 1;
ConstraintWidget[] constraintWidgetArr = this.mWidgets;
if (i > constraintWidgetArr.length) {
this.mWidgets = (ConstraintWidget[]) Arrays.copyOf(constraintWidgetArr, constraintWidgetArr.length * 2);
}
ConstraintWidget[] constraintWidgetArr2 = this.mWidgets;
int i2 = this.mWidgetsCount;
constraintWidgetArr2[i2] = constraintWidget;
this.mWidgetsCount = i2 + 1;
}
}
public void addDependents(ArrayList<WidgetGroup> arrayList, int i, WidgetGroup widgetGroup) {
for (int i2 = 0; i2 < this.mWidgetsCount; i2++) {
widgetGroup.add(this.mWidgets[i2]);
}
for (int i3 = 0; i3 < this.mWidgetsCount; i3++) {
Grouping.findDependents(this.mWidgets[i3], i, arrayList, widgetGroup);
}
}
@Override // androidx.constraintlayout.solver.widgets.ConstraintWidget
public void copy(ConstraintWidget constraintWidget, HashMap<ConstraintWidget, ConstraintWidget> hashMap) {
super.copy(constraintWidget, hashMap);
HelperWidget helperWidget = (HelperWidget) constraintWidget;
this.mWidgetsCount = 0;
int i = helperWidget.mWidgetsCount;
for (int i2 = 0; i2 < i; i2++) {
add(hashMap.get(helperWidget.mWidgets[i2]));
}
}
public int findGroupInDependents(int i) {
int i2;
int i3;
for (int i4 = 0; i4 < this.mWidgetsCount; i4++) {
ConstraintWidget constraintWidget = this.mWidgets[i4];
if (i == 0 && (i3 = constraintWidget.horizontalGroup) != -1) {
return i3;
}
if (i == 1 && (i2 = constraintWidget.verticalGroup) != -1) {
return i2;
}
}
return -1;
}
@Override // androidx.constraintlayout.solver.widgets.Helper
public void removeAllIds() {
this.mWidgetsCount = 0;
Arrays.fill(this.mWidgets, (Object) null);
}
@Override // androidx.constraintlayout.solver.widgets.Helper
public void updateConstraints(ConstraintWidgetContainer constraintWidgetContainer) {
}
}

View file

@ -1,63 +0,0 @@
package androidx.constraintlayout.solver.widgets;
import androidx.constraintlayout.solver.LinearSystem;
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
public class Optimizer {
public static final int FLAG_CHAIN_DANGLING = 1;
public static final int FLAG_RECOMPUTE_BOUNDS = 2;
public static final int FLAG_USE_OPTIMIZE = 0;
public static final int OPTIMIZATION_BARRIER = 2;
public static final int OPTIMIZATION_CACHE_MEASURES = 256;
public static final int OPTIMIZATION_CHAIN = 4;
public static final int OPTIMIZATION_DEPENDENCY_ORDERING = 512;
public static final int OPTIMIZATION_DIMENSIONS = 8;
public static final int OPTIMIZATION_DIRECT = 1;
public static final int OPTIMIZATION_GRAPH = 64;
public static final int OPTIMIZATION_GRAPH_WRAP = 128;
public static final int OPTIMIZATION_GROUPING = 1024;
public static final int OPTIMIZATION_GROUPS = 32;
public static final int OPTIMIZATION_NONE = 0;
public static final int OPTIMIZATION_RATIO = 16;
public static final int OPTIMIZATION_STANDARD = 257;
public static boolean[] flags = new boolean[3];
public static void checkMatchParent(ConstraintWidgetContainer constraintWidgetContainer, LinearSystem linearSystem, ConstraintWidget constraintWidget) {
constraintWidget.mHorizontalResolution = -1;
constraintWidget.mVerticalResolution = -1;
ConstraintWidget.DimensionBehaviour dimensionBehaviour = constraintWidgetContainer.mListDimensionBehaviors[0];
ConstraintWidget.DimensionBehaviour dimensionBehaviour2 = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT;
if (dimensionBehaviour != dimensionBehaviour2 && constraintWidget.mListDimensionBehaviors[0] == ConstraintWidget.DimensionBehaviour.MATCH_PARENT) {
int i = constraintWidget.mLeft.mMargin;
int width = constraintWidgetContainer.getWidth() - constraintWidget.mRight.mMargin;
ConstraintAnchor constraintAnchor = constraintWidget.mLeft;
constraintAnchor.mSolverVariable = linearSystem.createObjectVariable(constraintAnchor);
ConstraintAnchor constraintAnchor2 = constraintWidget.mRight;
constraintAnchor2.mSolverVariable = linearSystem.createObjectVariable(constraintAnchor2);
linearSystem.addEquality(constraintWidget.mLeft.mSolverVariable, i);
linearSystem.addEquality(constraintWidget.mRight.mSolverVariable, width);
constraintWidget.mHorizontalResolution = 2;
constraintWidget.setHorizontalDimension(i, width);
}
if (constraintWidgetContainer.mListDimensionBehaviors[1] != dimensionBehaviour2 && constraintWidget.mListDimensionBehaviors[1] == ConstraintWidget.DimensionBehaviour.MATCH_PARENT) {
int i2 = constraintWidget.mTop.mMargin;
int height = constraintWidgetContainer.getHeight() - constraintWidget.mBottom.mMargin;
ConstraintAnchor constraintAnchor3 = constraintWidget.mTop;
constraintAnchor3.mSolverVariable = linearSystem.createObjectVariable(constraintAnchor3);
ConstraintAnchor constraintAnchor4 = constraintWidget.mBottom;
constraintAnchor4.mSolverVariable = linearSystem.createObjectVariable(constraintAnchor4);
linearSystem.addEquality(constraintWidget.mTop.mSolverVariable, i2);
linearSystem.addEquality(constraintWidget.mBottom.mSolverVariable, height);
if (constraintWidget.mBaselineDistance > 0 || constraintWidget.getVisibility() == 8) {
ConstraintAnchor constraintAnchor5 = constraintWidget.mBaseline;
constraintAnchor5.mSolverVariable = linearSystem.createObjectVariable(constraintAnchor5);
linearSystem.addEquality(constraintWidget.mBaseline.mSolverVariable, constraintWidget.mBaselineDistance + i2);
}
constraintWidget.mVerticalResolution = 2;
constraintWidget.setVerticalDimension(i2, height);
}
}
public static final boolean enabled(int i, int i2) {
return (i & i2) == i2;
}
}

View file

@ -1,47 +0,0 @@
package androidx.constraintlayout.solver.widgets;
public class Rectangle {
public int height;
public int width;
/* renamed from: x reason: collision with root package name */
public int f21x;
/* renamed from: y reason: collision with root package name */
public int f22y;
public boolean contains(int i, int i2) {
int i3;
int i4 = this.f21x;
return i >= i4 && i < i4 + this.width && i2 >= (i3 = this.f22y) && i2 < i3 + this.height;
}
public int getCenterX() {
return (this.f21x + this.width) / 2;
}
public int getCenterY() {
return (this.f22y + this.height) / 2;
}
public void grow(int i, int i2) {
this.f21x -= i;
this.f22y -= i2;
this.width = (i * 2) + this.width;
this.height = (i2 * 2) + this.height;
}
public boolean intersects(Rectangle rectangle) {
int i;
int i2;
int i3 = this.f21x;
int i4 = rectangle.f21x;
return i3 >= i4 && i3 < i4 + rectangle.width && (i = this.f22y) >= (i2 = rectangle.f22y) && i < i2 + rectangle.height;
}
public void setBounds(int i, int i2, int i3, int i4) {
this.f21x = i;
this.f22y = i2;
this.width = i3;
this.height = i4;
}
}

View file

@ -1,182 +0,0 @@
package androidx.constraintlayout.solver.widgets;
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
import androidx.constraintlayout.solver.widgets.analyzer.BasicMeasure;
public class VirtualLayout extends HelperWidget {
public BasicMeasure.Measure mMeasure = new BasicMeasure.Measure();
private int mMeasuredHeight = 0;
private int mMeasuredWidth = 0;
public BasicMeasure.Measurer mMeasurer = null;
private boolean mNeedsCallFromSolver = false;
private int mPaddingBottom = 0;
private int mPaddingEnd = 0;
private int mPaddingLeft = 0;
private int mPaddingRight = 0;
private int mPaddingStart = 0;
private int mPaddingTop = 0;
private int mResolvedPaddingLeft = 0;
private int mResolvedPaddingRight = 0;
public void applyRtl(boolean z2) {
int i = this.mPaddingStart;
if (i <= 0 && this.mPaddingEnd <= 0) {
return;
}
if (z2) {
this.mResolvedPaddingLeft = this.mPaddingEnd;
this.mResolvedPaddingRight = i;
return;
}
this.mResolvedPaddingLeft = i;
this.mResolvedPaddingRight = this.mPaddingEnd;
}
public void captureWidgets() {
for (int i = 0; i < this.mWidgetsCount; i++) {
ConstraintWidget constraintWidget = this.mWidgets[i];
if (constraintWidget != null) {
constraintWidget.setInVirtualLayout(true);
}
}
}
public int getMeasuredHeight() {
return this.mMeasuredHeight;
}
public int getMeasuredWidth() {
return this.mMeasuredWidth;
}
public int getPaddingBottom() {
return this.mPaddingBottom;
}
public int getPaddingLeft() {
return this.mResolvedPaddingLeft;
}
public int getPaddingRight() {
return this.mResolvedPaddingRight;
}
public int getPaddingTop() {
return this.mPaddingTop;
}
public void measure(int i, int i2, int i3, int i4) {
}
public void measure(ConstraintWidget constraintWidget, ConstraintWidget.DimensionBehaviour dimensionBehaviour, int i, ConstraintWidget.DimensionBehaviour dimensionBehaviour2, int i2) {
while (this.mMeasurer == null && getParent() != null) {
this.mMeasurer = ((ConstraintWidgetContainer) getParent()).getMeasurer();
}
BasicMeasure.Measure measure = this.mMeasure;
measure.horizontalBehavior = dimensionBehaviour;
measure.verticalBehavior = dimensionBehaviour2;
measure.horizontalDimension = i;
measure.verticalDimension = i2;
this.mMeasurer.measure(constraintWidget, measure);
constraintWidget.setWidth(this.mMeasure.measuredWidth);
constraintWidget.setHeight(this.mMeasure.measuredHeight);
constraintWidget.setHasBaseline(this.mMeasure.measuredHasBaseline);
constraintWidget.setBaselineDistance(this.mMeasure.measuredBaseline);
}
public boolean measureChildren() {
ConstraintWidget constraintWidget = this.mParent;
BasicMeasure.Measurer measurer = constraintWidget != null ? ((ConstraintWidgetContainer) constraintWidget).getMeasurer() : null;
if (measurer == null) {
return false;
}
int i = 0;
while (true) {
boolean z2 = true;
if (i >= this.mWidgetsCount) {
return true;
}
ConstraintWidget constraintWidget2 = this.mWidgets[i];
if (constraintWidget2 != null && !(constraintWidget2 instanceof Guideline)) {
ConstraintWidget.DimensionBehaviour dimensionBehaviour = constraintWidget2.getDimensionBehaviour(0);
ConstraintWidget.DimensionBehaviour dimensionBehaviour2 = constraintWidget2.getDimensionBehaviour(1);
ConstraintWidget.DimensionBehaviour dimensionBehaviour3 = ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT;
if (dimensionBehaviour != dimensionBehaviour3 || constraintWidget2.mMatchConstraintDefaultWidth == 1 || dimensionBehaviour2 != dimensionBehaviour3 || constraintWidget2.mMatchConstraintDefaultHeight == 1) {
z2 = false;
}
if (!z2) {
if (dimensionBehaviour == dimensionBehaviour3) {
dimensionBehaviour = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT;
}
if (dimensionBehaviour2 == dimensionBehaviour3) {
dimensionBehaviour2 = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT;
}
BasicMeasure.Measure measure = this.mMeasure;
measure.horizontalBehavior = dimensionBehaviour;
measure.verticalBehavior = dimensionBehaviour2;
measure.horizontalDimension = constraintWidget2.getWidth();
this.mMeasure.verticalDimension = constraintWidget2.getHeight();
measurer.measure(constraintWidget2, this.mMeasure);
constraintWidget2.setWidth(this.mMeasure.measuredWidth);
constraintWidget2.setHeight(this.mMeasure.measuredHeight);
constraintWidget2.setBaselineDistance(this.mMeasure.measuredBaseline);
}
}
i++;
}
}
public boolean needSolverPass() {
return this.mNeedsCallFromSolver;
}
public void needsCallbackFromSolver(boolean z2) {
this.mNeedsCallFromSolver = z2;
}
public void setMeasure(int i, int i2) {
this.mMeasuredWidth = i;
this.mMeasuredHeight = i2;
}
public void setPadding(int i) {
this.mPaddingLeft = i;
this.mPaddingTop = i;
this.mPaddingRight = i;
this.mPaddingBottom = i;
this.mPaddingStart = i;
this.mPaddingEnd = i;
}
public void setPaddingBottom(int i) {
this.mPaddingBottom = i;
}
public void setPaddingEnd(int i) {
this.mPaddingEnd = i;
}
public void setPaddingLeft(int i) {
this.mPaddingLeft = i;
this.mResolvedPaddingLeft = i;
}
public void setPaddingRight(int i) {
this.mPaddingRight = i;
this.mResolvedPaddingRight = i;
}
public void setPaddingStart(int i) {
this.mPaddingStart = i;
this.mResolvedPaddingLeft = i;
this.mResolvedPaddingRight = i;
}
public void setPaddingTop(int i) {
this.mPaddingTop = i;
}
@Override // androidx.constraintlayout.solver.widgets.HelperWidget, androidx.constraintlayout.solver.widgets.Helper
public void updateConstraints(ConstraintWidgetContainer constraintWidgetContainer) {
captureWidgets();
}
}

View file

@ -1,95 +0,0 @@
package androidx.constraintlayout.solver.widgets;
import androidx.constraintlayout.solver.Cache;
import java.util.ArrayList;
public class WidgetContainer extends ConstraintWidget {
public ArrayList<ConstraintWidget> mChildren = new ArrayList<>();
public WidgetContainer() {
}
public WidgetContainer(int i, int i2) {
super(i, i2);
}
public WidgetContainer(int i, int i2, int i3, int i4) {
super(i, i2, i3, i4);
}
public void add(ConstraintWidget constraintWidget) {
this.mChildren.add(constraintWidget);
if (constraintWidget.getParent() != null) {
((WidgetContainer) constraintWidget.getParent()).remove(constraintWidget);
}
constraintWidget.setParent(this);
}
public void add(ConstraintWidget... constraintWidgetArr) {
for (ConstraintWidget constraintWidget : constraintWidgetArr) {
add(constraintWidget);
}
}
public ArrayList<ConstraintWidget> getChildren() {
return this.mChildren;
}
public ConstraintWidgetContainer getRootConstraintContainer() {
ConstraintWidget parent = getParent();
ConstraintWidgetContainer constraintWidgetContainer = this instanceof ConstraintWidgetContainer ? (ConstraintWidgetContainer) this : null;
while (parent != null) {
ConstraintWidget parent2 = parent.getParent();
if (parent instanceof ConstraintWidgetContainer) {
constraintWidgetContainer = (ConstraintWidgetContainer) parent;
}
parent = parent2;
}
return constraintWidgetContainer;
}
public void layout() {
ArrayList<ConstraintWidget> arrayList = this.mChildren;
if (arrayList != null) {
int size = arrayList.size();
for (int i = 0; i < size; i++) {
ConstraintWidget constraintWidget = this.mChildren.get(i);
if (constraintWidget instanceof WidgetContainer) {
((WidgetContainer) constraintWidget).layout();
}
}
}
}
public void remove(ConstraintWidget constraintWidget) {
this.mChildren.remove(constraintWidget);
constraintWidget.reset();
}
public void removeAllChildren() {
this.mChildren.clear();
}
@Override // androidx.constraintlayout.solver.widgets.ConstraintWidget
public void reset() {
this.mChildren.clear();
super.reset();
}
@Override // androidx.constraintlayout.solver.widgets.ConstraintWidget
public void resetSolverVariables(Cache cache) {
super.resetSolverVariables(cache);
int size = this.mChildren.size();
for (int i = 0; i < size; i++) {
this.mChildren.get(i).resetSolverVariables(cache);
}
}
@Override // androidx.constraintlayout.solver.widgets.ConstraintWidget
public void setOffset(int i, int i2) {
super.setOffset(i, i2);
int size = this.mChildren.size();
for (int i3 = 0; i3 < size; i3++) {
this.mChildren.get(i3).setOffset(getRootX(), getRootY());
}
}
}

View file

@ -1,12 +0,0 @@
package androidx.constraintlayout.solver.widgets.analyzer;
public class BaselineDimensionDependency extends DimensionDependency {
public BaselineDimensionDependency(WidgetRun widgetRun) {
super(widgetRun);
}
public void update(DependencyNode dependencyNode) {
WidgetRun widgetRun = this.run;
((VerticalWidgetRun) widgetRun).baseline.margin = widgetRun.widget.getBaselineDistance();
this.resolved = true;
}
}

View file

@ -1,376 +0,0 @@
package androidx.constraintlayout.solver.widgets.analyzer;
import androidx.constraintlayout.solver.LinearSystem;
import androidx.constraintlayout.solver.Metrics;
import androidx.constraintlayout.solver.widgets.Barrier;
import androidx.constraintlayout.solver.widgets.ConstraintAnchor;
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
import androidx.constraintlayout.solver.widgets.ConstraintWidgetContainer;
import androidx.constraintlayout.solver.widgets.Guideline;
import androidx.constraintlayout.solver.widgets.Helper;
import androidx.constraintlayout.solver.widgets.Optimizer;
import androidx.constraintlayout.solver.widgets.VirtualLayout;
import java.util.ArrayList;
public class BasicMeasure {
public static final int AT_MOST = Integer.MIN_VALUE;
private static final boolean DEBUG = false;
public static final int EXACTLY = 1073741824;
public static final int FIXED = -3;
public static final int MATCH_PARENT = -1;
private static final int MODE_SHIFT = 30;
public static final int UNSPECIFIED = 0;
public static final int WRAP_CONTENT = -2;
private ConstraintWidgetContainer constraintWidgetContainer;
private Measure mMeasure = new Measure();
private final ArrayList<ConstraintWidget> mVariableDimensionsWidgets = new ArrayList<>();
public static class Measure {
public static int SELF_DIMENSIONS = 0;
public static int TRY_GIVEN_DIMENSIONS = 1;
public static int USE_GIVEN_DIMENSIONS = 2;
public ConstraintWidget.DimensionBehaviour horizontalBehavior;
public int horizontalDimension;
public int measureStrategy;
public int measuredBaseline;
public boolean measuredHasBaseline;
public int measuredHeight;
public boolean measuredNeedsSolverPass;
public int measuredWidth;
public ConstraintWidget.DimensionBehaviour verticalBehavior;
public int verticalDimension;
}
public interface Measurer {
void didMeasures();
void measure(ConstraintWidget constraintWidget, Measure measure);
}
public BasicMeasure(ConstraintWidgetContainer constraintWidgetContainer) {
this.constraintWidgetContainer = constraintWidgetContainer;
}
private boolean measure(Measurer measurer, ConstraintWidget constraintWidget, int i) {
this.mMeasure.horizontalBehavior = constraintWidget.getHorizontalDimensionBehaviour();
this.mMeasure.verticalBehavior = constraintWidget.getVerticalDimensionBehaviour();
this.mMeasure.horizontalDimension = constraintWidget.getWidth();
this.mMeasure.verticalDimension = constraintWidget.getHeight();
Measure measure = this.mMeasure;
measure.measuredNeedsSolverPass = false;
measure.measureStrategy = i;
ConstraintWidget.DimensionBehaviour dimensionBehaviour = measure.horizontalBehavior;
ConstraintWidget.DimensionBehaviour dimensionBehaviour2 = ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT;
boolean z2 = dimensionBehaviour == dimensionBehaviour2;
boolean z3 = measure.verticalBehavior == dimensionBehaviour2;
boolean z4 = z2 && constraintWidget.mDimensionRatio > 0.0f;
boolean z5 = z3 && constraintWidget.mDimensionRatio > 0.0f;
if (z4 && constraintWidget.mResolvedMatchConstraintDefault[0] == 4) {
measure.horizontalBehavior = ConstraintWidget.DimensionBehaviour.FIXED;
}
if (z5 && constraintWidget.mResolvedMatchConstraintDefault[1] == 4) {
measure.verticalBehavior = ConstraintWidget.DimensionBehaviour.FIXED;
}
measurer.measure(constraintWidget, measure);
constraintWidget.setWidth(this.mMeasure.measuredWidth);
constraintWidget.setHeight(this.mMeasure.measuredHeight);
constraintWidget.setHasBaseline(this.mMeasure.measuredHasBaseline);
constraintWidget.setBaselineDistance(this.mMeasure.measuredBaseline);
Measure measure2 = this.mMeasure;
measure2.measureStrategy = Measure.SELF_DIMENSIONS;
return measure2.measuredNeedsSolverPass;
}
/* JADX WARNING: Code restructure failed: missing block: B:46:0x008e, code lost:
if (r8 != r9) goto L_0x0098;
*/
/* JADX WARNING: Code restructure failed: missing block: B:48:0x0095, code lost:
if (r5.mDimensionRatio <= 0.0f) goto L_0x0098;
*/
private void measureChildren(ConstraintWidgetContainer constraintWidgetContainer) {
HorizontalWidgetRun horizontalWidgetRun;
VerticalWidgetRun verticalWidgetRun;
int size = constraintWidgetContainer.mChildren.size();
boolean optimizeFor = constraintWidgetContainer.optimizeFor(64);
Measurer measurer = constraintWidgetContainer.getMeasurer();
for (int i = 0; i < size; i++) {
ConstraintWidget constraintWidget = constraintWidgetContainer.mChildren.get(i);
if (!(constraintWidget instanceof Guideline) && !(constraintWidget instanceof Barrier) && !constraintWidget.isInVirtualLayout() && (!optimizeFor || (horizontalWidgetRun = constraintWidget.horizontalRun) == null || (verticalWidgetRun = constraintWidget.verticalRun) == null || !horizontalWidgetRun.dimension.resolved || !verticalWidgetRun.dimension.resolved)) {
ConstraintWidget.DimensionBehaviour dimensionBehaviour = constraintWidget.getDimensionBehaviour(0);
boolean z2 = true;
ConstraintWidget.DimensionBehaviour dimensionBehaviour2 = constraintWidget.getDimensionBehaviour(1);
ConstraintWidget.DimensionBehaviour dimensionBehaviour3 = ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT;
boolean z3 = dimensionBehaviour == dimensionBehaviour3 && constraintWidget.mMatchConstraintDefaultWidth != 1 && dimensionBehaviour2 == dimensionBehaviour3 && constraintWidget.mMatchConstraintDefaultHeight != 1;
if (!z3 && constraintWidgetContainer.optimizeFor(1) && !(constraintWidget instanceof VirtualLayout)) {
if (dimensionBehaviour == dimensionBehaviour3 && constraintWidget.mMatchConstraintDefaultWidth == 0 && dimensionBehaviour2 != dimensionBehaviour3 && !constraintWidget.isInHorizontalChain()) {
z3 = true;
}
if (dimensionBehaviour2 == dimensionBehaviour3 && constraintWidget.mMatchConstraintDefaultHeight == 0 && dimensionBehaviour != dimensionBehaviour3 && !constraintWidget.isInHorizontalChain()) {
z3 = true;
}
if (dimensionBehaviour != dimensionBehaviour3) {
}
}
z2 = z3;
if (!z2) {
measure(measurer, constraintWidget, Measure.SELF_DIMENSIONS);
Metrics metrics = constraintWidgetContainer.mMetrics;
if (metrics != null) {
metrics.measuredWidgets++;
}
}
}
}
measurer.didMeasures();
}
private void solveLinearSystem(ConstraintWidgetContainer constraintWidgetContainer, String str, int i, int i2) {
int minWidth = constraintWidgetContainer.getMinWidth();
int minHeight = constraintWidgetContainer.getMinHeight();
constraintWidgetContainer.setMinWidth(0);
constraintWidgetContainer.setMinHeight(0);
constraintWidgetContainer.setWidth(i);
constraintWidgetContainer.setHeight(i2);
constraintWidgetContainer.setMinWidth(minWidth);
constraintWidgetContainer.setMinHeight(minHeight);
this.constraintWidgetContainer.layout();
}
public long solverMeasure(ConstraintWidgetContainer constraintWidgetContainer, int i, int i2, int i3, int i4, int i5, int i6, int i7, int i8, int i9) {
int i10;
boolean z2;
int i11;
boolean z3;
boolean z4;
int i12;
boolean z5;
Measurer measurer;
int i13;
int i14;
int i15;
boolean z6;
Metrics metrics;
Measurer measurer2 = constraintWidgetContainer.getMeasurer();
int size = constraintWidgetContainer.mChildren.size();
int width = constraintWidgetContainer.getWidth();
int height = constraintWidgetContainer.getHeight();
boolean enabled = Optimizer.enabled(i, 128);
boolean z7 = enabled || Optimizer.enabled(i, 64);
if (z7) {
int i16 = 0;
while (true) {
if (i16 >= size) {
break;
}
ConstraintWidget constraintWidget = constraintWidgetContainer.mChildren.get(i16);
ConstraintWidget.DimensionBehaviour horizontalDimensionBehaviour = constraintWidget.getHorizontalDimensionBehaviour();
ConstraintWidget.DimensionBehaviour dimensionBehaviour = ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT;
boolean z8 = (horizontalDimensionBehaviour == dimensionBehaviour) && (constraintWidget.getVerticalDimensionBehaviour() == dimensionBehaviour) && constraintWidget.getDimensionRatio() > 0.0f;
if ((!constraintWidget.isInHorizontalChain() || !z8) && ((!constraintWidget.isInVerticalChain() || !z8) && !(constraintWidget instanceof VirtualLayout) && !constraintWidget.isInHorizontalChain() && !constraintWidget.isInVerticalChain())) {
i16++;
}
}
z7 = false;
}
if (z7 && (metrics = LinearSystem.sMetrics) != null) {
metrics.measures++;
}
boolean z9 = z7 & ((i4 == 1073741824 && i6 == 1073741824) || enabled);
if (z9) {
int min = Math.min(constraintWidgetContainer.getMaxWidth(), i5);
int min2 = Math.min(constraintWidgetContainer.getMaxHeight(), i7);
if (i4 == 1073741824 && constraintWidgetContainer.getWidth() != min) {
constraintWidgetContainer.setWidth(min);
constraintWidgetContainer.invalidateGraph();
}
if (i6 == 1073741824 && constraintWidgetContainer.getHeight() != min2) {
constraintWidgetContainer.setHeight(min2);
constraintWidgetContainer.invalidateGraph();
}
if (i4 == 1073741824 && i6 == 1073741824) {
z2 = constraintWidgetContainer.directMeasure(enabled);
i10 = 2;
} else {
boolean directMeasureSetup = constraintWidgetContainer.directMeasureSetup(enabled);
if (i4 == 1073741824) {
directMeasureSetup &= constraintWidgetContainer.directMeasureWithOrientation(enabled, 0);
i10 = 1;
} else {
i10 = 0;
}
if (i6 == 1073741824) {
z2 = constraintWidgetContainer.directMeasureWithOrientation(enabled, 1) & directMeasureSetup;
i10++;
} else {
z2 = directMeasureSetup;
}
}
if (z2) {
constraintWidgetContainer.updateFromRuns(i4 == 1073741824, i6 == 1073741824);
}
} else {
z2 = false;
i10 = 0;
}
if (z2 && i10 == 2) {
return 0;
}
int optimizationLevel = constraintWidgetContainer.getOptimizationLevel();
if (size > 0) {
measureChildren(constraintWidgetContainer);
}
updateHierarchy(constraintWidgetContainer);
int size2 = this.mVariableDimensionsWidgets.size();
if (size > 0) {
solveLinearSystem(constraintWidgetContainer, "First pass", width, height);
}
if (size2 > 0) {
ConstraintWidget.DimensionBehaviour horizontalDimensionBehaviour2 = constraintWidgetContainer.getHorizontalDimensionBehaviour();
ConstraintWidget.DimensionBehaviour dimensionBehaviour2 = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT;
boolean z10 = horizontalDimensionBehaviour2 == dimensionBehaviour2;
boolean z11 = constraintWidgetContainer.getVerticalDimensionBehaviour() == dimensionBehaviour2;
int max = Math.max(constraintWidgetContainer.getWidth(), this.constraintWidgetContainer.getMinWidth());
int max2 = Math.max(constraintWidgetContainer.getHeight(), this.constraintWidgetContainer.getMinHeight());
int i17 = 0;
boolean z12 = false;
while (i17 < size2) {
ConstraintWidget constraintWidget2 = this.mVariableDimensionsWidgets.get(i17);
if (!(constraintWidget2 instanceof VirtualLayout)) {
i13 = optimizationLevel;
i15 = width;
i14 = height;
} else {
int width2 = constraintWidget2.getWidth();
i13 = optimizationLevel;
int height2 = constraintWidget2.getHeight();
i15 = width;
boolean measure = measure(measurer2, constraintWidget2, Measure.TRY_GIVEN_DIMENSIONS) | z12;
Metrics metrics2 = constraintWidgetContainer.mMetrics;
i14 = height;
if (metrics2 != null) {
metrics2.measuredMatchWidgets++;
}
int width3 = constraintWidget2.getWidth();
int height3 = constraintWidget2.getHeight();
if (width3 != width2) {
constraintWidget2.setWidth(width3);
if (z10 && constraintWidget2.getRight() > max) {
max = Math.max(max, constraintWidget2.getAnchor(ConstraintAnchor.Type.RIGHT).getMargin() + constraintWidget2.getRight());
}
z6 = true;
} else {
z6 = measure;
}
if (height3 != height2) {
constraintWidget2.setHeight(height3);
if (z11 && constraintWidget2.getBottom() > max2) {
max2 = Math.max(max2, constraintWidget2.getAnchor(ConstraintAnchor.Type.BOTTOM).getMargin() + constraintWidget2.getBottom());
}
z6 = true;
}
z12 = z6 | ((VirtualLayout) constraintWidget2).needSolverPass();
}
i17++;
optimizationLevel = i13;
width = i15;
height = i14;
}
int i18 = 0;
int i19 = 2;
while (i18 < i19) {
int i20 = 0;
while (i20 < size2) {
ConstraintWidget constraintWidget3 = this.mVariableDimensionsWidgets.get(i20);
if ((!(constraintWidget3 instanceof Helper) || (constraintWidget3 instanceof VirtualLayout)) && !(constraintWidget3 instanceof Guideline) && constraintWidget3.getVisibility() != 8 && ((!z9 || !constraintWidget3.horizontalRun.dimension.resolved || !constraintWidget3.verticalRun.dimension.resolved) && !(constraintWidget3 instanceof VirtualLayout))) {
int width4 = constraintWidget3.getWidth();
int height4 = constraintWidget3.getHeight();
int baselineDistance = constraintWidget3.getBaselineDistance();
int i21 = Measure.TRY_GIVEN_DIMENSIONS;
z5 = z9;
if (i18 == 1) {
i21 = Measure.USE_GIVEN_DIMENSIONS;
}
boolean measure2 = measure(measurer2, constraintWidget3, i21) | z12;
Metrics metrics3 = constraintWidgetContainer.mMetrics;
i12 = size2;
measurer = measurer2;
if (metrics3 != null) {
metrics3.measuredMatchWidgets++;
}
int width5 = constraintWidget3.getWidth();
int height5 = constraintWidget3.getHeight();
if (width5 != width4) {
constraintWidget3.setWidth(width5);
if (z10 && constraintWidget3.getRight() > max) {
max = Math.max(max, constraintWidget3.getAnchor(ConstraintAnchor.Type.RIGHT).getMargin() + constraintWidget3.getRight());
}
measure2 = true;
}
if (height5 != height4) {
constraintWidget3.setHeight(height5);
if (z11 && constraintWidget3.getBottom() > max2) {
max2 = Math.max(max2, constraintWidget3.getAnchor(ConstraintAnchor.Type.BOTTOM).getMargin() + constraintWidget3.getBottom());
}
measure2 = true;
}
z12 = (!constraintWidget3.hasBaseline() || baselineDistance == constraintWidget3.getBaselineDistance()) ? measure2 : true;
} else {
z5 = z9;
i12 = size2;
measurer = measurer2;
}
i20++;
size2 = i12;
measurer2 = measurer;
z9 = z5;
}
if (!z12) {
break;
}
solveLinearSystem(constraintWidgetContainer, "intermediate pass", width, height);
i18++;
measurer2 = measurer2;
z9 = z9;
i19 = 2;
z12 = false;
size2 = size2;
}
if (z12) {
solveLinearSystem(constraintWidgetContainer, "2nd pass", width, height);
if (constraintWidgetContainer.getWidth() < max) {
constraintWidgetContainer.setWidth(max);
z3 = true;
} else {
z3 = false;
}
if (constraintWidgetContainer.getHeight() < max2) {
constraintWidgetContainer.setHeight(max2);
z4 = true;
} else {
z4 = z3;
}
if (z4) {
solveLinearSystem(constraintWidgetContainer, "3rd pass", width, height);
}
}
i11 = optimizationLevel;
} else {
i11 = optimizationLevel;
}
constraintWidgetContainer.setOptimizationLevel(i11);
return 0;
}
public void updateHierarchy(ConstraintWidgetContainer constraintWidgetContainer) {
this.mVariableDimensionsWidgets.clear();
int size = constraintWidgetContainer.mChildren.size();
for (int i = 0; i < size; i++) {
ConstraintWidget constraintWidget = constraintWidgetContainer.mChildren.get(i);
ConstraintWidget.DimensionBehaviour horizontalDimensionBehaviour = constraintWidget.getHorizontalDimensionBehaviour();
ConstraintWidget.DimensionBehaviour dimensionBehaviour = ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT;
if (horizontalDimensionBehaviour == dimensionBehaviour || constraintWidget.getVerticalDimensionBehaviour() == dimensionBehaviour) {
this.mVariableDimensionsWidgets.add(constraintWidget);
}
}
constraintWidgetContainer.invalidateGraph();
}
}

View file

@ -1,547 +0,0 @@
package androidx.constraintlayout.solver.widgets.analyzer;
import androidx.constraintlayout.solver.widgets.ConstraintAnchor;
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
import androidx.constraintlayout.solver.widgets.ConstraintWidgetContainer;
import c.d.b.a.a;
import java.util.ArrayList;
import java.util.Iterator;
public class ChainRun extends WidgetRun {
private int chainStyle;
public ArrayList<WidgetRun> widgets = new ArrayList<>();
public ChainRun(ConstraintWidget constraintWidget, int i) {
super(constraintWidget);
this.orientation = i;
build();
}
private void build() {
ConstraintWidget constraintWidget = this.widget;
ConstraintWidget previousChainMember = constraintWidget.getPreviousChainMember(this.orientation);
while (true) {
constraintWidget = previousChainMember;
if (constraintWidget == null) {
break;
}
previousChainMember = constraintWidget.getPreviousChainMember(this.orientation);
}
this.widget = constraintWidget;
this.widgets.add(constraintWidget.getRun(this.orientation));
ConstraintWidget nextChainMember = constraintWidget.getNextChainMember(this.orientation);
while (nextChainMember != null) {
this.widgets.add(nextChainMember.getRun(this.orientation));
nextChainMember = nextChainMember.getNextChainMember(this.orientation);
}
Iterator<WidgetRun> it = this.widgets.iterator();
while (it.hasNext()) {
WidgetRun next = it.next();
int i = this.orientation;
if (i == 0) {
next.widget.horizontalChainRun = this;
} else if (i == 1) {
next.widget.verticalChainRun = this;
}
}
if ((this.orientation == 0 && ((ConstraintWidgetContainer) this.widget.getParent()).isRtl()) && this.widgets.size() > 1) {
ArrayList<WidgetRun> arrayList = this.widgets;
this.widget = arrayList.get(arrayList.size() - 1).widget;
}
this.chainStyle = this.orientation == 0 ? this.widget.getHorizontalChainStyle() : this.widget.getVerticalChainStyle();
}
private ConstraintWidget getFirstVisibleWidget() {
for (int i = 0; i < this.widgets.size(); i++) {
WidgetRun widgetRun = this.widgets.get(i);
if (widgetRun.widget.getVisibility() != 8) {
return widgetRun.widget;
}
}
return null;
}
private ConstraintWidget getLastVisibleWidget() {
for (int size = this.widgets.size() - 1; size >= 0; size--) {
WidgetRun widgetRun = this.widgets.get(size);
if (widgetRun.widget.getVisibility() != 8) {
return widgetRun.widget;
}
}
return null;
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public void apply() {
Iterator<WidgetRun> it = this.widgets.iterator();
while (it.hasNext()) {
it.next().apply();
}
int size = this.widgets.size();
if (size >= 1) {
ConstraintWidget constraintWidget = this.widgets.get(0).widget;
ConstraintWidget constraintWidget2 = this.widgets.get(size - 1).widget;
if (this.orientation == 0) {
ConstraintAnchor constraintAnchor = constraintWidget.mLeft;
ConstraintAnchor constraintAnchor2 = constraintWidget2.mRight;
DependencyNode target = getTarget(constraintAnchor, 0);
int margin = constraintAnchor.getMargin();
ConstraintWidget firstVisibleWidget = getFirstVisibleWidget();
if (firstVisibleWidget != null) {
margin = firstVisibleWidget.mLeft.getMargin();
}
if (target != null) {
addTarget(this.start, target, margin);
}
DependencyNode target2 = getTarget(constraintAnchor2, 0);
int margin2 = constraintAnchor2.getMargin();
ConstraintWidget lastVisibleWidget = getLastVisibleWidget();
if (lastVisibleWidget != null) {
margin2 = lastVisibleWidget.mRight.getMargin();
}
if (target2 != null) {
addTarget(this.end, target2, -margin2);
}
} else {
ConstraintAnchor constraintAnchor3 = constraintWidget.mTop;
ConstraintAnchor constraintAnchor4 = constraintWidget2.mBottom;
DependencyNode target3 = getTarget(constraintAnchor3, 1);
int margin3 = constraintAnchor3.getMargin();
ConstraintWidget firstVisibleWidget2 = getFirstVisibleWidget();
if (firstVisibleWidget2 != null) {
margin3 = firstVisibleWidget2.mTop.getMargin();
}
if (target3 != null) {
addTarget(this.start, target3, margin3);
}
DependencyNode target4 = getTarget(constraintAnchor4, 1);
int margin4 = constraintAnchor4.getMargin();
ConstraintWidget lastVisibleWidget2 = getLastVisibleWidget();
if (lastVisibleWidget2 != null) {
margin4 = lastVisibleWidget2.mBottom.getMargin();
}
if (target4 != null) {
addTarget(this.end, target4, -margin4);
}
}
this.start.updateDelegate = this;
this.end.updateDelegate = this;
}
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public void applyToWidget() {
for (int i = 0; i < this.widgets.size(); i++) {
this.widgets.get(i).applyToWidget();
}
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public void clear() {
this.runGroup = null;
Iterator<WidgetRun> it = this.widgets.iterator();
while (it.hasNext()) {
it.next().clear();
}
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public long getWrapDimension() {
int size = this.widgets.size();
long j = 0;
for (int i = 0; i < size; i++) {
WidgetRun widgetRun = this.widgets.get(i);
j = ((long) widgetRun.end.margin) + widgetRun.getWrapDimension() + j + ((long) widgetRun.start.margin);
}
return j;
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public void reset() {
this.start.resolved = false;
this.end.resolved = false;
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public boolean supportsWrapComputation() {
int size = this.widgets.size();
for (int i = 0; i < size; i++) {
if (!this.widgets.get(i).supportsWrapComputation()) {
return false;
}
}
return true;
}
public String toString() {
StringBuilder K = a.K("ChainRun ");
K.append(this.orientation == 0 ? "horizontal : " : "vertical : ");
String sb = K.toString();
Iterator<WidgetRun> it = this.widgets.iterator();
while (it.hasNext()) {
String s2 = a.s(sb, "<");
sb = a.s(s2 + it.next(), "> ");
}
return sb;
}
/* JADX WARNING: Code restructure failed: missing block: B:104:0x01a6, code lost:
if (r1 != r7) goto L_0x01ce;
*/
/* JADX WARNING: Code restructure failed: missing block: B:112:0x01cc, code lost:
if (r1 != r7) goto L_0x01ce;
*/
/* JADX WARNING: Removed duplicated region for block: B:60:0x00d9 */
/* JADX WARNING: Removed duplicated region for block: B:63:0x00eb */
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun, androidx.constraintlayout.solver.widgets.analyzer.Dependency
public void update(Dependency dependency) {
int i;
int i2;
int i3;
int i4;
int i5;
float f;
int i6;
boolean z2;
int i7;
int i8;
int i9;
boolean z3;
float f2;
int i10;
int i11;
int i12;
int i13;
int i14;
int i15;
if (this.start.resolved && this.end.resolved) {
ConstraintWidget parent = this.widget.getParent();
boolean isRtl = (parent == null || !(parent instanceof ConstraintWidgetContainer)) ? false : ((ConstraintWidgetContainer) parent).isRtl();
int i16 = this.end.value - this.start.value;
int size = this.widgets.size();
int i17 = 0;
while (true) {
i = -1;
i2 = 8;
if (i17 >= size) {
i17 = -1;
break;
}
if (this.widgets.get(i17).widget.getVisibility() != 8) {
break;
}
i17++;
}
int i18 = size - 1;
int i19 = i18;
while (true) {
if (i19 < 0) {
break;
}
if (this.widgets.get(i19).widget.getVisibility() != 8) {
i = i19;
break;
}
i19--;
}
int i20 = 0;
while (true) {
if (i20 >= 2) {
i3 = 0;
i4 = 0;
i5 = 0;
f = 0.0f;
break;
}
int i21 = 0;
i4 = 0;
i5 = 0;
i13 = 0;
f = 0.0f;
while (i21 < size) {
WidgetRun widgetRun = this.widgets.get(i21);
if (widgetRun.widget.getVisibility() != i2) {
i13++;
if (i21 > 0 && i21 >= i17) {
i4 += widgetRun.start.margin;
}
DimensionDependency dimensionDependency = widgetRun.dimension;
int i22 = dimensionDependency.value;
boolean z4 = widgetRun.dimensionBehavior != ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT;
if (z4) {
int i23 = this.orientation;
if (i23 == 0 && !widgetRun.widget.horizontalRun.dimension.resolved) {
return;
}
if (i23 != 1 || widgetRun.widget.verticalRun.dimension.resolved) {
i15 = i22;
} else {
return;
}
} else {
i15 = i22;
if (widgetRun.matchConstraintsType == 1 && i20 == 0) {
i14 = dimensionDependency.wrapValue;
i5++;
} else if (dimensionDependency.resolved) {
i14 = i15;
}
z4 = true;
if (z4) {
i5++;
float f3 = widgetRun.widget.mWeight[this.orientation];
if (f3 >= 0.0f) {
f += f3;
}
} else {
i4 += i14;
}
if (i21 < i18 && i21 < i) {
i4 += -widgetRun.end.margin;
}
}
i14 = i15;
if (z4) {
}
i4 += -widgetRun.end.margin;
}
i21++;
i2 = 8;
}
if (i4 < i16 || i5 == 0) {
break;
}
i20++;
i2 = 8;
}
i3 = i13;
int i24 = this.start.value;
if (isRtl) {
i24 = this.end.value;
}
if (i4 > i16) {
i24 = isRtl ? i24 + ((int) ((((float) (i4 - i16)) / 2.0f) + 0.5f)) : i24 - ((int) ((((float) (i4 - i16)) / 2.0f) + 0.5f));
}
if (i5 > 0) {
float f4 = (float) (i16 - i4);
int i25 = (int) ((f4 / ((float) i5)) + 0.5f);
int i26 = 0;
int i27 = 0;
while (i26 < size) {
WidgetRun widgetRun2 = this.widgets.get(i26);
if (widgetRun2.widget.getVisibility() != 8 && widgetRun2.dimensionBehavior == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT) {
DimensionDependency dimensionDependency2 = widgetRun2.dimension;
if (!dimensionDependency2.resolved) {
if (f > 0.0f) {
i10 = i24;
i11 = (int) (((widgetRun2.widget.mWeight[this.orientation] * f4) / f) + 0.5f);
} else {
i10 = i24;
i11 = i25;
}
if (this.orientation == 0) {
ConstraintWidget constraintWidget = widgetRun2.widget;
f2 = f4;
int i28 = constraintWidget.mMatchConstraintMaxWidth;
z3 = isRtl;
i9 = i3;
i12 = Math.max(constraintWidget.mMatchConstraintMinWidth, widgetRun2.matchConstraintsType == 1 ? Math.min(i11, dimensionDependency2.wrapValue) : i11);
if (i28 > 0) {
i12 = Math.min(i28, i12);
}
} else {
z3 = isRtl;
i9 = i3;
f2 = f4;
ConstraintWidget constraintWidget2 = widgetRun2.widget;
int i29 = constraintWidget2.mMatchConstraintMaxHeight;
i12 = Math.max(constraintWidget2.mMatchConstraintMinHeight, widgetRun2.matchConstraintsType == 1 ? Math.min(i11, dimensionDependency2.wrapValue) : i11);
if (i29 > 0) {
i12 = Math.min(i29, i12);
}
}
i27++;
i11 = i12;
widgetRun2.dimension.resolve(i11);
i26++;
i25 = i25;
i4 = i4;
i24 = i10;
f4 = f2;
isRtl = z3;
i3 = i9;
}
}
z3 = isRtl;
i9 = i3;
i10 = i24;
f2 = f4;
i26++;
i25 = i25;
i4 = i4;
i24 = i10;
f4 = f2;
isRtl = z3;
i3 = i9;
}
z2 = isRtl;
i6 = i3;
i7 = i24;
if (i27 > 0) {
i5 -= i27;
int i30 = 0;
for (int i31 = 0; i31 < size; i31++) {
WidgetRun widgetRun3 = this.widgets.get(i31);
if (widgetRun3.widget.getVisibility() != 8) {
if (i31 > 0 && i31 >= i17) {
i30 += widgetRun3.start.margin;
}
i30 += widgetRun3.dimension.value;
if (i31 < i18 && i31 < i) {
i30 += -widgetRun3.end.margin;
}
}
}
i4 = i30;
} else {
i4 = i4;
}
i8 = 2;
if (this.chainStyle == 2 && i27 == 0) {
this.chainStyle = 0;
}
} else {
z2 = isRtl;
i6 = i3;
i7 = i24;
i8 = 2;
}
if (i4 > i16) {
this.chainStyle = i8;
}
if (i6 > 0 && i5 == 0 && i17 == i) {
this.chainStyle = i8;
}
int i32 = this.chainStyle;
if (i32 == 1) {
int i33 = i6 > 1 ? (i16 - i4) / (i6 - 1) : i6 == 1 ? (i16 - i4) / 2 : 0;
if (i5 > 0) {
i33 = 0;
}
int i34 = i7;
for (int i35 = 0; i35 < size; i35++) {
WidgetRun widgetRun4 = this.widgets.get(z2 ? size - (i35 + 1) : i35);
if (widgetRun4.widget.getVisibility() == 8) {
widgetRun4.start.resolve(i34);
widgetRun4.end.resolve(i34);
} else {
if (i35 > 0) {
i34 = z2 ? i34 - i33 : i34 + i33;
}
if (i35 > 0 && i35 >= i17) {
i34 = z2 ? i34 - widgetRun4.start.margin : i34 + widgetRun4.start.margin;
}
if (z2) {
widgetRun4.end.resolve(i34);
} else {
widgetRun4.start.resolve(i34);
}
DimensionDependency dimensionDependency3 = widgetRun4.dimension;
int i36 = dimensionDependency3.value;
if (widgetRun4.dimensionBehavior == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT && widgetRun4.matchConstraintsType == 1) {
i36 = dimensionDependency3.wrapValue;
}
i34 = z2 ? i34 - i36 : i34 + i36;
if (z2) {
widgetRun4.start.resolve(i34);
} else {
widgetRun4.end.resolve(i34);
}
widgetRun4.resolved = true;
if (i35 < i18 && i35 < i) {
i34 = z2 ? i34 - (-widgetRun4.end.margin) : i34 + (-widgetRun4.end.margin);
}
}
}
} else if (i32 == 0) {
int i37 = (i16 - i4) / (i6 + 1);
if (i5 > 0) {
i37 = 0;
}
int i38 = i7;
for (int i39 = 0; i39 < size; i39++) {
WidgetRun widgetRun5 = this.widgets.get(z2 ? size - (i39 + 1) : i39);
if (widgetRun5.widget.getVisibility() == 8) {
widgetRun5.start.resolve(i38);
widgetRun5.end.resolve(i38);
} else {
int i40 = z2 ? i38 - i37 : i38 + i37;
if (i39 > 0 && i39 >= i17) {
i40 = z2 ? i40 - widgetRun5.start.margin : i40 + widgetRun5.start.margin;
}
if (z2) {
widgetRun5.end.resolve(i40);
} else {
widgetRun5.start.resolve(i40);
}
DimensionDependency dimensionDependency4 = widgetRun5.dimension;
int i41 = dimensionDependency4.value;
if (widgetRun5.dimensionBehavior == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT && widgetRun5.matchConstraintsType == 1) {
i41 = Math.min(i41, dimensionDependency4.wrapValue);
}
i38 = z2 ? i40 - i41 : i40 + i41;
if (z2) {
widgetRun5.start.resolve(i38);
} else {
widgetRun5.end.resolve(i38);
}
if (i39 < i18 && i39 < i) {
i38 = z2 ? i38 - (-widgetRun5.end.margin) : i38 + (-widgetRun5.end.margin);
}
}
}
} else if (i32 == 2) {
float horizontalBiasPercent = this.orientation == 0 ? this.widget.getHorizontalBiasPercent() : this.widget.getVerticalBiasPercent();
if (z2) {
horizontalBiasPercent = 1.0f - horizontalBiasPercent;
}
int i42 = (int) ((((float) (i16 - i4)) * horizontalBiasPercent) + 0.5f);
if (i42 < 0 || i5 > 0) {
i42 = 0;
}
int i43 = z2 ? i7 - i42 : i7 + i42;
for (int i44 = 0; i44 < size; i44++) {
WidgetRun widgetRun6 = this.widgets.get(z2 ? size - (i44 + 1) : i44);
if (widgetRun6.widget.getVisibility() == 8) {
widgetRun6.start.resolve(i43);
widgetRun6.end.resolve(i43);
} else {
if (i44 > 0 && i44 >= i17) {
i43 = z2 ? i43 - widgetRun6.start.margin : i43 + widgetRun6.start.margin;
}
if (z2) {
widgetRun6.end.resolve(i43);
} else {
widgetRun6.start.resolve(i43);
}
DimensionDependency dimensionDependency5 = widgetRun6.dimension;
int i45 = dimensionDependency5.value;
if (widgetRun6.dimensionBehavior == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT) {
if (widgetRun6.matchConstraintsType == 1) {
i45 = dimensionDependency5.wrapValue;
}
}
i43 = z2 ? i43 - i45 : i43 + i45;
if (z2) {
widgetRun6.start.resolve(i43);
} else {
widgetRun6.end.resolve(i43);
}
if (i44 < i18 && i44 < i) {
i43 = z2 ? i43 - (-widgetRun6.end.margin) : i43 + (-widgetRun6.end.margin);
}
}
}
}
}
}
}

View file

@ -1,4 +0,0 @@
package androidx.constraintlayout.solver.widgets.analyzer;
public interface Dependency {
void update(Dependency dependency);
}

View file

@ -1,914 +0,0 @@
package androidx.constraintlayout.solver.widgets.analyzer;
import androidx.constraintlayout.solver.widgets.Barrier;
import androidx.constraintlayout.solver.widgets.ConstraintAnchor;
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
import androidx.constraintlayout.solver.widgets.ConstraintWidgetContainer;
import androidx.constraintlayout.solver.widgets.Guideline;
import androidx.constraintlayout.solver.widgets.HelperWidget;
import androidx.constraintlayout.solver.widgets.analyzer.BasicMeasure;
import c.d.b.a.a;
import java.io.PrintStream;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
public class DependencyGraph {
private static final boolean USE_GROUPS = true;
private ConstraintWidgetContainer container;
private ConstraintWidgetContainer mContainer;
public ArrayList<RunGroup> mGroups = new ArrayList<>();
private BasicMeasure.Measure mMeasure = new BasicMeasure.Measure();
private BasicMeasure.Measurer mMeasurer = null;
private boolean mNeedBuildGraph = true;
private boolean mNeedRedoMeasures = true;
private ArrayList<WidgetRun> mRuns = new ArrayList<>();
private ArrayList<RunGroup> runGroups = new ArrayList<>();
public DependencyGraph(ConstraintWidgetContainer constraintWidgetContainer) {
this.container = constraintWidgetContainer;
this.mContainer = constraintWidgetContainer;
}
private void applyGroup(DependencyNode dependencyNode, int i, int i2, DependencyNode dependencyNode2, ArrayList<RunGroup> arrayList, RunGroup runGroup) {
WidgetRun widgetRun = dependencyNode.run;
if (widgetRun.runGroup == null) {
ConstraintWidgetContainer constraintWidgetContainer = this.container;
if (!(widgetRun == constraintWidgetContainer.horizontalRun || widgetRun == constraintWidgetContainer.verticalRun)) {
if (runGroup == null) {
runGroup = new RunGroup(widgetRun, i2);
arrayList.add(runGroup);
}
widgetRun.runGroup = runGroup;
runGroup.add(widgetRun);
for (Dependency dependency : widgetRun.start.dependencies) {
if (dependency instanceof DependencyNode) {
applyGroup((DependencyNode) dependency, i, 0, dependencyNode2, arrayList, runGroup);
}
}
for (Dependency dependency2 : widgetRun.end.dependencies) {
if (dependency2 instanceof DependencyNode) {
applyGroup((DependencyNode) dependency2, i, 1, dependencyNode2, arrayList, runGroup);
}
}
if (i == 1 && (widgetRun instanceof VerticalWidgetRun)) {
for (Dependency dependency3 : ((VerticalWidgetRun) widgetRun).baseline.dependencies) {
if (dependency3 instanceof DependencyNode) {
applyGroup((DependencyNode) dependency3, i, 2, dependencyNode2, arrayList, runGroup);
}
}
}
for (DependencyNode dependencyNode3 : widgetRun.start.targets) {
if (dependencyNode3 == dependencyNode2) {
runGroup.dual = true;
}
applyGroup(dependencyNode3, i, 0, dependencyNode2, arrayList, runGroup);
}
for (DependencyNode dependencyNode4 : widgetRun.end.targets) {
if (dependencyNode4 == dependencyNode2) {
runGroup.dual = true;
}
applyGroup(dependencyNode4, i, 1, dependencyNode2, arrayList, runGroup);
}
if (i == 1 && (widgetRun instanceof VerticalWidgetRun)) {
for (DependencyNode dependencyNode5 : ((VerticalWidgetRun) widgetRun).baseline.targets) {
applyGroup(dependencyNode5, i, 2, dependencyNode2, arrayList, runGroup);
}
}
}
}
}
private boolean basicMeasureWidgets(ConstraintWidgetContainer constraintWidgetContainer) {
ConstraintWidget.DimensionBehaviour dimensionBehaviour;
ConstraintWidget.DimensionBehaviour dimensionBehaviour2;
int i;
ConstraintWidget.DimensionBehaviour dimensionBehaviour3;
int i2;
ConstraintWidget.DimensionBehaviour dimensionBehaviour4;
Iterator<ConstraintWidget> it = constraintWidgetContainer.mChildren.iterator();
while (it.hasNext()) {
ConstraintWidget next = it.next();
ConstraintWidget.DimensionBehaviour[] dimensionBehaviourArr = next.mListDimensionBehaviors;
ConstraintWidget.DimensionBehaviour dimensionBehaviour5 = dimensionBehaviourArr[0];
ConstraintWidget.DimensionBehaviour dimensionBehaviour6 = dimensionBehaviourArr[1];
if (next.getVisibility() == 8) {
next.measured = true;
} else {
if (next.mMatchConstraintPercentWidth < 1.0f && dimensionBehaviour5 == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT) {
next.mMatchConstraintDefaultWidth = 2;
}
if (next.mMatchConstraintPercentHeight < 1.0f && dimensionBehaviour6 == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT) {
next.mMatchConstraintDefaultHeight = 2;
}
if (next.getDimensionRatio() > 0.0f) {
ConstraintWidget.DimensionBehaviour dimensionBehaviour7 = ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT;
if (dimensionBehaviour5 == dimensionBehaviour7 && (dimensionBehaviour6 == ConstraintWidget.DimensionBehaviour.WRAP_CONTENT || dimensionBehaviour6 == ConstraintWidget.DimensionBehaviour.FIXED)) {
next.mMatchConstraintDefaultWidth = 3;
} else if (dimensionBehaviour6 == dimensionBehaviour7 && (dimensionBehaviour5 == ConstraintWidget.DimensionBehaviour.WRAP_CONTENT || dimensionBehaviour5 == ConstraintWidget.DimensionBehaviour.FIXED)) {
next.mMatchConstraintDefaultHeight = 3;
} else if (dimensionBehaviour5 == dimensionBehaviour7 && dimensionBehaviour6 == dimensionBehaviour7) {
if (next.mMatchConstraintDefaultWidth == 0) {
next.mMatchConstraintDefaultWidth = 3;
}
if (next.mMatchConstraintDefaultHeight == 0) {
next.mMatchConstraintDefaultHeight = 3;
}
}
}
ConstraintWidget.DimensionBehaviour dimensionBehaviour8 = ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT;
if (dimensionBehaviour5 == dimensionBehaviour8 && next.mMatchConstraintDefaultWidth == 1 && (next.mLeft.mTarget == null || next.mRight.mTarget == null)) {
dimensionBehaviour5 = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT;
}
if (dimensionBehaviour6 == dimensionBehaviour8 && next.mMatchConstraintDefaultHeight == 1 && (next.mTop.mTarget == null || next.mBottom.mTarget == null)) {
dimensionBehaviour6 = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT;
}
HorizontalWidgetRun horizontalWidgetRun = next.horizontalRun;
horizontalWidgetRun.dimensionBehavior = dimensionBehaviour5;
int i3 = next.mMatchConstraintDefaultWidth;
horizontalWidgetRun.matchConstraintsType = i3;
VerticalWidgetRun verticalWidgetRun = next.verticalRun;
verticalWidgetRun.dimensionBehavior = dimensionBehaviour6;
int i4 = next.mMatchConstraintDefaultHeight;
verticalWidgetRun.matchConstraintsType = i4;
ConstraintWidget.DimensionBehaviour dimensionBehaviour9 = ConstraintWidget.DimensionBehaviour.MATCH_PARENT;
if ((dimensionBehaviour5 == dimensionBehaviour9 || dimensionBehaviour5 == ConstraintWidget.DimensionBehaviour.FIXED || dimensionBehaviour5 == ConstraintWidget.DimensionBehaviour.WRAP_CONTENT) && (dimensionBehaviour6 == dimensionBehaviour9 || dimensionBehaviour6 == ConstraintWidget.DimensionBehaviour.FIXED || dimensionBehaviour6 == ConstraintWidget.DimensionBehaviour.WRAP_CONTENT)) {
int width = next.getWidth();
if (dimensionBehaviour5 == dimensionBehaviour9) {
i = (constraintWidgetContainer.getWidth() - next.mLeft.mMargin) - next.mRight.mMargin;
dimensionBehaviour3 = ConstraintWidget.DimensionBehaviour.FIXED;
} else {
i = width;
dimensionBehaviour3 = dimensionBehaviour5;
}
int height = next.getHeight();
if (dimensionBehaviour6 == dimensionBehaviour9) {
i2 = (constraintWidgetContainer.getHeight() - next.mTop.mMargin) - next.mBottom.mMargin;
dimensionBehaviour4 = ConstraintWidget.DimensionBehaviour.FIXED;
} else {
i2 = height;
dimensionBehaviour4 = dimensionBehaviour6;
}
measure(next, dimensionBehaviour3, i, dimensionBehaviour4, i2);
next.horizontalRun.dimension.resolve(next.getWidth());
next.verticalRun.dimension.resolve(next.getHeight());
next.measured = true;
} else {
if (dimensionBehaviour5 == dimensionBehaviour8 && (dimensionBehaviour6 == (dimensionBehaviour2 = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT) || dimensionBehaviour6 == ConstraintWidget.DimensionBehaviour.FIXED)) {
if (i3 == 3) {
if (dimensionBehaviour6 == dimensionBehaviour2) {
measure(next, dimensionBehaviour2, 0, dimensionBehaviour2, 0);
}
int height2 = next.getHeight();
ConstraintWidget.DimensionBehaviour dimensionBehaviour10 = ConstraintWidget.DimensionBehaviour.FIXED;
measure(next, dimensionBehaviour10, (int) ((((float) height2) * next.mDimensionRatio) + 0.5f), dimensionBehaviour10, height2);
next.horizontalRun.dimension.resolve(next.getWidth());
next.verticalRun.dimension.resolve(next.getHeight());
next.measured = true;
} else if (i3 == 1) {
measure(next, dimensionBehaviour2, 0, dimensionBehaviour6, 0);
next.horizontalRun.dimension.wrapValue = next.getWidth();
} else if (i3 == 2) {
ConstraintWidget.DimensionBehaviour[] dimensionBehaviourArr2 = constraintWidgetContainer.mListDimensionBehaviors;
ConstraintWidget.DimensionBehaviour dimensionBehaviour11 = dimensionBehaviourArr2[0];
ConstraintWidget.DimensionBehaviour dimensionBehaviour12 = ConstraintWidget.DimensionBehaviour.FIXED;
if (dimensionBehaviour11 == dimensionBehaviour12 || dimensionBehaviourArr2[0] == dimensionBehaviour9) {
measure(next, dimensionBehaviour12, (int) ((next.mMatchConstraintPercentWidth * ((float) constraintWidgetContainer.getWidth())) + 0.5f), dimensionBehaviour6, next.getHeight());
next.horizontalRun.dimension.resolve(next.getWidth());
next.verticalRun.dimension.resolve(next.getHeight());
next.measured = true;
}
} else {
ConstraintAnchor[] constraintAnchorArr = next.mListAnchors;
if (constraintAnchorArr[0].mTarget == null || constraintAnchorArr[1].mTarget == null) {
measure(next, dimensionBehaviour2, 0, dimensionBehaviour6, 0);
next.horizontalRun.dimension.resolve(next.getWidth());
next.verticalRun.dimension.resolve(next.getHeight());
next.measured = true;
}
}
}
if (dimensionBehaviour6 == dimensionBehaviour8 && (dimensionBehaviour5 == (dimensionBehaviour = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT) || dimensionBehaviour5 == ConstraintWidget.DimensionBehaviour.FIXED)) {
if (i4 == 3) {
if (dimensionBehaviour5 == dimensionBehaviour) {
measure(next, dimensionBehaviour, 0, dimensionBehaviour, 0);
}
int width2 = next.getWidth();
float f = next.mDimensionRatio;
if (next.getDimensionRatioSide() == -1) {
f = 1.0f / f;
}
ConstraintWidget.DimensionBehaviour dimensionBehaviour13 = ConstraintWidget.DimensionBehaviour.FIXED;
measure(next, dimensionBehaviour13, width2, dimensionBehaviour13, (int) ((((float) width2) * f) + 0.5f));
next.horizontalRun.dimension.resolve(next.getWidth());
next.verticalRun.dimension.resolve(next.getHeight());
next.measured = true;
} else if (i4 == 1) {
measure(next, dimensionBehaviour5, 0, dimensionBehaviour, 0);
next.verticalRun.dimension.wrapValue = next.getHeight();
} else if (i4 == 2) {
ConstraintWidget.DimensionBehaviour[] dimensionBehaviourArr3 = constraintWidgetContainer.mListDimensionBehaviors;
ConstraintWidget.DimensionBehaviour dimensionBehaviour14 = dimensionBehaviourArr3[1];
ConstraintWidget.DimensionBehaviour dimensionBehaviour15 = ConstraintWidget.DimensionBehaviour.FIXED;
if (dimensionBehaviour14 == dimensionBehaviour15 || dimensionBehaviourArr3[1] == dimensionBehaviour9) {
measure(next, dimensionBehaviour5, next.getWidth(), dimensionBehaviour15, (int) ((next.mMatchConstraintPercentHeight * ((float) constraintWidgetContainer.getHeight())) + 0.5f));
next.horizontalRun.dimension.resolve(next.getWidth());
next.verticalRun.dimension.resolve(next.getHeight());
next.measured = true;
}
} else {
ConstraintAnchor[] constraintAnchorArr2 = next.mListAnchors;
if (constraintAnchorArr2[2].mTarget == null || constraintAnchorArr2[3].mTarget == null) {
measure(next, dimensionBehaviour, 0, dimensionBehaviour6, 0);
next.horizontalRun.dimension.resolve(next.getWidth());
next.verticalRun.dimension.resolve(next.getHeight());
next.measured = true;
}
}
}
if (dimensionBehaviour5 == dimensionBehaviour8 && dimensionBehaviour6 == dimensionBehaviour8) {
if (i3 == 1 || i4 == 1) {
ConstraintWidget.DimensionBehaviour dimensionBehaviour16 = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT;
measure(next, dimensionBehaviour16, 0, dimensionBehaviour16, 0);
next.horizontalRun.dimension.wrapValue = next.getWidth();
next.verticalRun.dimension.wrapValue = next.getHeight();
} else if (i4 == 2 && i3 == 2) {
ConstraintWidget.DimensionBehaviour[] dimensionBehaviourArr4 = constraintWidgetContainer.mListDimensionBehaviors;
ConstraintWidget.DimensionBehaviour dimensionBehaviour17 = dimensionBehaviourArr4[0];
ConstraintWidget.DimensionBehaviour dimensionBehaviour18 = ConstraintWidget.DimensionBehaviour.FIXED;
if (dimensionBehaviour17 == dimensionBehaviour18 || dimensionBehaviourArr4[0] == dimensionBehaviour18) {
if (dimensionBehaviourArr4[1] == dimensionBehaviour18 || dimensionBehaviourArr4[1] == dimensionBehaviour18) {
measure(next, dimensionBehaviour18, (int) ((next.mMatchConstraintPercentWidth * ((float) constraintWidgetContainer.getWidth())) + 0.5f), dimensionBehaviour18, (int) ((next.mMatchConstraintPercentHeight * ((float) constraintWidgetContainer.getHeight())) + 0.5f));
next.horizontalRun.dimension.resolve(next.getWidth());
next.verticalRun.dimension.resolve(next.getHeight());
next.measured = true;
}
}
}
}
}
}
}
return false;
}
private int computeWrap(ConstraintWidgetContainer constraintWidgetContainer, int i) {
int size = this.mGroups.size();
long j = 0;
for (int i2 = 0; i2 < size; i2++) {
j = Math.max(j, this.mGroups.get(i2).computeWrapSize(constraintWidgetContainer, i));
}
return (int) j;
}
private void displayGraph() {
Iterator<WidgetRun> it = this.mRuns.iterator();
String str = "digraph {\n";
while (it.hasNext()) {
str = generateDisplayGraph(it.next(), str);
}
String s2 = a.s(str, "\n}\n");
PrintStream printStream = System.out;
printStream.println("content:<<\n" + s2 + "\n>>");
}
private void findGroup(WidgetRun widgetRun, int i, ArrayList<RunGroup> arrayList) {
for (Dependency dependency : widgetRun.start.dependencies) {
if (dependency instanceof DependencyNode) {
applyGroup((DependencyNode) dependency, i, 0, widgetRun.end, arrayList, null);
} else if (dependency instanceof WidgetRun) {
applyGroup(((WidgetRun) dependency).start, i, 0, widgetRun.end, arrayList, null);
}
}
for (Dependency dependency2 : widgetRun.end.dependencies) {
if (dependency2 instanceof DependencyNode) {
applyGroup((DependencyNode) dependency2, i, 1, widgetRun.start, arrayList, null);
} else if (dependency2 instanceof WidgetRun) {
applyGroup(((WidgetRun) dependency2).end, i, 1, widgetRun.start, arrayList, null);
}
}
if (i == 1) {
for (Dependency dependency3 : ((VerticalWidgetRun) widgetRun).baseline.dependencies) {
if (dependency3 instanceof DependencyNode) {
applyGroup((DependencyNode) dependency3, i, 2, null, arrayList, null);
}
}
}
}
private String generateChainDisplayGraph(ChainRun chainRun, String str) {
int i = chainRun.orientation;
StringBuilder K = a.K("cluster_");
K.append(chainRun.widget.getDebugName());
String sb = K.toString();
String t = a.t("subgraph ", i == 0 ? a.s(sb, "_h") : a.s(sb, "_v"), " {\n");
Iterator<WidgetRun> it = chainRun.widgets.iterator();
String str2 = "";
while (it.hasNext()) {
WidgetRun next = it.next();
String debugName = next.widget.getDebugName();
t = a.t(t, i == 0 ? a.s(debugName, "_HORIZONTAL") : a.s(debugName, "_VERTICAL"), ";\n");
str2 = generateDisplayGraph(next, str2);
}
return a.t(str, str2, a.s(t, "}\n"));
}
private String generateDisplayGraph(WidgetRun widgetRun, String str) {
boolean z2;
DependencyNode dependencyNode = widgetRun.start;
DependencyNode dependencyNode2 = widgetRun.end;
if (!(widgetRun instanceof HelperReferences) && dependencyNode.dependencies.isEmpty() && (dependencyNode2.dependencies.isEmpty() && dependencyNode.targets.isEmpty()) && dependencyNode2.targets.isEmpty()) {
return str;
}
StringBuilder K = a.K(str);
K.append(nodeDefinition(widgetRun));
String sb = K.toString();
boolean isCenteredConnection = isCenteredConnection(dependencyNode, dependencyNode2);
String generateDisplayNode = generateDisplayNode(dependencyNode2, isCenteredConnection, generateDisplayNode(dependencyNode, isCenteredConnection, sb));
boolean z3 = widgetRun instanceof VerticalWidgetRun;
if (z3) {
generateDisplayNode = generateDisplayNode(((VerticalWidgetRun) widgetRun).baseline, isCenteredConnection, generateDisplayNode);
}
if ((widgetRun instanceof HorizontalWidgetRun) || (((z2 = widgetRun instanceof ChainRun)) && ((ChainRun) widgetRun).orientation == 0)) {
ConstraintWidget.DimensionBehaviour horizontalDimensionBehaviour = widgetRun.widget.getHorizontalDimensionBehaviour();
if (horizontalDimensionBehaviour == ConstraintWidget.DimensionBehaviour.FIXED || horizontalDimensionBehaviour == ConstraintWidget.DimensionBehaviour.WRAP_CONTENT) {
if (!dependencyNode.targets.isEmpty() && dependencyNode2.targets.isEmpty()) {
StringBuilder K2 = a.K("\n");
K2.append(dependencyNode2.name());
K2.append(" -> ");
K2.append(dependencyNode.name());
K2.append("\n");
generateDisplayNode = a.s(generateDisplayNode, K2.toString());
} else if (dependencyNode.targets.isEmpty() && !dependencyNode2.targets.isEmpty()) {
StringBuilder K3 = a.K("\n");
K3.append(dependencyNode.name());
K3.append(" -> ");
K3.append(dependencyNode2.name());
K3.append("\n");
generateDisplayNode = a.s(generateDisplayNode, K3.toString());
}
} else if (horizontalDimensionBehaviour == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT && widgetRun.widget.getDimensionRatio() > 0.0f) {
widgetRun.widget.getDebugName();
}
} else if (z3 || (z2 && ((ChainRun) widgetRun).orientation == 1)) {
ConstraintWidget.DimensionBehaviour verticalDimensionBehaviour = widgetRun.widget.getVerticalDimensionBehaviour();
if (verticalDimensionBehaviour == ConstraintWidget.DimensionBehaviour.FIXED || verticalDimensionBehaviour == ConstraintWidget.DimensionBehaviour.WRAP_CONTENT) {
if (!dependencyNode.targets.isEmpty() && dependencyNode2.targets.isEmpty()) {
StringBuilder K4 = a.K("\n");
K4.append(dependencyNode2.name());
K4.append(" -> ");
K4.append(dependencyNode.name());
K4.append("\n");
generateDisplayNode = a.s(generateDisplayNode, K4.toString());
} else if (dependencyNode.targets.isEmpty() && !dependencyNode2.targets.isEmpty()) {
StringBuilder K5 = a.K("\n");
K5.append(dependencyNode.name());
K5.append(" -> ");
K5.append(dependencyNode2.name());
K5.append("\n");
generateDisplayNode = a.s(generateDisplayNode, K5.toString());
}
} else if (verticalDimensionBehaviour == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT && widgetRun.widget.getDimensionRatio() > 0.0f) {
widgetRun.widget.getDebugName();
}
}
return widgetRun instanceof ChainRun ? generateChainDisplayGraph((ChainRun) widgetRun, generateDisplayNode) : generateDisplayNode;
}
private String generateDisplayNode(DependencyNode dependencyNode, boolean z2, String str) {
for (DependencyNode dependencyNode2 : dependencyNode.targets) {
StringBuilder K = a.K("\n");
K.append(dependencyNode.name());
StringBuilder O = a.O(K.toString(), " -> ");
O.append(dependencyNode2.name());
String sb = O.toString();
if (dependencyNode.margin > 0 || z2 || (dependencyNode.run instanceof HelperReferences)) {
String s2 = a.s(sb, "[");
if (dependencyNode.margin > 0) {
s2 = a.w(a.O(s2, "label=\""), dependencyNode.margin, "\"");
if (z2) {
s2 = a.s(s2, ",");
}
}
if (z2) {
s2 = a.s(s2, " style=dashed ");
}
if (dependencyNode.run instanceof HelperReferences) {
s2 = a.s(s2, " style=bold,color=gray ");
}
sb = a.s(s2, "]");
}
str = a.s(str, a.s(sb, "\n"));
}
return str;
}
private boolean isCenteredConnection(DependencyNode dependencyNode, DependencyNode dependencyNode2) {
int i = 0;
for (DependencyNode dependencyNode3 : dependencyNode.targets) {
if (dependencyNode3 != dependencyNode2) {
i++;
}
}
int i2 = 0;
for (DependencyNode dependencyNode4 : dependencyNode2.targets) {
if (dependencyNode4 != dependencyNode) {
i2++;
}
}
return i > 0 && i2 > 0;
}
private void measure(ConstraintWidget constraintWidget, ConstraintWidget.DimensionBehaviour dimensionBehaviour, int i, ConstraintWidget.DimensionBehaviour dimensionBehaviour2, int i2) {
BasicMeasure.Measure measure = this.mMeasure;
measure.horizontalBehavior = dimensionBehaviour;
measure.verticalBehavior = dimensionBehaviour2;
measure.horizontalDimension = i;
measure.verticalDimension = i2;
this.mMeasurer.measure(constraintWidget, measure);
constraintWidget.setWidth(this.mMeasure.measuredWidth);
constraintWidget.setHeight(this.mMeasure.measuredHeight);
constraintWidget.setHasBaseline(this.mMeasure.measuredHasBaseline);
constraintWidget.setBaselineDistance(this.mMeasure.measuredBaseline);
}
private String nodeDefinition(WidgetRun widgetRun) {
String str;
String str2;
String str3;
boolean z2 = widgetRun instanceof VerticalWidgetRun;
String debugName = widgetRun.widget.getDebugName();
ConstraintWidget constraintWidget = widgetRun.widget;
ConstraintWidget.DimensionBehaviour horizontalDimensionBehaviour = !z2 ? constraintWidget.getHorizontalDimensionBehaviour() : constraintWidget.getVerticalDimensionBehaviour();
RunGroup runGroup = widgetRun.runGroup;
String s2 = a.s(a.s(a.s(!z2 ? a.s(debugName, "_HORIZONTAL") : a.s(debugName, "_VERTICAL"), " [shape=none, label=<"), "<TABLE BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"2\">"), " <TR>");
if (!z2) {
String s3 = a.s(s2, " <TD ");
if (widgetRun.start.resolved) {
s3 = a.s(s3, " BGCOLOR=\"green\"");
}
str = a.s(s3, " PORT=\"LEFT\" BORDER=\"1\">L</TD>");
} else {
String s4 = a.s(s2, " <TD ");
if (widgetRun.start.resolved) {
s4 = a.s(s4, " BGCOLOR=\"green\"");
}
str = a.s(s4, " PORT=\"TOP\" BORDER=\"1\">T</TD>");
}
String s5 = a.s(str, " <TD BORDER=\"1\" ");
boolean z3 = widgetRun.dimension.resolved;
if (z3 && !widgetRun.widget.measured) {
s5 = a.s(s5, " BGCOLOR=\"green\" ");
} else if (z3 && widgetRun.widget.measured) {
s5 = a.s(s5, " BGCOLOR=\"lightgray\" ");
} else if (!z3 && widgetRun.widget.measured) {
s5 = a.s(s5, " BGCOLOR=\"yellow\" ");
}
if (horizontalDimensionBehaviour == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT) {
s5 = a.s(s5, "style=\"dashed\"");
}
if (runGroup != null) {
StringBuilder K = a.K(" [");
K.append(runGroup.groupIndex + 1);
K.append("/");
str2 = a.w(K, RunGroup.index, "]");
} else {
str2 = "";
}
String str4 = s5 + ">" + debugName + str2 + " </TD>";
if (!z2) {
String s6 = a.s(str4, " <TD ");
if (widgetRun.end.resolved) {
s6 = a.s(s6, " BGCOLOR=\"green\"");
}
str3 = a.s(s6, " PORT=\"RIGHT\" BORDER=\"1\">R</TD>");
} else {
String s7 = a.s(str4, " <TD ");
if ((widgetRun instanceof VerticalWidgetRun) && ((VerticalWidgetRun) widgetRun).baseline.resolved) {
s7 = a.s(s7, " BGCOLOR=\"green\"");
}
String s8 = a.s(a.s(s7, " PORT=\"BASELINE\" BORDER=\"1\">b</TD>"), " <TD ");
if (widgetRun.end.resolved) {
s8 = a.s(s8, " BGCOLOR=\"green\"");
}
str3 = a.s(s8, " PORT=\"BOTTOM\" BORDER=\"1\">B</TD>");
}
return a.s(a.s(str3, " </TR></TABLE>"), ">];\n");
}
public void buildGraph() {
buildGraph(this.mRuns);
this.mGroups.clear();
RunGroup.index = 0;
findGroup(this.container.horizontalRun, 0, this.mGroups);
findGroup(this.container.verticalRun, 1, this.mGroups);
this.mNeedBuildGraph = false;
}
public void buildGraph(ArrayList<WidgetRun> arrayList) {
arrayList.clear();
this.mContainer.horizontalRun.clear();
this.mContainer.verticalRun.clear();
arrayList.add(this.mContainer.horizontalRun);
arrayList.add(this.mContainer.verticalRun);
Iterator<ConstraintWidget> it = this.mContainer.mChildren.iterator();
HashSet hashSet = null;
while (it.hasNext()) {
ConstraintWidget next = it.next();
if (next instanceof Guideline) {
arrayList.add(new GuidelineReference(next));
} else {
if (next.isInHorizontalChain()) {
if (next.horizontalChainRun == null) {
next.horizontalChainRun = new ChainRun(next, 0);
}
if (hashSet == null) {
hashSet = new HashSet();
}
hashSet.add(next.horizontalChainRun);
} else {
arrayList.add(next.horizontalRun);
}
if (next.isInVerticalChain()) {
if (next.verticalChainRun == null) {
next.verticalChainRun = new ChainRun(next, 1);
}
if (hashSet == null) {
hashSet = new HashSet();
}
hashSet.add(next.verticalChainRun);
} else {
arrayList.add(next.verticalRun);
}
if (next instanceof HelperWidget) {
arrayList.add(new HelperReferences(next));
}
}
}
if (hashSet != null) {
arrayList.addAll(hashSet);
}
Iterator<WidgetRun> it2 = arrayList.iterator();
while (it2.hasNext()) {
it2.next().clear();
}
Iterator<WidgetRun> it3 = arrayList.iterator();
while (it3.hasNext()) {
WidgetRun next2 = it3.next();
if (next2.widget != this.mContainer) {
next2.apply();
}
}
}
public void defineTerminalWidgets(ConstraintWidget.DimensionBehaviour dimensionBehaviour, ConstraintWidget.DimensionBehaviour dimensionBehaviour2) {
if (this.mNeedBuildGraph) {
buildGraph();
Iterator<ConstraintWidget> it = this.container.mChildren.iterator();
boolean z2 = false;
while (it.hasNext()) {
ConstraintWidget next = it.next();
boolean[] zArr = next.isTerminalWidget;
zArr[0] = true;
zArr[1] = true;
if (next instanceof Barrier) {
z2 = true;
}
}
if (!z2) {
Iterator<RunGroup> it2 = this.mGroups.iterator();
while (it2.hasNext()) {
RunGroup next2 = it2.next();
ConstraintWidget.DimensionBehaviour dimensionBehaviour3 = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT;
next2.defineTerminalWidgets(dimensionBehaviour == dimensionBehaviour3, dimensionBehaviour2 == dimensionBehaviour3);
}
}
}
}
/* JADX WARNING: Code restructure failed: missing block: B:61:0x018e, code lost:
r0 = false;
*/
public boolean directMeasure(boolean z2) {
boolean z3;
boolean z4 = true;
boolean z5 = z2 & true;
if (this.mNeedBuildGraph || this.mNeedRedoMeasures) {
Iterator<ConstraintWidget> it = this.container.mChildren.iterator();
while (it.hasNext()) {
ConstraintWidget next = it.next();
next.ensureWidgetRuns();
next.measured = false;
next.horizontalRun.reset();
next.verticalRun.reset();
}
this.container.ensureWidgetRuns();
ConstraintWidgetContainer constraintWidgetContainer = this.container;
constraintWidgetContainer.measured = false;
constraintWidgetContainer.horizontalRun.reset();
this.container.verticalRun.reset();
this.mNeedRedoMeasures = false;
}
if (basicMeasureWidgets(this.mContainer)) {
return false;
}
this.container.setX(0);
this.container.setY(0);
ConstraintWidget.DimensionBehaviour dimensionBehaviour = this.container.getDimensionBehaviour(0);
ConstraintWidget.DimensionBehaviour dimensionBehaviour2 = this.container.getDimensionBehaviour(1);
if (this.mNeedBuildGraph) {
buildGraph();
}
int x2 = this.container.getX();
int y2 = this.container.getY();
this.container.horizontalRun.start.resolve(x2);
this.container.verticalRun.start.resolve(y2);
measureWidgets();
ConstraintWidget.DimensionBehaviour dimensionBehaviour3 = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT;
if (dimensionBehaviour == dimensionBehaviour3 || dimensionBehaviour2 == dimensionBehaviour3) {
if (z5) {
Iterator<WidgetRun> it2 = this.mRuns.iterator();
while (true) {
if (it2.hasNext()) {
if (!it2.next().supportsWrapComputation()) {
z5 = false;
break;
}
} else {
break;
}
}
}
if (z5 && dimensionBehaviour == ConstraintWidget.DimensionBehaviour.WRAP_CONTENT) {
this.container.setHorizontalDimensionBehaviour(ConstraintWidget.DimensionBehaviour.FIXED);
ConstraintWidgetContainer constraintWidgetContainer2 = this.container;
constraintWidgetContainer2.setWidth(computeWrap(constraintWidgetContainer2, 0));
ConstraintWidgetContainer constraintWidgetContainer3 = this.container;
constraintWidgetContainer3.horizontalRun.dimension.resolve(constraintWidgetContainer3.getWidth());
}
if (z5 && dimensionBehaviour2 == ConstraintWidget.DimensionBehaviour.WRAP_CONTENT) {
this.container.setVerticalDimensionBehaviour(ConstraintWidget.DimensionBehaviour.FIXED);
ConstraintWidgetContainer constraintWidgetContainer4 = this.container;
constraintWidgetContainer4.setHeight(computeWrap(constraintWidgetContainer4, 1));
ConstraintWidgetContainer constraintWidgetContainer5 = this.container;
constraintWidgetContainer5.verticalRun.dimension.resolve(constraintWidgetContainer5.getHeight());
}
}
ConstraintWidgetContainer constraintWidgetContainer6 = this.container;
ConstraintWidget.DimensionBehaviour[] dimensionBehaviourArr = constraintWidgetContainer6.mListDimensionBehaviors;
ConstraintWidget.DimensionBehaviour dimensionBehaviour4 = dimensionBehaviourArr[0];
ConstraintWidget.DimensionBehaviour dimensionBehaviour5 = ConstraintWidget.DimensionBehaviour.FIXED;
if (dimensionBehaviour4 == dimensionBehaviour5 || dimensionBehaviourArr[0] == ConstraintWidget.DimensionBehaviour.MATCH_PARENT) {
int width = constraintWidgetContainer6.getWidth() + x2;
this.container.horizontalRun.end.resolve(width);
this.container.horizontalRun.dimension.resolve(width - x2);
measureWidgets();
ConstraintWidgetContainer constraintWidgetContainer7 = this.container;
ConstraintWidget.DimensionBehaviour[] dimensionBehaviourArr2 = constraintWidgetContainer7.mListDimensionBehaviors;
if (dimensionBehaviourArr2[1] == dimensionBehaviour5 || dimensionBehaviourArr2[1] == ConstraintWidget.DimensionBehaviour.MATCH_PARENT) {
int height = constraintWidgetContainer7.getHeight() + y2;
this.container.verticalRun.end.resolve(height);
this.container.verticalRun.dimension.resolve(height - y2);
}
measureWidgets();
z3 = true;
} else {
z3 = false;
}
Iterator<WidgetRun> it3 = this.mRuns.iterator();
while (it3.hasNext()) {
WidgetRun next2 = it3.next();
if (next2.widget != this.container || next2.resolved) {
next2.applyToWidget();
}
}
Iterator<WidgetRun> it4 = this.mRuns.iterator();
while (true) {
if (!it4.hasNext()) {
break;
}
WidgetRun next3 = it4.next();
if (z3 || next3.widget != this.container) {
if (!next3.start.resolved || ((!next3.end.resolved && !(next3 instanceof GuidelineReference)) || (!next3.dimension.resolved && !(next3 instanceof ChainRun) && !(next3 instanceof GuidelineReference)))) {
break;
}
}
}
this.container.setHorizontalDimensionBehaviour(dimensionBehaviour);
this.container.setVerticalDimensionBehaviour(dimensionBehaviour2);
return z4;
}
public boolean directMeasureSetup(boolean z2) {
if (this.mNeedBuildGraph) {
Iterator<ConstraintWidget> it = this.container.mChildren.iterator();
while (it.hasNext()) {
ConstraintWidget next = it.next();
next.ensureWidgetRuns();
next.measured = false;
HorizontalWidgetRun horizontalWidgetRun = next.horizontalRun;
horizontalWidgetRun.dimension.resolved = false;
horizontalWidgetRun.resolved = false;
horizontalWidgetRun.reset();
VerticalWidgetRun verticalWidgetRun = next.verticalRun;
verticalWidgetRun.dimension.resolved = false;
verticalWidgetRun.resolved = false;
verticalWidgetRun.reset();
}
this.container.ensureWidgetRuns();
ConstraintWidgetContainer constraintWidgetContainer = this.container;
constraintWidgetContainer.measured = false;
HorizontalWidgetRun horizontalWidgetRun2 = constraintWidgetContainer.horizontalRun;
horizontalWidgetRun2.dimension.resolved = false;
horizontalWidgetRun2.resolved = false;
horizontalWidgetRun2.reset();
VerticalWidgetRun verticalWidgetRun2 = this.container.verticalRun;
verticalWidgetRun2.dimension.resolved = false;
verticalWidgetRun2.resolved = false;
verticalWidgetRun2.reset();
buildGraph();
}
if (basicMeasureWidgets(this.mContainer)) {
return false;
}
this.container.setX(0);
this.container.setY(0);
this.container.horizontalRun.start.resolve(0);
this.container.verticalRun.start.resolve(0);
return true;
}
/* JADX WARNING: Removed duplicated region for block: B:38:0x00ef */
/* JADX WARNING: Removed duplicated region for block: B:48:0x0115 */
/* JADX WARNING: Removed duplicated region for block: B:78:0x0143 A[EDGE_INSN: B:78:0x0143->B:62:0x0143 ?: BREAK , SYNTHETIC] */
public boolean directMeasureWithOrientation(boolean z2, int i) {
boolean z3;
Iterator<WidgetRun> it;
Iterator<WidgetRun> it2;
ConstraintWidget.DimensionBehaviour dimensionBehaviour;
boolean z4 = true;
boolean z5 = z2 & true;
ConstraintWidget.DimensionBehaviour dimensionBehaviour2 = this.container.getDimensionBehaviour(0);
ConstraintWidget.DimensionBehaviour dimensionBehaviour3 = this.container.getDimensionBehaviour(1);
int x2 = this.container.getX();
int y2 = this.container.getY();
if (z5 && (dimensionBehaviour2 == (dimensionBehaviour = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT) || dimensionBehaviour3 == dimensionBehaviour)) {
Iterator<WidgetRun> it3 = this.mRuns.iterator();
while (true) {
if (!it3.hasNext()) {
break;
}
WidgetRun next = it3.next();
if (next.orientation == i && !next.supportsWrapComputation()) {
z5 = false;
break;
}
}
if (i == 0) {
if (z5 && dimensionBehaviour2 == ConstraintWidget.DimensionBehaviour.WRAP_CONTENT) {
this.container.setHorizontalDimensionBehaviour(ConstraintWidget.DimensionBehaviour.FIXED);
ConstraintWidgetContainer constraintWidgetContainer = this.container;
constraintWidgetContainer.setWidth(computeWrap(constraintWidgetContainer, 0));
ConstraintWidgetContainer constraintWidgetContainer2 = this.container;
constraintWidgetContainer2.horizontalRun.dimension.resolve(constraintWidgetContainer2.getWidth());
}
} else if (z5 && dimensionBehaviour3 == ConstraintWidget.DimensionBehaviour.WRAP_CONTENT) {
this.container.setVerticalDimensionBehaviour(ConstraintWidget.DimensionBehaviour.FIXED);
ConstraintWidgetContainer constraintWidgetContainer3 = this.container;
constraintWidgetContainer3.setHeight(computeWrap(constraintWidgetContainer3, 1));
ConstraintWidgetContainer constraintWidgetContainer4 = this.container;
constraintWidgetContainer4.verticalRun.dimension.resolve(constraintWidgetContainer4.getHeight());
}
}
if (i == 0) {
ConstraintWidgetContainer constraintWidgetContainer5 = this.container;
ConstraintWidget.DimensionBehaviour[] dimensionBehaviourArr = constraintWidgetContainer5.mListDimensionBehaviors;
if (dimensionBehaviourArr[0] == ConstraintWidget.DimensionBehaviour.FIXED || dimensionBehaviourArr[0] == ConstraintWidget.DimensionBehaviour.MATCH_PARENT) {
int width = constraintWidgetContainer5.getWidth() + x2;
this.container.horizontalRun.end.resolve(width);
this.container.horizontalRun.dimension.resolve(width - x2);
z3 = true;
measureWidgets();
it = this.mRuns.iterator();
while (it.hasNext()) {
WidgetRun next2 = it.next();
if (next2.orientation == i && (next2.widget != this.container || next2.resolved)) {
next2.applyToWidget();
}
}
it2 = this.mRuns.iterator();
while (true) {
if (!it2.hasNext()) {
break;
}
WidgetRun next3 = it2.next();
if (next3.orientation == i && (z3 || next3.widget != this.container)) {
if (!next3.start.resolved || !next3.end.resolved || (!(next3 instanceof ChainRun) && !next3.dimension.resolved)) {
break;
}
}
}
z4 = false;
this.container.setHorizontalDimensionBehaviour(dimensionBehaviour2);
this.container.setVerticalDimensionBehaviour(dimensionBehaviour3);
return z4;
}
} else {
ConstraintWidgetContainer constraintWidgetContainer6 = this.container;
ConstraintWidget.DimensionBehaviour[] dimensionBehaviourArr2 = constraintWidgetContainer6.mListDimensionBehaviors;
if (dimensionBehaviourArr2[1] == ConstraintWidget.DimensionBehaviour.FIXED || dimensionBehaviourArr2[1] == ConstraintWidget.DimensionBehaviour.MATCH_PARENT) {
int height = constraintWidgetContainer6.getHeight() + y2;
this.container.verticalRun.end.resolve(height);
this.container.verticalRun.dimension.resolve(height - y2);
z3 = true;
measureWidgets();
it = this.mRuns.iterator();
while (it.hasNext()) {
}
it2 = this.mRuns.iterator();
while (true) {
if (!it2.hasNext()) {
}
}
z4 = false;
this.container.setHorizontalDimensionBehaviour(dimensionBehaviour2);
this.container.setVerticalDimensionBehaviour(dimensionBehaviour3);
return z4;
}
}
z3 = false;
measureWidgets();
it = this.mRuns.iterator();
while (it.hasNext()) {
}
it2 = this.mRuns.iterator();
while (true) {
if (!it2.hasNext()) {
}
}
z4 = false;
this.container.setHorizontalDimensionBehaviour(dimensionBehaviour2);
this.container.setVerticalDimensionBehaviour(dimensionBehaviour3);
return z4;
}
public void invalidateGraph() {
this.mNeedBuildGraph = true;
}
public void invalidateMeasures() {
this.mNeedRedoMeasures = true;
}
public void measureWidgets() {
DimensionDependency dimensionDependency;
Iterator<ConstraintWidget> it = this.container.mChildren.iterator();
while (it.hasNext()) {
ConstraintWidget next = it.next();
if (!next.measured) {
ConstraintWidget.DimensionBehaviour[] dimensionBehaviourArr = next.mListDimensionBehaviors;
boolean z2 = false;
ConstraintWidget.DimensionBehaviour dimensionBehaviour = dimensionBehaviourArr[0];
ConstraintWidget.DimensionBehaviour dimensionBehaviour2 = dimensionBehaviourArr[1];
int i = next.mMatchConstraintDefaultWidth;
int i2 = next.mMatchConstraintDefaultHeight;
ConstraintWidget.DimensionBehaviour dimensionBehaviour3 = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT;
boolean z3 = dimensionBehaviour == dimensionBehaviour3 || (dimensionBehaviour == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT && i == 1);
if (dimensionBehaviour2 == dimensionBehaviour3 || (dimensionBehaviour2 == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT && i2 == 1)) {
z2 = true;
}
DimensionDependency dimensionDependency2 = next.horizontalRun.dimension;
boolean z4 = dimensionDependency2.resolved;
DimensionDependency dimensionDependency3 = next.verticalRun.dimension;
boolean z5 = dimensionDependency3.resolved;
if (z4 && z5) {
ConstraintWidget.DimensionBehaviour dimensionBehaviour4 = ConstraintWidget.DimensionBehaviour.FIXED;
measure(next, dimensionBehaviour4, dimensionDependency2.value, dimensionBehaviour4, dimensionDependency3.value);
next.measured = true;
} else if (z4 && z2) {
measure(next, ConstraintWidget.DimensionBehaviour.FIXED, dimensionDependency2.value, dimensionBehaviour3, dimensionDependency3.value);
if (dimensionBehaviour2 == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT) {
next.verticalRun.dimension.wrapValue = next.getHeight();
} else {
next.verticalRun.dimension.resolve(next.getHeight());
next.measured = true;
}
} else if (z5 && z3) {
measure(next, dimensionBehaviour3, dimensionDependency2.value, ConstraintWidget.DimensionBehaviour.FIXED, dimensionDependency3.value);
if (dimensionBehaviour == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT) {
next.horizontalRun.dimension.wrapValue = next.getWidth();
} else {
next.horizontalRun.dimension.resolve(next.getWidth());
next.measured = true;
}
}
if (next.measured && (dimensionDependency = next.verticalRun.baselineDimension) != null) {
dimensionDependency.resolve(next.getBaselineDistance());
}
}
}
}
public void setMeasurer(BasicMeasure.Measurer measurer) {
this.mMeasurer = measurer;
}
}

View file

@ -1,124 +0,0 @@
package androidx.constraintlayout.solver.widgets.analyzer;
import c.d.b.a.a;
import java.util.ArrayList;
import java.util.List;
public class DependencyNode implements Dependency {
public boolean delegateToWidgetRun = false;
public List<Dependency> dependencies = new ArrayList();
public int margin;
public DimensionDependency marginDependency = null;
public int marginFactor = 1;
public boolean readyToSolve = false;
public boolean resolved = false;
public WidgetRun run;
public List<DependencyNode> targets = new ArrayList();
public Type type = Type.UNKNOWN;
public Dependency updateDelegate = null;
public int value;
public enum Type {
UNKNOWN,
HORIZONTAL_DIMENSION,
VERTICAL_DIMENSION,
LEFT,
RIGHT,
TOP,
BOTTOM,
BASELINE
}
public DependencyNode(WidgetRun widgetRun) {
this.run = widgetRun;
}
public void addDependency(Dependency dependency) {
this.dependencies.add(dependency);
if (this.resolved) {
dependency.update(dependency);
}
}
public void clear() {
this.targets.clear();
this.dependencies.clear();
this.resolved = false;
this.value = 0;
this.readyToSolve = false;
this.delegateToWidgetRun = false;
}
public String name() {
String debugName = this.run.widget.getDebugName();
Type type = this.type;
StringBuilder O = a.O((type == Type.LEFT || type == Type.RIGHT) ? a.s(debugName, "_HORIZONTAL") : a.s(debugName, "_VERTICAL"), ":");
O.append(this.type.name());
return O.toString();
}
public void resolve(int i) {
if (!this.resolved) {
this.resolved = true;
this.value = i;
for (Dependency dependency : this.dependencies) {
dependency.update(dependency);
}
}
}
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(this.run.widget.getDebugName());
sb.append(":");
sb.append(this.type);
sb.append("(");
sb.append(this.resolved ? Integer.valueOf(this.value) : "unresolved");
sb.append(") <t=");
sb.append(this.targets.size());
sb.append(":d=");
sb.append(this.dependencies.size());
sb.append(">");
return sb.toString();
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.Dependency
public void update(Dependency dependency) {
for (DependencyNode dependencyNode : this.targets) {
if (!dependencyNode.resolved) {
return;
}
}
this.readyToSolve = true;
Dependency dependency2 = this.updateDelegate;
if (dependency2 != null) {
dependency2.update(this);
}
if (this.delegateToWidgetRun) {
this.run.update(this);
return;
}
DependencyNode dependencyNode2 = null;
int i = 0;
for (DependencyNode dependencyNode3 : this.targets) {
if (!(dependencyNode3 instanceof DimensionDependency)) {
i++;
dependencyNode2 = dependencyNode3;
}
}
if (dependencyNode2 != null && i == 1 && dependencyNode2.resolved) {
DimensionDependency dimensionDependency = this.marginDependency;
if (dimensionDependency != null) {
if (dimensionDependency.resolved) {
this.margin = this.marginFactor * dimensionDependency.value;
} else {
return;
}
}
resolve(dependencyNode2.value + this.margin);
}
Dependency dependency3 = this.updateDelegate;
if (dependency3 != null) {
dependency3.update(this);
}
}
}

View file

@ -1,26 +0,0 @@
package androidx.constraintlayout.solver.widgets.analyzer;
import androidx.constraintlayout.solver.widgets.analyzer.DependencyNode;
public class DimensionDependency extends DependencyNode {
public int wrapValue;
public DimensionDependency(WidgetRun widgetRun) {
super(widgetRun);
if (widgetRun instanceof HorizontalWidgetRun) {
this.type = DependencyNode.Type.HORIZONTAL_DIMENSION;
} else {
this.type = DependencyNode.Type.VERTICAL_DIMENSION;
}
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.DependencyNode
public void resolve(int i) {
if (!this.resolved) {
this.resolved = true;
this.value = i;
for (Dependency dependency : this.dependencies) {
dependency.update(dependency);
}
}
}
}

View file

@ -1,641 +0,0 @@
package androidx.constraintlayout.solver.widgets.analyzer;
import androidx.constraintlayout.solver.LinearSystem;
import androidx.constraintlayout.solver.widgets.Barrier;
import androidx.constraintlayout.solver.widgets.ChainHead;
import androidx.constraintlayout.solver.widgets.ConstraintAnchor;
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
import androidx.constraintlayout.solver.widgets.ConstraintWidgetContainer;
import androidx.constraintlayout.solver.widgets.Guideline;
import androidx.constraintlayout.solver.widgets.analyzer.BasicMeasure;
import java.util.ArrayList;
import java.util.Iterator;
public class Direct {
private static final boolean APPLY_MATCH_PARENT = false;
private static final boolean DEBUG = false;
private static BasicMeasure.Measure measure = new BasicMeasure.Measure();
private static boolean canMeasure(ConstraintWidget constraintWidget) {
ConstraintWidget.DimensionBehaviour horizontalDimensionBehaviour = constraintWidget.getHorizontalDimensionBehaviour();
ConstraintWidget.DimensionBehaviour verticalDimensionBehaviour = constraintWidget.getVerticalDimensionBehaviour();
ConstraintWidgetContainer constraintWidgetContainer = constraintWidget.getParent() != null ? (ConstraintWidgetContainer) constraintWidget.getParent() : null;
if (constraintWidgetContainer != null) {
constraintWidgetContainer.getHorizontalDimensionBehaviour();
ConstraintWidget.DimensionBehaviour dimensionBehaviour = ConstraintWidget.DimensionBehaviour.FIXED;
}
if (constraintWidgetContainer != null) {
constraintWidgetContainer.getVerticalDimensionBehaviour();
ConstraintWidget.DimensionBehaviour dimensionBehaviour2 = ConstraintWidget.DimensionBehaviour.FIXED;
}
ConstraintWidget.DimensionBehaviour dimensionBehaviour3 = ConstraintWidget.DimensionBehaviour.FIXED;
boolean z2 = horizontalDimensionBehaviour == dimensionBehaviour3 || horizontalDimensionBehaviour == ConstraintWidget.DimensionBehaviour.WRAP_CONTENT || (horizontalDimensionBehaviour == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT && constraintWidget.mMatchConstraintDefaultWidth == 0 && constraintWidget.mDimensionRatio == 0.0f && constraintWidget.hasDanglingDimension(0)) || constraintWidget.isResolvedHorizontally();
boolean z3 = verticalDimensionBehaviour == dimensionBehaviour3 || verticalDimensionBehaviour == ConstraintWidget.DimensionBehaviour.WRAP_CONTENT || (verticalDimensionBehaviour == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT && constraintWidget.mMatchConstraintDefaultHeight == 0 && constraintWidget.mDimensionRatio == 0.0f && constraintWidget.hasDanglingDimension(1)) || constraintWidget.isResolvedVertically();
if (constraintWidget.mDimensionRatio <= 0.0f || (!z2 && !z3)) {
return z2 && z3;
}
return true;
}
private static void horizontalSolvingPass(ConstraintWidget constraintWidget, BasicMeasure.Measurer measurer, boolean z2) {
ConstraintAnchor constraintAnchor;
ConstraintAnchor constraintAnchor2;
ConstraintAnchor constraintAnchor3;
ConstraintAnchor constraintAnchor4;
ConstraintAnchor constraintAnchor5;
if (!(constraintWidget instanceof ConstraintWidgetContainer) && constraintWidget.isMeasureRequested() && canMeasure(constraintWidget)) {
ConstraintWidgetContainer.measure(constraintWidget, measurer, new BasicMeasure.Measure(), BasicMeasure.Measure.SELF_DIMENSIONS);
}
ConstraintAnchor anchor = constraintWidget.getAnchor(ConstraintAnchor.Type.LEFT);
ConstraintAnchor anchor2 = constraintWidget.getAnchor(ConstraintAnchor.Type.RIGHT);
int finalValue = anchor.getFinalValue();
int finalValue2 = anchor2.getFinalValue();
if (anchor.getDependents() != null && anchor.hasFinalValue()) {
Iterator<ConstraintAnchor> it = anchor.getDependents().iterator();
while (it.hasNext()) {
ConstraintAnchor next = it.next();
ConstraintWidget constraintWidget2 = next.mOwner;
boolean canMeasure = canMeasure(constraintWidget2);
if (constraintWidget2.isMeasureRequested() && canMeasure) {
ConstraintWidgetContainer.measure(constraintWidget2, measurer, new BasicMeasure.Measure(), BasicMeasure.Measure.SELF_DIMENSIONS);
}
ConstraintWidget.DimensionBehaviour horizontalDimensionBehaviour = constraintWidget2.getHorizontalDimensionBehaviour();
ConstraintWidget.DimensionBehaviour dimensionBehaviour = ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT;
if (horizontalDimensionBehaviour != dimensionBehaviour || canMeasure) {
if (!constraintWidget2.isMeasureRequested()) {
ConstraintAnchor constraintAnchor6 = constraintWidget2.mLeft;
if (next == constraintAnchor6 && constraintWidget2.mRight.mTarget == null) {
int margin = constraintAnchor6.getMargin() + finalValue;
constraintWidget2.setFinalHorizontal(margin, constraintWidget2.getWidth() + margin);
horizontalSolvingPass(constraintWidget2, measurer, z2);
} else {
ConstraintAnchor constraintAnchor7 = constraintWidget2.mRight;
if (next == constraintAnchor7 && constraintAnchor6.mTarget == null) {
int margin2 = finalValue - constraintAnchor7.getMargin();
constraintWidget2.setFinalHorizontal(margin2 - constraintWidget2.getWidth(), margin2);
horizontalSolvingPass(constraintWidget2, measurer, z2);
} else if (next == constraintAnchor6 && (constraintAnchor3 = constraintAnchor7.mTarget) != null && constraintAnchor3.hasFinalValue() && !constraintWidget2.isInHorizontalChain()) {
solveHorizontalCenterConstraints(measurer, constraintWidget2, z2);
}
}
}
} else if (constraintWidget2.getHorizontalDimensionBehaviour() == dimensionBehaviour && constraintWidget2.mMatchConstraintMaxWidth >= 0 && constraintWidget2.mMatchConstraintMinWidth >= 0) {
if (constraintWidget2.getVisibility() == 8 || (constraintWidget2.mMatchConstraintDefaultWidth == 0 && constraintWidget2.getDimensionRatio() == 0.0f)) {
if (!constraintWidget2.isInHorizontalChain() && !constraintWidget2.isInVirtualLayout()) {
if (((next == constraintWidget2.mLeft && (constraintAnchor5 = constraintWidget2.mRight.mTarget) != null && constraintAnchor5.hasFinalValue()) || (next == constraintWidget2.mRight && (constraintAnchor4 = constraintWidget2.mLeft.mTarget) != null && constraintAnchor4.hasFinalValue())) && !constraintWidget2.isInHorizontalChain()) {
solveHorizontalMatchConstraint(constraintWidget, measurer, constraintWidget2, z2);
}
}
}
}
}
}
if (!(constraintWidget instanceof Guideline) && anchor2.getDependents() != null && anchor2.hasFinalValue()) {
Iterator<ConstraintAnchor> it2 = anchor2.getDependents().iterator();
while (it2.hasNext()) {
ConstraintAnchor next2 = it2.next();
ConstraintWidget constraintWidget3 = next2.mOwner;
boolean canMeasure2 = canMeasure(constraintWidget3);
if (constraintWidget3.isMeasureRequested() && canMeasure2) {
ConstraintWidgetContainer.measure(constraintWidget3, measurer, new BasicMeasure.Measure(), BasicMeasure.Measure.SELF_DIMENSIONS);
}
boolean z3 = (next2 == constraintWidget3.mLeft && (constraintAnchor2 = constraintWidget3.mRight.mTarget) != null && constraintAnchor2.hasFinalValue()) || (next2 == constraintWidget3.mRight && (constraintAnchor = constraintWidget3.mLeft.mTarget) != null && constraintAnchor.hasFinalValue());
ConstraintWidget.DimensionBehaviour horizontalDimensionBehaviour2 = constraintWidget3.getHorizontalDimensionBehaviour();
ConstraintWidget.DimensionBehaviour dimensionBehaviour2 = ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT;
if (horizontalDimensionBehaviour2 != dimensionBehaviour2 || canMeasure2) {
if (!constraintWidget3.isMeasureRequested()) {
ConstraintAnchor constraintAnchor8 = constraintWidget3.mLeft;
if (next2 == constraintAnchor8 && constraintWidget3.mRight.mTarget == null) {
int margin3 = constraintAnchor8.getMargin() + finalValue2;
constraintWidget3.setFinalHorizontal(margin3, constraintWidget3.getWidth() + margin3);
horizontalSolvingPass(constraintWidget3, measurer, z2);
} else {
ConstraintAnchor constraintAnchor9 = constraintWidget3.mRight;
if (next2 == constraintAnchor9 && constraintAnchor8.mTarget == null) {
int margin4 = finalValue2 - constraintAnchor9.getMargin();
constraintWidget3.setFinalHorizontal(margin4 - constraintWidget3.getWidth(), margin4);
horizontalSolvingPass(constraintWidget3, measurer, z2);
} else if (z3 && !constraintWidget3.isInHorizontalChain()) {
solveHorizontalCenterConstraints(measurer, constraintWidget3, z2);
}
}
}
} else if (constraintWidget3.getHorizontalDimensionBehaviour() == dimensionBehaviour2 && constraintWidget3.mMatchConstraintMaxWidth >= 0 && constraintWidget3.mMatchConstraintMinWidth >= 0) {
if (constraintWidget3.getVisibility() == 8 || (constraintWidget3.mMatchConstraintDefaultWidth == 0 && constraintWidget3.getDimensionRatio() == 0.0f)) {
if (!constraintWidget3.isInHorizontalChain() && !constraintWidget3.isInVirtualLayout() && z3 && !constraintWidget3.isInHorizontalChain()) {
solveHorizontalMatchConstraint(constraintWidget, measurer, constraintWidget3, z2);
}
}
}
}
}
}
private static void solveBarrier(Barrier barrier, BasicMeasure.Measurer measurer, int i, boolean z2) {
if (!barrier.allSolved()) {
return;
}
if (i == 0) {
horizontalSolvingPass(barrier, measurer, z2);
} else {
verticalSolvingPass(barrier, measurer);
}
}
/* JADX WARNING: Code restructure failed: missing block: B:97:0x01db, code lost:
if (r6[r21].mTarget.mOwner == r2) goto L_0x01df;
*/
/* JADX WARNING: Removed duplicated region for block: B:69:0x0120 */
/* JADX WARNING: Removed duplicated region for block: B:78:0x0150 */
public static boolean solveChain(ConstraintWidgetContainer constraintWidgetContainer, LinearSystem linearSystem, int i, int i2, ChainHead chainHead, boolean z2, boolean z3, boolean z4) {
int margin;
int finalValue;
int finalValue2;
int i3;
boolean z5;
LinearSystem linearSystem2;
ConstraintWidget constraintWidget;
int i4;
if (z4) {
return false;
}
if (i == 0) {
if (!constraintWidgetContainer.isResolvedHorizontally()) {
return false;
}
} else if (!constraintWidgetContainer.isResolvedVertically()) {
return false;
}
boolean isRtl = constraintWidgetContainer.isRtl();
ConstraintWidget first = chainHead.getFirst();
ConstraintWidget last = chainHead.getLast();
ConstraintWidget firstVisibleWidget = chainHead.getFirstVisibleWidget();
ConstraintWidget lastVisibleWidget = chainHead.getLastVisibleWidget();
ConstraintWidget head = chainHead.getHead();
ConstraintAnchor constraintAnchor = first.mListAnchors[i2];
int i5 = i2 + 1;
ConstraintAnchor constraintAnchor2 = last.mListAnchors[i5];
ConstraintAnchor constraintAnchor3 = constraintAnchor.mTarget;
if (constraintAnchor3 == null || constraintAnchor2.mTarget == null || !constraintAnchor3.hasFinalValue() || !constraintAnchor2.mTarget.hasFinalValue() || firstVisibleWidget == null || lastVisibleWidget == null || (finalValue2 = (finalValue = constraintAnchor2.mTarget.getFinalValue() - lastVisibleWidget.mListAnchors[i5].getMargin()) - (margin = firstVisibleWidget.mListAnchors[i2].getMargin() + constraintAnchor.mTarget.getFinalValue())) <= 0) {
return false;
}
BasicMeasure.Measure measure2 = new BasicMeasure.Measure();
ConstraintWidget constraintWidget2 = first;
boolean z6 = false;
int i6 = 0;
int i7 = 0;
int i8 = 0;
while (true) {
ConstraintWidget constraintWidget3 = null;
if (!z6) {
ConstraintAnchor constraintAnchor4 = constraintWidget2.mListAnchors[i2];
if (!canMeasure(constraintWidget2) || constraintWidget2.mListDimensionBehaviors[i] == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT) {
return false;
}
if (constraintWidget2.isMeasureRequested()) {
ConstraintWidgetContainer.measure(constraintWidget2, constraintWidgetContainer.getMeasurer(), measure2, BasicMeasure.Measure.SELF_DIMENSIONS);
}
i8 = constraintWidget2.mListAnchors[i5].getMargin() + (i == 0 ? constraintWidget2.getWidth() : constraintWidget2.getHeight()) + constraintWidget2.mListAnchors[i2].getMargin() + i8;
i7++;
if (constraintWidget2.getVisibility() != 8) {
i6++;
}
ConstraintAnchor constraintAnchor5 = constraintWidget2.mListAnchors[i5].mTarget;
if (constraintAnchor5 != null) {
ConstraintWidget constraintWidget4 = constraintAnchor5.mOwner;
ConstraintAnchor[] constraintAnchorArr = constraintWidget4.mListAnchors;
if (constraintAnchorArr[i2].mTarget != null && constraintAnchorArr[i2].mTarget.mOwner == constraintWidget2) {
constraintWidget3 = constraintWidget4;
}
}
if (constraintWidget3 != null) {
constraintWidget2 = constraintWidget3;
} else {
z6 = true;
}
first = first;
} else if (i6 == 0 || i6 != i7 || finalValue2 < i8) {
return false;
} else {
int i9 = finalValue2 - i8;
if (z2) {
i9 /= i6 + 1;
} else if (z3 && i6 > 2) {
i3 = 1;
i9 = (i9 / i6) - 1;
if (i6 != i3) {
int horizontalBiasPercent = (int) ((((float) i9) * (i == 0 ? head.getHorizontalBiasPercent() : head.getVerticalBiasPercent())) + ((float) margin) + 0.5f);
if (i == 0) {
firstVisibleWidget.setFinalHorizontal(horizontalBiasPercent, firstVisibleWidget.getWidth() + horizontalBiasPercent);
} else {
firstVisibleWidget.setFinalVertical(horizontalBiasPercent, firstVisibleWidget.getHeight() + horizontalBiasPercent);
}
horizontalSolvingPass(firstVisibleWidget, constraintWidgetContainer.getMeasurer(), isRtl);
return true;
}
if (z2) {
int i10 = margin + i9;
ConstraintWidget constraintWidget5 = first;
boolean z7 = false;
while (!z7) {
ConstraintAnchor constraintAnchor6 = constraintWidget5.mListAnchors[i2];
if (constraintWidget5.getVisibility() == 8) {
if (i == 0) {
constraintWidget5.setFinalHorizontal(i10, i10);
horizontalSolvingPass(constraintWidget5, constraintWidgetContainer.getMeasurer(), isRtl);
} else {
constraintWidget5.setFinalVertical(i10, i10);
verticalSolvingPass(constraintWidget5, constraintWidgetContainer.getMeasurer());
}
linearSystem2 = linearSystem;
z5 = false;
} else {
int margin2 = constraintWidget5.mListAnchors[i2].getMargin() + i10;
if (i == 0) {
constraintWidget5.setFinalHorizontal(margin2, constraintWidget5.getWidth() + margin2);
horizontalSolvingPass(constraintWidget5, constraintWidgetContainer.getMeasurer(), isRtl);
i4 = constraintWidget5.getWidth();
} else {
constraintWidget5.setFinalVertical(margin2, constraintWidget5.getHeight() + margin2);
verticalSolvingPass(constraintWidget5, constraintWidgetContainer.getMeasurer());
i4 = constraintWidget5.getHeight();
}
i10 = constraintWidget5.mListAnchors[i5].getMargin() + i4 + margin2 + i9;
z5 = false;
linearSystem2 = linearSystem;
}
constraintWidget5.addToSolver(linearSystem2, z5);
ConstraintAnchor constraintAnchor7 = constraintWidget5.mListAnchors[i5].mTarget;
if (constraintAnchor7 != null) {
constraintWidget = constraintAnchor7.mOwner;
ConstraintAnchor[] constraintAnchorArr2 = constraintWidget.mListAnchors;
if (constraintAnchorArr2[i2].mTarget != null) {
}
}
constraintWidget = null;
if (constraintWidget != null) {
constraintWidget5 = constraintWidget;
} else {
z7 = true;
}
}
} else if (z3) {
if (i6 != 2) {
return false;
}
if (i == 0) {
firstVisibleWidget.setFinalHorizontal(margin, firstVisibleWidget.getWidth() + margin);
lastVisibleWidget.setFinalHorizontal(finalValue - lastVisibleWidget.getWidth(), finalValue);
horizontalSolvingPass(firstVisibleWidget, constraintWidgetContainer.getMeasurer(), isRtl);
horizontalSolvingPass(lastVisibleWidget, constraintWidgetContainer.getMeasurer(), isRtl);
return true;
}
firstVisibleWidget.setFinalVertical(margin, firstVisibleWidget.getHeight() + margin);
lastVisibleWidget.setFinalVertical(finalValue - lastVisibleWidget.getHeight(), finalValue);
verticalSolvingPass(firstVisibleWidget, constraintWidgetContainer.getMeasurer());
verticalSolvingPass(lastVisibleWidget, constraintWidgetContainer.getMeasurer());
return true;
}
return true;
}
i3 = 1;
if (i6 != i3) {
}
}
}
}
private static void solveHorizontalCenterConstraints(BasicMeasure.Measurer measurer, ConstraintWidget constraintWidget, boolean z2) {
float horizontalBiasPercent = constraintWidget.getHorizontalBiasPercent();
int finalValue = constraintWidget.mLeft.mTarget.getFinalValue();
int finalValue2 = constraintWidget.mRight.mTarget.getFinalValue();
int margin = constraintWidget.mLeft.getMargin() + finalValue;
int margin2 = finalValue2 - constraintWidget.mRight.getMargin();
if (finalValue == finalValue2) {
horizontalBiasPercent = 0.5f;
} else {
finalValue = margin;
finalValue2 = margin2;
}
int width = constraintWidget.getWidth();
int i = (finalValue2 - finalValue) - width;
if (finalValue > finalValue2) {
i = (finalValue - finalValue2) - width;
}
int i2 = ((int) ((horizontalBiasPercent * ((float) i)) + 0.5f)) + finalValue;
int i3 = i2 + width;
if (finalValue > finalValue2) {
i3 = i2 - width;
}
constraintWidget.setFinalHorizontal(i2, i3);
horizontalSolvingPass(constraintWidget, measurer, z2);
}
private static void solveHorizontalMatchConstraint(ConstraintWidget constraintWidget, BasicMeasure.Measurer measurer, ConstraintWidget constraintWidget2, boolean z2) {
float horizontalBiasPercent = constraintWidget2.getHorizontalBiasPercent();
int margin = constraintWidget2.mLeft.getMargin() + constraintWidget2.mLeft.mTarget.getFinalValue();
int finalValue = constraintWidget2.mRight.mTarget.getFinalValue() - constraintWidget2.mRight.getMargin();
if (finalValue >= margin) {
int width = constraintWidget2.getWidth();
if (constraintWidget2.getVisibility() != 8) {
int i = constraintWidget2.mMatchConstraintDefaultWidth;
if (i == 2) {
width = (int) (constraintWidget2.getHorizontalBiasPercent() * 0.5f * ((float) (constraintWidget instanceof ConstraintWidgetContainer ? constraintWidget.getWidth() : constraintWidget.getParent().getWidth())));
} else if (i == 0) {
width = finalValue - margin;
}
width = Math.max(constraintWidget2.mMatchConstraintMinWidth, width);
int i2 = constraintWidget2.mMatchConstraintMaxWidth;
if (i2 > 0) {
width = Math.min(i2, width);
}
}
int i3 = margin + ((int) ((horizontalBiasPercent * ((float) ((finalValue - margin) - width))) + 0.5f));
constraintWidget2.setFinalHorizontal(i3, width + i3);
horizontalSolvingPass(constraintWidget2, measurer, z2);
}
}
private static void solveVerticalCenterConstraints(BasicMeasure.Measurer measurer, ConstraintWidget constraintWidget) {
float verticalBiasPercent = constraintWidget.getVerticalBiasPercent();
int finalValue = constraintWidget.mTop.mTarget.getFinalValue();
int finalValue2 = constraintWidget.mBottom.mTarget.getFinalValue();
int margin = constraintWidget.mTop.getMargin() + finalValue;
int margin2 = finalValue2 - constraintWidget.mBottom.getMargin();
if (finalValue == finalValue2) {
verticalBiasPercent = 0.5f;
} else {
finalValue = margin;
finalValue2 = margin2;
}
int height = constraintWidget.getHeight();
int i = (finalValue2 - finalValue) - height;
if (finalValue > finalValue2) {
i = (finalValue - finalValue2) - height;
}
int i2 = (int) ((verticalBiasPercent * ((float) i)) + 0.5f);
int i3 = finalValue + i2;
int i4 = i3 + height;
if (finalValue > finalValue2) {
i3 = finalValue - i2;
i4 = i3 - height;
}
constraintWidget.setFinalVertical(i3, i4);
verticalSolvingPass(constraintWidget, measurer);
}
private static void solveVerticalMatchConstraint(ConstraintWidget constraintWidget, BasicMeasure.Measurer measurer, ConstraintWidget constraintWidget2) {
float verticalBiasPercent = constraintWidget2.getVerticalBiasPercent();
int margin = constraintWidget2.mTop.getMargin() + constraintWidget2.mTop.mTarget.getFinalValue();
int finalValue = constraintWidget2.mBottom.mTarget.getFinalValue() - constraintWidget2.mBottom.getMargin();
if (finalValue >= margin) {
int height = constraintWidget2.getHeight();
if (constraintWidget2.getVisibility() != 8) {
int i = constraintWidget2.mMatchConstraintDefaultHeight;
if (i == 2) {
height = (int) (verticalBiasPercent * 0.5f * ((float) (constraintWidget instanceof ConstraintWidgetContainer ? constraintWidget.getHeight() : constraintWidget.getParent().getHeight())));
} else if (i == 0) {
height = finalValue - margin;
}
height = Math.max(constraintWidget2.mMatchConstraintMinHeight, height);
int i2 = constraintWidget2.mMatchConstraintMaxHeight;
if (i2 > 0) {
height = Math.min(i2, height);
}
}
int i3 = margin + ((int) ((verticalBiasPercent * ((float) ((finalValue - margin) - height))) + 0.5f));
constraintWidget2.setFinalVertical(i3, height + i3);
verticalSolvingPass(constraintWidget2, measurer);
}
}
public static void solvingPass(ConstraintWidgetContainer constraintWidgetContainer, BasicMeasure.Measurer measurer) {
ConstraintWidget.DimensionBehaviour horizontalDimensionBehaviour = constraintWidgetContainer.getHorizontalDimensionBehaviour();
ConstraintWidget.DimensionBehaviour verticalDimensionBehaviour = constraintWidgetContainer.getVerticalDimensionBehaviour();
constraintWidgetContainer.resetFinalResolution();
ArrayList<ConstraintWidget> children = constraintWidgetContainer.getChildren();
int size = children.size();
for (int i = 0; i < size; i++) {
children.get(i).resetFinalResolution();
}
boolean isRtl = constraintWidgetContainer.isRtl();
if (horizontalDimensionBehaviour == ConstraintWidget.DimensionBehaviour.FIXED) {
constraintWidgetContainer.setFinalHorizontal(0, constraintWidgetContainer.getWidth());
} else {
constraintWidgetContainer.setFinalLeft(0);
}
boolean z2 = false;
boolean z3 = false;
for (int i2 = 0; i2 < size; i2++) {
ConstraintWidget constraintWidget = children.get(i2);
if (constraintWidget instanceof Guideline) {
Guideline guideline = (Guideline) constraintWidget;
if (guideline.getOrientation() == 1) {
if (guideline.getRelativeBegin() != -1) {
guideline.setFinalValue(guideline.getRelativeBegin());
} else if (guideline.getRelativeEnd() != -1 && constraintWidgetContainer.isResolvedHorizontally()) {
guideline.setFinalValue(constraintWidgetContainer.getWidth() - guideline.getRelativeEnd());
} else if (constraintWidgetContainer.isResolvedHorizontally()) {
guideline.setFinalValue((int) ((guideline.getRelativePercent() * ((float) constraintWidgetContainer.getWidth())) + 0.5f));
}
z2 = true;
}
} else if ((constraintWidget instanceof Barrier) && ((Barrier) constraintWidget).getOrientation() == 0) {
z3 = true;
}
}
if (z2) {
for (int i3 = 0; i3 < size; i3++) {
ConstraintWidget constraintWidget2 = children.get(i3);
if (constraintWidget2 instanceof Guideline) {
Guideline guideline2 = (Guideline) constraintWidget2;
if (guideline2.getOrientation() == 1) {
horizontalSolvingPass(guideline2, measurer, isRtl);
}
}
}
}
horizontalSolvingPass(constraintWidgetContainer, measurer, isRtl);
if (z3) {
for (int i4 = 0; i4 < size; i4++) {
ConstraintWidget constraintWidget3 = children.get(i4);
if (constraintWidget3 instanceof Barrier) {
Barrier barrier = (Barrier) constraintWidget3;
if (barrier.getOrientation() == 0) {
solveBarrier(barrier, measurer, 0, isRtl);
}
}
}
}
if (verticalDimensionBehaviour == ConstraintWidget.DimensionBehaviour.FIXED) {
constraintWidgetContainer.setFinalVertical(0, constraintWidgetContainer.getHeight());
} else {
constraintWidgetContainer.setFinalTop(0);
}
boolean z4 = false;
boolean z5 = false;
for (int i5 = 0; i5 < size; i5++) {
ConstraintWidget constraintWidget4 = children.get(i5);
if (constraintWidget4 instanceof Guideline) {
Guideline guideline3 = (Guideline) constraintWidget4;
if (guideline3.getOrientation() == 0) {
if (guideline3.getRelativeBegin() != -1) {
guideline3.setFinalValue(guideline3.getRelativeBegin());
} else if (guideline3.getRelativeEnd() != -1 && constraintWidgetContainer.isResolvedVertically()) {
guideline3.setFinalValue(constraintWidgetContainer.getHeight() - guideline3.getRelativeEnd());
} else if (constraintWidgetContainer.isResolvedVertically()) {
guideline3.setFinalValue((int) ((guideline3.getRelativePercent() * ((float) constraintWidgetContainer.getHeight())) + 0.5f));
}
z4 = true;
}
} else if ((constraintWidget4 instanceof Barrier) && ((Barrier) constraintWidget4).getOrientation() == 1) {
z5 = true;
}
}
if (z4) {
for (int i6 = 0; i6 < size; i6++) {
ConstraintWidget constraintWidget5 = children.get(i6);
if (constraintWidget5 instanceof Guideline) {
Guideline guideline4 = (Guideline) constraintWidget5;
if (guideline4.getOrientation() == 0) {
verticalSolvingPass(guideline4, measurer);
}
}
}
}
verticalSolvingPass(constraintWidgetContainer, measurer);
if (z5) {
for (int i7 = 0; i7 < size; i7++) {
ConstraintWidget constraintWidget6 = children.get(i7);
if (constraintWidget6 instanceof Barrier) {
Barrier barrier2 = (Barrier) constraintWidget6;
if (barrier2.getOrientation() == 1) {
solveBarrier(barrier2, measurer, 1, isRtl);
}
}
}
}
for (int i8 = 0; i8 < size; i8++) {
ConstraintWidget constraintWidget7 = children.get(i8);
if (constraintWidget7.isMeasureRequested() && canMeasure(constraintWidget7)) {
ConstraintWidgetContainer.measure(constraintWidget7, measurer, measure, BasicMeasure.Measure.SELF_DIMENSIONS);
horizontalSolvingPass(constraintWidget7, measurer, isRtl);
verticalSolvingPass(constraintWidget7, measurer);
}
}
}
private static void verticalSolvingPass(ConstraintWidget constraintWidget, BasicMeasure.Measurer measurer) {
ConstraintAnchor constraintAnchor;
ConstraintAnchor constraintAnchor2;
ConstraintAnchor constraintAnchor3;
ConstraintAnchor constraintAnchor4;
ConstraintAnchor constraintAnchor5;
if (!(constraintWidget instanceof ConstraintWidgetContainer) && constraintWidget.isMeasureRequested() && canMeasure(constraintWidget)) {
ConstraintWidgetContainer.measure(constraintWidget, measurer, new BasicMeasure.Measure(), BasicMeasure.Measure.SELF_DIMENSIONS);
}
ConstraintAnchor anchor = constraintWidget.getAnchor(ConstraintAnchor.Type.TOP);
ConstraintAnchor anchor2 = constraintWidget.getAnchor(ConstraintAnchor.Type.BOTTOM);
int finalValue = anchor.getFinalValue();
int finalValue2 = anchor2.getFinalValue();
if (anchor.getDependents() != null && anchor.hasFinalValue()) {
Iterator<ConstraintAnchor> it = anchor.getDependents().iterator();
while (it.hasNext()) {
ConstraintAnchor next = it.next();
ConstraintWidget constraintWidget2 = next.mOwner;
boolean canMeasure = canMeasure(constraintWidget2);
if (constraintWidget2.isMeasureRequested() && canMeasure) {
ConstraintWidgetContainer.measure(constraintWidget2, measurer, new BasicMeasure.Measure(), BasicMeasure.Measure.SELF_DIMENSIONS);
}
ConstraintWidget.DimensionBehaviour verticalDimensionBehaviour = constraintWidget2.getVerticalDimensionBehaviour();
ConstraintWidget.DimensionBehaviour dimensionBehaviour = ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT;
if (verticalDimensionBehaviour != dimensionBehaviour || canMeasure) {
if (!constraintWidget2.isMeasureRequested()) {
ConstraintAnchor constraintAnchor6 = constraintWidget2.mTop;
if (next == constraintAnchor6 && constraintWidget2.mBottom.mTarget == null) {
int margin = constraintAnchor6.getMargin() + finalValue;
constraintWidget2.setFinalVertical(margin, constraintWidget2.getHeight() + margin);
verticalSolvingPass(constraintWidget2, measurer);
} else {
ConstraintAnchor constraintAnchor7 = constraintWidget2.mBottom;
if (next == constraintAnchor7 && constraintAnchor7.mTarget == null) {
int margin2 = finalValue - constraintAnchor7.getMargin();
constraintWidget2.setFinalVertical(margin2 - constraintWidget2.getHeight(), margin2);
verticalSolvingPass(constraintWidget2, measurer);
} else if (next == constraintAnchor6 && (constraintAnchor3 = constraintAnchor7.mTarget) != null && constraintAnchor3.hasFinalValue()) {
solveVerticalCenterConstraints(measurer, constraintWidget2);
}
}
}
} else if (constraintWidget2.getVerticalDimensionBehaviour() == dimensionBehaviour && constraintWidget2.mMatchConstraintMaxHeight >= 0 && constraintWidget2.mMatchConstraintMinHeight >= 0) {
if (constraintWidget2.getVisibility() == 8 || (constraintWidget2.mMatchConstraintDefaultHeight == 0 && constraintWidget2.getDimensionRatio() == 0.0f)) {
if (!constraintWidget2.isInVerticalChain() && !constraintWidget2.isInVirtualLayout()) {
if (((next == constraintWidget2.mTop && (constraintAnchor5 = constraintWidget2.mBottom.mTarget) != null && constraintAnchor5.hasFinalValue()) || (next == constraintWidget2.mBottom && (constraintAnchor4 = constraintWidget2.mTop.mTarget) != null && constraintAnchor4.hasFinalValue())) && !constraintWidget2.isInVerticalChain()) {
solveVerticalMatchConstraint(constraintWidget, measurer, constraintWidget2);
}
}
}
}
}
}
if (!(constraintWidget instanceof Guideline)) {
if (anchor2.getDependents() != null && anchor2.hasFinalValue()) {
Iterator<ConstraintAnchor> it2 = anchor2.getDependents().iterator();
while (it2.hasNext()) {
ConstraintAnchor next2 = it2.next();
ConstraintWidget constraintWidget3 = next2.mOwner;
boolean canMeasure2 = canMeasure(constraintWidget3);
if (constraintWidget3.isMeasureRequested() && canMeasure2) {
ConstraintWidgetContainer.measure(constraintWidget3, measurer, new BasicMeasure.Measure(), BasicMeasure.Measure.SELF_DIMENSIONS);
}
boolean z2 = (next2 == constraintWidget3.mTop && (constraintAnchor2 = constraintWidget3.mBottom.mTarget) != null && constraintAnchor2.hasFinalValue()) || (next2 == constraintWidget3.mBottom && (constraintAnchor = constraintWidget3.mTop.mTarget) != null && constraintAnchor.hasFinalValue());
ConstraintWidget.DimensionBehaviour verticalDimensionBehaviour2 = constraintWidget3.getVerticalDimensionBehaviour();
ConstraintWidget.DimensionBehaviour dimensionBehaviour2 = ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT;
if (verticalDimensionBehaviour2 != dimensionBehaviour2 || canMeasure2) {
if (!constraintWidget3.isMeasureRequested()) {
ConstraintAnchor constraintAnchor8 = constraintWidget3.mTop;
if (next2 == constraintAnchor8 && constraintWidget3.mBottom.mTarget == null) {
int margin3 = constraintAnchor8.getMargin() + finalValue2;
constraintWidget3.setFinalVertical(margin3, constraintWidget3.getHeight() + margin3);
verticalSolvingPass(constraintWidget3, measurer);
} else {
ConstraintAnchor constraintAnchor9 = constraintWidget3.mBottom;
if (next2 == constraintAnchor9 && constraintAnchor8.mTarget == null) {
int margin4 = finalValue2 - constraintAnchor9.getMargin();
constraintWidget3.setFinalVertical(margin4 - constraintWidget3.getHeight(), margin4);
verticalSolvingPass(constraintWidget3, measurer);
} else if (z2 && !constraintWidget3.isInVerticalChain()) {
solveVerticalCenterConstraints(measurer, constraintWidget3);
}
}
}
} else if (constraintWidget3.getVerticalDimensionBehaviour() == dimensionBehaviour2 && constraintWidget3.mMatchConstraintMaxHeight >= 0 && constraintWidget3.mMatchConstraintMinHeight >= 0) {
if (constraintWidget3.getVisibility() == 8 || (constraintWidget3.mMatchConstraintDefaultHeight == 0 && constraintWidget3.getDimensionRatio() == 0.0f)) {
if (!constraintWidget3.isInVerticalChain() && !constraintWidget3.isInVirtualLayout() && z2 && !constraintWidget3.isInVerticalChain()) {
solveVerticalMatchConstraint(constraintWidget, measurer, constraintWidget3);
}
}
}
}
}
ConstraintAnchor anchor3 = constraintWidget.getAnchor(ConstraintAnchor.Type.BASELINE);
if (anchor3.getDependents() != null && anchor3.hasFinalValue()) {
int finalValue3 = anchor3.getFinalValue();
Iterator<ConstraintAnchor> it3 = anchor3.getDependents().iterator();
while (it3.hasNext()) {
ConstraintAnchor next3 = it3.next();
ConstraintWidget constraintWidget4 = next3.mOwner;
boolean canMeasure3 = canMeasure(constraintWidget4);
if (constraintWidget4.isMeasureRequested() && canMeasure3) {
ConstraintWidgetContainer.measure(constraintWidget4, measurer, new BasicMeasure.Measure(), BasicMeasure.Measure.SELF_DIMENSIONS);
}
if (constraintWidget4.getVerticalDimensionBehaviour() != ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT || canMeasure3) {
if (!constraintWidget4.isMeasureRequested() && next3 == constraintWidget4.mBaseline) {
constraintWidget4.setFinalBaseline(finalValue3);
verticalSolvingPass(constraintWidget4, measurer);
}
}
}
}
}
}
}

View file

@ -1,356 +0,0 @@
package androidx.constraintlayout.solver.widgets.analyzer;
import androidx.constraintlayout.solver.Metrics;
import androidx.constraintlayout.solver.widgets.Barrier;
import androidx.constraintlayout.solver.widgets.ConstraintAnchor;
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
import androidx.constraintlayout.solver.widgets.ConstraintWidgetContainer;
import androidx.constraintlayout.solver.widgets.Flow;
import androidx.constraintlayout.solver.widgets.Guideline;
import androidx.constraintlayout.solver.widgets.HelperWidget;
import androidx.constraintlayout.solver.widgets.analyzer.BasicMeasure;
import java.util.ArrayList;
import java.util.Iterator;
public class Grouping {
private static final boolean DEBUG = false;
private static final boolean DEBUG_GROUPING = false;
public static WidgetGroup findDependents(ConstraintWidget constraintWidget, int i, ArrayList<WidgetGroup> arrayList, WidgetGroup widgetGroup) {
int findGroupInDependents;
int i2 = i == 0 ? constraintWidget.horizontalGroup : constraintWidget.verticalGroup;
int i3 = 0;
if (i2 != -1 && (widgetGroup == null || i2 != widgetGroup.f23id)) {
int i4 = 0;
while (true) {
if (i4 >= arrayList.size()) {
break;
}
WidgetGroup widgetGroup2 = arrayList.get(i4);
if (widgetGroup2.getId() == i2) {
if (widgetGroup != null) {
widgetGroup.moveTo(i, widgetGroup2);
arrayList.remove(widgetGroup);
}
widgetGroup = widgetGroup2;
} else {
i4++;
}
}
} else if (i2 != -1) {
return widgetGroup;
}
if (widgetGroup == null) {
if ((constraintWidget instanceof HelperWidget) && (findGroupInDependents = ((HelperWidget) constraintWidget).findGroupInDependents(i)) != -1) {
int i5 = 0;
while (true) {
if (i5 >= arrayList.size()) {
break;
}
WidgetGroup widgetGroup3 = arrayList.get(i5);
if (widgetGroup3.getId() == findGroupInDependents) {
widgetGroup = widgetGroup3;
break;
}
i5++;
}
}
if (widgetGroup == null) {
widgetGroup = new WidgetGroup(i);
}
arrayList.add(widgetGroup);
}
if (widgetGroup.add(constraintWidget)) {
if (constraintWidget instanceof Guideline) {
Guideline guideline = (Guideline) constraintWidget;
ConstraintAnchor anchor = guideline.getAnchor();
if (guideline.getOrientation() == 0) {
i3 = 1;
}
anchor.findDependents(i3, arrayList, widgetGroup);
}
if (i == 0) {
constraintWidget.horizontalGroup = widgetGroup.getId();
constraintWidget.mLeft.findDependents(i, arrayList, widgetGroup);
constraintWidget.mRight.findDependents(i, arrayList, widgetGroup);
} else {
constraintWidget.verticalGroup = widgetGroup.getId();
constraintWidget.mTop.findDependents(i, arrayList, widgetGroup);
constraintWidget.mBaseline.findDependents(i, arrayList, widgetGroup);
constraintWidget.mBottom.findDependents(i, arrayList, widgetGroup);
}
constraintWidget.mCenter.findDependents(i, arrayList, widgetGroup);
}
return widgetGroup;
}
private static WidgetGroup findGroup(ArrayList<WidgetGroup> arrayList, int i) {
int size = arrayList.size();
for (int i2 = 0; i2 < size; i2++) {
WidgetGroup widgetGroup = arrayList.get(i2);
if (i == widgetGroup.f23id) {
return widgetGroup;
}
}
return null;
}
/* JADX WARNING: Removed duplicated region for block: B:178:0x0352 */
/* JADX WARNING: Removed duplicated region for block: B:189:0x038c */
/* JADX WARNING: Removed duplicated region for block: B:192:0x0390 A[ADDED_TO_REGION] */
public static boolean simpleSolvingPass(ConstraintWidgetContainer constraintWidgetContainer, BasicMeasure.Measurer measurer) {
WidgetGroup widgetGroup;
WidgetGroup widgetGroup2;
ArrayList<ConstraintWidget> children = constraintWidgetContainer.getChildren();
int size = children.size();
for (int i = 0; i < size; i++) {
ConstraintWidget constraintWidget = children.get(i);
if (!validInGroup(constraintWidgetContainer.getHorizontalDimensionBehaviour(), constraintWidgetContainer.getVerticalDimensionBehaviour(), constraintWidget.getHorizontalDimensionBehaviour(), constraintWidget.getVerticalDimensionBehaviour()) || (constraintWidget instanceof Flow)) {
return false;
}
}
Metrics metrics = constraintWidgetContainer.mMetrics;
if (metrics != null) {
metrics.grouping++;
}
ArrayList arrayList = null;
ArrayList arrayList2 = null;
ArrayList arrayList3 = null;
ArrayList arrayList4 = null;
ArrayList arrayList5 = null;
ArrayList arrayList6 = null;
for (int i2 = 0; i2 < size; i2++) {
ConstraintWidget constraintWidget2 = children.get(i2);
if (!validInGroup(constraintWidgetContainer.getHorizontalDimensionBehaviour(), constraintWidgetContainer.getVerticalDimensionBehaviour(), constraintWidget2.getHorizontalDimensionBehaviour(), constraintWidget2.getVerticalDimensionBehaviour())) {
ConstraintWidgetContainer.measure(constraintWidget2, measurer, constraintWidgetContainer.mMeasure, BasicMeasure.Measure.SELF_DIMENSIONS);
}
boolean z2 = constraintWidget2 instanceof Guideline;
if (z2) {
Guideline guideline = (Guideline) constraintWidget2;
if (guideline.getOrientation() == 0) {
if (arrayList3 == null) {
arrayList3 = new ArrayList();
}
arrayList3.add(guideline);
}
if (guideline.getOrientation() == 1) {
if (arrayList == null) {
arrayList = new ArrayList();
}
arrayList.add(guideline);
}
}
if (constraintWidget2 instanceof HelperWidget) {
if (constraintWidget2 instanceof Barrier) {
Barrier barrier = (Barrier) constraintWidget2;
if (barrier.getOrientation() == 0) {
if (arrayList2 == null) {
arrayList2 = new ArrayList();
}
arrayList2.add(barrier);
}
if (barrier.getOrientation() == 1) {
if (arrayList4 == null) {
arrayList4 = new ArrayList();
}
arrayList4.add(barrier);
}
} else {
HelperWidget helperWidget = (HelperWidget) constraintWidget2;
if (arrayList2 == null) {
arrayList2 = new ArrayList();
}
arrayList2.add(helperWidget);
if (arrayList4 == null) {
arrayList4 = new ArrayList();
}
arrayList4.add(helperWidget);
}
}
if (constraintWidget2.mLeft.mTarget == null && constraintWidget2.mRight.mTarget == null && !z2 && !(constraintWidget2 instanceof Barrier)) {
if (arrayList5 == null) {
arrayList5 = new ArrayList();
}
arrayList5.add(constraintWidget2);
}
if (constraintWidget2.mTop.mTarget == null && constraintWidget2.mBottom.mTarget == null && constraintWidget2.mBaseline.mTarget == null && !z2 && !(constraintWidget2 instanceof Barrier)) {
if (arrayList6 == null) {
arrayList6 = new ArrayList();
}
arrayList6.add(constraintWidget2);
}
}
ArrayList<WidgetGroup> arrayList7 = new ArrayList<>();
if (arrayList != null) {
Iterator it = arrayList.iterator();
while (it.hasNext()) {
findDependents((Guideline) it.next(), 0, arrayList7, null);
}
}
int i3 = 0;
WidgetGroup widgetGroup3 = null;
if (arrayList2 != null) {
Iterator it2 = arrayList2.iterator();
while (it2.hasNext()) {
HelperWidget helperWidget2 = (HelperWidget) it2.next();
WidgetGroup findDependents = findDependents(helperWidget2, i3, arrayList7, widgetGroup3);
helperWidget2.addDependents(arrayList7, i3, findDependents);
findDependents.cleanup(arrayList7);
i3 = 0;
widgetGroup3 = null;
}
}
ConstraintAnchor anchor = constraintWidgetContainer.getAnchor(ConstraintAnchor.Type.LEFT);
if (anchor.getDependents() != null) {
Iterator<ConstraintAnchor> it3 = anchor.getDependents().iterator();
while (it3.hasNext()) {
findDependents(it3.next().mOwner, 0, arrayList7, null);
}
}
ConstraintAnchor anchor2 = constraintWidgetContainer.getAnchor(ConstraintAnchor.Type.RIGHT);
if (anchor2.getDependents() != null) {
Iterator<ConstraintAnchor> it4 = anchor2.getDependents().iterator();
while (it4.hasNext()) {
findDependents(it4.next().mOwner, 0, arrayList7, null);
}
}
ConstraintAnchor anchor3 = constraintWidgetContainer.getAnchor(ConstraintAnchor.Type.CENTER);
if (anchor3.getDependents() != null) {
Iterator<ConstraintAnchor> it5 = anchor3.getDependents().iterator();
while (it5.hasNext()) {
findDependents(it5.next().mOwner, 0, arrayList7, null);
}
}
WidgetGroup widgetGroup4 = null;
if (arrayList5 != null) {
Iterator it6 = arrayList5.iterator();
while (it6.hasNext()) {
findDependents((ConstraintWidget) it6.next(), 0, arrayList7, null);
}
}
if (arrayList3 != null) {
Iterator it7 = arrayList3.iterator();
while (it7.hasNext()) {
findDependents((Guideline) it7.next(), 1, arrayList7, null);
}
}
if (arrayList4 != null) {
Iterator it8 = arrayList4.iterator();
while (it8.hasNext()) {
HelperWidget helperWidget3 = (HelperWidget) it8.next();
WidgetGroup findDependents2 = findDependents(helperWidget3, 1, arrayList7, widgetGroup4);
helperWidget3.addDependents(arrayList7, 1, findDependents2);
findDependents2.cleanup(arrayList7);
widgetGroup4 = null;
}
}
ConstraintAnchor anchor4 = constraintWidgetContainer.getAnchor(ConstraintAnchor.Type.TOP);
if (anchor4.getDependents() != null) {
Iterator<ConstraintAnchor> it9 = anchor4.getDependents().iterator();
while (it9.hasNext()) {
findDependents(it9.next().mOwner, 1, arrayList7, null);
}
}
ConstraintAnchor anchor5 = constraintWidgetContainer.getAnchor(ConstraintAnchor.Type.BASELINE);
if (anchor5.getDependents() != null) {
Iterator<ConstraintAnchor> it10 = anchor5.getDependents().iterator();
while (it10.hasNext()) {
findDependents(it10.next().mOwner, 1, arrayList7, null);
}
}
ConstraintAnchor anchor6 = constraintWidgetContainer.getAnchor(ConstraintAnchor.Type.BOTTOM);
if (anchor6.getDependents() != null) {
Iterator<ConstraintAnchor> it11 = anchor6.getDependents().iterator();
while (it11.hasNext()) {
findDependents(it11.next().mOwner, 1, arrayList7, null);
}
}
ConstraintAnchor anchor7 = constraintWidgetContainer.getAnchor(ConstraintAnchor.Type.CENTER);
if (anchor7.getDependents() != null) {
Iterator<ConstraintAnchor> it12 = anchor7.getDependents().iterator();
while (it12.hasNext()) {
findDependents(it12.next().mOwner, 1, arrayList7, null);
}
}
if (arrayList6 != null) {
Iterator it13 = arrayList6.iterator();
while (it13.hasNext()) {
findDependents((ConstraintWidget) it13.next(), 1, arrayList7, null);
}
}
for (int i4 = 0; i4 < size; i4++) {
ConstraintWidget constraintWidget3 = children.get(i4);
if (constraintWidget3.oppositeDimensionsTied()) {
WidgetGroup findGroup = findGroup(arrayList7, constraintWidget3.horizontalGroup);
WidgetGroup findGroup2 = findGroup(arrayList7, constraintWidget3.verticalGroup);
if (!(findGroup == null || findGroup2 == null)) {
findGroup.moveTo(0, findGroup2);
findGroup2.setOrientation(2);
arrayList7.remove(findGroup);
}
}
}
if (arrayList7.size() <= 1) {
return false;
}
if (constraintWidgetContainer.getHorizontalDimensionBehaviour() == ConstraintWidget.DimensionBehaviour.WRAP_CONTENT) {
Iterator<WidgetGroup> it14 = arrayList7.iterator();
widgetGroup = null;
int i5 = 0;
while (it14.hasNext()) {
WidgetGroup next = it14.next();
if (next.getOrientation() != 1) {
next.setAuthoritative(false);
int measureWrap = next.measureWrap(constraintWidgetContainer.getSystem(), 0);
if (measureWrap > i5) {
widgetGroup = next;
i5 = measureWrap;
}
}
}
if (widgetGroup != null) {
constraintWidgetContainer.setHorizontalDimensionBehaviour(ConstraintWidget.DimensionBehaviour.FIXED);
constraintWidgetContainer.setWidth(i5);
widgetGroup.setAuthoritative(true);
if (constraintWidgetContainer.getVerticalDimensionBehaviour() != ConstraintWidget.DimensionBehaviour.WRAP_CONTENT) {
Iterator<WidgetGroup> it15 = arrayList7.iterator();
WidgetGroup widgetGroup5 = null;
int i6 = 0;
while (it15.hasNext()) {
WidgetGroup next2 = it15.next();
if (next2.getOrientation() != 0) {
next2.setAuthoritative(false);
int measureWrap2 = next2.measureWrap(constraintWidgetContainer.getSystem(), 1);
if (measureWrap2 > i6) {
widgetGroup5 = next2;
i6 = measureWrap2;
}
}
}
if (widgetGroup5 != null) {
constraintWidgetContainer.setVerticalDimensionBehaviour(ConstraintWidget.DimensionBehaviour.FIXED);
constraintWidgetContainer.setHeight(i6);
widgetGroup5.setAuthoritative(true);
widgetGroup2 = widgetGroup5;
return widgetGroup == null || widgetGroup2 != null;
}
}
widgetGroup2 = null;
if (widgetGroup == null) {
}
}
}
widgetGroup = null;
if (constraintWidgetContainer.getVerticalDimensionBehaviour() != ConstraintWidget.DimensionBehaviour.WRAP_CONTENT) {
}
widgetGroup2 = null;
if (widgetGroup == null) {
}
}
public static boolean validInGroup(ConstraintWidget.DimensionBehaviour dimensionBehaviour, ConstraintWidget.DimensionBehaviour dimensionBehaviour2, ConstraintWidget.DimensionBehaviour dimensionBehaviour3, ConstraintWidget.DimensionBehaviour dimensionBehaviour4) {
ConstraintWidget.DimensionBehaviour dimensionBehaviour5;
ConstraintWidget.DimensionBehaviour dimensionBehaviour6;
ConstraintWidget.DimensionBehaviour dimensionBehaviour7 = ConstraintWidget.DimensionBehaviour.FIXED;
return (dimensionBehaviour3 == dimensionBehaviour7 || dimensionBehaviour3 == (dimensionBehaviour6 = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT) || (dimensionBehaviour3 == ConstraintWidget.DimensionBehaviour.MATCH_PARENT && dimensionBehaviour != dimensionBehaviour6)) || (dimensionBehaviour4 == dimensionBehaviour7 || dimensionBehaviour4 == (dimensionBehaviour5 = ConstraintWidget.DimensionBehaviour.WRAP_CONTENT) || (dimensionBehaviour4 == ConstraintWidget.DimensionBehaviour.MATCH_PARENT && dimensionBehaviour2 != dimensionBehaviour5));
}
}

View file

@ -1,93 +0,0 @@
package androidx.constraintlayout.solver.widgets.analyzer;
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
import androidx.constraintlayout.solver.widgets.Guideline;
public class GuidelineReference extends WidgetRun {
public GuidelineReference(ConstraintWidget constraintWidget) {
super(constraintWidget);
constraintWidget.horizontalRun.clear();
constraintWidget.verticalRun.clear();
this.orientation = ((Guideline) constraintWidget).getOrientation();
}
private void addDependency(DependencyNode dependencyNode) {
this.start.dependencies.add(dependencyNode);
dependencyNode.targets.add(this.start);
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public void apply() {
Guideline guideline = (Guideline) this.widget;
int relativeBegin = guideline.getRelativeBegin();
int relativeEnd = guideline.getRelativeEnd();
guideline.getRelativePercent();
if (guideline.getOrientation() == 1) {
if (relativeBegin != -1) {
this.start.targets.add(this.widget.mParent.horizontalRun.start);
this.widget.mParent.horizontalRun.start.dependencies.add(this.start);
this.start.margin = relativeBegin;
} else if (relativeEnd != -1) {
this.start.targets.add(this.widget.mParent.horizontalRun.end);
this.widget.mParent.horizontalRun.end.dependencies.add(this.start);
this.start.margin = -relativeEnd;
} else {
DependencyNode dependencyNode = this.start;
dependencyNode.delegateToWidgetRun = true;
dependencyNode.targets.add(this.widget.mParent.horizontalRun.end);
this.widget.mParent.horizontalRun.end.dependencies.add(this.start);
}
addDependency(this.widget.horizontalRun.start);
addDependency(this.widget.horizontalRun.end);
return;
}
if (relativeBegin != -1) {
this.start.targets.add(this.widget.mParent.verticalRun.start);
this.widget.mParent.verticalRun.start.dependencies.add(this.start);
this.start.margin = relativeBegin;
} else if (relativeEnd != -1) {
this.start.targets.add(this.widget.mParent.verticalRun.end);
this.widget.mParent.verticalRun.end.dependencies.add(this.start);
this.start.margin = -relativeEnd;
} else {
DependencyNode dependencyNode2 = this.start;
dependencyNode2.delegateToWidgetRun = true;
dependencyNode2.targets.add(this.widget.mParent.verticalRun.end);
this.widget.mParent.verticalRun.end.dependencies.add(this.start);
}
addDependency(this.widget.verticalRun.start);
addDependency(this.widget.verticalRun.end);
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public void applyToWidget() {
if (((Guideline) this.widget).getOrientation() == 1) {
this.widget.setX(this.start.value);
} else {
this.widget.setY(this.start.value);
}
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public void clear() {
this.start.clear();
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public void reset() {
this.start.resolved = false;
this.end.resolved = false;
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public boolean supportsWrapComputation() {
return false;
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun, androidx.constraintlayout.solver.widgets.analyzer.Dependency
public void update(Dependency dependency) {
DependencyNode dependencyNode = this.start;
if (dependencyNode.readyToSolve && !dependencyNode.resolved) {
this.start.resolve((int) ((((Guideline) this.widget).getRelativePercent() * ((float) dependencyNode.targets.get(0).value)) + 0.5f));
}
}
}

View file

@ -1,131 +0,0 @@
package androidx.constraintlayout.solver.widgets.analyzer;
import androidx.constraintlayout.solver.widgets.Barrier;
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
import androidx.constraintlayout.solver.widgets.analyzer.DependencyNode;
public class HelperReferences extends WidgetRun {
public HelperReferences(ConstraintWidget constraintWidget) {
super(constraintWidget);
}
private void addDependency(DependencyNode dependencyNode) {
this.start.dependencies.add(dependencyNode);
dependencyNode.targets.add(this.start);
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public void apply() {
ConstraintWidget constraintWidget = this.widget;
if (constraintWidget instanceof Barrier) {
this.start.delegateToWidgetRun = true;
Barrier barrier = (Barrier) constraintWidget;
int barrierType = barrier.getBarrierType();
boolean allowsGoneWidget = barrier.allowsGoneWidget();
int i = 0;
if (barrierType == 0) {
this.start.type = DependencyNode.Type.LEFT;
while (i < barrier.mWidgetsCount) {
ConstraintWidget constraintWidget2 = barrier.mWidgets[i];
if (allowsGoneWidget || constraintWidget2.getVisibility() != 8) {
DependencyNode dependencyNode = constraintWidget2.horizontalRun.start;
dependencyNode.dependencies.add(this.start);
this.start.targets.add(dependencyNode);
}
i++;
}
addDependency(this.widget.horizontalRun.start);
addDependency(this.widget.horizontalRun.end);
} else if (barrierType == 1) {
this.start.type = DependencyNode.Type.RIGHT;
while (i < barrier.mWidgetsCount) {
ConstraintWidget constraintWidget3 = barrier.mWidgets[i];
if (allowsGoneWidget || constraintWidget3.getVisibility() != 8) {
DependencyNode dependencyNode2 = constraintWidget3.horizontalRun.end;
dependencyNode2.dependencies.add(this.start);
this.start.targets.add(dependencyNode2);
}
i++;
}
addDependency(this.widget.horizontalRun.start);
addDependency(this.widget.horizontalRun.end);
} else if (barrierType == 2) {
this.start.type = DependencyNode.Type.TOP;
while (i < barrier.mWidgetsCount) {
ConstraintWidget constraintWidget4 = barrier.mWidgets[i];
if (allowsGoneWidget || constraintWidget4.getVisibility() != 8) {
DependencyNode dependencyNode3 = constraintWidget4.verticalRun.start;
dependencyNode3.dependencies.add(this.start);
this.start.targets.add(dependencyNode3);
}
i++;
}
addDependency(this.widget.verticalRun.start);
addDependency(this.widget.verticalRun.end);
} else if (barrierType == 3) {
this.start.type = DependencyNode.Type.BOTTOM;
while (i < barrier.mWidgetsCount) {
ConstraintWidget constraintWidget5 = barrier.mWidgets[i];
if (allowsGoneWidget || constraintWidget5.getVisibility() != 8) {
DependencyNode dependencyNode4 = constraintWidget5.verticalRun.end;
dependencyNode4.dependencies.add(this.start);
this.start.targets.add(dependencyNode4);
}
i++;
}
addDependency(this.widget.verticalRun.start);
addDependency(this.widget.verticalRun.end);
}
}
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public void applyToWidget() {
ConstraintWidget constraintWidget = this.widget;
if (constraintWidget instanceof Barrier) {
int barrierType = ((Barrier) constraintWidget).getBarrierType();
if (barrierType == 0 || barrierType == 1) {
this.widget.setX(this.start.value);
} else {
this.widget.setY(this.start.value);
}
}
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public void clear() {
this.runGroup = null;
this.start.clear();
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public void reset() {
this.start.resolved = false;
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public boolean supportsWrapComputation() {
return false;
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun, androidx.constraintlayout.solver.widgets.analyzer.Dependency
public void update(Dependency dependency) {
Barrier barrier = (Barrier) this.widget;
int barrierType = barrier.getBarrierType();
int i = 0;
int i2 = -1;
for (DependencyNode dependencyNode : this.start.targets) {
int i3 = dependencyNode.value;
if (i2 == -1 || i3 < i2) {
i2 = i3;
}
if (i < i3) {
i = i3;
}
}
if (barrierType == 0 || barrierType == 2) {
this.start.resolve(barrier.getMargin() + i2);
} else {
this.start.resolve(barrier.getMargin() + i);
}
}
}

View file

@ -1,465 +0,0 @@
package androidx.constraintlayout.solver.widgets.analyzer;
import androidx.constraintlayout.solver.widgets.ConstraintAnchor;
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
import androidx.constraintlayout.solver.widgets.Helper;
import androidx.constraintlayout.solver.widgets.analyzer.DependencyNode;
import androidx.constraintlayout.solver.widgets.analyzer.WidgetRun;
import c.d.b.a.a;
public class HorizontalWidgetRun extends WidgetRun {
private static int[] tempDimensions = new int[2];
/* renamed from: androidx.constraintlayout.solver.widgets.analyzer.HorizontalWidgetRun$1 reason: invalid class name */
public static /* synthetic */ class AnonymousClass1 {
public static final /* synthetic */ int[] $SwitchMap$androidx$constraintlayout$solver$widgets$analyzer$WidgetRun$RunType;
static {
WidgetRun.RunType.values();
int[] iArr = new int[4];
$SwitchMap$androidx$constraintlayout$solver$widgets$analyzer$WidgetRun$RunType = iArr;
try {
iArr[WidgetRun.RunType.START.ordinal()] = 1;
} catch (NoSuchFieldError unused) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$widgets$analyzer$WidgetRun$RunType[WidgetRun.RunType.END.ordinal()] = 2;
} catch (NoSuchFieldError unused2) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$widgets$analyzer$WidgetRun$RunType[WidgetRun.RunType.CENTER.ordinal()] = 3;
} catch (NoSuchFieldError unused3) {
}
}
}
public HorizontalWidgetRun(ConstraintWidget constraintWidget) {
super(constraintWidget);
this.start.type = DependencyNode.Type.LEFT;
this.end.type = DependencyNode.Type.RIGHT;
this.orientation = 0;
}
private void computeInsetRatio(int[] iArr, int i, int i2, int i3, int i4, float f, int i5) {
int i6 = i2 - i;
int i7 = i4 - i3;
if (i5 == -1) {
int i8 = (int) ((((float) i7) * f) + 0.5f);
int i9 = (int) ((((float) i6) / f) + 0.5f);
if (i8 <= i6 && i7 <= i7) {
iArr[0] = i8;
iArr[1] = i7;
} else if (i6 <= i6 && i9 <= i7) {
iArr[0] = i6;
iArr[1] = i9;
}
} else if (i5 == 0) {
iArr[0] = (int) ((((float) i7) * f) + 0.5f);
iArr[1] = i7;
} else if (i5 == 1) {
iArr[0] = i6;
iArr[1] = (int) ((((float) i6) * f) + 0.5f);
}
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public void apply() {
ConstraintWidget parent;
ConstraintWidget parent2;
ConstraintWidget constraintWidget = this.widget;
if (constraintWidget.measured) {
this.dimension.resolve(constraintWidget.getWidth());
}
if (!this.dimension.resolved) {
ConstraintWidget.DimensionBehaviour horizontalDimensionBehaviour = this.widget.getHorizontalDimensionBehaviour();
this.dimensionBehavior = horizontalDimensionBehaviour;
if (horizontalDimensionBehaviour != ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT) {
ConstraintWidget.DimensionBehaviour dimensionBehaviour = ConstraintWidget.DimensionBehaviour.MATCH_PARENT;
if (horizontalDimensionBehaviour == dimensionBehaviour && (((parent2 = this.widget.getParent()) != null && parent2.getHorizontalDimensionBehaviour() == ConstraintWidget.DimensionBehaviour.FIXED) || parent2.getHorizontalDimensionBehaviour() == dimensionBehaviour)) {
int width = (parent2.getWidth() - this.widget.mLeft.getMargin()) - this.widget.mRight.getMargin();
addTarget(this.start, parent2.horizontalRun.start, this.widget.mLeft.getMargin());
addTarget(this.end, parent2.horizontalRun.end, -this.widget.mRight.getMargin());
this.dimension.resolve(width);
return;
} else if (this.dimensionBehavior == ConstraintWidget.DimensionBehaviour.FIXED) {
this.dimension.resolve(this.widget.getWidth());
}
}
} else {
ConstraintWidget.DimensionBehaviour dimensionBehaviour2 = this.dimensionBehavior;
ConstraintWidget.DimensionBehaviour dimensionBehaviour3 = ConstraintWidget.DimensionBehaviour.MATCH_PARENT;
if (dimensionBehaviour2 == dimensionBehaviour3 && (((parent = this.widget.getParent()) != null && parent.getHorizontalDimensionBehaviour() == ConstraintWidget.DimensionBehaviour.FIXED) || parent.getHorizontalDimensionBehaviour() == dimensionBehaviour3)) {
addTarget(this.start, parent.horizontalRun.start, this.widget.mLeft.getMargin());
addTarget(this.end, parent.horizontalRun.end, -this.widget.mRight.getMargin());
return;
}
}
DimensionDependency dimensionDependency = this.dimension;
if (dimensionDependency.resolved) {
ConstraintWidget constraintWidget2 = this.widget;
if (constraintWidget2.measured) {
ConstraintAnchor[] constraintAnchorArr = constraintWidget2.mListAnchors;
if (constraintAnchorArr[0].mTarget == null || constraintAnchorArr[1].mTarget == null) {
if (constraintAnchorArr[0].mTarget != null) {
DependencyNode target = getTarget(constraintAnchorArr[0]);
if (target != null) {
addTarget(this.start, target, this.widget.mListAnchors[0].getMargin());
addTarget(this.end, this.start, this.dimension.value);
return;
}
return;
} else if (constraintAnchorArr[1].mTarget != null) {
DependencyNode target2 = getTarget(constraintAnchorArr[1]);
if (target2 != null) {
addTarget(this.end, target2, -this.widget.mListAnchors[1].getMargin());
addTarget(this.start, this.end, -this.dimension.value);
return;
}
return;
} else if (!(constraintWidget2 instanceof Helper) && constraintWidget2.getParent() != null && this.widget.getAnchor(ConstraintAnchor.Type.CENTER).mTarget == null) {
addTarget(this.start, this.widget.getParent().horizontalRun.start, this.widget.getX());
addTarget(this.end, this.start, this.dimension.value);
return;
} else {
return;
}
} else if (constraintWidget2.isInHorizontalChain()) {
this.start.margin = this.widget.mListAnchors[0].getMargin();
this.end.margin = -this.widget.mListAnchors[1].getMargin();
return;
} else {
DependencyNode target3 = getTarget(this.widget.mListAnchors[0]);
if (target3 != null) {
addTarget(this.start, target3, this.widget.mListAnchors[0].getMargin());
}
DependencyNode target4 = getTarget(this.widget.mListAnchors[1]);
if (target4 != null) {
addTarget(this.end, target4, -this.widget.mListAnchors[1].getMargin());
}
this.start.delegateToWidgetRun = true;
this.end.delegateToWidgetRun = true;
return;
}
}
}
if (this.dimensionBehavior == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT) {
ConstraintWidget constraintWidget3 = this.widget;
int i = constraintWidget3.mMatchConstraintDefaultWidth;
if (i == 2) {
ConstraintWidget parent3 = constraintWidget3.getParent();
if (parent3 != null) {
DimensionDependency dimensionDependency2 = parent3.verticalRun.dimension;
this.dimension.targets.add(dimensionDependency2);
dimensionDependency2.dependencies.add(this.dimension);
DimensionDependency dimensionDependency3 = this.dimension;
dimensionDependency3.delegateToWidgetRun = true;
dimensionDependency3.dependencies.add(this.start);
this.dimension.dependencies.add(this.end);
}
} else if (i == 3) {
if (constraintWidget3.mMatchConstraintDefaultHeight == 3) {
this.start.updateDelegate = this;
this.end.updateDelegate = this;
VerticalWidgetRun verticalWidgetRun = constraintWidget3.verticalRun;
verticalWidgetRun.start.updateDelegate = this;
verticalWidgetRun.end.updateDelegate = this;
dimensionDependency.updateDelegate = this;
if (constraintWidget3.isInVerticalChain()) {
this.dimension.targets.add(this.widget.verticalRun.dimension);
this.widget.verticalRun.dimension.dependencies.add(this.dimension);
VerticalWidgetRun verticalWidgetRun2 = this.widget.verticalRun;
verticalWidgetRun2.dimension.updateDelegate = this;
this.dimension.targets.add(verticalWidgetRun2.start);
this.dimension.targets.add(this.widget.verticalRun.end);
this.widget.verticalRun.start.dependencies.add(this.dimension);
this.widget.verticalRun.end.dependencies.add(this.dimension);
} else if (this.widget.isInHorizontalChain()) {
this.widget.verticalRun.dimension.targets.add(this.dimension);
this.dimension.dependencies.add(this.widget.verticalRun.dimension);
} else {
this.widget.verticalRun.dimension.targets.add(this.dimension);
}
} else {
DimensionDependency dimensionDependency4 = constraintWidget3.verticalRun.dimension;
dimensionDependency.targets.add(dimensionDependency4);
dimensionDependency4.dependencies.add(this.dimension);
this.widget.verticalRun.start.dependencies.add(this.dimension);
this.widget.verticalRun.end.dependencies.add(this.dimension);
DimensionDependency dimensionDependency5 = this.dimension;
dimensionDependency5.delegateToWidgetRun = true;
dimensionDependency5.dependencies.add(this.start);
this.dimension.dependencies.add(this.end);
this.start.targets.add(this.dimension);
this.end.targets.add(this.dimension);
}
}
}
ConstraintWidget constraintWidget4 = this.widget;
ConstraintAnchor[] constraintAnchorArr2 = constraintWidget4.mListAnchors;
if (constraintAnchorArr2[0].mTarget == null || constraintAnchorArr2[1].mTarget == null) {
if (constraintAnchorArr2[0].mTarget != null) {
DependencyNode target5 = getTarget(constraintAnchorArr2[0]);
if (target5 != null) {
addTarget(this.start, target5, this.widget.mListAnchors[0].getMargin());
addTarget(this.end, this.start, 1, this.dimension);
}
} else if (constraintAnchorArr2[1].mTarget != null) {
DependencyNode target6 = getTarget(constraintAnchorArr2[1]);
if (target6 != null) {
addTarget(this.end, target6, -this.widget.mListAnchors[1].getMargin());
addTarget(this.start, this.end, -1, this.dimension);
}
} else if (!(constraintWidget4 instanceof Helper) && constraintWidget4.getParent() != null) {
addTarget(this.start, this.widget.getParent().horizontalRun.start, this.widget.getX());
addTarget(this.end, this.start, 1, this.dimension);
}
} else if (constraintWidget4.isInHorizontalChain()) {
this.start.margin = this.widget.mListAnchors[0].getMargin();
this.end.margin = -this.widget.mListAnchors[1].getMargin();
} else {
DependencyNode target7 = getTarget(this.widget.mListAnchors[0]);
DependencyNode target8 = getTarget(this.widget.mListAnchors[1]);
target7.addDependency(this);
target8.addDependency(this);
this.mRunType = WidgetRun.RunType.CENTER;
}
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public void applyToWidget() {
DependencyNode dependencyNode = this.start;
if (dependencyNode.resolved) {
this.widget.setX(dependencyNode.value);
}
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public void clear() {
this.runGroup = null;
this.start.clear();
this.end.clear();
this.dimension.clear();
this.resolved = false;
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public void reset() {
this.resolved = false;
this.start.clear();
this.start.resolved = false;
this.end.clear();
this.end.resolved = false;
this.dimension.resolved = false;
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public boolean supportsWrapComputation() {
return this.dimensionBehavior != ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT || this.widget.mMatchConstraintDefaultWidth == 0;
}
public String toString() {
StringBuilder K = a.K("HorizontalRun ");
K.append(this.widget.getDebugName());
return K.toString();
}
/* JADX WARNING: Code restructure failed: missing block: B:103:0x02ba, code lost:
if (r14 != 1) goto L_0x0322;
*/
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun, androidx.constraintlayout.solver.widgets.analyzer.Dependency
public void update(Dependency dependency) {
int i;
float f;
float f2;
int ordinal = this.mRunType.ordinal();
if (ordinal == 1) {
updateRunStart(dependency);
} else if (ordinal == 2) {
updateRunEnd(dependency);
} else if (ordinal == 3) {
ConstraintWidget constraintWidget = this.widget;
updateRunCenter(dependency, constraintWidget.mLeft, constraintWidget.mRight, 0);
return;
}
if (!this.dimension.resolved && this.dimensionBehavior == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT) {
ConstraintWidget constraintWidget2 = this.widget;
int i2 = constraintWidget2.mMatchConstraintDefaultWidth;
if (i2 == 2) {
ConstraintWidget parent = constraintWidget2.getParent();
if (parent != null) {
DimensionDependency dimensionDependency = parent.horizontalRun.dimension;
if (dimensionDependency.resolved) {
this.dimension.resolve((int) ((((float) dimensionDependency.value) * this.widget.mMatchConstraintPercentWidth) + 0.5f));
}
}
} else if (i2 == 3) {
int i3 = constraintWidget2.mMatchConstraintDefaultHeight;
if (i3 == 0 || i3 == 3) {
VerticalWidgetRun verticalWidgetRun = constraintWidget2.verticalRun;
DependencyNode dependencyNode = verticalWidgetRun.start;
DependencyNode dependencyNode2 = verticalWidgetRun.end;
boolean z2 = constraintWidget2.mLeft.mTarget != null;
boolean z3 = constraintWidget2.mTop.mTarget != null;
boolean z4 = constraintWidget2.mRight.mTarget != null;
boolean z5 = constraintWidget2.mBottom.mTarget != null;
int dimensionRatioSide = constraintWidget2.getDimensionRatioSide();
if (z2 && z3 && z4 && z5) {
float dimensionRatio = this.widget.getDimensionRatio();
if (!dependencyNode.resolved || !dependencyNode2.resolved) {
DependencyNode dependencyNode3 = this.start;
if (dependencyNode3.resolved) {
DependencyNode dependencyNode4 = this.end;
if (dependencyNode4.resolved) {
if (dependencyNode.readyToSolve && dependencyNode2.readyToSolve) {
computeInsetRatio(tempDimensions, dependencyNode3.value + dependencyNode3.margin, dependencyNode4.value - dependencyNode4.margin, dependencyNode.targets.get(0).value + dependencyNode.margin, dependencyNode2.targets.get(0).value - dependencyNode2.margin, dimensionRatio, dimensionRatioSide);
this.dimension.resolve(tempDimensions[0]);
this.widget.verticalRun.dimension.resolve(tempDimensions[1]);
} else {
return;
}
}
}
DependencyNode dependencyNode5 = this.start;
if (dependencyNode5.readyToSolve && this.end.readyToSolve && dependencyNode.readyToSolve && dependencyNode2.readyToSolve) {
computeInsetRatio(tempDimensions, dependencyNode5.targets.get(0).value + this.start.margin, this.end.targets.get(0).value - this.end.margin, dependencyNode.targets.get(0).value + dependencyNode.margin, dependencyNode2.targets.get(0).value - dependencyNode2.margin, dimensionRatio, dimensionRatioSide);
this.dimension.resolve(tempDimensions[0]);
this.widget.verticalRun.dimension.resolve(tempDimensions[1]);
} else {
return;
}
} else {
DependencyNode dependencyNode6 = this.start;
if (dependencyNode6.readyToSolve && this.end.readyToSolve) {
computeInsetRatio(tempDimensions, dependencyNode6.targets.get(0).value + this.start.margin, this.end.targets.get(0).value - this.end.margin, dependencyNode.value + dependencyNode.margin, dependencyNode2.value - dependencyNode2.margin, dimensionRatio, dimensionRatioSide);
this.dimension.resolve(tempDimensions[0]);
this.widget.verticalRun.dimension.resolve(tempDimensions[1]);
return;
}
return;
}
} else if (!z2 || !z4) {
if (z3 && z5) {
if (dependencyNode.readyToSolve && dependencyNode2.readyToSolve) {
float dimensionRatio2 = this.widget.getDimensionRatio();
int i4 = dependencyNode.targets.get(0).value + dependencyNode.margin;
int i5 = dependencyNode2.targets.get(0).value - dependencyNode2.margin;
if (dimensionRatioSide != -1) {
if (dimensionRatioSide == 0) {
int limitedDimension = getLimitedDimension(i5 - i4, 1);
int i6 = (int) ((((float) limitedDimension) * dimensionRatio2) + 0.5f);
int limitedDimension2 = getLimitedDimension(i6, 0);
if (i6 != limitedDimension2) {
limitedDimension = (int) ((((float) limitedDimension2) / dimensionRatio2) + 0.5f);
}
this.dimension.resolve(limitedDimension2);
this.widget.verticalRun.dimension.resolve(limitedDimension);
}
}
int limitedDimension3 = getLimitedDimension(i5 - i4, 1);
int i7 = (int) ((((float) limitedDimension3) / dimensionRatio2) + 0.5f);
int limitedDimension4 = getLimitedDimension(i7, 0);
if (i7 != limitedDimension4) {
limitedDimension3 = (int) ((((float) limitedDimension4) * dimensionRatio2) + 0.5f);
}
this.dimension.resolve(limitedDimension4);
this.widget.verticalRun.dimension.resolve(limitedDimension3);
} else {
return;
}
}
} else if (this.start.readyToSolve && this.end.readyToSolve) {
float dimensionRatio3 = this.widget.getDimensionRatio();
int i8 = this.start.targets.get(0).value + this.start.margin;
int i9 = this.end.targets.get(0).value - this.end.margin;
if (dimensionRatioSide == -1 || dimensionRatioSide == 0) {
int limitedDimension5 = getLimitedDimension(i9 - i8, 0);
int i10 = (int) ((((float) limitedDimension5) * dimensionRatio3) + 0.5f);
int limitedDimension6 = getLimitedDimension(i10, 1);
if (i10 != limitedDimension6) {
limitedDimension5 = (int) ((((float) limitedDimension6) / dimensionRatio3) + 0.5f);
}
this.dimension.resolve(limitedDimension5);
this.widget.verticalRun.dimension.resolve(limitedDimension6);
} else if (dimensionRatioSide == 1) {
int limitedDimension7 = getLimitedDimension(i9 - i8, 0);
int i11 = (int) ((((float) limitedDimension7) / dimensionRatio3) + 0.5f);
int limitedDimension8 = getLimitedDimension(i11, 1);
if (i11 != limitedDimension8) {
limitedDimension7 = (int) ((((float) limitedDimension8) * dimensionRatio3) + 0.5f);
}
this.dimension.resolve(limitedDimension7);
this.widget.verticalRun.dimension.resolve(limitedDimension8);
}
} else {
return;
}
} else {
int dimensionRatioSide2 = constraintWidget2.getDimensionRatioSide();
if (dimensionRatioSide2 != -1) {
if (dimensionRatioSide2 == 0) {
ConstraintWidget constraintWidget3 = this.widget;
i = (int) ((((float) constraintWidget3.verticalRun.dimension.value) / constraintWidget3.getDimensionRatio()) + 0.5f);
} else if (dimensionRatioSide2 != 1) {
i = 0;
} else {
ConstraintWidget constraintWidget4 = this.widget;
f = (float) constraintWidget4.verticalRun.dimension.value;
f2 = constraintWidget4.getDimensionRatio();
}
this.dimension.resolve(i);
} else {
ConstraintWidget constraintWidget5 = this.widget;
f = (float) constraintWidget5.verticalRun.dimension.value;
f2 = constraintWidget5.getDimensionRatio();
}
i = (int) ((f2 * f) + 0.5f);
this.dimension.resolve(i);
}
}
}
DependencyNode dependencyNode7 = this.start;
if (dependencyNode7.readyToSolve) {
DependencyNode dependencyNode8 = this.end;
if (dependencyNode8.readyToSolve) {
if (!dependencyNode7.resolved || !dependencyNode8.resolved || !this.dimension.resolved) {
if (!this.dimension.resolved && this.dimensionBehavior == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT) {
ConstraintWidget constraintWidget6 = this.widget;
if (constraintWidget6.mMatchConstraintDefaultWidth == 0 && !constraintWidget6.isInHorizontalChain()) {
int i12 = this.start.targets.get(0).value;
DependencyNode dependencyNode9 = this.start;
int i13 = i12 + dependencyNode9.margin;
int i14 = this.end.targets.get(0).value + this.end.margin;
dependencyNode9.resolve(i13);
this.end.resolve(i14);
this.dimension.resolve(i14 - i13);
return;
}
}
if (!this.dimension.resolved && this.dimensionBehavior == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT && this.matchConstraintsType == 1 && this.start.targets.size() > 0 && this.end.targets.size() > 0) {
int min = Math.min((this.end.targets.get(0).value + this.end.margin) - (this.start.targets.get(0).value + this.start.margin), this.dimension.wrapValue);
ConstraintWidget constraintWidget7 = this.widget;
int i15 = constraintWidget7.mMatchConstraintMaxWidth;
int max = Math.max(constraintWidget7.mMatchConstraintMinWidth, min);
if (i15 > 0) {
max = Math.min(i15, max);
}
this.dimension.resolve(max);
}
if (this.dimension.resolved) {
DependencyNode dependencyNode10 = this.start.targets.get(0);
DependencyNode dependencyNode11 = this.end.targets.get(0);
int i16 = dependencyNode10.value + this.start.margin;
int i17 = dependencyNode11.value + this.end.margin;
float horizontalBiasPercent = this.widget.getHorizontalBiasPercent();
if (dependencyNode10 == dependencyNode11) {
i16 = dependencyNode10.value;
i17 = dependencyNode11.value;
horizontalBiasPercent = 0.5f;
}
this.start.resolve((int) ((((float) ((i17 - i16) - this.dimension.value)) * horizontalBiasPercent) + ((float) i16) + 0.5f));
this.end.resolve(this.start.value + this.dimension.value);
}
}
}
}
}
}

View file

@ -1,184 +0,0 @@
package androidx.constraintlayout.solver.widgets.analyzer;
import androidx.constraintlayout.solver.widgets.ConstraintWidgetContainer;
import c.d.b.a.a;
import java.util.ArrayList;
import java.util.Iterator;
public class RunGroup {
public static final int BASELINE = 2;
public static final int END = 1;
public static final int START = 0;
public static int index;
public int direction;
public boolean dual = false;
public WidgetRun firstRun = null;
public int groupIndex = 0;
public WidgetRun lastRun = null;
public int position = 0;
public ArrayList<WidgetRun> runs = new ArrayList<>();
public RunGroup(WidgetRun widgetRun, int i) {
int i2 = index;
this.groupIndex = i2;
index = i2 + 1;
this.firstRun = widgetRun;
this.lastRun = widgetRun;
this.direction = i;
}
private boolean defineTerminalWidget(WidgetRun widgetRun, int i) {
DependencyNode dependencyNode;
WidgetRun widgetRun2;
DependencyNode dependencyNode2;
WidgetRun widgetRun3;
if (!widgetRun.widget.isTerminalWidget[i]) {
return false;
}
for (Dependency dependency : widgetRun.start.dependencies) {
if ((dependency instanceof DependencyNode) && (widgetRun3 = (dependencyNode2 = (DependencyNode) dependency).run) != widgetRun && dependencyNode2 == widgetRun3.start) {
if (widgetRun instanceof ChainRun) {
Iterator<WidgetRun> it = ((ChainRun) widgetRun).widgets.iterator();
while (it.hasNext()) {
defineTerminalWidget(it.next(), i);
}
} else if (!(widgetRun instanceof HelperReferences)) {
widgetRun.widget.isTerminalWidget[i] = false;
}
defineTerminalWidget(dependencyNode2.run, i);
}
}
for (Dependency dependency2 : widgetRun.end.dependencies) {
if ((dependency2 instanceof DependencyNode) && (widgetRun2 = (dependencyNode = (DependencyNode) dependency2).run) != widgetRun && dependencyNode == widgetRun2.start) {
if (widgetRun instanceof ChainRun) {
Iterator<WidgetRun> it2 = ((ChainRun) widgetRun).widgets.iterator();
while (it2.hasNext()) {
defineTerminalWidget(it2.next(), i);
}
} else if (!(widgetRun instanceof HelperReferences)) {
widgetRun.widget.isTerminalWidget[i] = false;
}
defineTerminalWidget(dependencyNode.run, i);
}
}
return false;
}
private long traverseEnd(DependencyNode dependencyNode, long j) {
WidgetRun widgetRun = dependencyNode.run;
if (widgetRun instanceof HelperReferences) {
return j;
}
int size = dependencyNode.dependencies.size();
long j2 = j;
for (int i = 0; i < size; i++) {
Dependency dependency = dependencyNode.dependencies.get(i);
if (dependency instanceof DependencyNode) {
DependencyNode dependencyNode2 = (DependencyNode) dependency;
if (dependencyNode2.run != widgetRun) {
j2 = Math.min(j2, traverseEnd(dependencyNode2, ((long) dependencyNode2.margin) + j));
}
}
}
if (dependencyNode != widgetRun.end) {
return j2;
}
long wrapDimension = j - widgetRun.getWrapDimension();
return Math.min(Math.min(j2, traverseEnd(widgetRun.start, wrapDimension)), wrapDimension - ((long) widgetRun.start.margin));
}
private long traverseStart(DependencyNode dependencyNode, long j) {
WidgetRun widgetRun = dependencyNode.run;
if (widgetRun instanceof HelperReferences) {
return j;
}
int size = dependencyNode.dependencies.size();
long j2 = j;
for (int i = 0; i < size; i++) {
Dependency dependency = dependencyNode.dependencies.get(i);
if (dependency instanceof DependencyNode) {
DependencyNode dependencyNode2 = (DependencyNode) dependency;
if (dependencyNode2.run != widgetRun) {
j2 = Math.max(j2, traverseStart(dependencyNode2, ((long) dependencyNode2.margin) + j));
}
}
}
if (dependencyNode != widgetRun.start) {
return j2;
}
long wrapDimension = j + widgetRun.getWrapDimension();
return Math.max(Math.max(j2, traverseStart(widgetRun.end, wrapDimension)), wrapDimension - ((long) widgetRun.end.margin));
}
public void add(WidgetRun widgetRun) {
this.runs.add(widgetRun);
this.lastRun = widgetRun;
}
public long computeWrapSize(ConstraintWidgetContainer constraintWidgetContainer, int i) {
WidgetRun widgetRun = this.firstRun;
long j = 0;
if (widgetRun instanceof ChainRun) {
if (((ChainRun) widgetRun).orientation != i) {
return 0;
}
} else if (i == 0) {
if (!(widgetRun instanceof HorizontalWidgetRun)) {
return 0;
}
} else if (!(widgetRun instanceof VerticalWidgetRun)) {
return 0;
}
DependencyNode dependencyNode = (i == 0 ? constraintWidgetContainer.horizontalRun : constraintWidgetContainer.verticalRun).start;
DependencyNode dependencyNode2 = (i == 0 ? constraintWidgetContainer.horizontalRun : constraintWidgetContainer.verticalRun).end;
boolean contains = widgetRun.start.targets.contains(dependencyNode);
boolean contains2 = this.firstRun.end.targets.contains(dependencyNode2);
long wrapDimension = this.firstRun.getWrapDimension();
if (contains && contains2) {
long traverseStart = traverseStart(this.firstRun.start, 0);
long traverseEnd = traverseEnd(this.firstRun.end, 0);
long j2 = traverseStart - wrapDimension;
WidgetRun widgetRun2 = this.firstRun;
int i2 = widgetRun2.end.margin;
if (j2 >= ((long) (-i2))) {
j2 += (long) i2;
}
int i3 = widgetRun2.start.margin;
long j3 = ((-traverseEnd) - wrapDimension) - ((long) i3);
if (j3 >= ((long) i3)) {
j3 -= (long) i3;
}
float biasPercent = widgetRun2.widget.getBiasPercent(i);
if (biasPercent > 0.0f) {
j = (long) ((((float) j2) / (1.0f - biasPercent)) + (((float) j3) / biasPercent));
}
float f = (float) j;
long a = ((long) ((f * biasPercent) + 0.5f)) + wrapDimension + ((long) a.a(1.0f, biasPercent, f, 0.5f));
WidgetRun widgetRun3 = this.firstRun;
return (((long) widgetRun3.start.margin) + a) - ((long) widgetRun3.end.margin);
} else if (contains) {
DependencyNode dependencyNode3 = this.firstRun.start;
return Math.max(traverseStart(dependencyNode3, (long) dependencyNode3.margin), ((long) this.firstRun.start.margin) + wrapDimension);
} else if (contains2) {
DependencyNode dependencyNode4 = this.firstRun.end;
return Math.max(-traverseEnd(dependencyNode4, (long) dependencyNode4.margin), ((long) (-this.firstRun.end.margin)) + wrapDimension);
} else {
WidgetRun widgetRun4 = this.firstRun;
return (widgetRun4.getWrapDimension() + ((long) widgetRun4.start.margin)) - ((long) this.firstRun.end.margin);
}
}
public void defineTerminalWidgets(boolean z2, boolean z3) {
if (z2) {
WidgetRun widgetRun = this.firstRun;
if (widgetRun instanceof HorizontalWidgetRun) {
defineTerminalWidget(widgetRun, 0);
}
}
if (z3) {
WidgetRun widgetRun2 = this.firstRun;
if (widgetRun2 instanceof VerticalWidgetRun) {
defineTerminalWidget(widgetRun2, 1);
}
}
}
}

View file

@ -1,388 +0,0 @@
package androidx.constraintlayout.solver.widgets.analyzer;
import androidx.constraintlayout.solver.widgets.ConstraintAnchor;
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
import androidx.constraintlayout.solver.widgets.Helper;
import androidx.constraintlayout.solver.widgets.analyzer.DependencyNode;
import androidx.constraintlayout.solver.widgets.analyzer.WidgetRun;
import c.d.b.a.a;
public class VerticalWidgetRun extends WidgetRun {
public DependencyNode baseline;
public DimensionDependency baselineDimension = null;
/* renamed from: androidx.constraintlayout.solver.widgets.analyzer.VerticalWidgetRun$1 reason: invalid class name */
public static /* synthetic */ class AnonymousClass1 {
public static final /* synthetic */ int[] $SwitchMap$androidx$constraintlayout$solver$widgets$analyzer$WidgetRun$RunType;
static {
WidgetRun.RunType.values();
int[] iArr = new int[4];
$SwitchMap$androidx$constraintlayout$solver$widgets$analyzer$WidgetRun$RunType = iArr;
try {
iArr[WidgetRun.RunType.START.ordinal()] = 1;
} catch (NoSuchFieldError unused) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$widgets$analyzer$WidgetRun$RunType[WidgetRun.RunType.END.ordinal()] = 2;
} catch (NoSuchFieldError unused2) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$widgets$analyzer$WidgetRun$RunType[WidgetRun.RunType.CENTER.ordinal()] = 3;
} catch (NoSuchFieldError unused3) {
}
}
}
public VerticalWidgetRun(ConstraintWidget constraintWidget) {
super(constraintWidget);
DependencyNode dependencyNode = new DependencyNode(this);
this.baseline = dependencyNode;
this.start.type = DependencyNode.Type.TOP;
this.end.type = DependencyNode.Type.BOTTOM;
dependencyNode.type = DependencyNode.Type.BASELINE;
this.orientation = 1;
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public void apply() {
ConstraintWidget parent;
ConstraintWidget parent2;
ConstraintWidget constraintWidget = this.widget;
if (constraintWidget.measured) {
this.dimension.resolve(constraintWidget.getHeight());
}
if (!this.dimension.resolved) {
this.dimensionBehavior = this.widget.getVerticalDimensionBehaviour();
if (this.widget.hasBaseline()) {
this.baselineDimension = new BaselineDimensionDependency(this);
}
ConstraintWidget.DimensionBehaviour dimensionBehaviour = this.dimensionBehavior;
if (dimensionBehaviour != ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT) {
if (dimensionBehaviour == ConstraintWidget.DimensionBehaviour.MATCH_PARENT && (parent2 = this.widget.getParent()) != null && parent2.getVerticalDimensionBehaviour() == ConstraintWidget.DimensionBehaviour.FIXED) {
int height = (parent2.getHeight() - this.widget.mTop.getMargin()) - this.widget.mBottom.getMargin();
addTarget(this.start, parent2.verticalRun.start, this.widget.mTop.getMargin());
addTarget(this.end, parent2.verticalRun.end, -this.widget.mBottom.getMargin());
this.dimension.resolve(height);
return;
} else if (this.dimensionBehavior == ConstraintWidget.DimensionBehaviour.FIXED) {
this.dimension.resolve(this.widget.getHeight());
}
}
} else if (this.dimensionBehavior == ConstraintWidget.DimensionBehaviour.MATCH_PARENT && (parent = this.widget.getParent()) != null && parent.getVerticalDimensionBehaviour() == ConstraintWidget.DimensionBehaviour.FIXED) {
addTarget(this.start, parent.verticalRun.start, this.widget.mTop.getMargin());
addTarget(this.end, parent.verticalRun.end, -this.widget.mBottom.getMargin());
return;
}
DimensionDependency dimensionDependency = this.dimension;
boolean z2 = dimensionDependency.resolved;
if (z2) {
ConstraintWidget constraintWidget2 = this.widget;
if (constraintWidget2.measured) {
ConstraintAnchor[] constraintAnchorArr = constraintWidget2.mListAnchors;
if (constraintAnchorArr[2].mTarget != null && constraintAnchorArr[3].mTarget != null) {
if (constraintWidget2.isInVerticalChain()) {
this.start.margin = this.widget.mListAnchors[2].getMargin();
this.end.margin = -this.widget.mListAnchors[3].getMargin();
} else {
DependencyNode target = getTarget(this.widget.mListAnchors[2]);
if (target != null) {
addTarget(this.start, target, this.widget.mListAnchors[2].getMargin());
}
DependencyNode target2 = getTarget(this.widget.mListAnchors[3]);
if (target2 != null) {
addTarget(this.end, target2, -this.widget.mListAnchors[3].getMargin());
}
this.start.delegateToWidgetRun = true;
this.end.delegateToWidgetRun = true;
}
if (this.widget.hasBaseline()) {
addTarget(this.baseline, this.start, this.widget.getBaselineDistance());
return;
}
return;
} else if (constraintAnchorArr[2].mTarget != null) {
DependencyNode target3 = getTarget(constraintAnchorArr[2]);
if (target3 != null) {
addTarget(this.start, target3, this.widget.mListAnchors[2].getMargin());
addTarget(this.end, this.start, this.dimension.value);
if (this.widget.hasBaseline()) {
addTarget(this.baseline, this.start, this.widget.getBaselineDistance());
return;
}
return;
}
return;
} else if (constraintAnchorArr[3].mTarget != null) {
DependencyNode target4 = getTarget(constraintAnchorArr[3]);
if (target4 != null) {
addTarget(this.end, target4, -this.widget.mListAnchors[3].getMargin());
addTarget(this.start, this.end, -this.dimension.value);
}
if (this.widget.hasBaseline()) {
addTarget(this.baseline, this.start, this.widget.getBaselineDistance());
return;
}
return;
} else if (constraintAnchorArr[4].mTarget != null) {
DependencyNode target5 = getTarget(constraintAnchorArr[4]);
if (target5 != null) {
addTarget(this.baseline, target5, 0);
addTarget(this.start, this.baseline, -this.widget.getBaselineDistance());
addTarget(this.end, this.start, this.dimension.value);
return;
}
return;
} else if (!(constraintWidget2 instanceof Helper) && constraintWidget2.getParent() != null && this.widget.getAnchor(ConstraintAnchor.Type.CENTER).mTarget == null) {
addTarget(this.start, this.widget.getParent().verticalRun.start, this.widget.getY());
addTarget(this.end, this.start, this.dimension.value);
if (this.widget.hasBaseline()) {
addTarget(this.baseline, this.start, this.widget.getBaselineDistance());
return;
}
return;
} else {
return;
}
}
}
if (z2 || this.dimensionBehavior != ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT) {
dimensionDependency.addDependency(this);
} else {
ConstraintWidget constraintWidget3 = this.widget;
int i = constraintWidget3.mMatchConstraintDefaultHeight;
if (i == 2) {
ConstraintWidget parent3 = constraintWidget3.getParent();
if (parent3 != null) {
DimensionDependency dimensionDependency2 = parent3.verticalRun.dimension;
this.dimension.targets.add(dimensionDependency2);
dimensionDependency2.dependencies.add(this.dimension);
DimensionDependency dimensionDependency3 = this.dimension;
dimensionDependency3.delegateToWidgetRun = true;
dimensionDependency3.dependencies.add(this.start);
this.dimension.dependencies.add(this.end);
}
} else if (i == 3 && !constraintWidget3.isInVerticalChain()) {
ConstraintWidget constraintWidget4 = this.widget;
if (constraintWidget4.mMatchConstraintDefaultWidth != 3) {
DimensionDependency dimensionDependency4 = constraintWidget4.horizontalRun.dimension;
this.dimension.targets.add(dimensionDependency4);
dimensionDependency4.dependencies.add(this.dimension);
DimensionDependency dimensionDependency5 = this.dimension;
dimensionDependency5.delegateToWidgetRun = true;
dimensionDependency5.dependencies.add(this.start);
this.dimension.dependencies.add(this.end);
}
}
}
ConstraintWidget constraintWidget5 = this.widget;
ConstraintAnchor[] constraintAnchorArr2 = constraintWidget5.mListAnchors;
if (constraintAnchorArr2[2].mTarget != null && constraintAnchorArr2[3].mTarget != null) {
if (constraintWidget5.isInVerticalChain()) {
this.start.margin = this.widget.mListAnchors[2].getMargin();
this.end.margin = -this.widget.mListAnchors[3].getMargin();
} else {
DependencyNode target6 = getTarget(this.widget.mListAnchors[2]);
DependencyNode target7 = getTarget(this.widget.mListAnchors[3]);
target6.addDependency(this);
target7.addDependency(this);
this.mRunType = WidgetRun.RunType.CENTER;
}
if (this.widget.hasBaseline()) {
addTarget(this.baseline, this.start, 1, this.baselineDimension);
}
} else if (constraintAnchorArr2[2].mTarget != null) {
DependencyNode target8 = getTarget(constraintAnchorArr2[2]);
if (target8 != null) {
addTarget(this.start, target8, this.widget.mListAnchors[2].getMargin());
addTarget(this.end, this.start, 1, this.dimension);
if (this.widget.hasBaseline()) {
addTarget(this.baseline, this.start, 1, this.baselineDimension);
}
ConstraintWidget.DimensionBehaviour dimensionBehaviour2 = this.dimensionBehavior;
ConstraintWidget.DimensionBehaviour dimensionBehaviour3 = ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT;
if (dimensionBehaviour2 == dimensionBehaviour3 && this.widget.getDimensionRatio() > 0.0f) {
HorizontalWidgetRun horizontalWidgetRun = this.widget.horizontalRun;
if (horizontalWidgetRun.dimensionBehavior == dimensionBehaviour3) {
horizontalWidgetRun.dimension.dependencies.add(this.dimension);
this.dimension.targets.add(this.widget.horizontalRun.dimension);
this.dimension.updateDelegate = this;
}
}
}
} else if (constraintAnchorArr2[3].mTarget != null) {
DependencyNode target9 = getTarget(constraintAnchorArr2[3]);
if (target9 != null) {
addTarget(this.end, target9, -this.widget.mListAnchors[3].getMargin());
addTarget(this.start, this.end, -1, this.dimension);
if (this.widget.hasBaseline()) {
addTarget(this.baseline, this.start, 1, this.baselineDimension);
}
}
} else if (constraintAnchorArr2[4].mTarget != null) {
DependencyNode target10 = getTarget(constraintAnchorArr2[4]);
if (target10 != null) {
addTarget(this.baseline, target10, 0);
addTarget(this.start, this.baseline, -1, this.baselineDimension);
addTarget(this.end, this.start, 1, this.dimension);
}
} else if (!(constraintWidget5 instanceof Helper) && constraintWidget5.getParent() != null) {
addTarget(this.start, this.widget.getParent().verticalRun.start, this.widget.getY());
addTarget(this.end, this.start, 1, this.dimension);
if (this.widget.hasBaseline()) {
addTarget(this.baseline, this.start, 1, this.baselineDimension);
}
ConstraintWidget.DimensionBehaviour dimensionBehaviour4 = this.dimensionBehavior;
ConstraintWidget.DimensionBehaviour dimensionBehaviour5 = ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT;
if (dimensionBehaviour4 == dimensionBehaviour5 && this.widget.getDimensionRatio() > 0.0f) {
HorizontalWidgetRun horizontalWidgetRun2 = this.widget.horizontalRun;
if (horizontalWidgetRun2.dimensionBehavior == dimensionBehaviour5) {
horizontalWidgetRun2.dimension.dependencies.add(this.dimension);
this.dimension.targets.add(this.widget.horizontalRun.dimension);
this.dimension.updateDelegate = this;
}
}
}
if (this.dimension.targets.size() == 0) {
this.dimension.readyToSolve = true;
}
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public void applyToWidget() {
DependencyNode dependencyNode = this.start;
if (dependencyNode.resolved) {
this.widget.setY(dependencyNode.value);
}
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public void clear() {
this.runGroup = null;
this.start.clear();
this.end.clear();
this.baseline.clear();
this.dimension.clear();
this.resolved = false;
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public void reset() {
this.resolved = false;
this.start.clear();
this.start.resolved = false;
this.end.clear();
this.end.resolved = false;
this.baseline.clear();
this.baseline.resolved = false;
this.dimension.resolved = false;
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun
public boolean supportsWrapComputation() {
return this.dimensionBehavior != ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT || this.widget.mMatchConstraintDefaultHeight == 0;
}
public String toString() {
StringBuilder K = a.K("VerticalRun ");
K.append(this.widget.getDebugName());
return K.toString();
}
@Override // androidx.constraintlayout.solver.widgets.analyzer.WidgetRun, androidx.constraintlayout.solver.widgets.analyzer.Dependency
public void update(Dependency dependency) {
int i;
float f;
float f2;
int ordinal = this.mRunType.ordinal();
if (ordinal == 1) {
updateRunStart(dependency);
} else if (ordinal == 2) {
updateRunEnd(dependency);
} else if (ordinal == 3) {
ConstraintWidget constraintWidget = this.widget;
updateRunCenter(dependency, constraintWidget.mTop, constraintWidget.mBottom, 1);
return;
}
DimensionDependency dimensionDependency = this.dimension;
if (dimensionDependency.readyToSolve && !dimensionDependency.resolved && this.dimensionBehavior == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT) {
ConstraintWidget constraintWidget2 = this.widget;
int i2 = constraintWidget2.mMatchConstraintDefaultHeight;
if (i2 == 2) {
ConstraintWidget parent = constraintWidget2.getParent();
if (parent != null) {
DimensionDependency dimensionDependency2 = parent.verticalRun.dimension;
if (dimensionDependency2.resolved) {
float f3 = this.widget.mMatchConstraintPercentHeight;
this.dimension.resolve((int) ((((float) dimensionDependency2.value) * f3) + 0.5f));
}
}
} else if (i2 == 3 && constraintWidget2.horizontalRun.dimension.resolved) {
int dimensionRatioSide = constraintWidget2.getDimensionRatioSide();
if (dimensionRatioSide != -1) {
if (dimensionRatioSide == 0) {
ConstraintWidget constraintWidget3 = this.widget;
i = (int) ((constraintWidget3.getDimensionRatio() * ((float) constraintWidget3.horizontalRun.dimension.value)) + 0.5f);
} else if (dimensionRatioSide != 1) {
i = 0;
} else {
ConstraintWidget constraintWidget4 = this.widget;
f2 = (float) constraintWidget4.horizontalRun.dimension.value;
f = constraintWidget4.getDimensionRatio();
}
this.dimension.resolve(i);
} else {
ConstraintWidget constraintWidget5 = this.widget;
f2 = (float) constraintWidget5.horizontalRun.dimension.value;
f = constraintWidget5.getDimensionRatio();
}
i = (int) ((f2 / f) + 0.5f);
this.dimension.resolve(i);
}
}
DependencyNode dependencyNode = this.start;
if (dependencyNode.readyToSolve) {
DependencyNode dependencyNode2 = this.end;
if (dependencyNode2.readyToSolve) {
if (!dependencyNode.resolved || !dependencyNode2.resolved || !this.dimension.resolved) {
if (!this.dimension.resolved && this.dimensionBehavior == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT) {
ConstraintWidget constraintWidget6 = this.widget;
if (constraintWidget6.mMatchConstraintDefaultWidth == 0 && !constraintWidget6.isInVerticalChain()) {
int i3 = this.start.targets.get(0).value;
DependencyNode dependencyNode3 = this.start;
int i4 = i3 + dependencyNode3.margin;
int i5 = this.end.targets.get(0).value + this.end.margin;
dependencyNode3.resolve(i4);
this.end.resolve(i5);
this.dimension.resolve(i5 - i4);
return;
}
}
if (!this.dimension.resolved && this.dimensionBehavior == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT && this.matchConstraintsType == 1 && this.start.targets.size() > 0 && this.end.targets.size() > 0) {
int i6 = (this.end.targets.get(0).value + this.end.margin) - (this.start.targets.get(0).value + this.start.margin);
DimensionDependency dimensionDependency3 = this.dimension;
int i7 = dimensionDependency3.wrapValue;
if (i6 < i7) {
dimensionDependency3.resolve(i6);
} else {
dimensionDependency3.resolve(i7);
}
}
if (this.dimension.resolved && this.start.targets.size() > 0 && this.end.targets.size() > 0) {
DependencyNode dependencyNode4 = this.start.targets.get(0);
DependencyNode dependencyNode5 = this.end.targets.get(0);
int i8 = dependencyNode4.value + this.start.margin;
int i9 = dependencyNode5.value + this.end.margin;
float verticalBiasPercent = this.widget.getVerticalBiasPercent();
if (dependencyNode4 == dependencyNode5) {
i8 = dependencyNode4.value;
i9 = dependencyNode5.value;
verticalBiasPercent = 0.5f;
}
this.start.resolve((int) ((((float) ((i9 - i8) - this.dimension.value)) * verticalBiasPercent) + ((float) i8) + 0.5f));
this.end.resolve(this.start.value + this.dimension.value);
}
}
}
}
}
}

View file

@ -1,212 +0,0 @@
package androidx.constraintlayout.solver.widgets.analyzer;
import androidx.constraintlayout.solver.LinearSystem;
import androidx.constraintlayout.solver.widgets.Chain;
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
import androidx.constraintlayout.solver.widgets.ConstraintWidgetContainer;
import c.d.b.a.a;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Iterator;
public class WidgetGroup {
private static final boolean DEBUG = false;
public static int count;
public boolean authoritative = false;
/* renamed from: id reason: collision with root package name */
public int f23id = -1;
private int moveTo = -1;
public int orientation = 0;
public ArrayList<MeasureResult> results = null;
public ArrayList<ConstraintWidget> widgets = new ArrayList<>();
public class MeasureResult {
public int baseline;
public int bottom;
public int left;
public int orientation;
public int right;
public int top;
public WeakReference<ConstraintWidget> widgetRef;
public MeasureResult(ConstraintWidget constraintWidget, LinearSystem linearSystem, int i) {
this.widgetRef = new WeakReference<>(constraintWidget);
this.left = linearSystem.getObjectVariableValue(constraintWidget.mLeft);
this.top = linearSystem.getObjectVariableValue(constraintWidget.mTop);
this.right = linearSystem.getObjectVariableValue(constraintWidget.mRight);
this.bottom = linearSystem.getObjectVariableValue(constraintWidget.mBottom);
this.baseline = linearSystem.getObjectVariableValue(constraintWidget.mBaseline);
this.orientation = i;
}
public void apply() {
ConstraintWidget constraintWidget = this.widgetRef.get();
if (constraintWidget != null) {
constraintWidget.setFinalFrame(this.left, this.top, this.right, this.bottom, this.baseline, this.orientation);
}
}
}
public WidgetGroup(int i) {
int i2 = count;
count = i2 + 1;
this.f23id = i2;
this.orientation = i;
}
private boolean contains(ConstraintWidget constraintWidget) {
return this.widgets.contains(constraintWidget);
}
private String getOrientationString() {
int i = this.orientation;
return i == 0 ? "Horizontal" : i == 1 ? "Vertical" : i == 2 ? "Both" : "Unknown";
}
private int measureWrap(int i, ConstraintWidget constraintWidget) {
ConstraintWidget.DimensionBehaviour dimensionBehaviour = constraintWidget.getDimensionBehaviour(i);
if (dimensionBehaviour == ConstraintWidget.DimensionBehaviour.WRAP_CONTENT || dimensionBehaviour == ConstraintWidget.DimensionBehaviour.MATCH_PARENT || dimensionBehaviour == ConstraintWidget.DimensionBehaviour.FIXED) {
return i == 0 ? constraintWidget.getWidth() : constraintWidget.getHeight();
}
return -1;
}
private int solverMeasure(LinearSystem linearSystem, ArrayList<ConstraintWidget> arrayList, int i) {
int objectVariableValue;
int objectVariableValue2;
ConstraintWidgetContainer constraintWidgetContainer = (ConstraintWidgetContainer) arrayList.get(0).getParent();
linearSystem.reset();
constraintWidgetContainer.addToSolver(linearSystem, false);
for (int i2 = 0; i2 < arrayList.size(); i2++) {
arrayList.get(i2).addToSolver(linearSystem, false);
}
if (i == 0 && constraintWidgetContainer.mHorizontalChainsSize > 0) {
Chain.applyChainConstraints(constraintWidgetContainer, linearSystem, arrayList, 0);
}
if (i == 1 && constraintWidgetContainer.mVerticalChainsSize > 0) {
Chain.applyChainConstraints(constraintWidgetContainer, linearSystem, arrayList, 1);
}
try {
linearSystem.minimize();
} catch (Exception e) {
e.printStackTrace();
}
this.results = new ArrayList<>();
for (int i3 = 0; i3 < arrayList.size(); i3++) {
this.results.add(new MeasureResult(arrayList.get(i3), linearSystem, i));
}
if (i == 0) {
objectVariableValue = linearSystem.getObjectVariableValue(constraintWidgetContainer.mLeft);
objectVariableValue2 = linearSystem.getObjectVariableValue(constraintWidgetContainer.mRight);
linearSystem.reset();
} else {
objectVariableValue = linearSystem.getObjectVariableValue(constraintWidgetContainer.mTop);
objectVariableValue2 = linearSystem.getObjectVariableValue(constraintWidgetContainer.mBottom);
linearSystem.reset();
}
return objectVariableValue2 - objectVariableValue;
}
public boolean add(ConstraintWidget constraintWidget) {
if (this.widgets.contains(constraintWidget)) {
return false;
}
this.widgets.add(constraintWidget);
return true;
}
public void apply() {
if (this.results != null && this.authoritative) {
for (int i = 0; i < this.results.size(); i++) {
this.results.get(i).apply();
}
}
}
public void cleanup(ArrayList<WidgetGroup> arrayList) {
int size = this.widgets.size();
if (this.moveTo != -1 && size > 0) {
for (int i = 0; i < arrayList.size(); i++) {
WidgetGroup widgetGroup = arrayList.get(i);
if (this.moveTo == widgetGroup.f23id) {
moveTo(this.orientation, widgetGroup);
}
}
}
if (size == 0) {
arrayList.remove(this);
}
}
public void clear() {
this.widgets.clear();
}
public int getId() {
return this.f23id;
}
public int getOrientation() {
return this.orientation;
}
public boolean intersectWith(WidgetGroup widgetGroup) {
for (int i = 0; i < this.widgets.size(); i++) {
if (widgetGroup.contains(this.widgets.get(i))) {
return true;
}
}
return false;
}
public boolean isAuthoritative() {
return this.authoritative;
}
public int measureWrap(LinearSystem linearSystem, int i) {
if (this.widgets.size() == 0) {
return 0;
}
return solverMeasure(linearSystem, this.widgets, i);
}
public void moveTo(int i, WidgetGroup widgetGroup) {
Iterator<ConstraintWidget> it = this.widgets.iterator();
while (it.hasNext()) {
ConstraintWidget next = it.next();
widgetGroup.add(next);
if (i == 0) {
next.horizontalGroup = widgetGroup.getId();
} else {
next.verticalGroup = widgetGroup.getId();
}
}
this.moveTo = widgetGroup.f23id;
}
public void setAuthoritative(boolean z2) {
this.authoritative = z2;
}
public void setOrientation(int i) {
this.orientation = i;
}
public int size() {
return this.widgets.size();
}
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(getOrientationString());
sb.append(" [");
String w = a.w(sb, this.f23id, "] <");
Iterator<ConstraintWidget> it = this.widgets.iterator();
while (it.hasNext()) {
StringBuilder O = a.O(w, " ");
O.append(it.next().getDebugName());
w = O.toString();
}
return a.s(w, " >");
}
}

View file

@ -1,277 +0,0 @@
package androidx.constraintlayout.solver.widgets.analyzer;
import androidx.constraintlayout.solver.widgets.ConstraintAnchor;
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
public abstract class WidgetRun implements Dependency {
public DimensionDependency dimension = new DimensionDependency(this);
public ConstraintWidget.DimensionBehaviour dimensionBehavior;
public DependencyNode end = new DependencyNode(this);
public RunType mRunType = RunType.NONE;
public int matchConstraintsType;
public int orientation = 0;
public boolean resolved = false;
public RunGroup runGroup;
public DependencyNode start = new DependencyNode(this);
public ConstraintWidget widget;
/* renamed from: androidx.constraintlayout.solver.widgets.analyzer.WidgetRun$1 reason: invalid class name */
public static /* synthetic */ class AnonymousClass1 {
public static final /* synthetic */ int[] $SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type;
static {
ConstraintAnchor.Type.values();
int[] iArr = new int[9];
$SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type = iArr;
try {
iArr[ConstraintAnchor.Type.LEFT.ordinal()] = 1;
} catch (NoSuchFieldError unused) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[ConstraintAnchor.Type.RIGHT.ordinal()] = 2;
} catch (NoSuchFieldError unused2) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[ConstraintAnchor.Type.TOP.ordinal()] = 3;
} catch (NoSuchFieldError unused3) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[ConstraintAnchor.Type.BASELINE.ordinal()] = 4;
} catch (NoSuchFieldError unused4) {
}
try {
$SwitchMap$androidx$constraintlayout$solver$widgets$ConstraintAnchor$Type[ConstraintAnchor.Type.BOTTOM.ordinal()] = 5;
} catch (NoSuchFieldError unused5) {
}
}
}
public enum RunType {
NONE,
START,
END,
CENTER
}
public WidgetRun(ConstraintWidget constraintWidget) {
this.widget = constraintWidget;
}
private void resolveDimension(int i, int i2) {
int i3 = this.matchConstraintsType;
if (i3 == 0) {
this.dimension.resolve(getLimitedDimension(i2, i));
} else if (i3 == 1) {
this.dimension.resolve(Math.min(getLimitedDimension(this.dimension.wrapValue, i), i2));
} else if (i3 == 2) {
ConstraintWidget parent = this.widget.getParent();
if (parent != null) {
DimensionDependency dimensionDependency = (i == 0 ? parent.horizontalRun : parent.verticalRun).dimension;
if (dimensionDependency.resolved) {
ConstraintWidget constraintWidget = this.widget;
this.dimension.resolve(getLimitedDimension((int) ((((float) dimensionDependency.value) * (i == 0 ? constraintWidget.mMatchConstraintPercentWidth : constraintWidget.mMatchConstraintPercentHeight)) + 0.5f), i));
}
}
} else if (i3 == 3) {
ConstraintWidget constraintWidget2 = this.widget;
WidgetRun widgetRun = constraintWidget2.horizontalRun;
ConstraintWidget.DimensionBehaviour dimensionBehaviour = widgetRun.dimensionBehavior;
ConstraintWidget.DimensionBehaviour dimensionBehaviour2 = ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT;
if (dimensionBehaviour == dimensionBehaviour2 && widgetRun.matchConstraintsType == 3) {
VerticalWidgetRun verticalWidgetRun = constraintWidget2.verticalRun;
if (verticalWidgetRun.dimensionBehavior == dimensionBehaviour2 && verticalWidgetRun.matchConstraintsType == 3) {
return;
}
}
if (i == 0) {
widgetRun = constraintWidget2.verticalRun;
}
if (widgetRun.dimension.resolved) {
float dimensionRatio = constraintWidget2.getDimensionRatio();
this.dimension.resolve(i == 1 ? (int) ((((float) widgetRun.dimension.value) / dimensionRatio) + 0.5f) : (int) ((dimensionRatio * ((float) widgetRun.dimension.value)) + 0.5f));
}
}
}
public final void addTarget(DependencyNode dependencyNode, DependencyNode dependencyNode2, int i) {
dependencyNode.targets.add(dependencyNode2);
dependencyNode.margin = i;
dependencyNode2.dependencies.add(dependencyNode);
}
public final void addTarget(DependencyNode dependencyNode, DependencyNode dependencyNode2, int i, DimensionDependency dimensionDependency) {
dependencyNode.targets.add(dependencyNode2);
dependencyNode.targets.add(this.dimension);
dependencyNode.marginFactor = i;
dependencyNode.marginDependency = dimensionDependency;
dependencyNode2.dependencies.add(dependencyNode);
dimensionDependency.dependencies.add(dependencyNode);
}
public abstract void apply();
public abstract void applyToWidget();
public abstract void clear();
public final int getLimitedDimension(int i, int i2) {
int i3;
if (i2 == 0) {
ConstraintWidget constraintWidget = this.widget;
int i4 = constraintWidget.mMatchConstraintMaxWidth;
i3 = Math.max(constraintWidget.mMatchConstraintMinWidth, i);
if (i4 > 0) {
i3 = Math.min(i4, i);
}
if (i3 == i) {
return i;
}
} else {
ConstraintWidget constraintWidget2 = this.widget;
int i5 = constraintWidget2.mMatchConstraintMaxHeight;
i3 = Math.max(constraintWidget2.mMatchConstraintMinHeight, i);
if (i5 > 0) {
i3 = Math.min(i5, i);
}
if (i3 == i) {
return i;
}
}
return i3;
}
public final DependencyNode getTarget(ConstraintAnchor constraintAnchor) {
ConstraintAnchor constraintAnchor2 = constraintAnchor.mTarget;
if (constraintAnchor2 == null) {
return null;
}
ConstraintWidget constraintWidget = constraintAnchor2.mOwner;
int ordinal = constraintAnchor2.mType.ordinal();
if (ordinal == 1) {
return constraintWidget.horizontalRun.start;
}
if (ordinal == 2) {
return constraintWidget.verticalRun.start;
}
if (ordinal == 3) {
return constraintWidget.horizontalRun.end;
}
if (ordinal == 4) {
return constraintWidget.verticalRun.end;
}
if (ordinal != 5) {
return null;
}
return constraintWidget.verticalRun.baseline;
}
public final DependencyNode getTarget(ConstraintAnchor constraintAnchor, int i) {
ConstraintAnchor constraintAnchor2 = constraintAnchor.mTarget;
if (constraintAnchor2 == null) {
return null;
}
ConstraintWidget constraintWidget = constraintAnchor2.mOwner;
WidgetRun widgetRun = i == 0 ? constraintWidget.horizontalRun : constraintWidget.verticalRun;
int ordinal = constraintAnchor2.mType.ordinal();
if (ordinal == 1 || ordinal == 2) {
return widgetRun.start;
}
if (ordinal == 3 || ordinal == 4) {
return widgetRun.end;
}
return null;
}
public long getWrapDimension() {
DimensionDependency dimensionDependency = this.dimension;
if (dimensionDependency.resolved) {
return (long) dimensionDependency.value;
}
return 0;
}
public boolean isCenterConnection() {
int size = this.start.targets.size();
int i = 0;
for (int i2 = 0; i2 < size; i2++) {
if (this.start.targets.get(i2).run != this) {
i++;
}
}
int size2 = this.end.targets.size();
for (int i3 = 0; i3 < size2; i3++) {
if (this.end.targets.get(i3).run != this) {
i++;
}
}
return i >= 2;
}
public boolean isDimensionResolved() {
return this.dimension.resolved;
}
public boolean isResolved() {
return this.resolved;
}
public abstract void reset();
public abstract boolean supportsWrapComputation();
@Override // androidx.constraintlayout.solver.widgets.analyzer.Dependency
public void update(Dependency dependency) {
}
public void updateRunCenter(Dependency dependency, ConstraintAnchor constraintAnchor, ConstraintAnchor constraintAnchor2, int i) {
DependencyNode target = getTarget(constraintAnchor);
DependencyNode target2 = getTarget(constraintAnchor2);
if (target.resolved && target2.resolved) {
int margin = constraintAnchor.getMargin() + target.value;
int margin2 = target2.value - constraintAnchor2.getMargin();
int i2 = margin2 - margin;
if (!this.dimension.resolved && this.dimensionBehavior == ConstraintWidget.DimensionBehaviour.MATCH_CONSTRAINT) {
resolveDimension(i, i2);
}
DimensionDependency dimensionDependency = this.dimension;
if (dimensionDependency.resolved) {
if (dimensionDependency.value == i2) {
this.start.resolve(margin);
this.end.resolve(margin2);
return;
}
ConstraintWidget constraintWidget = this.widget;
float horizontalBiasPercent = i == 0 ? constraintWidget.getHorizontalBiasPercent() : constraintWidget.getVerticalBiasPercent();
if (target == target2) {
margin = target.value;
margin2 = target2.value;
horizontalBiasPercent = 0.5f;
}
this.start.resolve((int) ((((float) ((margin2 - margin) - this.dimension.value)) * horizontalBiasPercent) + ((float) margin) + 0.5f));
this.end.resolve(this.start.value + this.dimension.value);
}
}
}
public void updateRunEnd(Dependency dependency) {
}
public void updateRunStart(Dependency dependency) {
}
public long wrapSize(int i) {
int i2;
DimensionDependency dimensionDependency = this.dimension;
if (!dimensionDependency.resolved) {
return 0;
}
long j = (long) dimensionDependency.value;
if (isCenterConnection()) {
i2 = this.start.margin - this.end.margin;
} else if (i != 0) {
return j - ((long) this.end.margin);
} else {
i2 = this.start.margin;
}
return j + ((long) i2);
}
}

View file

@ -1,254 +0,0 @@
package androidx.constraintlayout.utils.widget;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Outline;
import android.graphics.Path;
import android.graphics.RectF;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LayerDrawable;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewOutlineProvider;
import androidx.annotation.RequiresApi;
import androidx.appcompat.widget.AppCompatImageButton;
import androidx.constraintlayout.utils.widget.ImageFilterView;
import androidx.constraintlayout.widget.R;
public class ImageFilterButton extends AppCompatImageButton {
private float mCrossfade = 0.0f;
private ImageFilterView.ImageMatrix mImageMatrix = new ImageFilterView.ImageMatrix();
public LayerDrawable mLayer;
public Drawable[] mLayers;
private boolean mOverlay = true;
private Path mPath;
public RectF mRect;
private float mRound = Float.NaN;
private float mRoundPercent = 0.0f;
public ViewOutlineProvider mViewOutlineProvider;
/* renamed from: androidx.constraintlayout.utils.widget.ImageFilterButton$1 reason: invalid class name */
public class AnonymousClass1 extends ViewOutlineProvider {
public AnonymousClass1() {
}
@Override // android.view.ViewOutlineProvider
public void getOutline(View view, Outline outline) {
int width = ImageFilterButton.this.getWidth();
int height = ImageFilterButton.this.getHeight();
outline.setRoundRect(0, 0, width, height, (ImageFilterButton.access$000(ImageFilterButton.this) * ((float) Math.min(width, height))) / 2.0f);
}
}
/* renamed from: androidx.constraintlayout.utils.widget.ImageFilterButton$2 reason: invalid class name */
public class AnonymousClass2 extends ViewOutlineProvider {
public AnonymousClass2() {
}
@Override // android.view.ViewOutlineProvider
public void getOutline(View view, Outline outline) {
outline.setRoundRect(0, 0, ImageFilterButton.this.getWidth(), ImageFilterButton.this.getHeight(), ImageFilterButton.access$100(ImageFilterButton.this));
}
}
public ImageFilterButton(Context context) {
super(context);
init(context, null);
}
public ImageFilterButton(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
init(context, attributeSet);
}
public ImageFilterButton(Context context, AttributeSet attributeSet, int i) {
super(context, attributeSet, i);
init(context, attributeSet);
}
public static /* synthetic */ float access$000(ImageFilterButton imageFilterButton) {
return imageFilterButton.mRoundPercent;
}
public static /* synthetic */ float access$100(ImageFilterButton imageFilterButton) {
return imageFilterButton.mRound;
}
private void init(Context context, AttributeSet attributeSet) {
setPadding(0, 0, 0, 0);
if (attributeSet != null) {
TypedArray obtainStyledAttributes = getContext().obtainStyledAttributes(attributeSet, R.styleable.ImageFilterView);
int indexCount = obtainStyledAttributes.getIndexCount();
Drawable drawable = obtainStyledAttributes.getDrawable(R.styleable.ImageFilterView_altSrc);
for (int i = 0; i < indexCount; i++) {
int index = obtainStyledAttributes.getIndex(i);
if (index == R.styleable.ImageFilterView_crossfade) {
this.mCrossfade = obtainStyledAttributes.getFloat(index, 0.0f);
} else if (index == R.styleable.ImageFilterView_warmth) {
setWarmth(obtainStyledAttributes.getFloat(index, 0.0f));
} else if (index == R.styleable.ImageFilterView_saturation) {
setSaturation(obtainStyledAttributes.getFloat(index, 0.0f));
} else if (index == R.styleable.ImageFilterView_contrast) {
setContrast(obtainStyledAttributes.getFloat(index, 0.0f));
} else if (index == R.styleable.ImageFilterView_round) {
setRound(obtainStyledAttributes.getDimension(index, 0.0f));
} else if (index == R.styleable.ImageFilterView_roundPercent) {
setRoundPercent(obtainStyledAttributes.getFloat(index, 0.0f));
} else if (index == R.styleable.ImageFilterView_overlay) {
setOverlay(obtainStyledAttributes.getBoolean(index, this.mOverlay));
}
}
obtainStyledAttributes.recycle();
if (drawable != null) {
Drawable[] drawableArr = new Drawable[2];
this.mLayers = drawableArr;
drawableArr[0] = getDrawable();
this.mLayers[1] = drawable;
LayerDrawable layerDrawable = new LayerDrawable(this.mLayers);
this.mLayer = layerDrawable;
layerDrawable.getDrawable(1).setAlpha((int) (this.mCrossfade * 255.0f));
super.setImageDrawable(this.mLayer);
}
}
}
private void setOverlay(boolean z2) {
this.mOverlay = z2;
}
@Override // android.view.View
public void draw(Canvas canvas) {
super.draw(canvas);
if (0 != 0) {
canvas.restore();
}
}
public float getContrast() {
return this.mImageMatrix.mContrast;
}
public float getCrossfade() {
return this.mCrossfade;
}
public float getRound() {
return this.mRound;
}
public float getRoundPercent() {
return this.mRoundPercent;
}
public float getSaturation() {
return this.mImageMatrix.mSaturation;
}
public float getWarmth() {
return this.mImageMatrix.mWarmth;
}
public void setBrightness(float f) {
ImageFilterView.ImageMatrix imageMatrix = this.mImageMatrix;
imageMatrix.mBrightness = f;
imageMatrix.updateMatrix(this);
}
public void setContrast(float f) {
ImageFilterView.ImageMatrix imageMatrix = this.mImageMatrix;
imageMatrix.mContrast = f;
imageMatrix.updateMatrix(this);
}
public void setCrossfade(float f) {
this.mCrossfade = f;
if (this.mLayers != null) {
if (!this.mOverlay) {
this.mLayer.getDrawable(0).setAlpha((int) ((1.0f - this.mCrossfade) * 255.0f));
}
this.mLayer.getDrawable(1).setAlpha((int) (this.mCrossfade * 255.0f));
super.setImageDrawable(this.mLayer);
}
}
@RequiresApi(21)
public void setRound(float f) {
if (Float.isNaN(f)) {
this.mRound = f;
float f2 = this.mRoundPercent;
this.mRoundPercent = -1.0f;
setRoundPercent(f2);
return;
}
boolean z2 = this.mRound != f;
this.mRound = f;
if (f != 0.0f) {
if (this.mPath == null) {
this.mPath = new Path();
}
if (this.mRect == null) {
this.mRect = new RectF();
}
if (this.mViewOutlineProvider == null) {
AnonymousClass2 r5 = new AnonymousClass2();
this.mViewOutlineProvider = r5;
setOutlineProvider(r5);
}
setClipToOutline(true);
this.mRect.set(0.0f, 0.0f, (float) getWidth(), (float) getHeight());
this.mPath.reset();
Path path = this.mPath;
RectF rectF = this.mRect;
float f3 = this.mRound;
path.addRoundRect(rectF, f3, f3, Path.Direction.CW);
} else {
setClipToOutline(false);
}
if (z2) {
invalidateOutline();
}
}
@RequiresApi(21)
public void setRoundPercent(float f) {
boolean z2 = this.mRoundPercent != f;
this.mRoundPercent = f;
if (f != 0.0f) {
if (this.mPath == null) {
this.mPath = new Path();
}
if (this.mRect == null) {
this.mRect = new RectF();
}
if (this.mViewOutlineProvider == null) {
AnonymousClass1 r6 = new AnonymousClass1();
this.mViewOutlineProvider = r6;
setOutlineProvider(r6);
}
setClipToOutline(true);
int width = getWidth();
int height = getHeight();
float min = (((float) Math.min(width, height)) * this.mRoundPercent) / 2.0f;
this.mRect.set(0.0f, 0.0f, (float) width, (float) height);
this.mPath.reset();
this.mPath.addRoundRect(this.mRect, min, min, Path.Direction.CW);
} else {
setClipToOutline(false);
}
if (z2) {
invalidateOutline();
}
}
public void setSaturation(float f) {
ImageFilterView.ImageMatrix imageMatrix = this.mImageMatrix;
imageMatrix.mSaturation = f;
imageMatrix.updateMatrix(this);
}
public void setWarmth(float f) {
ImageFilterView.ImageMatrix imageMatrix = this.mImageMatrix;
imageMatrix.mWarmth = f;
imageMatrix.updateMatrix(this);
}
}

View file

@ -1,406 +0,0 @@
package androidx.constraintlayout.utils.widget;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.ColorMatrix;
import android.graphics.ColorMatrixColorFilter;
import android.graphics.Outline;
import android.graphics.Path;
import android.graphics.RectF;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.LayerDrawable;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewOutlineProvider;
import android.widget.ImageView;
import androidx.annotation.RequiresApi;
import androidx.appcompat.widget.AppCompatImageView;
import androidx.constraintlayout.widget.R;
public class ImageFilterView extends AppCompatImageView {
private float mCrossfade = 0.0f;
private ImageMatrix mImageMatrix = new ImageMatrix();
public LayerDrawable mLayer;
public Drawable[] mLayers;
private boolean mOverlay = true;
private Path mPath;
public RectF mRect;
private float mRound = Float.NaN;
private float mRoundPercent = 0.0f;
public ViewOutlineProvider mViewOutlineProvider;
/* renamed from: androidx.constraintlayout.utils.widget.ImageFilterView$1 reason: invalid class name */
public class AnonymousClass1 extends ViewOutlineProvider {
public AnonymousClass1() {
}
@Override // android.view.ViewOutlineProvider
public void getOutline(View view, Outline outline) {
int width = ImageFilterView.this.getWidth();
int height = ImageFilterView.this.getHeight();
outline.setRoundRect(0, 0, width, height, (ImageFilterView.access$000(ImageFilterView.this) * ((float) Math.min(width, height))) / 2.0f);
}
}
/* renamed from: androidx.constraintlayout.utils.widget.ImageFilterView$2 reason: invalid class name */
public class AnonymousClass2 extends ViewOutlineProvider {
public AnonymousClass2() {
}
@Override // android.view.ViewOutlineProvider
public void getOutline(View view, Outline outline) {
outline.setRoundRect(0, 0, ImageFilterView.this.getWidth(), ImageFilterView.this.getHeight(), ImageFilterView.access$100(ImageFilterView.this));
}
}
public static class ImageMatrix {
public float[] m = new float[20];
public float mBrightness = 1.0f;
public ColorMatrix mColorMatrix = new ColorMatrix();
public float mContrast = 1.0f;
public float mSaturation = 1.0f;
public ColorMatrix mTmpColorMatrix = new ColorMatrix();
public float mWarmth = 1.0f;
private void brightness(float f) {
float[] fArr = this.m;
fArr[0] = f;
fArr[1] = 0.0f;
fArr[2] = 0.0f;
fArr[3] = 0.0f;
fArr[4] = 0.0f;
fArr[5] = 0.0f;
fArr[6] = f;
fArr[7] = 0.0f;
fArr[8] = 0.0f;
fArr[9] = 0.0f;
fArr[10] = 0.0f;
fArr[11] = 0.0f;
fArr[12] = f;
fArr[13] = 0.0f;
fArr[14] = 0.0f;
fArr[15] = 0.0f;
fArr[16] = 0.0f;
fArr[17] = 0.0f;
fArr[18] = 1.0f;
fArr[19] = 0.0f;
}
private void saturation(float f) {
float f2 = 1.0f - f;
float f3 = 0.2999f * f2;
float f4 = 0.587f * f2;
float f5 = f2 * 0.114f;
float[] fArr = this.m;
fArr[0] = f3 + f;
fArr[1] = f4;
fArr[2] = f5;
fArr[3] = 0.0f;
fArr[4] = 0.0f;
fArr[5] = f3;
fArr[6] = f4 + f;
fArr[7] = f5;
fArr[8] = 0.0f;
fArr[9] = 0.0f;
fArr[10] = f3;
fArr[11] = f4;
fArr[12] = f5 + f;
fArr[13] = 0.0f;
fArr[14] = 0.0f;
fArr[15] = 0.0f;
fArr[16] = 0.0f;
fArr[17] = 0.0f;
fArr[18] = 1.0f;
fArr[19] = 0.0f;
}
private void warmth(float f) {
float f2;
float f3;
if (f <= 0.0f) {
f = 0.01f;
}
float f4 = (5000.0f / f) / 100.0f;
if (f4 > 66.0f) {
double d = (double) (f4 - 60.0f);
f3 = ((float) Math.pow(d, -0.13320475816726685d)) * 329.69873f;
f2 = ((float) Math.pow(d, 0.07551484555006027d)) * 288.12216f;
} else {
f2 = (((float) Math.log((double) f4)) * 99.4708f) - 161.11957f;
f3 = 255.0f;
}
float log = f4 < 66.0f ? f4 > 19.0f ? (((float) Math.log((double) (f4 - 10.0f))) * 138.51773f) - 305.0448f : 0.0f : 255.0f;
float min = Math.min(255.0f, Math.max(f3, 0.0f));
float min2 = Math.min(255.0f, Math.max(f2, 0.0f));
float min3 = Math.min(255.0f, Math.max(log, 0.0f));
float min4 = Math.min(255.0f, Math.max(255.0f, 0.0f));
float min5 = Math.min(255.0f, Math.max((((float) Math.log((double) 50.0f)) * 99.4708f) - 161.11957f, 0.0f));
float min6 = min3 / Math.min(255.0f, Math.max((((float) Math.log((double) 40.0f)) * 138.51773f) - 305.0448f, 0.0f));
float[] fArr = this.m;
fArr[0] = min / min4;
fArr[1] = 0.0f;
fArr[2] = 0.0f;
fArr[3] = 0.0f;
fArr[4] = 0.0f;
fArr[5] = 0.0f;
fArr[6] = min2 / min5;
fArr[7] = 0.0f;
fArr[8] = 0.0f;
fArr[9] = 0.0f;
fArr[10] = 0.0f;
fArr[11] = 0.0f;
fArr[12] = min6;
fArr[13] = 0.0f;
fArr[14] = 0.0f;
fArr[15] = 0.0f;
fArr[16] = 0.0f;
fArr[17] = 0.0f;
fArr[18] = 1.0f;
fArr[19] = 0.0f;
}
public void updateMatrix(ImageView imageView) {
boolean z2;
this.mColorMatrix.reset();
float f = this.mSaturation;
boolean z3 = true;
if (f != 1.0f) {
saturation(f);
this.mColorMatrix.set(this.m);
z2 = true;
} else {
z2 = false;
}
float f2 = this.mContrast;
if (f2 != 1.0f) {
this.mTmpColorMatrix.setScale(f2, f2, f2, 1.0f);
this.mColorMatrix.postConcat(this.mTmpColorMatrix);
z2 = true;
}
float f3 = this.mWarmth;
if (f3 != 1.0f) {
warmth(f3);
this.mTmpColorMatrix.set(this.m);
this.mColorMatrix.postConcat(this.mTmpColorMatrix);
z2 = true;
}
float f4 = this.mBrightness;
if (f4 != 1.0f) {
brightness(f4);
this.mTmpColorMatrix.set(this.m);
this.mColorMatrix.postConcat(this.mTmpColorMatrix);
} else {
z3 = z2;
}
if (z3) {
imageView.setColorFilter(new ColorMatrixColorFilter(this.mColorMatrix));
} else {
imageView.clearColorFilter();
}
}
}
public ImageFilterView(Context context) {
super(context);
init(context, null);
}
public ImageFilterView(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
init(context, attributeSet);
}
public ImageFilterView(Context context, AttributeSet attributeSet, int i) {
super(context, attributeSet, i);
init(context, attributeSet);
}
public static /* synthetic */ float access$000(ImageFilterView imageFilterView) {
return imageFilterView.mRoundPercent;
}
public static /* synthetic */ float access$100(ImageFilterView imageFilterView) {
return imageFilterView.mRound;
}
private void init(Context context, AttributeSet attributeSet) {
if (attributeSet != null) {
TypedArray obtainStyledAttributes = getContext().obtainStyledAttributes(attributeSet, R.styleable.ImageFilterView);
int indexCount = obtainStyledAttributes.getIndexCount();
Drawable drawable = obtainStyledAttributes.getDrawable(R.styleable.ImageFilterView_altSrc);
for (int i = 0; i < indexCount; i++) {
int index = obtainStyledAttributes.getIndex(i);
if (index == R.styleable.ImageFilterView_crossfade) {
this.mCrossfade = obtainStyledAttributes.getFloat(index, 0.0f);
} else if (index == R.styleable.ImageFilterView_warmth) {
setWarmth(obtainStyledAttributes.getFloat(index, 0.0f));
} else if (index == R.styleable.ImageFilterView_saturation) {
setSaturation(obtainStyledAttributes.getFloat(index, 0.0f));
} else if (index == R.styleable.ImageFilterView_contrast) {
setContrast(obtainStyledAttributes.getFloat(index, 0.0f));
} else if (index == R.styleable.ImageFilterView_round) {
setRound(obtainStyledAttributes.getDimension(index, 0.0f));
} else if (index == R.styleable.ImageFilterView_roundPercent) {
setRoundPercent(obtainStyledAttributes.getFloat(index, 0.0f));
} else if (index == R.styleable.ImageFilterView_overlay) {
setOverlay(obtainStyledAttributes.getBoolean(index, this.mOverlay));
}
}
obtainStyledAttributes.recycle();
if (drawable != null) {
Drawable[] drawableArr = new Drawable[2];
this.mLayers = drawableArr;
drawableArr[0] = getDrawable();
this.mLayers[1] = drawable;
LayerDrawable layerDrawable = new LayerDrawable(this.mLayers);
this.mLayer = layerDrawable;
layerDrawable.getDrawable(1).setAlpha((int) (this.mCrossfade * 255.0f));
super.setImageDrawable(this.mLayer);
}
}
}
private void setOverlay(boolean z2) {
this.mOverlay = z2;
}
@Override // android.view.View
public void draw(Canvas canvas) {
super.draw(canvas);
if (0 != 0) {
canvas.restore();
}
}
public float getBrightness() {
return this.mImageMatrix.mBrightness;
}
public float getContrast() {
return this.mImageMatrix.mContrast;
}
public float getCrossfade() {
return this.mCrossfade;
}
public float getRound() {
return this.mRound;
}
public float getRoundPercent() {
return this.mRoundPercent;
}
public float getSaturation() {
return this.mImageMatrix.mSaturation;
}
public float getWarmth() {
return this.mImageMatrix.mWarmth;
}
public void setBrightness(float f) {
ImageMatrix imageMatrix = this.mImageMatrix;
imageMatrix.mBrightness = f;
imageMatrix.updateMatrix(this);
}
public void setContrast(float f) {
ImageMatrix imageMatrix = this.mImageMatrix;
imageMatrix.mContrast = f;
imageMatrix.updateMatrix(this);
}
public void setCrossfade(float f) {
this.mCrossfade = f;
if (this.mLayers != null) {
if (!this.mOverlay) {
this.mLayer.getDrawable(0).setAlpha((int) ((1.0f - this.mCrossfade) * 255.0f));
}
this.mLayer.getDrawable(1).setAlpha((int) (this.mCrossfade * 255.0f));
super.setImageDrawable(this.mLayer);
}
}
@RequiresApi(21)
public void setRound(float f) {
if (Float.isNaN(f)) {
this.mRound = f;
float f2 = this.mRoundPercent;
this.mRoundPercent = -1.0f;
setRoundPercent(f2);
return;
}
boolean z2 = this.mRound != f;
this.mRound = f;
if (f != 0.0f) {
if (this.mPath == null) {
this.mPath = new Path();
}
if (this.mRect == null) {
this.mRect = new RectF();
}
if (this.mViewOutlineProvider == null) {
AnonymousClass2 r5 = new AnonymousClass2();
this.mViewOutlineProvider = r5;
setOutlineProvider(r5);
}
setClipToOutline(true);
this.mRect.set(0.0f, 0.0f, (float) getWidth(), (float) getHeight());
this.mPath.reset();
Path path = this.mPath;
RectF rectF = this.mRect;
float f3 = this.mRound;
path.addRoundRect(rectF, f3, f3, Path.Direction.CW);
} else {
setClipToOutline(false);
}
if (z2) {
invalidateOutline();
}
}
@RequiresApi(21)
public void setRoundPercent(float f) {
boolean z2 = this.mRoundPercent != f;
this.mRoundPercent = f;
if (f != 0.0f) {
if (this.mPath == null) {
this.mPath = new Path();
}
if (this.mRect == null) {
this.mRect = new RectF();
}
if (this.mViewOutlineProvider == null) {
AnonymousClass1 r6 = new AnonymousClass1();
this.mViewOutlineProvider = r6;
setOutlineProvider(r6);
}
setClipToOutline(true);
int width = getWidth();
int height = getHeight();
float min = (((float) Math.min(width, height)) * this.mRoundPercent) / 2.0f;
this.mRect.set(0.0f, 0.0f, (float) width, (float) height);
this.mPath.reset();
this.mPath.addRoundRect(this.mRect, min, min, Path.Direction.CW);
} else {
setClipToOutline(false);
}
if (z2) {
invalidateOutline();
}
}
public void setSaturation(float f) {
ImageMatrix imageMatrix = this.mImageMatrix;
imageMatrix.mSaturation = f;
imageMatrix.updateMatrix(this);
}
public void setWarmth(float f) {
ImageMatrix imageMatrix = this.mImageMatrix;
imageMatrix.mWarmth = f;
imageMatrix.updateMatrix(this);
}
}

View file

@ -1,107 +0,0 @@
package androidx.constraintlayout.utils.widget;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.view.View;
import androidx.constraintlayout.widget.R;
public class MockView extends View {
private int mDiagonalsColor = Color.argb(255, 0, 0, 0);
private boolean mDrawDiagonals = true;
private boolean mDrawLabel = true;
private int mMargin = 4;
private Paint mPaintDiagonals = new Paint();
private Paint mPaintText = new Paint();
private Paint mPaintTextBackground = new Paint();
public String mText = null;
private int mTextBackgroundColor = Color.argb(255, 50, 50, 50);
private Rect mTextBounds = new Rect();
private int mTextColor = Color.argb(255, 200, 200, 200);
public MockView(Context context) {
super(context);
init(context, null);
}
public MockView(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
init(context, attributeSet);
}
public MockView(Context context, AttributeSet attributeSet, int i) {
super(context, attributeSet, i);
init(context, attributeSet);
}
private void init(Context context, AttributeSet attributeSet) {
if (attributeSet != null) {
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, R.styleable.MockView);
int indexCount = obtainStyledAttributes.getIndexCount();
for (int i = 0; i < indexCount; i++) {
int index = obtainStyledAttributes.getIndex(i);
if (index == R.styleable.MockView_mock_label) {
this.mText = obtainStyledAttributes.getString(index);
} else if (index == R.styleable.MockView_mock_showDiagonals) {
this.mDrawDiagonals = obtainStyledAttributes.getBoolean(index, this.mDrawDiagonals);
} else if (index == R.styleable.MockView_mock_diagonalsColor) {
this.mDiagonalsColor = obtainStyledAttributes.getColor(index, this.mDiagonalsColor);
} else if (index == R.styleable.MockView_mock_labelBackgroundColor) {
this.mTextBackgroundColor = obtainStyledAttributes.getColor(index, this.mTextBackgroundColor);
} else if (index == R.styleable.MockView_mock_labelColor) {
this.mTextColor = obtainStyledAttributes.getColor(index, this.mTextColor);
} else if (index == R.styleable.MockView_mock_showLabel) {
this.mDrawLabel = obtainStyledAttributes.getBoolean(index, this.mDrawLabel);
}
}
obtainStyledAttributes.recycle();
}
if (this.mText == null) {
try {
this.mText = context.getResources().getResourceEntryName(getId());
} catch (Exception unused) {
}
}
this.mPaintDiagonals.setColor(this.mDiagonalsColor);
this.mPaintDiagonals.setAntiAlias(true);
this.mPaintText.setColor(this.mTextColor);
this.mPaintText.setAntiAlias(true);
this.mPaintTextBackground.setColor(this.mTextBackgroundColor);
this.mMargin = Math.round((getResources().getDisplayMetrics().xdpi / 160.0f) * ((float) this.mMargin));
}
@Override // android.view.View
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
int width = getWidth();
int height = getHeight();
if (this.mDrawDiagonals) {
width--;
height--;
float f = (float) width;
float f2 = (float) height;
canvas.drawLine(0.0f, 0.0f, f, f2, this.mPaintDiagonals);
canvas.drawLine(0.0f, f2, f, 0.0f, this.mPaintDiagonals);
canvas.drawLine(0.0f, 0.0f, f, 0.0f, this.mPaintDiagonals);
canvas.drawLine(f, 0.0f, f, f2, this.mPaintDiagonals);
canvas.drawLine(f, f2, 0.0f, f2, this.mPaintDiagonals);
canvas.drawLine(0.0f, f2, 0.0f, 0.0f, this.mPaintDiagonals);
}
String str = this.mText;
if (str != null && this.mDrawLabel) {
this.mPaintText.getTextBounds(str, 0, str.length(), this.mTextBounds);
float width2 = ((float) (width - this.mTextBounds.width())) / 2.0f;
float height2 = (((float) (height - this.mTextBounds.height())) / 2.0f) + ((float) this.mTextBounds.height());
this.mTextBounds.offset((int) width2, (int) height2);
Rect rect = this.mTextBounds;
int i = rect.left;
int i2 = this.mMargin;
rect.set(i - i2, rect.top - i2, rect.right + i2, rect.bottom + i2);
canvas.drawRect(this.mTextBounds, this.mPaintTextBackground);
canvas.drawText(this.mText, width2, height2, this.mPaintText);
}
}
}

View file

@ -1,123 +0,0 @@
package androidx.constraintlayout.utils.widget;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.ViewParent;
import androidx.constraintlayout.motion.widget.MotionLayout;
import androidx.constraintlayout.widget.R;
public class MotionTelltales extends MockView {
private static final String TAG = "MotionTelltales";
public Matrix mInvertMatrix;
public MotionLayout mMotionLayout;
private Paint mPaintTelltales;
public int mTailColor;
public float mTailScale;
public int mVelocityMode;
public float[] velocity;
public MotionTelltales(Context context) {
super(context);
this.mPaintTelltales = new Paint();
this.velocity = new float[2];
this.mInvertMatrix = new Matrix();
this.mVelocityMode = 0;
this.mTailColor = -65281;
this.mTailScale = 0.25f;
init(context, null);
}
public MotionTelltales(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
this.mPaintTelltales = new Paint();
this.velocity = new float[2];
this.mInvertMatrix = new Matrix();
this.mVelocityMode = 0;
this.mTailColor = -65281;
this.mTailScale = 0.25f;
init(context, attributeSet);
}
public MotionTelltales(Context context, AttributeSet attributeSet, int i) {
super(context, attributeSet, i);
this.mPaintTelltales = new Paint();
this.velocity = new float[2];
this.mInvertMatrix = new Matrix();
this.mVelocityMode = 0;
this.mTailColor = -65281;
this.mTailScale = 0.25f;
init(context, attributeSet);
}
private void init(Context context, AttributeSet attributeSet) {
if (attributeSet != null) {
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, R.styleable.MotionTelltales);
int indexCount = obtainStyledAttributes.getIndexCount();
for (int i = 0; i < indexCount; i++) {
int index = obtainStyledAttributes.getIndex(i);
if (index == R.styleable.MotionTelltales_telltales_tailColor) {
this.mTailColor = obtainStyledAttributes.getColor(index, this.mTailColor);
} else if (index == R.styleable.MotionTelltales_telltales_velocityMode) {
this.mVelocityMode = obtainStyledAttributes.getInt(index, this.mVelocityMode);
} else if (index == R.styleable.MotionTelltales_telltales_tailScale) {
this.mTailScale = obtainStyledAttributes.getFloat(index, this.mTailScale);
}
}
obtainStyledAttributes.recycle();
}
this.mPaintTelltales.setColor(this.mTailColor);
this.mPaintTelltales.setStrokeWidth(5.0f);
}
@Override // android.view.View
public void onAttachedToWindow() {
super.onAttachedToWindow();
}
@Override // androidx.constraintlayout.utils.widget.MockView, android.view.View
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
getMatrix().invert(this.mInvertMatrix);
if (this.mMotionLayout == null) {
ViewParent parent = getParent();
if (parent instanceof MotionLayout) {
this.mMotionLayout = (MotionLayout) parent;
return;
}
return;
}
int width = getWidth();
int height = getHeight();
float[] fArr = {0.1f, 0.25f, 0.5f, 0.75f, 0.9f};
for (int i = 0; i < 5; i++) {
float f = fArr[i];
for (int i2 = 0; i2 < 5; i2++) {
float f2 = fArr[i2];
this.mMotionLayout.getViewVelocity(this, f2, f, this.velocity, this.mVelocityMode);
this.mInvertMatrix.mapVectors(this.velocity);
float f3 = ((float) width) * f2;
float f4 = ((float) height) * f;
float[] fArr2 = this.velocity;
float f5 = fArr2[0];
float f6 = this.mTailScale;
float f7 = f4 - (fArr2[1] * f6);
this.mInvertMatrix.mapVectors(fArr2);
canvas.drawLine(f3, f4, f3 - (f5 * f6), f7, this.mPaintTelltales);
}
}
}
@Override // android.view.View
public void onLayout(boolean z2, int i, int i2, int i3, int i4) {
super.onLayout(z2, i, i2, i3, i4);
postInvalidate();
}
public void setText(CharSequence charSequence) {
this.mText = charSequence.toString();
requestLayout();
}
}

View file

@ -1,127 +0,0 @@
package androidx.constraintlayout.widget;
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.util.SparseArray;
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
import androidx.constraintlayout.solver.widgets.ConstraintWidgetContainer;
import androidx.constraintlayout.solver.widgets.HelperWidget;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.constraintlayout.widget.ConstraintSet;
public class Barrier extends ConstraintHelper {
public static final int BOTTOM = 3;
public static final int END = 6;
public static final int LEFT = 0;
public static final int RIGHT = 1;
public static final int START = 5;
public static final int TOP = 2;
private androidx.constraintlayout.solver.widgets.Barrier mBarrier;
private int mIndicatedType;
private int mResolvedType;
public Barrier(Context context) {
super(context);
super.setVisibility(8);
}
public Barrier(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
super.setVisibility(8);
}
public Barrier(Context context, AttributeSet attributeSet, int i) {
super(context, attributeSet, i);
super.setVisibility(8);
}
private void updateType(ConstraintWidget constraintWidget, int i, boolean z2) {
this.mResolvedType = i;
if (z2) {
int i2 = this.mIndicatedType;
if (i2 == 5) {
this.mResolvedType = 1;
} else if (i2 == 6) {
this.mResolvedType = 0;
}
} else {
int i3 = this.mIndicatedType;
if (i3 == 5) {
this.mResolvedType = 0;
} else if (i3 == 6) {
this.mResolvedType = 1;
}
}
if (constraintWidget instanceof androidx.constraintlayout.solver.widgets.Barrier) {
((androidx.constraintlayout.solver.widgets.Barrier) constraintWidget).setBarrierType(this.mResolvedType);
}
}
public boolean allowsGoneWidget() {
return this.mBarrier.allowsGoneWidget();
}
public int getMargin() {
return this.mBarrier.getMargin();
}
public int getType() {
return this.mIndicatedType;
}
@Override // androidx.constraintlayout.widget.ConstraintHelper
public void init(AttributeSet attributeSet) {
super.init(attributeSet);
this.mBarrier = new androidx.constraintlayout.solver.widgets.Barrier();
if (attributeSet != null) {
TypedArray obtainStyledAttributes = getContext().obtainStyledAttributes(attributeSet, R.styleable.ConstraintLayout_Layout);
int indexCount = obtainStyledAttributes.getIndexCount();
for (int i = 0; i < indexCount; i++) {
int index = obtainStyledAttributes.getIndex(i);
if (index == R.styleable.ConstraintLayout_Layout_barrierDirection) {
setType(obtainStyledAttributes.getInt(index, 0));
} else if (index == R.styleable.ConstraintLayout_Layout_barrierAllowsGoneWidgets) {
this.mBarrier.setAllowsGoneWidget(obtainStyledAttributes.getBoolean(index, true));
} else if (index == R.styleable.ConstraintLayout_Layout_barrierMargin) {
this.mBarrier.setMargin(obtainStyledAttributes.getDimensionPixelSize(index, 0));
}
}
obtainStyledAttributes.recycle();
}
this.mHelperWidget = this.mBarrier;
validateParams();
}
@Override // androidx.constraintlayout.widget.ConstraintHelper
public void loadParameters(ConstraintSet.Constraint constraint, HelperWidget helperWidget, ConstraintLayout.LayoutParams layoutParams, SparseArray<ConstraintWidget> sparseArray) {
super.loadParameters(constraint, helperWidget, layoutParams, sparseArray);
if (helperWidget instanceof androidx.constraintlayout.solver.widgets.Barrier) {
androidx.constraintlayout.solver.widgets.Barrier barrier = (androidx.constraintlayout.solver.widgets.Barrier) helperWidget;
updateType(barrier, constraint.layout.mBarrierDirection, ((ConstraintWidgetContainer) helperWidget.getParent()).isRtl());
barrier.setAllowsGoneWidget(constraint.layout.mBarrierAllowsGoneWidgets);
barrier.setMargin(constraint.layout.mBarrierMargin);
}
}
@Override // androidx.constraintlayout.widget.ConstraintHelper
public void resolveRtl(ConstraintWidget constraintWidget, boolean z2) {
updateType(constraintWidget, this.mIndicatedType, z2);
}
public void setAllowsGoneWidget(boolean z2) {
this.mBarrier.setAllowsGoneWidget(z2);
}
public void setDpMargin(int i) {
androidx.constraintlayout.solver.widgets.Barrier barrier = this.mBarrier;
barrier.setMargin((int) ((((float) i) * getResources().getDisplayMetrics().density) + 0.5f));
}
public void setMargin(int i) {
this.mBarrier.setMargin(i);
}
public void setType(int i) {
this.mIndicatedType = i;
}
}

View file

@ -1,448 +0,0 @@
package androidx.constraintlayout.widget;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.util.Log;
import android.util.TypedValue;
import android.util.Xml;
import android.view.View;
import androidx.constraintlayout.motion.widget.Debug;
import c.d.b.a.a;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.HashMap;
import org.xmlpull.v1.XmlPullParser;
public class ConstraintAttribute {
private static final String TAG = "TransitionLayout";
public boolean mBooleanValue;
private int mColorValue;
private float mFloatValue;
private int mIntegerValue;
public String mName;
private String mStringValue;
private AttributeType mType;
/* renamed from: androidx.constraintlayout.widget.ConstraintAttribute$1 reason: invalid class name */
public static /* synthetic */ class AnonymousClass1 {
public static final /* synthetic */ int[] $SwitchMap$androidx$constraintlayout$widget$ConstraintAttribute$AttributeType;
static {
AttributeType.values();
int[] iArr = new int[7];
$SwitchMap$androidx$constraintlayout$widget$ConstraintAttribute$AttributeType = iArr;
try {
iArr[AttributeType.COLOR_TYPE.ordinal()] = 1;
} catch (NoSuchFieldError unused) {
}
try {
$SwitchMap$androidx$constraintlayout$widget$ConstraintAttribute$AttributeType[AttributeType.COLOR_DRAWABLE_TYPE.ordinal()] = 2;
} catch (NoSuchFieldError unused2) {
}
try {
$SwitchMap$androidx$constraintlayout$widget$ConstraintAttribute$AttributeType[AttributeType.INT_TYPE.ordinal()] = 3;
} catch (NoSuchFieldError unused3) {
}
try {
$SwitchMap$androidx$constraintlayout$widget$ConstraintAttribute$AttributeType[AttributeType.FLOAT_TYPE.ordinal()] = 4;
} catch (NoSuchFieldError unused4) {
}
try {
$SwitchMap$androidx$constraintlayout$widget$ConstraintAttribute$AttributeType[AttributeType.STRING_TYPE.ordinal()] = 5;
} catch (NoSuchFieldError unused5) {
}
try {
$SwitchMap$androidx$constraintlayout$widget$ConstraintAttribute$AttributeType[AttributeType.BOOLEAN_TYPE.ordinal()] = 6;
} catch (NoSuchFieldError unused6) {
}
try {
$SwitchMap$androidx$constraintlayout$widget$ConstraintAttribute$AttributeType[AttributeType.DIMENSION_TYPE.ordinal()] = 7;
} catch (NoSuchFieldError unused7) {
}
}
}
public enum AttributeType {
INT_TYPE,
FLOAT_TYPE,
COLOR_TYPE,
COLOR_DRAWABLE_TYPE,
STRING_TYPE,
BOOLEAN_TYPE,
DIMENSION_TYPE
}
public ConstraintAttribute(ConstraintAttribute constraintAttribute, Object obj) {
this.mName = constraintAttribute.mName;
this.mType = constraintAttribute.mType;
setValue(obj);
}
public ConstraintAttribute(String str, AttributeType attributeType) {
this.mName = str;
this.mType = attributeType;
}
public ConstraintAttribute(String str, AttributeType attributeType, Object obj) {
this.mName = str;
this.mType = attributeType;
setValue(obj);
}
private static int clamp(int i) {
int i2 = (i & (~(i >> 31))) - 255;
return (i2 & (i2 >> 31)) + 255;
}
public static HashMap<String, ConstraintAttribute> extractAttributes(HashMap<String, ConstraintAttribute> hashMap, View view) {
HashMap<String, ConstraintAttribute> hashMap2 = new HashMap<>();
Class<?> cls = view.getClass();
for (String str : hashMap.keySet()) {
ConstraintAttribute constraintAttribute = hashMap.get(str);
try {
if (str.equals("BackgroundColor")) {
hashMap2.put(str, new ConstraintAttribute(constraintAttribute, Integer.valueOf(((ColorDrawable) view.getBackground()).getColor())));
} else {
hashMap2.put(str, new ConstraintAttribute(constraintAttribute, cls.getMethod("getMap" + str, new Class[0]).invoke(view, new Object[0])));
}
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e2) {
e2.printStackTrace();
} catch (InvocationTargetException e3) {
e3.printStackTrace();
}
}
return hashMap2;
}
public static void parse(Context context, XmlPullParser xmlPullParser, HashMap<String, ConstraintAttribute> hashMap) {
AttributeType attributeType;
Object string;
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(Xml.asAttributeSet(xmlPullParser), R.styleable.CustomAttribute);
int indexCount = obtainStyledAttributes.getIndexCount();
String str = null;
Object obj = null;
AttributeType attributeType2 = null;
for (int i = 0; i < indexCount; i++) {
int index = obtainStyledAttributes.getIndex(i);
if (index == R.styleable.CustomAttribute_attributeName) {
str = obtainStyledAttributes.getString(index);
if (str != null && str.length() > 0) {
str = Character.toUpperCase(str.charAt(0)) + str.substring(1);
}
} else if (index == R.styleable.CustomAttribute_customBoolean) {
obj = Boolean.valueOf(obtainStyledAttributes.getBoolean(index, false));
attributeType2 = AttributeType.BOOLEAN_TYPE;
} else {
if (index == R.styleable.CustomAttribute_customColorValue) {
attributeType = AttributeType.COLOR_TYPE;
string = Integer.valueOf(obtainStyledAttributes.getColor(index, 0));
} else if (index == R.styleable.CustomAttribute_customColorDrawableValue) {
attributeType = AttributeType.COLOR_DRAWABLE_TYPE;
string = Integer.valueOf(obtainStyledAttributes.getColor(index, 0));
} else if (index == R.styleable.CustomAttribute_customPixelDimension) {
attributeType = AttributeType.DIMENSION_TYPE;
string = Float.valueOf(TypedValue.applyDimension(1, obtainStyledAttributes.getDimension(index, 0.0f), context.getResources().getDisplayMetrics()));
} else if (index == R.styleable.CustomAttribute_customDimension) {
attributeType = AttributeType.DIMENSION_TYPE;
string = Float.valueOf(obtainStyledAttributes.getDimension(index, 0.0f));
} else if (index == R.styleable.CustomAttribute_customFloatValue) {
attributeType = AttributeType.FLOAT_TYPE;
string = Float.valueOf(obtainStyledAttributes.getFloat(index, Float.NaN));
} else if (index == R.styleable.CustomAttribute_customIntegerValue) {
attributeType = AttributeType.INT_TYPE;
string = Integer.valueOf(obtainStyledAttributes.getInteger(index, -1));
} else if (index == R.styleable.CustomAttribute_customStringValue) {
attributeType = AttributeType.STRING_TYPE;
string = obtainStyledAttributes.getString(index);
}
attributeType2 = attributeType;
obj = string;
}
}
if (!(str == null || obj == null)) {
hashMap.put(str, new ConstraintAttribute(str, attributeType2, obj));
}
obtainStyledAttributes.recycle();
}
public static void setAttributes(View view, HashMap<String, ConstraintAttribute> hashMap) {
Class<?> cls = view.getClass();
for (String str : hashMap.keySet()) {
ConstraintAttribute constraintAttribute = hashMap.get(str);
String s2 = a.s("set", str);
try {
switch (constraintAttribute.mType.ordinal()) {
case 0:
cls.getMethod(s2, Integer.TYPE).invoke(view, Integer.valueOf(constraintAttribute.mIntegerValue));
continue;
case 1:
cls.getMethod(s2, Float.TYPE).invoke(view, Float.valueOf(constraintAttribute.mFloatValue));
continue;
case 2:
cls.getMethod(s2, Integer.TYPE).invoke(view, Integer.valueOf(constraintAttribute.mColorValue));
continue;
case 3:
Method method = cls.getMethod(s2, Drawable.class);
ColorDrawable colorDrawable = new ColorDrawable();
colorDrawable.setColor(constraintAttribute.mColorValue);
method.invoke(view, colorDrawable);
continue;
case 4:
cls.getMethod(s2, CharSequence.class).invoke(view, constraintAttribute.mStringValue);
continue;
case 5:
cls.getMethod(s2, Boolean.TYPE).invoke(view, Boolean.valueOf(constraintAttribute.mBooleanValue));
continue;
case 6:
cls.getMethod(s2, Float.TYPE).invoke(view, Float.valueOf(constraintAttribute.mFloatValue));
continue;
default:
continue;
}
} catch (NoSuchMethodException e) {
Log.e("TransitionLayout", e.getMessage());
Log.e("TransitionLayout", " Custom Attribute \"" + str + "\" not found on " + cls.getName());
StringBuilder sb = new StringBuilder();
sb.append(cls.getName());
sb.append(" must have a method ");
sb.append(s2);
Log.e("TransitionLayout", sb.toString());
} catch (IllegalAccessException e2) {
StringBuilder P = a.P(" Custom Attribute \"", str, "\" not found on ");
P.append(cls.getName());
Log.e("TransitionLayout", P.toString());
e2.printStackTrace();
} catch (InvocationTargetException e3) {
StringBuilder P2 = a.P(" Custom Attribute \"", str, "\" not found on ");
P2.append(cls.getName());
Log.e("TransitionLayout", P2.toString());
e3.printStackTrace();
}
}
}
public boolean diff(ConstraintAttribute constraintAttribute) {
AttributeType attributeType;
if (constraintAttribute == null || (attributeType = this.mType) != constraintAttribute.mType) {
return false;
}
switch (attributeType.ordinal()) {
case 0:
return this.mIntegerValue == constraintAttribute.mIntegerValue;
case 1:
return this.mFloatValue == constraintAttribute.mFloatValue;
case 2:
case 3:
return this.mColorValue == constraintAttribute.mColorValue;
case 4:
return this.mIntegerValue == constraintAttribute.mIntegerValue;
case 5:
return this.mBooleanValue == constraintAttribute.mBooleanValue;
case 6:
return this.mFloatValue == constraintAttribute.mFloatValue;
default:
return false;
}
}
public AttributeType getType() {
return this.mType;
}
public float getValueToInterpolate() {
switch (this.mType.ordinal()) {
case 0:
return (float) this.mIntegerValue;
case 1:
return this.mFloatValue;
case 2:
case 3:
throw new RuntimeException("Color does not have a single color to interpolate");
case 4:
throw new RuntimeException("Cannot interpolate String");
case 5:
return this.mBooleanValue ? 1.0f : 0.0f;
case 6:
return this.mFloatValue;
default:
return Float.NaN;
}
}
public void getValuesToInterpolate(float[] fArr) {
switch (this.mType.ordinal()) {
case 0:
fArr[0] = (float) this.mIntegerValue;
return;
case 1:
fArr[0] = this.mFloatValue;
return;
case 2:
case 3:
int i = this.mColorValue;
float pow = (float) Math.pow((double) (((float) ((i >> 16) & 255)) / 255.0f), 2.2d);
float pow2 = (float) Math.pow((double) (((float) ((i >> 8) & 255)) / 255.0f), 2.2d);
fArr[0] = pow;
fArr[1] = pow2;
fArr[2] = (float) Math.pow((double) (((float) (i & 255)) / 255.0f), 2.2d);
fArr[3] = ((float) ((i >> 24) & 255)) / 255.0f;
return;
case 4:
throw new RuntimeException("Color does not have a single color to interpolate");
case 5:
fArr[0] = this.mBooleanValue ? 1.0f : 0.0f;
return;
case 6:
fArr[0] = this.mFloatValue;
return;
default:
return;
}
}
public int noOfInterpValues() {
int ordinal = this.mType.ordinal();
return (ordinal == 2 || ordinal == 3) ? 4 : 1;
}
public void setColorValue(int i) {
this.mColorValue = i;
}
public void setFloatValue(float f) {
this.mFloatValue = f;
}
public void setIntValue(int i) {
this.mIntegerValue = i;
}
/* JADX DEBUG: Can't convert new array creation: APUT found in different block: 0x0068: APUT
(r7v38 java.lang.Object[])
(0 ??[int, short, byte, char])
(wrap: java.lang.Boolean : 0x0064: INVOKE (r8v30 java.lang.Boolean) = (r13v12 boolean) type: STATIC call: java.lang.Boolean.valueOf(boolean):java.lang.Boolean)
*/
public void setInterpolatedValue(View view, float[] fArr) {
Class<?> cls = view.getClass();
StringBuilder K = a.K("set");
K.append(this.mName);
String sb = K.toString();
try {
boolean z2 = true;
switch (this.mType.ordinal()) {
case 0:
cls.getMethod(sb, Integer.TYPE).invoke(view, Integer.valueOf((int) fArr[0]));
return;
case 1:
cls.getMethod(sb, Float.TYPE).invoke(view, Float.valueOf(fArr[0]));
return;
case 2:
cls.getMethod(sb, Integer.TYPE).invoke(view, Integer.valueOf((clamp((int) (((float) Math.pow((double) fArr[0], 0.45454545454545453d)) * 255.0f)) << 16) | (clamp((int) (fArr[3] * 255.0f)) << 24) | (clamp((int) (((float) Math.pow((double) fArr[1], 0.45454545454545453d)) * 255.0f)) << 8) | clamp((int) (((float) Math.pow((double) fArr[2], 0.45454545454545453d)) * 255.0f))));
return;
case 3:
Method method = cls.getMethod(sb, Drawable.class);
int clamp = clamp((int) (((float) Math.pow((double) fArr[0], 0.45454545454545453d)) * 255.0f));
int clamp2 = clamp((int) (((float) Math.pow((double) fArr[1], 0.45454545454545453d)) * 255.0f));
ColorDrawable colorDrawable = new ColorDrawable();
colorDrawable.setColor((clamp << 16) | (clamp((int) (fArr[3] * 255.0f)) << 24) | (clamp2 << 8) | clamp((int) (((float) Math.pow((double) fArr[2], 0.45454545454545453d)) * 255.0f)));
method.invoke(view, colorDrawable);
return;
case 4:
throw new RuntimeException("unable to interpolate strings " + this.mName);
case 5:
Method method2 = cls.getMethod(sb, Boolean.TYPE);
Object[] objArr = new Object[1];
if (fArr[0] <= 0.5f) {
z2 = false;
}
objArr[0] = Boolean.valueOf(z2);
method2.invoke(view, objArr);
return;
case 6:
cls.getMethod(sb, Float.TYPE).invoke(view, Float.valueOf(fArr[0]));
return;
default:
return;
}
} catch (NoSuchMethodException e) {
StringBuilder P = a.P("no method ", sb, "on View \"");
P.append(Debug.getName(view));
P.append("\"");
Log.e("TransitionLayout", P.toString());
e.printStackTrace();
} catch (IllegalAccessException e2) {
StringBuilder P2 = a.P("cannot access method ", sb, "on View \"");
P2.append(Debug.getName(view));
P2.append("\"");
Log.e("TransitionLayout", P2.toString());
e2.printStackTrace();
} catch (InvocationTargetException e3) {
e3.printStackTrace();
}
}
public void setStringValue(String str) {
this.mStringValue = str;
}
public void setValue(Object obj) {
switch (this.mType.ordinal()) {
case 0:
this.mIntegerValue = ((Integer) obj).intValue();
return;
case 1:
this.mFloatValue = ((Float) obj).floatValue();
return;
case 2:
case 3:
this.mColorValue = ((Integer) obj).intValue();
return;
case 4:
this.mStringValue = (String) obj;
return;
case 5:
this.mBooleanValue = ((Boolean) obj).booleanValue();
return;
case 6:
this.mFloatValue = ((Float) obj).floatValue();
return;
default:
return;
}
}
public void setValue(float[] fArr) {
boolean z2 = false;
switch (this.mType.ordinal()) {
case 0:
this.mIntegerValue = (int) fArr[0];
return;
case 1:
this.mFloatValue = fArr[0];
return;
case 2:
case 3:
int HSVToColor = Color.HSVToColor(fArr);
this.mColorValue = HSVToColor;
this.mColorValue = (clamp((int) (fArr[3] * 255.0f)) << 24) | (HSVToColor & 16777215);
return;
case 4:
throw new RuntimeException("Color does not have a single color to interpolate");
case 5:
if (((double) fArr[0]) > 0.5d) {
z2 = true;
}
this.mBooleanValue = z2;
return;
case 6:
this.mFloatValue = fArr[0];
return;
default:
return;
}
}
}

View file

@ -1,444 +0,0 @@
package androidx.constraintlayout.widget;
import android.content.Context;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.util.AttributeSet;
import android.util.Log;
import android.util.SparseArray;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewParent;
import androidx.constraintlayout.solver.widgets.ConstraintWidget;
import androidx.constraintlayout.solver.widgets.ConstraintWidgetContainer;
import androidx.constraintlayout.solver.widgets.Helper;
import androidx.constraintlayout.solver.widgets.HelperWidget;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.constraintlayout.widget.ConstraintSet;
import androidx.constraintlayout.widget.R;
import c.d.b.a.a;
import java.util.Arrays;
import java.util.HashMap;
public abstract class ConstraintHelper extends View {
public int mCount;
public Helper mHelperWidget;
public int[] mIds;
private HashMap<Integer, String> mMap;
public String mReferenceIds;
public String mReferenceTags;
public boolean mUseViewMeasure;
private View[] mViews;
public Context myContext;
public ConstraintHelper(Context context) {
super(context);
this.mIds = new int[32];
this.mUseViewMeasure = false;
this.mViews = null;
this.mMap = new HashMap<>();
this.myContext = context;
init(null);
}
public ConstraintHelper(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
this.mIds = new int[32];
this.mUseViewMeasure = false;
this.mViews = null;
this.mMap = new HashMap<>();
this.myContext = context;
init(attributeSet);
}
public ConstraintHelper(Context context, AttributeSet attributeSet, int i) {
super(context, attributeSet, i);
this.mIds = new int[32];
this.mUseViewMeasure = false;
this.mViews = null;
this.mMap = new HashMap<>();
this.myContext = context;
init(attributeSet);
}
private void addID(String str) {
if (str != null && str.length() != 0 && this.myContext != null) {
String trim = str.trim();
if (getParent() instanceof ConstraintLayout) {
ConstraintLayout constraintLayout = (ConstraintLayout) getParent();
}
int findId = findId(trim);
if (findId != 0) {
this.mMap.put(Integer.valueOf(findId), trim);
addRscID(findId);
return;
}
Log.w("ConstraintHelper", "Could not find id of \"" + trim + "\"");
}
}
private void addRscID(int i) {
if (i != getId()) {
int i2 = this.mCount + 1;
int[] iArr = this.mIds;
if (i2 > iArr.length) {
this.mIds = Arrays.copyOf(iArr, iArr.length * 2);
}
int[] iArr2 = this.mIds;
int i3 = this.mCount;
iArr2[i3] = i;
this.mCount = i3 + 1;
}
}
private void addTag(String str) {
if (!(str == null || str.length() == 0 || this.myContext == null)) {
String trim = str.trim();
ConstraintLayout constraintLayout = null;
if (getParent() instanceof ConstraintLayout) {
constraintLayout = (ConstraintLayout) getParent();
}
if (constraintLayout == null) {
Log.w("ConstraintHelper", "Parent not a ConstraintLayout");
return;
}
int childCount = constraintLayout.getChildCount();
for (int i = 0; i < childCount; i++) {
View childAt = constraintLayout.getChildAt(i);
ViewGroup.LayoutParams layoutParams = childAt.getLayoutParams();
if ((layoutParams instanceof ConstraintLayout.LayoutParams) && trim.equals(((ConstraintLayout.LayoutParams) layoutParams).constraintTag)) {
if (childAt.getId() == -1) {
StringBuilder K = a.K("to use ConstraintTag view ");
K.append(childAt.getClass().getSimpleName());
K.append(" must have an ID");
Log.w("ConstraintHelper", K.toString());
} else {
addRscID(childAt.getId());
}
}
}
}
}
private int[] convertReferenceString(View view, String str) {
String[] split = str.split(",");
view.getContext();
int[] iArr = new int[split.length];
int i = 0;
for (String str2 : split) {
int findId = findId(str2.trim());
if (findId != 0) {
iArr[i] = findId;
i++;
}
}
return i != split.length ? Arrays.copyOf(iArr, i) : iArr;
}
private int findId(ConstraintLayout constraintLayout, String str) {
Resources resources;
if (str == null || constraintLayout == null || (resources = this.myContext.getResources()) == null) {
return 0;
}
int childCount = constraintLayout.getChildCount();
for (int i = 0; i < childCount; i++) {
View childAt = constraintLayout.getChildAt(i);
if (childAt.getId() != -1) {
String str2 = null;
try {
str2 = resources.getResourceEntryName(childAt.getId());
} catch (Resources.NotFoundException unused) {
}
if (str.equals(str2)) {
return childAt.getId();
}
}
}
return 0;
}
private int findId(String str) {
ConstraintLayout constraintLayout = getParent() instanceof ConstraintLayout ? (ConstraintLayout) getParent() : null;
int i = 0;
if (isInEditMode() && constraintLayout != null) {
Object designInformation = constraintLayout.getDesignInformation(0, str);
if (designInformation instanceof Integer) {
i = ((Integer) designInformation).intValue();
}
}
if (i == 0 && constraintLayout != null) {
i = findId(constraintLayout, str);
}
if (i == 0) {
try {
i = R.id.class.getField(str).getInt(null);
} catch (Exception unused) {
}
}
return i == 0 ? this.myContext.getResources().getIdentifier(str, "id", this.myContext.getPackageName()) : i;
}
public void addView(View view) {
if (view != this) {
if (view.getId() == -1) {
Log.e("ConstraintHelper", "Views added to a ConstraintHelper need to have an id");
} else if (view.getParent() == null) {
Log.e("ConstraintHelper", "Views added to a ConstraintHelper need to have a parent");
} else {
this.mReferenceIds = null;
addRscID(view.getId());
requestLayout();
}
}
}
public void applyLayoutFeatures() {
ViewParent parent = getParent();
if (parent != null && (parent instanceof ConstraintLayout)) {
applyLayoutFeatures((ConstraintLayout) parent);
}
}
public void applyLayoutFeatures(ConstraintLayout constraintLayout) {
int visibility = getVisibility();
float elevation = getElevation();
for (int i = 0; i < this.mCount; i++) {
View viewById = constraintLayout.getViewById(this.mIds[i]);
if (viewById != null) {
viewById.setVisibility(visibility);
if (elevation > 0.0f) {
viewById.setTranslationZ(viewById.getTranslationZ() + elevation);
}
}
}
}
public int[] getReferencedIds() {
return Arrays.copyOf(this.mIds, this.mCount);
}
public View[] getViews(ConstraintLayout constraintLayout) {
View[] viewArr = this.mViews;
if (viewArr == null || viewArr.length != this.mCount) {
this.mViews = new View[this.mCount];
}
for (int i = 0; i < this.mCount; i++) {
this.mViews[i] = constraintLayout.getViewById(this.mIds[i]);
}
return this.mViews;
}
public void init(AttributeSet attributeSet) {
if (attributeSet != null) {
TypedArray obtainStyledAttributes = getContext().obtainStyledAttributes(attributeSet, R.styleable.ConstraintLayout_Layout);
int indexCount = obtainStyledAttributes.getIndexCount();
for (int i = 0; i < indexCount; i++) {
int index = obtainStyledAttributes.getIndex(i);
if (index == R.styleable.ConstraintLayout_Layout_constraint_referenced_ids) {
String string = obtainStyledAttributes.getString(index);
this.mReferenceIds = string;
setIds(string);
} else if (index == R.styleable.ConstraintLayout_Layout_constraint_referenced_tags) {
String string2 = obtainStyledAttributes.getString(index);
this.mReferenceTags = string2;
setReferenceTags(string2);
}
}
obtainStyledAttributes.recycle();
}
}
public void loadParameters(ConstraintSet.Constraint constraint, HelperWidget helperWidget, ConstraintLayout.LayoutParams layoutParams, SparseArray<ConstraintWidget> sparseArray) {
ConstraintSet.Layout layout = constraint.layout;
int[] iArr = layout.mReferenceIds;
if (iArr != null) {
setReferencedIds(iArr);
} else {
String str = layout.mReferenceIdString;
if (str != null && str.length() > 0) {
ConstraintSet.Layout layout2 = constraint.layout;
layout2.mReferenceIds = convertReferenceString(this, layout2.mReferenceIdString);
}
}
helperWidget.removeAllIds();
if (constraint.layout.mReferenceIds != null) {
int i = 0;
while (true) {
int[] iArr2 = constraint.layout.mReferenceIds;
if (i < iArr2.length) {
ConstraintWidget constraintWidget = sparseArray.get(iArr2[i]);
if (constraintWidget != null) {
helperWidget.add(constraintWidget);
}
i++;
} else {
return;
}
}
}
}
@Override // android.view.View
public void onAttachedToWindow() {
super.onAttachedToWindow();
String str = this.mReferenceIds;
if (str != null) {
setIds(str);
}
String str2 = this.mReferenceTags;
if (str2 != null) {
setReferenceTags(str2);
}
}
@Override // android.view.View
public void onDraw(Canvas canvas) {
}
@Override // android.view.View
public void onMeasure(int i, int i2) {
if (this.mUseViewMeasure) {
super.onMeasure(i, i2);
} else {
setMeasuredDimension(0, 0);
}
}
public void removeView(View view) {
int i;
int id2 = view.getId();
if (id2 != -1) {
this.mReferenceIds = null;
int i2 = 0;
while (true) {
if (i2 >= this.mCount) {
break;
} else if (this.mIds[i2] == id2) {
while (true) {
i = this.mCount;
if (i2 >= i - 1) {
break;
}
int[] iArr = this.mIds;
int i3 = i2 + 1;
iArr[i2] = iArr[i3];
i2 = i3;
}
this.mIds[i - 1] = 0;
this.mCount = i - 1;
} else {
i2++;
}
}
requestLayout();
}
}
public void resolveRtl(ConstraintWidget constraintWidget, boolean z2) {
}
public void setIds(String str) {
this.mReferenceIds = str;
if (str != null) {
int i = 0;
this.mCount = 0;
while (true) {
int indexOf = str.indexOf(44, i);
if (indexOf == -1) {
addID(str.substring(i));
return;
} else {
addID(str.substring(i, indexOf));
i = indexOf + 1;
}
}
}
}
public void setReferenceTags(String str) {
this.mReferenceTags = str;
if (str != null) {
int i = 0;
this.mCount = 0;
while (true) {
int indexOf = str.indexOf(44, i);
if (indexOf == -1) {
addTag(str.substring(i));
return;
} else {
addTag(str.substring(i, indexOf));
i = indexOf + 1;
}
}
}
}
public void setReferencedIds(int[] iArr) {
this.mReferenceIds = null;
this.mCount = 0;
for (int i : iArr) {
addRscID(i);
}
}
@Override // android.view.View
public void setTag(int i, Object obj) {
super.setTag(i, obj);
if (obj == null && this.mReferenceIds == null) {
addRscID(i);
}
}
public void updatePostConstraints(ConstraintLayout constraintLayout) {
}
public void updatePostLayout(ConstraintLayout constraintLayout) {
}
public void updatePostMeasure(ConstraintLayout constraintLayout) {
}
public void updatePreDraw(ConstraintLayout constraintLayout) {
}
public void updatePreLayout(ConstraintWidgetContainer constraintWidgetContainer, Helper helper, SparseArray<ConstraintWidget> sparseArray) {
helper.removeAllIds();
for (int i = 0; i < this.mCount; i++) {
helper.add(sparseArray.get(this.mIds[i]));
}
}
public void updatePreLayout(ConstraintLayout constraintLayout) {
String str;
int findId;
if (isInEditMode()) {
setIds(this.mReferenceIds);
}
Helper helper = this.mHelperWidget;
if (helper != null) {
helper.removeAllIds();
for (int i = 0; i < this.mCount; i++) {
int i2 = this.mIds[i];
View viewById = constraintLayout.getViewById(i2);
if (viewById == null && (findId = findId(constraintLayout, (str = this.mMap.get(Integer.valueOf(i2))))) != 0) {
this.mIds[i] = findId;
this.mMap.put(Integer.valueOf(findId), str);
viewById = constraintLayout.getViewById(findId);
}
if (viewById != null) {
this.mHelperWidget.add(constraintLayout.getViewWidget(viewById));
}
}
this.mHelperWidget.updateConstraints(constraintLayout.mLayoutWidget);
}
}
public void validateParams() {
if (this.mHelperWidget != null) {
ViewGroup.LayoutParams layoutParams = getLayoutParams();
if (layoutParams instanceof ConstraintLayout.LayoutParams) {
((ConstraintLayout.LayoutParams) layoutParams).widget = (ConstraintWidget) this.mHelperWidget;
}
}
}
}

View file

@ -1,270 +0,0 @@
package androidx.constraintlayout.widget;
import android.content.Context;
import android.content.res.TypedArray;
import android.content.res.XmlResourceParser;
import android.util.Log;
import android.util.SparseArray;
import android.util.Xml;
import java.io.IOException;
import java.util.ArrayList;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
public class ConstraintLayoutStates {
private static final boolean DEBUG = false;
public static final String TAG = "ConstraintLayoutStates";
private final ConstraintLayout mConstraintLayout;
private SparseArray<ConstraintSet> mConstraintSetMap = new SparseArray<>();
private ConstraintsChangedListener mConstraintsChangedListener = null;
public int mCurrentConstraintNumber = -1;
public int mCurrentStateId = -1;
public ConstraintSet mDefaultConstraintSet;
private SparseArray<State> mStateList = new SparseArray<>();
public static class State {
public int mConstraintID = -1;
public ConstraintSet mConstraintSet;
public int mId;
public ArrayList<Variant> mVariants = new ArrayList<>();
public State(Context context, XmlPullParser xmlPullParser) {
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(Xml.asAttributeSet(xmlPullParser), R.styleable.State);
int indexCount = obtainStyledAttributes.getIndexCount();
for (int i = 0; i < indexCount; i++) {
int index = obtainStyledAttributes.getIndex(i);
if (index == R.styleable.State_android_id) {
this.mId = obtainStyledAttributes.getResourceId(index, this.mId);
} else if (index == R.styleable.State_constraints) {
this.mConstraintID = obtainStyledAttributes.getResourceId(index, this.mConstraintID);
String resourceTypeName = context.getResources().getResourceTypeName(this.mConstraintID);
context.getResources().getResourceName(this.mConstraintID);
if ("layout".equals(resourceTypeName)) {
ConstraintSet constraintSet = new ConstraintSet();
this.mConstraintSet = constraintSet;
constraintSet.clone(context, this.mConstraintID);
}
}
}
obtainStyledAttributes.recycle();
}
public void add(Variant variant) {
this.mVariants.add(variant);
}
public int findMatch(float f, float f2) {
for (int i = 0; i < this.mVariants.size(); i++) {
if (this.mVariants.get(i).match(f, f2)) {
return i;
}
}
return -1;
}
}
public static class Variant {
public int mConstraintID = -1;
public ConstraintSet mConstraintSet;
public int mId;
public float mMaxHeight = Float.NaN;
public float mMaxWidth = Float.NaN;
public float mMinHeight = Float.NaN;
public float mMinWidth = Float.NaN;
public Variant(Context context, XmlPullParser xmlPullParser) {
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(Xml.asAttributeSet(xmlPullParser), R.styleable.Variant);
int indexCount = obtainStyledAttributes.getIndexCount();
for (int i = 0; i < indexCount; i++) {
int index = obtainStyledAttributes.getIndex(i);
if (index == R.styleable.Variant_constraints) {
this.mConstraintID = obtainStyledAttributes.getResourceId(index, this.mConstraintID);
String resourceTypeName = context.getResources().getResourceTypeName(this.mConstraintID);
context.getResources().getResourceName(this.mConstraintID);
if ("layout".equals(resourceTypeName)) {
ConstraintSet constraintSet = new ConstraintSet();
this.mConstraintSet = constraintSet;
constraintSet.clone(context, this.mConstraintID);
}
} else if (index == R.styleable.Variant_region_heightLessThan) {
this.mMaxHeight = obtainStyledAttributes.getDimension(index, this.mMaxHeight);
} else if (index == R.styleable.Variant_region_heightMoreThan) {
this.mMinHeight = obtainStyledAttributes.getDimension(index, this.mMinHeight);
} else if (index == R.styleable.Variant_region_widthLessThan) {
this.mMaxWidth = obtainStyledAttributes.getDimension(index, this.mMaxWidth);
} else if (index == R.styleable.Variant_region_widthMoreThan) {
this.mMinWidth = obtainStyledAttributes.getDimension(index, this.mMinWidth);
} else {
Log.v("ConstraintLayoutStates", "Unknown tag");
}
}
obtainStyledAttributes.recycle();
}
public boolean match(float f, float f2) {
if (!Float.isNaN(this.mMinWidth) && f < this.mMinWidth) {
return false;
}
if (!Float.isNaN(this.mMinHeight) && f2 < this.mMinHeight) {
return false;
}
if (Float.isNaN(this.mMaxWidth) || f <= this.mMaxWidth) {
return Float.isNaN(this.mMaxHeight) || f2 <= this.mMaxHeight;
}
return false;
}
}
public ConstraintLayoutStates(Context context, ConstraintLayout constraintLayout, int i) {
this.mConstraintLayout = constraintLayout;
load(context, i);
}
private void load(Context context, int i) {
XmlResourceParser xml = context.getResources().getXml(i);
State state = null;
try {
for (int eventType = xml.getEventType(); eventType != 1; eventType = xml.next()) {
if (eventType == 0) {
xml.getName();
} else if (eventType == 2) {
String name = xml.getName();
char c2 = 65535;
switch (name.hashCode()) {
case -1349929691:
if (name.equals("ConstraintSet")) {
c2 = 4;
break;
}
break;
case 80204913:
if (name.equals("State")) {
c2 = 2;
break;
}
break;
case 1382829617:
if (name.equals("StateSet")) {
c2 = 1;
break;
}
break;
case 1657696882:
if (name.equals("layoutDescription")) {
c2 = 0;
break;
}
break;
case 1901439077:
if (name.equals("Variant")) {
c2 = 3;
break;
}
break;
}
if (!(c2 == 0 || c2 == 1)) {
if (c2 == 2) {
state = new State(context, xml);
this.mStateList.put(state.mId, state);
} else if (c2 == 3) {
Variant variant = new Variant(context, xml);
if (state != null) {
state.add(variant);
}
} else if (c2 != 4) {
Log.v("ConstraintLayoutStates", "unknown tag " + name);
} else {
parseConstraintSet(context, xml);
}
}
}
}
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e2) {
e2.printStackTrace();
}
}
private void parseConstraintSet(Context context, XmlPullParser xmlPullParser) {
ConstraintSet constraintSet = new ConstraintSet();
int attributeCount = xmlPullParser.getAttributeCount();
for (int i = 0; i < attributeCount; i++) {
if ("id".equals(xmlPullParser.getAttributeName(i))) {
String attributeValue = xmlPullParser.getAttributeValue(i);
int identifier = attributeValue.contains("/") ? context.getResources().getIdentifier(attributeValue.substring(attributeValue.indexOf(47) + 1), "id", context.getPackageName()) : -1;
if (identifier == -1) {
if (attributeValue.length() > 1) {
identifier = Integer.parseInt(attributeValue.substring(1));
} else {
Log.e("ConstraintLayoutStates", "error in parsing id");
}
}
constraintSet.load(context, xmlPullParser);
this.mConstraintSetMap.put(identifier, constraintSet);
return;
}
}
}
public boolean needsToChange(int i, float f, float f2) {
int i2 = this.mCurrentStateId;
if (i2 != i) {
return true;
}
State valueAt = i == -1 ? this.mStateList.valueAt(0) : this.mStateList.get(i2);
int i3 = this.mCurrentConstraintNumber;
return (i3 == -1 || !valueAt.mVariants.get(i3).match(f, f2)) && this.mCurrentConstraintNumber != valueAt.findMatch(f, f2);
}
public void setOnConstraintsChanged(ConstraintsChangedListener constraintsChangedListener) {
this.mConstraintsChangedListener = constraintsChangedListener;
}
public void updateConstraints(int i, float f, float f2) {
int findMatch;
int i2 = this.mCurrentStateId;
if (i2 == i) {
State valueAt = i == -1 ? this.mStateList.valueAt(0) : this.mStateList.get(i2);
int i3 = this.mCurrentConstraintNumber;
if ((i3 == -1 || !valueAt.mVariants.get(i3).match(f, f2)) && this.mCurrentConstraintNumber != (findMatch = valueAt.findMatch(f, f2))) {
ConstraintSet constraintSet = findMatch == -1 ? this.mDefaultConstraintSet : valueAt.mVariants.get(findMatch).mConstraintSet;
int i4 = findMatch == -1 ? valueAt.mConstraintID : valueAt.mVariants.get(findMatch).mConstraintID;
if (constraintSet != null) {
this.mCurrentConstraintNumber = findMatch;
ConstraintsChangedListener constraintsChangedListener = this.mConstraintsChangedListener;
if (constraintsChangedListener != null) {
constraintsChangedListener.preLayoutChange(-1, i4);
}
constraintSet.applyTo(this.mConstraintLayout);
ConstraintsChangedListener constraintsChangedListener2 = this.mConstraintsChangedListener;
if (constraintsChangedListener2 != null) {
constraintsChangedListener2.postLayoutChange(-1, i4);
return;
}
return;
}
return;
}
return;
}
this.mCurrentStateId = i;
State state = this.mStateList.get(i);
int findMatch2 = state.findMatch(f, f2);
ConstraintSet constraintSet2 = findMatch2 == -1 ? state.mConstraintSet : state.mVariants.get(findMatch2).mConstraintSet;
int i5 = findMatch2 == -1 ? state.mConstraintID : state.mVariants.get(findMatch2).mConstraintID;
if (constraintSet2 == null) {
Log.v("ConstraintLayoutStates", "NO Constraint set found ! id=" + i + ", dim =" + f + ", " + f2);
return;
}
this.mCurrentConstraintNumber = findMatch2;
ConstraintsChangedListener constraintsChangedListener3 = this.mConstraintsChangedListener;
if (constraintsChangedListener3 != null) {
constraintsChangedListener3.preLayoutChange(i, i5);
}
constraintSet2.applyTo(this.mConstraintLayout);
ConstraintsChangedListener constraintsChangedListener4 = this.mConstraintsChangedListener;
if (constraintsChangedListener4 != null) {
constraintsChangedListener4.postLayoutChange(i, i5);
}
}
}

View file

@ -1,617 +0,0 @@
package androidx.constraintlayout.widget;
import android.view.View;
import android.view.ViewGroup;
import androidx.constraintlayout.widget.ConstraintLayout;
import c.d.b.a.a;
public class ConstraintProperties {
public static final int BASELINE = 5;
public static final int BOTTOM = 4;
public static final int END = 7;
public static final int LEFT = 1;
public static final int MATCH_CONSTRAINT = 0;
public static final int MATCH_CONSTRAINT_SPREAD = 0;
public static final int MATCH_CONSTRAINT_WRAP = 1;
public static final int PARENT_ID = 0;
public static final int RIGHT = 2;
public static final int START = 6;
public static final int TOP = 3;
public static final int UNSET = -1;
public static final int WRAP_CONTENT = -2;
public ConstraintLayout.LayoutParams mParams;
public View mView;
public ConstraintProperties(View view) {
ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
if (layoutParams instanceof ConstraintLayout.LayoutParams) {
this.mParams = (ConstraintLayout.LayoutParams) layoutParams;
this.mView = view;
return;
}
throw new RuntimeException("Only children of ConstraintLayout.LayoutParams supported");
}
private String sideToString(int i) {
switch (i) {
case 1:
return "left";
case 2:
return "right";
case 3:
return "top";
case 4:
return "bottom";
case 5:
return "baseline";
case 6:
return "start";
case 7:
return "end";
default:
return "undefined";
}
}
public ConstraintProperties addToHorizontalChain(int i, int i2) {
connect(1, i, i == 0 ? 1 : 2, 0);
connect(2, i2, i2 == 0 ? 2 : 1, 0);
if (i != 0) {
new ConstraintProperties(((ViewGroup) this.mView.getParent()).findViewById(i)).connect(2, this.mView.getId(), 1, 0);
}
if (i2 != 0) {
new ConstraintProperties(((ViewGroup) this.mView.getParent()).findViewById(i2)).connect(1, this.mView.getId(), 2, 0);
}
return this;
}
public ConstraintProperties addToHorizontalChainRTL(int i, int i2) {
connect(6, i, i == 0 ? 6 : 7, 0);
connect(7, i2, i2 == 0 ? 7 : 6, 0);
if (i != 0) {
new ConstraintProperties(((ViewGroup) this.mView.getParent()).findViewById(i)).connect(7, this.mView.getId(), 6, 0);
}
if (i2 != 0) {
new ConstraintProperties(((ViewGroup) this.mView.getParent()).findViewById(i2)).connect(6, this.mView.getId(), 7, 0);
}
return this;
}
public ConstraintProperties addToVerticalChain(int i, int i2) {
connect(3, i, i == 0 ? 3 : 4, 0);
connect(4, i2, i2 == 0 ? 4 : 3, 0);
if (i != 0) {
new ConstraintProperties(((ViewGroup) this.mView.getParent()).findViewById(i)).connect(4, this.mView.getId(), 3, 0);
}
if (i2 != 0) {
new ConstraintProperties(((ViewGroup) this.mView.getParent()).findViewById(i2)).connect(3, this.mView.getId(), 4, 0);
}
return this;
}
public ConstraintProperties alpha(float f) {
this.mView.setAlpha(f);
return this;
}
public void apply() {
}
public ConstraintProperties center(int i, int i2, int i3, int i4, int i5, int i6, float f) {
if (i3 < 0) {
throw new IllegalArgumentException("margin must be > 0");
} else if (i6 < 0) {
throw new IllegalArgumentException("margin must be > 0");
} else if (f <= 0.0f || f > 1.0f) {
throw new IllegalArgumentException("bias must be between 0 and 1 inclusive");
} else {
if (i2 == 1 || i2 == 2) {
connect(1, i, i2, i3);
connect(2, i4, i5, i6);
this.mParams.horizontalBias = f;
} else if (i2 == 6 || i2 == 7) {
connect(6, i, i2, i3);
connect(7, i4, i5, i6);
this.mParams.horizontalBias = f;
} else {
connect(3, i, i2, i3);
connect(4, i4, i5, i6);
this.mParams.verticalBias = f;
}
return this;
}
}
public ConstraintProperties centerHorizontally(int i) {
if (i == 0) {
center(0, 1, 0, 0, 2, 0, 0.5f);
} else {
center(i, 2, 0, i, 1, 0, 0.5f);
}
return this;
}
public ConstraintProperties centerHorizontally(int i, int i2, int i3, int i4, int i5, int i6, float f) {
connect(1, i, i2, i3);
connect(2, i4, i5, i6);
this.mParams.horizontalBias = f;
return this;
}
public ConstraintProperties centerHorizontallyRtl(int i) {
if (i == 0) {
center(0, 6, 0, 0, 7, 0, 0.5f);
} else {
center(i, 7, 0, i, 6, 0, 0.5f);
}
return this;
}
public ConstraintProperties centerHorizontallyRtl(int i, int i2, int i3, int i4, int i5, int i6, float f) {
connect(6, i, i2, i3);
connect(7, i4, i5, i6);
this.mParams.horizontalBias = f;
return this;
}
public ConstraintProperties centerVertically(int i) {
if (i == 0) {
center(0, 3, 0, 0, 4, 0, 0.5f);
} else {
center(i, 4, 0, i, 3, 0, 0.5f);
}
return this;
}
public ConstraintProperties centerVertically(int i, int i2, int i3, int i4, int i5, int i6, float f) {
connect(3, i, i2, i3);
connect(4, i4, i5, i6);
this.mParams.verticalBias = f;
return this;
}
public ConstraintProperties connect(int i, int i2, int i3, int i4) {
switch (i) {
case 1:
if (i3 == 1) {
ConstraintLayout.LayoutParams layoutParams = this.mParams;
layoutParams.leftToLeft = i2;
layoutParams.leftToRight = -1;
} else if (i3 == 2) {
ConstraintLayout.LayoutParams layoutParams2 = this.mParams;
layoutParams2.leftToRight = i2;
layoutParams2.leftToLeft = -1;
} else {
throw new IllegalArgumentException(a.C(a.K("Left to "), sideToString(i3), " undefined"));
}
((ViewGroup.MarginLayoutParams) this.mParams).leftMargin = i4;
break;
case 2:
if (i3 == 1) {
ConstraintLayout.LayoutParams layoutParams3 = this.mParams;
layoutParams3.rightToLeft = i2;
layoutParams3.rightToRight = -1;
} else if (i3 == 2) {
ConstraintLayout.LayoutParams layoutParams4 = this.mParams;
layoutParams4.rightToRight = i2;
layoutParams4.rightToLeft = -1;
} else {
throw new IllegalArgumentException(a.C(a.K("right to "), sideToString(i3), " undefined"));
}
((ViewGroup.MarginLayoutParams) this.mParams).rightMargin = i4;
break;
case 3:
if (i3 == 3) {
ConstraintLayout.LayoutParams layoutParams5 = this.mParams;
layoutParams5.topToTop = i2;
layoutParams5.topToBottom = -1;
layoutParams5.baselineToBaseline = -1;
} else if (i3 == 4) {
ConstraintLayout.LayoutParams layoutParams6 = this.mParams;
layoutParams6.topToBottom = i2;
layoutParams6.topToTop = -1;
layoutParams6.baselineToBaseline = -1;
} else {
throw new IllegalArgumentException(a.C(a.K("right to "), sideToString(i3), " undefined"));
}
((ViewGroup.MarginLayoutParams) this.mParams).topMargin = i4;
break;
case 4:
if (i3 == 4) {
ConstraintLayout.LayoutParams layoutParams7 = this.mParams;
layoutParams7.bottomToBottom = i2;
layoutParams7.bottomToTop = -1;
layoutParams7.baselineToBaseline = -1;
} else if (i3 == 3) {
ConstraintLayout.LayoutParams layoutParams8 = this.mParams;
layoutParams8.bottomToTop = i2;
layoutParams8.bottomToBottom = -1;
layoutParams8.baselineToBaseline = -1;
} else {
throw new IllegalArgumentException(a.C(a.K("right to "), sideToString(i3), " undefined"));
}
((ViewGroup.MarginLayoutParams) this.mParams).bottomMargin = i4;
break;
case 5:
if (i3 == 5) {
ConstraintLayout.LayoutParams layoutParams9 = this.mParams;
layoutParams9.baselineToBaseline = i2;
layoutParams9.bottomToBottom = -1;
layoutParams9.bottomToTop = -1;
layoutParams9.topToTop = -1;
layoutParams9.topToBottom = -1;
break;
} else {
throw new IllegalArgumentException(a.C(a.K("right to "), sideToString(i3), " undefined"));
}
case 6:
if (i3 == 6) {
ConstraintLayout.LayoutParams layoutParams10 = this.mParams;
layoutParams10.startToStart = i2;
layoutParams10.startToEnd = -1;
} else if (i3 == 7) {
ConstraintLayout.LayoutParams layoutParams11 = this.mParams;
layoutParams11.startToEnd = i2;
layoutParams11.startToStart = -1;
} else {
throw new IllegalArgumentException(a.C(a.K("right to "), sideToString(i3), " undefined"));
}
this.mParams.setMarginStart(i4);
break;
case 7:
if (i3 == 7) {
ConstraintLayout.LayoutParams layoutParams12 = this.mParams;
layoutParams12.endToEnd = i2;
layoutParams12.endToStart = -1;
} else if (i3 == 6) {
ConstraintLayout.LayoutParams layoutParams13 = this.mParams;
layoutParams13.endToStart = i2;
layoutParams13.endToEnd = -1;
} else {
throw new IllegalArgumentException(a.C(a.K("right to "), sideToString(i3), " undefined"));
}
this.mParams.setMarginEnd(i4);
break;
default:
StringBuilder sb = new StringBuilder();
sb.append(sideToString(i));
sb.append(" to ");
throw new IllegalArgumentException(a.C(sb, sideToString(i3), " unknown"));
}
return this;
}
public ConstraintProperties constrainDefaultHeight(int i) {
this.mParams.matchConstraintDefaultHeight = i;
return this;
}
public ConstraintProperties constrainDefaultWidth(int i) {
this.mParams.matchConstraintDefaultWidth = i;
return this;
}
public ConstraintProperties constrainHeight(int i) {
((ViewGroup.MarginLayoutParams) this.mParams).height = i;
return this;
}
public ConstraintProperties constrainMaxHeight(int i) {
this.mParams.matchConstraintMaxHeight = i;
return this;
}
public ConstraintProperties constrainMaxWidth(int i) {
this.mParams.matchConstraintMaxWidth = i;
return this;
}
public ConstraintProperties constrainMinHeight(int i) {
this.mParams.matchConstraintMinHeight = i;
return this;
}
public ConstraintProperties constrainMinWidth(int i) {
this.mParams.matchConstraintMinWidth = i;
return this;
}
public ConstraintProperties constrainWidth(int i) {
((ViewGroup.MarginLayoutParams) this.mParams).width = i;
return this;
}
public ConstraintProperties dimensionRatio(String str) {
this.mParams.dimensionRatio = str;
return this;
}
public ConstraintProperties elevation(float f) {
this.mView.setElevation(f);
return this;
}
public ConstraintProperties goneMargin(int i, int i2) {
switch (i) {
case 1:
this.mParams.goneLeftMargin = i2;
break;
case 2:
this.mParams.goneRightMargin = i2;
break;
case 3:
this.mParams.goneTopMargin = i2;
break;
case 4:
this.mParams.goneBottomMargin = i2;
break;
case 5:
throw new IllegalArgumentException("baseline does not support margins");
case 6:
this.mParams.goneStartMargin = i2;
break;
case 7:
this.mParams.goneEndMargin = i2;
break;
default:
throw new IllegalArgumentException("unknown constraint");
}
return this;
}
public ConstraintProperties horizontalBias(float f) {
this.mParams.horizontalBias = f;
return this;
}
public ConstraintProperties horizontalChainStyle(int i) {
this.mParams.horizontalChainStyle = i;
return this;
}
public ConstraintProperties horizontalWeight(float f) {
this.mParams.horizontalWeight = f;
return this;
}
public ConstraintProperties margin(int i, int i2) {
switch (i) {
case 1:
((ViewGroup.MarginLayoutParams) this.mParams).leftMargin = i2;
break;
case 2:
((ViewGroup.MarginLayoutParams) this.mParams).rightMargin = i2;
break;
case 3:
((ViewGroup.MarginLayoutParams) this.mParams).topMargin = i2;
break;
case 4:
((ViewGroup.MarginLayoutParams) this.mParams).bottomMargin = i2;
break;
case 5:
throw new IllegalArgumentException("baseline does not support margins");
case 6:
this.mParams.setMarginStart(i2);
break;
case 7:
this.mParams.setMarginEnd(i2);
break;
default:
throw new IllegalArgumentException("unknown constraint");
}
return this;
}
public ConstraintProperties removeConstraints(int i) {
switch (i) {
case 1:
ConstraintLayout.LayoutParams layoutParams = this.mParams;
layoutParams.leftToRight = -1;
layoutParams.leftToLeft = -1;
((ViewGroup.MarginLayoutParams) layoutParams).leftMargin = -1;
layoutParams.goneLeftMargin = -1;
break;
case 2:
ConstraintLayout.LayoutParams layoutParams2 = this.mParams;
layoutParams2.rightToRight = -1;
layoutParams2.rightToLeft = -1;
((ViewGroup.MarginLayoutParams) layoutParams2).rightMargin = -1;
layoutParams2.goneRightMargin = -1;
break;
case 3:
ConstraintLayout.LayoutParams layoutParams3 = this.mParams;
layoutParams3.topToBottom = -1;
layoutParams3.topToTop = -1;
((ViewGroup.MarginLayoutParams) layoutParams3).topMargin = -1;
layoutParams3.goneTopMargin = -1;
break;
case 4:
ConstraintLayout.LayoutParams layoutParams4 = this.mParams;
layoutParams4.bottomToTop = -1;
layoutParams4.bottomToBottom = -1;
((ViewGroup.MarginLayoutParams) layoutParams4).bottomMargin = -1;
layoutParams4.goneBottomMargin = -1;
break;
case 5:
this.mParams.baselineToBaseline = -1;
break;
case 6:
ConstraintLayout.LayoutParams layoutParams5 = this.mParams;
layoutParams5.startToEnd = -1;
layoutParams5.startToStart = -1;
layoutParams5.setMarginStart(-1);
this.mParams.goneStartMargin = -1;
break;
case 7:
ConstraintLayout.LayoutParams layoutParams6 = this.mParams;
layoutParams6.endToStart = -1;
layoutParams6.endToEnd = -1;
layoutParams6.setMarginEnd(-1);
this.mParams.goneEndMargin = -1;
break;
default:
throw new IllegalArgumentException("unknown constraint");
}
return this;
}
public ConstraintProperties removeFromHorizontalChain() {
ConstraintLayout.LayoutParams layoutParams = this.mParams;
int i = layoutParams.leftToRight;
int i2 = layoutParams.rightToLeft;
if (i == -1 && i2 == -1) {
int i3 = layoutParams.startToEnd;
int i4 = layoutParams.endToStart;
if (!(i3 == -1 && i4 == -1)) {
ConstraintProperties constraintProperties = new ConstraintProperties(((ViewGroup) this.mView.getParent()).findViewById(i3));
ConstraintProperties constraintProperties2 = new ConstraintProperties(((ViewGroup) this.mView.getParent()).findViewById(i4));
ConstraintLayout.LayoutParams layoutParams2 = this.mParams;
if (i3 != -1 && i4 != -1) {
constraintProperties.connect(7, i4, 6, 0);
constraintProperties2.connect(6, i, 7, 0);
} else if (!(i == -1 && i4 == -1)) {
int i5 = layoutParams2.rightToRight;
if (i5 != -1) {
constraintProperties.connect(7, i5, 7, 0);
} else {
int i6 = layoutParams2.leftToLeft;
if (i6 != -1) {
constraintProperties2.connect(6, i6, 6, 0);
}
}
}
}
removeConstraints(6);
removeConstraints(7);
} else {
ConstraintProperties constraintProperties3 = new ConstraintProperties(((ViewGroup) this.mView.getParent()).findViewById(i));
ConstraintProperties constraintProperties4 = new ConstraintProperties(((ViewGroup) this.mView.getParent()).findViewById(i2));
ConstraintLayout.LayoutParams layoutParams3 = this.mParams;
if (i != -1 && i2 != -1) {
constraintProperties3.connect(2, i2, 1, 0);
constraintProperties4.connect(1, i, 2, 0);
} else if (!(i == -1 && i2 == -1)) {
int i7 = layoutParams3.rightToRight;
if (i7 != -1) {
constraintProperties3.connect(2, i7, 2, 0);
} else {
int i8 = layoutParams3.leftToLeft;
if (i8 != -1) {
constraintProperties4.connect(1, i8, 1, 0);
}
}
}
removeConstraints(1);
removeConstraints(2);
}
return this;
}
public ConstraintProperties removeFromVerticalChain() {
ConstraintLayout.LayoutParams layoutParams = this.mParams;
int i = layoutParams.topToBottom;
int i2 = layoutParams.bottomToTop;
if (!(i == -1 && i2 == -1)) {
ConstraintProperties constraintProperties = new ConstraintProperties(((ViewGroup) this.mView.getParent()).findViewById(i));
ConstraintProperties constraintProperties2 = new ConstraintProperties(((ViewGroup) this.mView.getParent()).findViewById(i2));
ConstraintLayout.LayoutParams layoutParams2 = this.mParams;
if (i != -1 && i2 != -1) {
constraintProperties.connect(4, i2, 3, 0);
constraintProperties2.connect(3, i, 4, 0);
} else if (!(i == -1 && i2 == -1)) {
int i3 = layoutParams2.bottomToBottom;
if (i3 != -1) {
constraintProperties.connect(4, i3, 4, 0);
} else {
int i4 = layoutParams2.topToTop;
if (i4 != -1) {
constraintProperties2.connect(3, i4, 3, 0);
}
}
}
}
removeConstraints(3);
removeConstraints(4);
return this;
}
public ConstraintProperties rotation(float f) {
this.mView.setRotation(f);
return this;
}
public ConstraintProperties rotationX(float f) {
this.mView.setRotationX(f);
return this;
}
public ConstraintProperties rotationY(float f) {
this.mView.setRotationY(f);
return this;
}
public ConstraintProperties scaleX(float f) {
this.mView.setScaleY(f);
return this;
}
public ConstraintProperties scaleY(float f) {
return this;
}
public ConstraintProperties transformPivot(float f, float f2) {
this.mView.setPivotX(f);
this.mView.setPivotY(f2);
return this;
}
public ConstraintProperties transformPivotX(float f) {
this.mView.setPivotX(f);
return this;
}
public ConstraintProperties transformPivotY(float f) {
this.mView.setPivotY(f);
return this;
}
public ConstraintProperties translation(float f, float f2) {
this.mView.setTranslationX(f);
this.mView.setTranslationY(f2);
return this;
}
public ConstraintProperties translationX(float f) {
this.mView.setTranslationX(f);
return this;
}
public ConstraintProperties translationY(float f) {
this.mView.setTranslationY(f);
return this;
}
public ConstraintProperties translationZ(float f) {
this.mView.setTranslationZ(f);
return this;
}
public ConstraintProperties verticalBias(float f) {
this.mParams.verticalBias = f;
return this;
}
public ConstraintProperties verticalChainStyle(int i) {
this.mParams.verticalChainStyle = i;
return this;
}
public ConstraintProperties verticalWeight(float f) {
this.mParams.verticalWeight = f;
return this;
}
public ConstraintProperties visibility(int i) {
this.mView.setVisibility(i);
return this;
}
}

View file

@ -1,159 +0,0 @@
package androidx.constraintlayout.widget;
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.util.Log;
import android.view.ViewGroup;
import androidx.constraintlayout.widget.ConstraintLayout;
public class Constraints extends ViewGroup {
public static final String TAG = "Constraints";
public ConstraintSet myConstraintSet;
public static class LayoutParams extends ConstraintLayout.LayoutParams {
public float alpha;
public boolean applyElevation;
public float elevation;
public float rotation;
public float rotationX;
public float rotationY;
public float scaleX;
public float scaleY;
public float transformPivotX;
public float transformPivotY;
public float translationX;
public float translationY;
public float translationZ;
public LayoutParams(int i, int i2) {
super(i, i2);
this.alpha = 1.0f;
this.applyElevation = false;
this.elevation = 0.0f;
this.rotation = 0.0f;
this.rotationX = 0.0f;
this.rotationY = 0.0f;
this.scaleX = 1.0f;
this.scaleY = 1.0f;
this.transformPivotX = 0.0f;
this.transformPivotY = 0.0f;
this.translationX = 0.0f;
this.translationY = 0.0f;
this.translationZ = 0.0f;
}
public LayoutParams(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
this.alpha = 1.0f;
this.applyElevation = false;
this.elevation = 0.0f;
this.rotation = 0.0f;
this.rotationX = 0.0f;
this.rotationY = 0.0f;
this.scaleX = 1.0f;
this.scaleY = 1.0f;
this.transformPivotX = 0.0f;
this.transformPivotY = 0.0f;
this.translationX = 0.0f;
this.translationY = 0.0f;
this.translationZ = 0.0f;
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, R.styleable.ConstraintSet);
int indexCount = obtainStyledAttributes.getIndexCount();
for (int i = 0; i < indexCount; i++) {
int index = obtainStyledAttributes.getIndex(i);
if (index == R.styleable.ConstraintSet_android_alpha) {
this.alpha = obtainStyledAttributes.getFloat(index, this.alpha);
} else if (index == R.styleable.ConstraintSet_android_elevation) {
this.elevation = obtainStyledAttributes.getFloat(index, this.elevation);
this.applyElevation = true;
} else if (index == R.styleable.ConstraintSet_android_rotationX) {
this.rotationX = obtainStyledAttributes.getFloat(index, this.rotationX);
} else if (index == R.styleable.ConstraintSet_android_rotationY) {
this.rotationY = obtainStyledAttributes.getFloat(index, this.rotationY);
} else if (index == R.styleable.ConstraintSet_android_rotation) {
this.rotation = obtainStyledAttributes.getFloat(index, this.rotation);
} else if (index == R.styleable.ConstraintSet_android_scaleX) {
this.scaleX = obtainStyledAttributes.getFloat(index, this.scaleX);
} else if (index == R.styleable.ConstraintSet_android_scaleY) {
this.scaleY = obtainStyledAttributes.getFloat(index, this.scaleY);
} else if (index == R.styleable.ConstraintSet_android_transformPivotX) {
this.transformPivotX = obtainStyledAttributes.getFloat(index, this.transformPivotX);
} else if (index == R.styleable.ConstraintSet_android_transformPivotY) {
this.transformPivotY = obtainStyledAttributes.getFloat(index, this.transformPivotY);
} else if (index == R.styleable.ConstraintSet_android_translationX) {
this.translationX = obtainStyledAttributes.getFloat(index, this.translationX);
} else if (index == R.styleable.ConstraintSet_android_translationY) {
this.translationY = obtainStyledAttributes.getFloat(index, this.translationY);
} else if (index == R.styleable.ConstraintSet_android_translationZ) {
this.translationZ = obtainStyledAttributes.getFloat(index, this.translationZ);
}
}
obtainStyledAttributes.recycle();
}
public LayoutParams(LayoutParams layoutParams) {
super((ConstraintLayout.LayoutParams) layoutParams);
this.alpha = 1.0f;
this.applyElevation = false;
this.elevation = 0.0f;
this.rotation = 0.0f;
this.rotationX = 0.0f;
this.rotationY = 0.0f;
this.scaleX = 1.0f;
this.scaleY = 1.0f;
this.transformPivotX = 0.0f;
this.transformPivotY = 0.0f;
this.translationX = 0.0f;
this.translationY = 0.0f;
this.translationZ = 0.0f;
}
}
public Constraints(Context context) {
super(context);
super.setVisibility(8);
}
public Constraints(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
init(attributeSet);
super.setVisibility(8);
}
public Constraints(Context context, AttributeSet attributeSet, int i) {
super(context, attributeSet, i);
init(attributeSet);
super.setVisibility(8);
}
private void init(AttributeSet attributeSet) {
Log.v("Constraints", " ################# init");
}
@Override // android.view.ViewGroup
public LayoutParams generateDefaultLayoutParams() {
return new LayoutParams(-2, -2);
}
@Override // android.view.ViewGroup
public ViewGroup.LayoutParams generateLayoutParams(ViewGroup.LayoutParams layoutParams) {
return new ConstraintLayout.LayoutParams(layoutParams);
}
@Override // android.view.ViewGroup
public LayoutParams generateLayoutParams(AttributeSet attributeSet) {
return new LayoutParams(getContext(), attributeSet);
}
public ConstraintSet getConstraintSet() {
if (this.myConstraintSet == null) {
this.myConstraintSet = new ConstraintSet();
}
this.myConstraintSet.clone(this);
return this.myConstraintSet;
}
@Override // android.view.ViewGroup, android.view.View
public void onLayout(boolean z2, int i, int i2, int i3, int i4) {
}
}

View file

@ -1,8 +0,0 @@
package androidx.constraintlayout.widget;
public abstract class ConstraintsChangedListener {
public void postLayoutChange(int i, int i2) {
}
public void preLayoutChange(int i, int i2) {
}
}

View file

@ -1,49 +0,0 @@
package androidx.constraintlayout.widget;
import android.content.Context;
import android.util.AttributeSet;
import androidx.constraintlayout.widget.ConstraintLayout;
public class Group extends ConstraintHelper {
public Group(Context context) {
super(context);
}
public Group(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
}
public Group(Context context, AttributeSet attributeSet, int i) {
super(context, attributeSet, i);
}
@Override // androidx.constraintlayout.widget.ConstraintHelper
public void init(AttributeSet attributeSet) {
super.init(attributeSet);
this.mUseViewMeasure = false;
}
@Override // androidx.constraintlayout.widget.ConstraintHelper, android.view.View
public void onAttachedToWindow() {
super.onAttachedToWindow();
applyLayoutFeatures();
}
@Override // android.view.View
public void setElevation(float f) {
super.setElevation(f);
applyLayoutFeatures();
}
@Override // android.view.View
public void setVisibility(int i) {
super.setVisibility(i);
applyLayoutFeatures();
}
@Override // androidx.constraintlayout.widget.ConstraintHelper
public void updatePostLayout(ConstraintLayout constraintLayout) {
ConstraintLayout.LayoutParams layoutParams = (ConstraintLayout.LayoutParams) getLayoutParams();
layoutParams.widget.setWidth(0);
layoutParams.widget.setHeight(0);
}
}

Some files were not shown because too many files have changed in this diff Show more