Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save PrvtN00b/6452e04c46466c9d249d6b893a3baa47 to your computer and use it in GitHub Desktop.
Save PrvtN00b/6452e04c46466c9d249d6b893a3baa47 to your computer and use it in GitHub Desktop.
MyTVOnline
This gist exceeds the recommended number of files (~10). To access all files, please clone this gist.
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<Objective-C-extensions>
<file>
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Import" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Macro" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Typedef" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Enum" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Constant" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Global" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Struct" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="FunctionPredecl" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Function" />
</file>
<class>
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Property" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="Synthesize" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InitMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="StaticMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="InstanceMethod" />
<option name="com.jetbrains.cidr.lang.util.OCDeclarationKind" value="DeallocMethod" />
</class>
<extensions>
<pair source="cpp" header="h" fileNamingConvention="NONE" />
<pair source="c" header="h" fileNamingConvention="NONE" />
</extensions>
</Objective-C-extensions>
</code_scheme>
</component>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="NullableNotNullManager">
<option name="myDefaultNullable" value="android.support.annotation.Nullable" />
<option name="myDefaultNotNull" value="android.support.annotation.NonNull" />
<option name="myNullables">
<value>
<list size="5">
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.Nullable" />
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nullable" />
<item index="2" class="java.lang.String" itemvalue="javax.annotation.CheckForNull" />
<item index="3" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.Nullable" />
<item index="4" class="java.lang.String" itemvalue="android.support.annotation.Nullable" />
</list>
</value>
</option>
<option name="myNotNulls">
<value>
<list size="4">
<item index="0" class="java.lang.String" itemvalue="org.jetbrains.annotations.NotNull" />
<item index="1" class="java.lang.String" itemvalue="javax.annotation.Nonnull" />
<item index="2" class="java.lang.String" itemvalue="edu.umd.cs.findbugs.annotations.NonNull" />
<item index="3" class="java.lang.String" itemvalue="android.support.annotation.NonNull" />
</list>
</value>
</option>
</component>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/MyTvOnline_v1.08.06-r1361_source_from_JADX.iml" filepath="$PROJECT_DIR$/.idea/MyTvOnline_v1.08.06-r1361_source_from_JADX.iml" />
</modules>
</component>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="FacetManager">
<facet type="android" name="Android">
<configuration>
<option name="GEN_FOLDER_RELATIVE_PATH_APT" value="/../../MyTvOnline_v1.08.06-r1361_source_from_JADX/gen" />
<option name="GEN_FOLDER_RELATIVE_PATH_AIDL" value="/../../MyTvOnline_v1.08.06-r1361_source_from_JADX/gen" />
<option name="MANIFEST_FILE_RELATIVE_PATH" value="/../../MyTvOnline_v1.08.06-r1361_source_from_JADX/AndroidManifest.xml" />
<option name="RES_FOLDER_RELATIVE_PATH" value="/../../MyTvOnline_v1.08.06-r1361_source_from_JADX/res" />
<option name="ASSETS_FOLDER_RELATIVE_PATH" value="/../../MyTvOnline_v1.08.06-r1361_source_from_JADX/assets" />
<option name="LIBS_FOLDER_RELATIVE_PATH" value="/../../MyTvOnline_v1.08.06-r1361_source_from_JADX/libs" />
<option name="PROGUARD_LOGS_FOLDER_RELATIVE_PATH" value="/../../MyTvOnline_v1.08.06-r1361_source_from_JADX/proguard_logs" />
</configuration>
</facet>
</component>
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/gen" isTestSource="false" generated="true" />
</content>
<orderEntry type="jdk" jdkName="Android API 27 Platform" jdkType="Android SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
package android.dvb;
import android.os.Parcel;
import android.util.Log;
import java.lang.ref.WeakReference;
public class DvbApi {
public static final int DVB_AV_GetAudioTrack = 130;
public static final int DVB_AV_GetDetail_PidStr = 138;
public static final int DVB_AV_GetDetail_SatTpStr = 139;
public static final int DVB_AV_GetInfoStr = 137;
public static final int DVB_AV_GetSoundLevel = 132;
public static final int DVB_AV_GetSoundMode = 131;
public static final int DVB_AV_GetSubtTrack = 135;
public static final int DVB_AV_GetVideoDelay = 140;
public static final int DVB_AV_SetAudioTrack = 129;
public static final int DVB_AV_SetOutput = 128;
public static final int DVB_AV_SetScale = 142;
public static final int DVB_AV_SetSoundLevel = 134;
public static final int DVB_AV_SetSoundMode = 133;
public static final int DVB_AV_SetSubtTrack = 136;
public static final int DVB_AV_SetVideoDelay = 141;
public static final int DVB_CIMMI_Back = 178;
public static final int DVB_CIMMI_Enter = 176;
public static final int DVB_CIMMI_Exit = 177;
public static final int DVB_CIMMI_ItemSelect = 180;
public static final int DVB_CIMMI_Pincode = 181;
public static final int DVB_CIMMI_SlotInfo = 179;
public static final int DVB_DB_ALRAM_DeleteAll = 55;
public static final int DVB_DB_ALRAM_DeleteConflictItem = 56;
public static final int DVB_DB_ALRAM_DeleteItem = 54;
public static final int DVB_DB_ALRAM_GetConflictList = 49;
public static final int DVB_DB_ALRAM_GetEventItem = 53;
public static final int DVB_DB_ALRAM_GetFreeSlot = 51;
public static final int DVB_DB_ALRAM_GetItem = 50;
public static final int DVB_DB_ALRAM_GetList = 48;
public static final int DVB_DB_ALRAM_SetItem = 52;
public static final int DVB_DB_ALRAM_SetItemByEvent = 57;
public static final int DVB_DB_BeginTransaction = 36;
public static final int DVB_DB_CONFIG_Get = 33;
public static final int DVB_DB_CONFIG_GetLastSvc = 34;
public static final int DVB_DB_CONFIG_Set = 32;
public static final int DVB_DB_CONFIG_SetLastSvc = 35;
public static final int DVB_DB_CommitTransaction = 37;
public static final int DVB_DB_EPG_GetIitemInfo = 60;
public static final int DVB_DB_EPG_GetPage = 58;
public static final int DVB_DB_EPG_GetSvc = 61;
public static final int DVB_DB_EPG_GetTp = 59;
public static final int DVB_DB_EPG_ResetPushedEvtCount = 62;
public static final int DVB_DEMOD_GetTuner = 315;
public static final int DVB_DEMOD_POS_Cmd = 307;
public static final int DVB_DEMOD_POS_Move = 306;
public static final int DVB_DEMOD_POS_Usals = 308;
public static final int DVB_DEMOD_TUNER_Beep = 305;
public static final int DVB_DEMOD_TUNER_GetLevel = 304;
public static final int DVB_DEMOD_UNI_Cntl = 314;
public static final int DVB_DEMOD_UNI_GetParam = 312;
public static final int DVB_DEMOD_UNI_GetText = 309;
public static final int DVB_DEMOD_UNI_MenuEnd = 311;
public static final int DVB_DEMOD_UNI_MenuStart = 310;
public static final int DVB_DEMOD_UNI_SetParam = 313;
public static final int DVB_ETC_DOLBY_DistinguishSW = 279;
public static final int DVB_ETC_DOLBY_GetMode = 281;
public static final int DVB_ETC_DOLBY_SetMode = 280;
public static final int DVB_ETC_GetChListFromNetwork = 284;
public static final int DVB_ETC_GetXmlEpgServer = 276;
public static final int DVB_ETC_SetXmlEpgServer = 277;
public static final int DVB_ETC_TTX_Ctrl = 278;
public static final int DVB_ETC_TimeCalibrationCancel = 273;
public static final int DVB_ETC_UpdateChListFromNetwork = 285;
public static final int DVB_ETC_VFD_SetText = 282;
public static final int DVB_ETC_XmlTpUpdate = 272;
public static final int DVB_ETC_XmlTvEpgCancel = 275;
public static final int DVB_ETC_XmlTvEpgSetBackground = 283;
public static final int DVB_ETC_XmlTvEpgStart = 274;
public static final int DVB_IPChannel_SetScanParam = 352;
public static final int DVB_IPChannel_StartScan = 353;
public static final int DVB_IPChannel_StopScan = 354;
public static final int DVB_IPTV_StartProbe = 338;
public static final int DVB_IPTV_StartRecord = 336;
public static final int DVB_IPTV_StopProbe = 339;
public static final int DVB_IPTV_StopRecord = 337;
public static final int DVB_MENU_CSCAN_GetTpList = 75;
public static final int DVB_MENU_CSCAN_GetTuner = 76;
public static final int DVB_MENU_CSCAN_SetParam = 74;
public static final int DVB_MENU_CSCAN_Start = 77;
public static final int DVB_MENU_DIAG_CI = 87;
public static final int DVB_MENU_DIAG_CheckFusing = 90;
public static final int DVB_MENU_DIAG_CheckUsb30 = 92;
public static final int DVB_MENU_DIAG_Colorbar = 85;
public static final int DVB_MENU_DIAG_Ethenet = 82;
public static final int DVB_MENU_DIAG_ItemSuccess = 86;
public static final int DVB_MENU_DIAG_Live = 80;
public static final int DVB_MENU_DIAG_RS232 = 81;
public static final int DVB_MENU_DIAG_Report = 84;
public static final int DVB_MENU_DIAG_Result = 88;
public static final int DVB_MENU_DIAG_RunMVT = 91;
public static final int DVB_MENU_DIAG_SetState = 89;
public static final int DVB_MENU_DIAG_USB = 83;
public static final int DVB_MENU_DISH_SetParam = 64;
public static final int DVB_MENU_POS_SetParam = 65;
public static final int DVB_MENU_SCAN_ChangeTpCountry = 78;
public static final int DVB_MENU_SCAN_SetFastScanTp = 69;
public static final int DVB_MENU_SCAN_SetParam = 66;
public static final int DVB_MENU_SCAN_Start = 67;
public static final int DVB_MENU_SCAN_Stop = 68;
public static final int DVB_MENU_TSCAN_GetTpList = 71;
public static final int DVB_MENU_TSCAN_GetTuner = 72;
public static final int DVB_MENU_TSCAN_SetParam = 70;
public static final int DVB_MENU_TSCAN_Start = 73;
public static final int DVB_MultiFeed_CheckMultifeed = 321;
public static final int DVB_MultiFeed_GetDetailInfo = 324;
public static final int DVB_MultiFeed_GetSubfeedItem = 322;
public static final int DVB_MultiFeed_IsMultifeedCh = 320;
public static final int DVB_MultiFeed_SelectSubfeedItem = 323;
public static final int DVB_PLUGIN_ClearOSD = 263;
public static final int DVB_PLUGIN_ControlCmd = 258;
public static final int DVB_PLUGIN_ControlGetPlugin = 257;
public static final int DVB_PLUGIN_ControlGetPluginAll = 259;
public static final int DVB_PLUGIN_DeleteAll = 265;
public static final int DVB_PLUGIN_GetPid = 262;
public static final int DVB_PLUGIN_SendKeyCode = 261;
public static final int DVB_PLUGIN_SendSelectedCmd = 260;
public static final int DVB_PLUGIN_StopAll = 264;
public static final int DVB_PLUGIN_TYPE = 256;
public static final int DVB_PVR_CheckTSBufferRecord = 150;
public static final int DVB_PVR_PB_GetBookMark = 165;
public static final int DVB_PVR_PB_GetContinuePlay = 170;
public static final int DVB_PVR_PB_GetFileSize = 171;
public static final int DVB_PVR_PB_GetInfo = 167;
public static final int DVB_PVR_PB_GetTime = 168;
public static final int DVB_PVR_PB_GotoBookMark = 166;
public static final int DVB_PVR_PB_NowState = 169;
public static final int DVB_PVR_PB_Pause = 162;
public static final int DVB_PVR_PB_SetBookMark = 164;
public static final int DVB_PVR_PB_SetPos = 161;
public static final int DVB_PVR_PB_Start = 160;
public static final int DVB_PVR_PB_TrickMode = 163;
public static final int DVB_PVR_REC_Duration = 146;
public static final int DVB_PVR_REC_GetInfo = 147;
public static final int DVB_PVR_REC_GetTime = 148;
public static final int DVB_PVR_REC_Pause = 145;
public static final int DVB_PVR_REC_Start = 144;
public static final int DVB_PVR_SetTSBufferRecord = 151;
public static final int DVB_PVR_StopCmd = 149;
public static final int DVB_SCMMI_Back = 194;
public static final int DVB_SCMMI_CONAX_Aboutbox = 215;
public static final int DVB_SCMMI_CONAX_CaPincode = 211;
public static final int DVB_SCMMI_CONAX_Event = 209;
public static final int DVB_SCMMI_CONAX_Mailbox = 214;
public static final int DVB_SCMMI_CONAX_MatChange = 213;
public static final int DVB_SCMMI_CONAX_MatGet = 212;
public static final int DVB_SCMMI_CONAX_Subscription = 208;
public static final int DVB_SCMMI_CONAX_Token = 210;
public static final int DVB_SCMMI_Enter = 192;
public static final int DVB_SCMMI_Exit = 193;
public static final int DVB_SCMMI_SlotInfo = 195;
public static final int DVB_SI_GetNetworkName = 224;
public static final int DVB_STORAGE_Check = 243;
public static final int DVB_STORAGE_Detect = 249;
public static final int DVB_STORAGE_Format = 242;
public static final int DVB_STORAGE_FsInfo = 248;
public static final int DVB_STORAGE_GetFileList = 247;
public static final int DVB_STORAGE_GetTsFileInfo = 244;
public static final int DVB_STORAGE_Mount = 240;
public static final int DVB_STORAGE_RecordPath = 246;
public static final int DVB_STORAGE_SetLock = 245;
public static final int DVB_STORAGE_Umount = 241;
public static final int DVB_STORAGE_UpdtUrlServ = 249;
public static final int DVB_SVC_CH_Browse = 100;
public static final int DVB_SVC_CH_Change = 103;
public static final int DVB_SVC_CH_DrawInfo = 101;
public static final int DVB_SVC_CH_DrawInfoPage = 102;
public static final int DVB_SVC_CH_Edit = 121;
public static final int DVB_SVC_CH_GetInfo = 105;
public static final int DVB_SVC_CH_List = 104;
public static final int DVB_SVC_CH_Move = 99;
public static final int DVB_SVC_CH_RecallList = 118;
public static final int DVB_SVC_ClearRecallList = 123;
public static final int DVB_SVC_FAV_GetIndex = 112;
public static final int DVB_SVC_FAV_ItemList = 114;
public static final int DVB_SVC_FAV_Modify = 111;
public static final int DVB_SVC_FAV_SetGroup = 120;
public static final int DVB_SVC_FAV_SetIndex = 113;
public static final int DVB_SVC_FILTER_ItemList = 110;
public static final int DVB_SVC_GetSatType = 124;
public static final int DVB_SVC_InitSvcFromLameDB = 125;
public static final int DVB_SVC_PIP_MovePos = 98;
public static final int DVB_SVC_PIP_Swap = 97;
public static final int DVB_SVC_PIP_Toggle = 96;
public static final int DVB_SVC_SAT_GetInfo = 109;
public static final int DVB_SVC_SAT_GetList = 108;
public static final int DVB_SVC_SAT_Modify = 116;
public static final int DVB_SVC_SVC_EditList = 119;
public static final int DVB_SVC_SVC_Modify = 117;
public static final int DVB_SVC_TP_All_Delete = 122;
public static final int DVB_SVC_TP_GetInfo = 107;
public static final int DVB_SVC_TP_GetList = 106;
public static final int DVB_SVC_TP_Modify = 115;
public static final int DVB_SYS_BackupData = 13;
public static final int DVB_SYS_BootSource = 9;
public static final int DVB_SYS_ChangeContext = 1;
public static final int DVB_SYS_DIAG_CtrlFactoryMode = 18;
public static final int DVB_SYS_DIAG_GetFactoryMode = 17;
public static final int DVB_SYS_FW_Upgrade = 4;
public static final int DVB_SYS_FactoryReset = 0;
public static final int DVB_SYS_GetKeyInputHistory = 10;
public static final int DVB_SYS_GetOtp = 12;
public static final int DVB_SYS_GetSTBSertialNumber = 19;
public static final int DVB_SYS_LuncherStart = 8;
public static final int DVB_SYS_PinCtrl = 7;
public static final int DVB_SYS_Power = 5;
public static final int DVB_SYS_RebootFacInit = 6;
public static final int DVB_SYS_SetAVOutputEnable = 15;
public static final int DVB_SYS_SetKeyInputHistory = 11;
public static final int DVB_SYS_SystemFunc = 16;
public static final int DVB_SYS_TIME_ClockMode = 3;
public static final int DVB_SYS_TIME_Configure = 2;
public static final int DVB_SYS_TIME_SetUtcTime = 14;
public static final int DVB_WEATHER_CitySearchReq = 291;
public static final int DVB_WEATHER_HistoryReq = 293;
public static final int DVB_WEATHER_Init = 288;
public static final int DVB_WEATHER_LoadReq = 289;
public static final int DVB_WEATHER_LoadReqByCity = 292;
public static final int DVB_WEATHER_LoadReqByHistory = 294;
public static final int DVB_WEATHER_RefleshReq = 290;
private static final String IDvbApiPackage = "android.dvb.IDvbApi";
private static final String TAG = "DvbApi";
private static INotifyMessage mNotifyMsg;
private int mNativeContext;
private final native void _release();
private static native int native_decrypt_file(String str);
private final native void native_finalize();
private static native String native_get_download_url();
private static final native void native_init();
private final native int native_invoke(Parcel parcel, Parcel parcel2);
private final native void native_setup(Object obj);
static {
System.loadLibrary("f_jni");
native_init();
}
public DvbApi() {
native_setup(new WeakReference(this));
}
public Parcel newRequest() {
Parcel obtain = Parcel.obtain();
obtain.writeInterfaceToken(IDvbApiPackage);
return obtain;
}
public void invoke(Parcel parcel, Parcel parcel2) {
int native_invoke = native_invoke(parcel, parcel2);
parcel2.setDataPosition(0);
if (native_invoke != 0) {
Log.e(TAG, "native_invoke : " + native_invoke);
throw new RuntimeException("failure code: " + native_invoke);
} else {
parcel.recycle();
}
}
protected void writeString(String str, Parcel parcel) {
if (str == null) {
parcel.writeByteArray(null);
} else {
parcel.writeByteArray(str.getBytes());
}
}
public void appTestInvoke() {
appGetFavoriteIndex(0, 1);
}
public Parcel appSetDishParam(int i, int i2, int i3, int i4, int i5, int i6, int i7, int i8, int i9, int i10, int i11, int i12, int i13, int i14, int i15, int i16) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(64);
newRequest.writeInt(i);
newRequest.writeInt(i2);
newRequest.writeInt(i3);
newRequest.writeInt(i4);
newRequest.writeInt(i5);
newRequest.writeInt(i6);
newRequest.writeInt(i7);
newRequest.writeInt(i8);
newRequest.writeInt(i9);
newRequest.writeInt(i10);
newRequest.writeInt(i11);
newRequest.writeInt(i12);
newRequest.writeInt(i13);
newRequest.writeInt(i14);
newRequest.writeInt(i15);
newRequest.writeInt(i16);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSetPosParam(int i, int i2, int i3, int i4, int i5) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(65);
newRequest.writeInt(i);
newRequest.writeInt(i2);
newRequest.writeInt(i3);
newRequest.writeInt(i4);
newRequest.writeInt(i5);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSetScanParam(int i, int i2, int i3, int i4, int i5, int i6, int i7, int i8, int i9, int i10, int i11) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(66);
newRequest.writeInt(i);
newRequest.writeInt(i2);
newRequest.writeInt(i3);
newRequest.writeInt(i4);
newRequest.writeInt(i5);
newRequest.writeInt(i6);
newRequest.writeInt(i7);
newRequest.writeInt(i8);
newRequest.writeInt(i9);
newRequest.writeInt(i10);
newRequest.writeInt(i11);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appScanStart() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(67);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSetTScanParam(int i, int i2, int i3, int i4, int i5, int i6) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(70);
newRequest.writeInt(i);
newRequest.writeInt(i2);
newRequest.writeInt(i3);
newRequest.writeInt(i4);
newRequest.writeInt(i5);
newRequest.writeInt(i6);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetTScanTpList() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(71);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetTScanTuner() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(72);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appTScanStart() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(73);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSetCScanParam(int i, int i2, int i3, int i4, int i5, int i6) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(74);
newRequest.writeInt(i);
newRequest.writeInt(i2);
newRequest.writeInt(i3);
newRequest.writeInt(i4);
newRequest.writeInt(i5);
newRequest.writeInt(i6);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetCScanTpList() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(75);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetCScanTuner() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(76);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetTuner(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_DEMOD_GetTuner);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appCScanStart() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(77);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appScanChangeTpCountry(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(78);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appScanCancel() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(68);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appPosContinueMove(int i, int i2) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_DEMOD_POS_Move);
newRequest.writeInt(i);
newRequest.writeInt(i2);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appPosCmd(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(307);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appUsalsGoto() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(308);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appTpModify(int i, int i2, int i3, int i4, int i5, int i6) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_SVC_TP_Modify);
newRequest.writeInt(i);
newRequest.writeInt(i2);
newRequest.writeInt(i3);
newRequest.writeInt(i4);
newRequest.writeInt(i5);
newRequest.writeInt(i6);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSatModify(int i, int i2, int i3, String str) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_SVC_SAT_Modify);
newRequest.writeInt(i);
newRequest.writeInt(i2);
newRequest.writeInt(i3);
writeString(str, newRequest);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetRecallList() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_SVC_CH_RecallList);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSvcEditList(int i, int i2, int[] iArr, int i3, int i4) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_SVC_SVC_EditList);
newRequest.writeInt(i);
newRequest.writeInt(i2);
newRequest.writeInt(i4);
newRequest.writeInt(i3);
for (int i5 = 0; i5 < i3; i5++) {
newRequest.writeInt(iArr[i5]);
}
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSvcClearRecallList() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_SVC_ClearRecallList);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetSatType(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_SVC_GetSatType);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appInitSvcFromLameDB(String str) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_SVC_InitSvcFromLameDB);
writeString(str, newRequest);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appChangeContext(int i, int i2, int i3) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(1);
newRequest.writeInt(i);
newRequest.writeInt(i2);
newRequest.writeInt(i3);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appDrawListInfo(int i, int i2, int i3) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(101);
newRequest.writeInt(i);
newRequest.writeInt(i2);
newRequest.writeInt(i3);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appDrawListInfoArray(int i, int[] iArr, int i2) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(102);
newRequest.writeInt(i);
newRequest.writeInt(i2);
for (int i3 = 0; i3 < i2; i3++) {
newRequest.writeInt(iArr[i3]);
}
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appChannelChange(int i, int i2, int i3, int i4, boolean z, boolean z2) {
int i5;
int i6 = 1;
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(103);
newRequest.writeInt(i);
newRequest.writeInt(i2);
newRequest.writeInt(i3);
newRequest.writeInt(i4);
if (z) {
i5 = 1;
} else {
i5 = 0;
}
newRequest.writeInt(i5);
if (!z2) {
i6 = 0;
}
newRequest.writeInt(i6);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appChannelMove(int i, int i2, int i3) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(99);
newRequest.writeInt(i);
newRequest.writeInt(i2);
newRequest.writeInt(i3);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appChannelBrowse(int i, int i2, int i3, int i4, boolean z) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(100);
newRequest.writeInt(i);
newRequest.writeInt(i2);
newRequest.writeInt(i3);
newRequest.writeInt(i4);
newRequest.writeInt(z ? 1 : 0);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appTogglePIP() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(96);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSwapMainSub() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(97);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appChangePipPos(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(98);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetChInfo(int i, int i2) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(105);
newRequest.writeInt(i);
newRequest.writeInt(i2);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetTpList(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(106);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetTpInfo(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(107);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetSatList() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(108);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetSatInfo(int i, int i2) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(109);
newRequest.writeInt(i);
newRequest.writeInt(i2);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetFilterList(int i, int i2, int i3) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(110);
newRequest.writeInt(i);
newRequest.writeInt(i2);
newRequest.writeInt(i3);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetServiceList(int i, int i2, int i3, int i4, int i5, boolean z) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
Log.i(TAG, "appGetServiceList() mainSub " + i + ", svcType " + i2 + ", satIdx " + i3 + ", type " + i4 + ", filter " + i5);
newRequest.writeInt(104);
newRequest.writeInt(i);
newRequest.writeInt(i2);
newRequest.writeInt(i3);
newRequest.writeInt(i4);
newRequest.writeInt(i5);
newRequest.writeInt(z ? 1 : 0);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetFavoriteIndex(int i, int i2) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_SVC_FAV_GetIndex);
newRequest.writeInt(i);
newRequest.writeInt(i2);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSetFavoriteIndex(int i, int i2, int[] iArr, int i3) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_SVC_FAV_SetIndex);
newRequest.writeInt(i);
newRequest.writeInt(i2);
newRequest.writeInt(i3);
for (int i4 = 0; i4 < i3; i4++) {
newRequest.writeInt(iArr[i4]);
}
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetFavoriteItem() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_SVC_FAV_ItemList);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSetFavoriteItem(int i, int i2, int i3, String str) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_SVC_FAV_SetGroup);
newRequest.writeInt(i);
newRequest.writeInt(i2);
newRequest.writeInt(i3);
writeString(str, newRequest);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appEditChInfo(int i, int i2, String str, int i3, int i4, int i5, int i6, int i7) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_SVC_CH_Edit);
newRequest.writeInt(i);
newRequest.writeInt(i2);
writeString(str, newRequest);
newRequest.writeInt(i3);
newRequest.writeInt(i4);
newRequest.writeInt(i5);
newRequest.writeInt(i6);
newRequest.writeInt(i7);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appDeleteAllTp(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_SVC_TP_All_Delete);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSetAVOutput(int i, int i2) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(128);
newRequest.writeInt(i);
newRequest.writeInt(i2);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetAudioTrack() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(130);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetVideoDelay() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_AV_GetVideoDelay);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetSoundMode() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(131);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetSoundLevel() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_AV_GetSoundLevel);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSetAudioTrack(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_AV_SetAudioTrack);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSetSoundMode(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_AV_SetSoundMode);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSetSoundLevel(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_AV_SetSoundLevel);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSetVideoDelay(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_AV_SetVideoDelay);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSetVideoScale(int i, int i2, int i3, int i4, int i5) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_AV_SetScale);
newRequest.writeInt(i);
newRequest.writeInt(i2);
newRequest.writeInt(i3);
newRequest.writeInt(i4);
newRequest.writeInt(i5);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetSubtitleTrack() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_AV_GetSubtTrack);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSetSubtitleTrack(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_AV_SetSubtTrack);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetAVInfo() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_AV_GetInfoStr);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetAVPIDInfo() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_AV_GetDetail_PidStr);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetSatTpInfo() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_AV_GetDetail_SatTpStr);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appTTXTRemote(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_ETC_TTX_Ctrl);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appPvrStartRecord() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_PVR_REC_Start);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appCheckTSBufferRecord() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_PVR_CheckTSBufferRecord);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSetTSBufferRecord(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_PVR_SetTSBufferRecord);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appPvrStopCmd(int i, int i2) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_PVR_StopCmd);
newRequest.writeInt(i);
newRequest.writeInt(i2);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appPvrStartPb(String str, int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_PVR_PB_Start);
writeString(str, newRequest);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appPvrSetPlayPosition(int i, int i2) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_PVR_PB_SetPos);
newRequest.writeInt(i);
newRequest.writeInt(i2);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appPvrSetRecordPause(int i, int i2) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_PVR_REC_Pause);
newRequest.writeInt(i);
newRequest.writeInt(i2);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appPvrSetRecordDuration(int i, int i2, int i3) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_PVR_REC_Duration);
newRequest.writeInt(i);
newRequest.writeInt(i2);
newRequest.writeInt(i3);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appPvrGetRecordInfo(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_PVR_REC_GetInfo);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appPvrGetPlaybackInfo(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_PVR_PB_GetInfo);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appPvrGetPlaybackTime(int i, int i2) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_PVR_PB_GetTime);
newRequest.writeInt(i);
newRequest.writeInt(i2);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appPvrGetRecTime(int i, int i2) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(148);
newRequest.writeInt(i);
newRequest.writeInt(i2);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appPvrSetTrickMode(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_PVR_PB_TrickMode);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appPvrGetBookMark() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_PVR_PB_GetBookMark);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appPvrSetBookMark(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_PVR_PB_SetBookMark);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appPvrGotoBookMark() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_PVR_PB_GotoBookMark);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appPvrSetPlayPause(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_PVR_PB_Pause);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appPvrNowSate(String str, int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_PVR_PB_NowState);
writeString(str, newRequest);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appPvrGetContinuePlay(String str) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_PVR_PB_GetContinuePlay);
writeString(str, newRequest);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appPvrGetFileSize(String str, String str2) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_PVR_PB_GetFileSize);
writeString(str, newRequest);
writeString(str2, newRequest);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appStorageMount(String str, String str2, String str3, String str4) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_STORAGE_Mount);
writeString(str, newRequest);
writeString(str2, newRequest);
writeString(str3, newRequest);
writeString(str4, newRequest);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appStorageDetect(String str) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(249);
writeString(str, newRequest);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appStorageUmount(String str) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_STORAGE_Umount);
writeString(str, newRequest);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appStorageFormat(int i, String str) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_STORAGE_Format);
newRequest.writeInt(i);
writeString(str, newRequest);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appStorageCheck(int i, String str) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_STORAGE_Check);
newRequest.writeInt(i);
writeString(str, newRequest);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appStorageGetTsFileInfo(String str) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_STORAGE_GetTsFileInfo);
writeString(str, newRequest);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appStorageLockTsFile(String str, int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_STORAGE_SetLock);
writeString(str, newRequest);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appStorageRecordPath(String str) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_STORAGE_RecordPath);
writeString(str, newRequest);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appStorageGetFileList(String str, int i, int i2) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_STORAGE_GetFileList);
writeString(str, newRequest);
newRequest.writeInt(i);
newRequest.writeInt(i2);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appStorageFsInfo(String str) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_STORAGE_FsInfo);
writeString(str, newRequest);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appStorageUpdtUrlServ(String str) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(249);
writeString(str, newRequest);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSetConfig(int i, int i2) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(32);
newRequest.writeInt(i);
newRequest.writeInt(i2);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetConfig(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(33);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetLastSvc(int i, int i2) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(34);
newRequest.writeInt(i);
newRequest.writeInt(i2);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSetLastSvc(int i, int i2, int i3) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(35);
newRequest.writeInt(i);
newRequest.writeInt(i2);
newRequest.writeInt(i3);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appPowerControl(int i, int i2) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(5);
newRequest.writeInt(i);
newRequest.writeInt(i2);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSetAVOutputEnable(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(15);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetBootReason() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(9);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetKeyInputHistory() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(10);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSetKeyInputHistory(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(11);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetOtpInfo() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(12);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSysBackupData() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(13);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSystemFunc(String str) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(16);
writeString(str, newRequest);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSysIsFactoryMode() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(17);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSysSetFactoryFlag(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(18);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSysGetSTBSerial() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(19);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appVfdSetText(String str, String str2, int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_ETC_VFD_SetText);
writeString(str, newRequest);
writeString(str2, newRequest);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetSignalLevel(int i, int i2) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(304);
newRequest.writeInt(i);
newRequest.writeInt(i2);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSignalBeep(int i, int i2, int i3) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(305);
newRequest.writeInt(i);
newRequest.writeInt(i2);
newRequest.writeInt(i3);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appFactoryReset(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(0);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSmartCardMmiEnter(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_SCMMI_Enter);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSmartCardSubscript(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_SCMMI_CONAX_Subscription);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSmartCardChangeCAPin(int i, String str, String str2) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_SCMMI_CONAX_CaPincode);
newRequest.writeInt(i);
writeString(str, newRequest);
writeString(str2, newRequest);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSmartCardMaturity(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_SCMMI_CONAX_MatGet);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSmartCardChangeMatChange(int i, int i2, String str) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_SCMMI_CONAX_MatChange);
newRequest.writeInt(i);
newRequest.writeInt(i2);
writeString(str, newRequest);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSmartCardAbout(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_SCMMI_CONAX_Aboutbox);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSmartCardSlotInfo(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_SCMMI_SlotInfo);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appCiSlotInfo(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_CIMMI_SlotInfo);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appCiMmiEnter(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_CIMMI_Enter);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appCiMmiBack(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_CIMMI_Back);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appCiMmiExit(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_CIMMI_Exit);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appCiMmiItemSelect(int i, int i2) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_CIMMI_ItemSelect);
newRequest.writeInt(i);
newRequest.writeInt(i2);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appCiMmiPin(int i, String str) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_CIMMI_Pincode);
newRequest.writeInt(i);
writeString(str, newRequest);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appDiagLive(int i, boolean z) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(80);
newRequest.writeInt(i);
newRequest.writeInt(z ? 1 : 0);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appDiagRs232Test() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(81);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appRunMvt() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(91);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appDiagNetInfoReq() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(82);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appDiagUSBNotify(String str) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(83);
writeString(str, newRequest);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appDiagSendReport() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(84);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appDiagGetResult() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(88);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appDiagColorBar(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(85);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appDiagSetState(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(89);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appDiagSetSucessResult(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(86);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appDiagCiCheck() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(87);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appDiagCheckFusing() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(90);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appDiagCheckUsb30(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(92);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appAlarmGetList() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(48);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appAlarmGetFreeSlot() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(51);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appAlarmGetItem(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(50);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appAlarmGetEventItem(int i, int i2, int i3) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(53);
newRequest.writeInt(i);
newRequest.writeInt(i2);
newRequest.writeInt(i3);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appAlarmGetConflictList(int i, int i2, int i3, int i4, int i5, int i6, int i7, int i8, int i9) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(49);
newRequest.writeInt(i);
newRequest.writeInt(i2);
newRequest.writeInt(i3);
newRequest.writeInt(i4);
newRequest.writeInt(i5);
newRequest.writeInt(i6);
newRequest.writeInt(i7);
newRequest.writeInt(i8);
newRequest.writeInt(i9);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appAlarmSetItem(int i, int i2, int i3, int i4, int i5, int i6, int i7, int i8, int i9) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(52);
newRequest.writeInt(i);
newRequest.writeInt(i2);
newRequest.writeInt(i3);
newRequest.writeInt(i4);
newRequest.writeInt(i5);
newRequest.writeInt(i6);
newRequest.writeInt(i7);
newRequest.writeInt(i8);
newRequest.writeInt(i9);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appAlarmDeleteItem(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(54);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appAlarmDeleteAll() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(55);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appAlarmDeleteComflict(int i, int[] iArr) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(56);
newRequest.writeInt(i);
for (int i2 = 0; i2 < i; i2++) {
newRequest.writeInt(iArr[i2]);
}
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appAlarmSetEvt(int i, int i2, int i3, int i4) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(57);
newRequest.writeInt(i);
newRequest.writeInt(i2);
newRequest.writeInt(i3);
newRequest.writeInt(i4);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSetUTCTime(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(14);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appTimeConfigure(int i, int i2, int i3) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(2);
newRequest.writeInt(i);
newRequest.writeInt(i2);
newRequest.writeInt(i3);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appClockMode(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(3);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appEpgGetPage(int i, int[] iArr, int i2) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(58);
newRequest.writeInt(i);
newRequest.writeInt(i2);
for (int i3 = 0; i3 < i2; i3++) {
newRequest.writeInt(iArr[i3]);
}
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appEpgGetSvc(int i, int i2) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(61);
newRequest.writeInt(i);
newRequest.writeInt(i2);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appEpgResetPushedEvtCount(int i, int i2) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(62);
newRequest.writeInt(i);
newRequest.writeInt(i2);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appEpgGetTp(int i, int i2) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(59);
newRequest.writeInt(i);
newRequest.writeInt(i2);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appEpgGetItemInfo(int i, int i2, int i3) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(60);
newRequest.writeInt(i);
newRequest.writeInt(i2);
newRequest.writeInt(i3);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSoftwareUpdate(String str) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(4);
writeString(str, newRequest);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appRebootFacInit() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(6);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appPinCtrl(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(7);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appStartLuncher() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(8);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetNetworkName(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_SI_GetNetworkName);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetPluginType() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(256);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetPluginModule(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(257);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetPluginModuleAll() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(259);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appPluginControl(int i, int i2) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(258);
newRequest.writeInt(i);
newRequest.writeInt(i2);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSendPluginSelectedCmd(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(260);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSendPluginKeyCode(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(261);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appPlugInGetPid(String str) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(262);
writeString(str, newRequest);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appPlugInClearOSD() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(263);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appPlugInStopAll() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(264);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appPlugInDeleteAll() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(265);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appStartXmlTpUpdate(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_ETC_XmlTpUpdate);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appWeatherInit() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_WEATHER_Init);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appWeatherReqLoad() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(289);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appWeatherRelresh() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_WEATHER_RefleshReq);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appWeatherSearchCity(String str) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_WEATHER_CitySearchReq);
writeString(str, newRequest);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appWeatherReqLoadByCityIdx(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_WEATHER_LoadReqByCity);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appWeatherReqHistory() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_WEATHER_HistoryReq);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appWeatherReqLoadByHistoryIdx(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_WEATHER_LoadReqByHistory);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appDistinguishDolbyTestSW() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_ETC_DOLBY_DistinguishSW);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSetDolbyModeDolyTestSW(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_ETC_DOLBY_SetMode);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetDolbyModeDolyTestSW() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_ETC_DOLBY_GetMode);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appTimeCalibrationCancel() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_ETC_TimeCalibrationCancel);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appXmlTvEpgStart() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_ETC_XmlTvEpgStart);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appXmlTvEpgCancel() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_ETC_XmlTvEpgCancel);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appXmlTvEpgSetBackground(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_ETC_XmlTvEpgSetBackground);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetChListFromNetwork() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_ETC_GetChListFromNetwork);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appUpdateChListFromNetwork(String str) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_ETC_UpdateChListFromNetwork);
writeString(str, newRequest);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appXmlTvEpgGetServerString(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_ETC_GetXmlEpgServer);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appXmlTvEpgSetServerString(int i, String str) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_ETC_SetXmlEpgServer);
newRequest.writeInt(i);
writeString(str, newRequest);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSetFastScanTp() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(69);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetUniCableStr(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_DEMOD_UNI_GetText);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appStartUniCableMenu(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_DEMOD_UNI_MenuStart);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appEndUniCableMenu(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_DEMOD_UNI_MenuEnd);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appUniCableGetParam() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_DEMOD_UNI_GetParam);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appUniCableSetParam(int i, int i2, int i3, int i4, boolean z) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_DEMOD_UNI_SetParam);
newRequest.writeInt(i);
newRequest.writeInt(i2);
newRequest.writeInt(i3);
newRequest.writeInt(i4);
newRequest.writeInt(z ? 1 : 0);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appUniCableCntl(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_DEMOD_UNI_Cntl);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appIsMultifeedCh() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_MultiFeed_IsMultifeedCh);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appCheckMultifeed() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_MultiFeed_CheckMultifeed);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetSubfeedItem() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_MultiFeed_GetSubfeedItem);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appSelectSubfeedItem(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_MultiFeed_SelectSubfeedItem);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appGetDetailInfo(int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_MultiFeed_GetDetailInfo);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appStartIptvRecord(String str, int i) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_IPTV_StartRecord);
writeString(str, newRequest);
newRequest.writeInt(i);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appStopIptvRecord() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_IPTV_StopRecord);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appStartIptvProbe() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_IPTV_StartProbe);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appStopIptvProbe() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(DVB_IPTV_StopProbe);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appIpChannelSetScanParam(int i, String str, int i2, String str2) {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(352);
newRequest.writeInt(i);
writeString(str, newRequest);
newRequest.writeInt(i2);
writeString(str2, newRequest);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appIpChannelStartScan() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(353);
invoke(newRequest, newRequest2);
return newRequest2;
}
public Parcel appIpChannelStopScan() {
Parcel newRequest = newRequest();
Parcel newRequest2 = newRequest();
newRequest.writeInt(354);
invoke(newRequest, newRequest2);
return newRequest2;
}
public static void registerMsgCallback(INotifyMessage iNotifyMessage) {
mNotifyMsg = iNotifyMessage;
if (iNotifyMessage == null) {
Log.w(TAG, "\n +++ registerMsgCallback fail! +++\n");
}
}
private static void postEventFromNative(Object obj, int i, int i2, int i3, Object obj2) {
if (((DvbApi) ((WeakReference) obj).get()) != null) {
try {
if (mNotifyMsg == null) {
Log.w(TAG, "\n +++ mDvbMsg is NULL! +++ \n");
} else if (obj2 == null) {
mNotifyMsg.sendMsgTo(i, null);
} else {
mNotifyMsg.sendMsgTo(i, obj2);
}
} catch (Exception e) {
Log.w("EXCEPTION", "############################################################");
Log.e(TAG, "exception happened : " + e.getClass().getName());
e.printStackTrace();
Log.w("EXCEPTION", "############################################################");
}
}
}
public static long unsigned32(int i) {
return ((long) i) & 4294967295L;
}
public static int decrypt(String str) {
return native_decrypt_file(str);
}
public static String getCodecDownloadUrl() {
return native_get_download_url();
}
}
package android.dvb;
public class DvbNotifyMsg {
public static final int NOTIFYMSG_CI_BASE = 512;
public static final int NOTIFYMSG_CI_Extract = 513;
public static final int NOTIFYMSG_CI_Initialize = 515;
public static final int NOTIFYMSG_CI_Insert = 514;
public static final int NOTIFYMSG_CI_MenuItem = 516;
public static final int NOTIFYMSG_CI_MmiClose = 517;
public static final int NOTIFYMSG_CI_MmiPinOpen = 518;
public static final int NOTIFYMSG_EPG_List = 2061;
public static final int NOTIFYMSG_EXTERN_BASE = 2560;
public static final int NOTIFYMSG_Extern_SC_Extract = 2561;
public static final int NOTIFYMSG_Extern_SC_Insert = 2562;
public static final int NOTIFYMSG_FilterLoaded = 1297;
public static final int NOTIFYMSG_INSTALL_BASE = 1536;
public static final int NOTIFYMSG_INSTALL_PosStop = 1537;
public static final int NOTIFYMSG_IPTV_PVR_BASE = 3072;
public static final int NOTIFYMSG_IPTV_PVR_PB_PosChange = 3079;
public static final int NOTIFYMSG_IPTV_PVR_PB_SpeedChange = 3078;
public static final int NOTIFYMSG_IPTV_PVR_PB_Start = 3076;
public static final int NOTIFYMSG_IPTV_PVR_PB_Stop = 3077;
public static final int NOTIFYMSG_IPTV_PVR_PB_Time = 3081;
public static final int NOTIFYMSG_IPTV_PVR_RECORD_Ready = 3073;
public static final int NOTIFYMSG_IPTV_PVR_RECORD_Start = 3074;
public static final int NOTIFYMSG_IPTV_PVR_RECORD_Stop = 3075;
public static final int NOTIFYMSG_IPTV_PVR_REC_Time = 3080;
public static final int NOTIFYMSG_MULTIFEED_ChangeSubFeedName = 2062;
public static final int NOTIFYMSG_PLUGIN_BASE = 3072;
public static final int NOTIFYMSG_PLUGIN_BlockKey = 3073;
public static final int NOTIFYMSG_PLUGIN_ReleaseKey = 3074;
public static final int NOTIFYMSG_PLUGIN_Restart = 3075;
public static final int NOTIFYMSG_PLUGIN_SetVolume = 3076;
public static final int NOTIFYMSG_PVR_BASE = 256;
public static final int NOTIFYMSG_PVR_PB_PosChange = 262;
public static final int NOTIFYMSG_PVR_PB_SpeedChange = 261;
public static final int NOTIFYMSG_PVR_PB_Start = 259;
public static final int NOTIFYMSG_PVR_PB_Stop = 260;
public static final int NOTIFYMSG_PVR_PB_Time = 264;
public static final int NOTIFYMSG_PVR_RECORD_Ready = 265;
public static final int NOTIFYMSG_PVR_RECORD_Start = 257;
public static final int NOTIFYMSG_PVR_RECORD_Stop = 258;
public static final int NOTIFYMSG_PVR_REC_Time = 263;
public static final int NOTIFYMSG_SCAN_BASE = 1792;
public static final int NOTIFYMSG_SCAN_Blind_Tp_Collect = 1796;
public static final int NOTIFYMSG_SCAN_Blind_Tp_Progress = 1798;
public static final int NOTIFYMSG_SCAN_Blind_Tp_Search = 1795;
public static final int NOTIFYMSG_SCAN_Blind_Tp_SearchEnd = 1797;
public static final int NOTIFYMSG_SCAN_Collect = 1793;
public static final int NOTIFYMSG_SCAN_End = 1794;
public static final int NOTIFYMSG_SCAN_FstUpdateEnd = 1803;
public static final int NOTIFYMSG_SCAN_FstUpdateStart = 1802;
public static final int NOTIFYMSG_SCAN_SetNetworkName = 1801;
public static final int NOTIFYMSG_SCAN_SetTpFreqStr = 1799;
public static final int NOTIFYMSG_SCAN_SetTpPercent = 1800;
public static final int NOTIFYMSG_SC_BASE = 768;
public static final int NOTIFYMSG_SC_Conax_Lock = 771;
public static final int NOTIFYMSG_SC_Extract = 769;
public static final int NOTIFYMSG_SC_Initialize = 771;
public static final int NOTIFYMSG_SC_Insert = 770;
public static final int NOTIFYMSG_SI_ALL_PMT = 1295;
public static final int NOTIFYMSG_SI_BASE = 1280;
public static final int NOTIFYMSG_SI_BAT = 1290;
public static final int NOTIFYMSG_SI_CAT = 1291;
public static final int NOTIFYMSG_SI_CUR_PMT = 1294;
public static final int NOTIFYMSG_SI_NIT = 1283;
public static final int NOTIFYMSG_SI_NIT_Other = 1284;
public static final int NOTIFYMSG_SI_PAT = 1281;
public static final int NOTIFYMSG_SI_PMT = 1282;
public static final int NOTIFYMSG_SI_SDT = 1285;
public static final int NOTIFYMSG_SI_SDT_AllLoaded = 1292;
public static final int NOTIFYMSG_SI_SDT_CurrentLoaded = 1293;
public static final int NOTIFYMSG_SI_SDT_Other = 1286;
public static final int NOTIFYMSG_SI_SDT_Repeat = 1287;
public static final int NOTIFYMSG_SI_TDT = 1288;
public static final int NOTIFYMSG_SI_TOT = 1289;
public static final int NOTIFYMSG_SVC_AddedIPService = 2063;
public static final int NOTIFYMSG_SVC_AlarmSvcChange = 2064;
public static final int NOTIFYMSG_SVC_AudioChange = 2052;
public static final int NOTIFYMSG_SVC_BASE = 2048;
public static final int NOTIFYMSG_SVC_NewSvcStart = 2053;
public static final int NOTIFYMSG_SVC_ReIndexing = 2055;
public static final int NOTIFYMSG_SVC_Start = 2050;
public static final int NOTIFYMSG_SVC_Stop = 2051;
public static final int NOTIFYMSG_SVC_TimeCalibration_End = 2057;
public static final int NOTIFYMSG_SVC_TimeCalibration_Start = 2056;
public static final int NOTIFYMSG_SVC_Update = 2049;
public static final int NOTIFYMSG_SYSTEM_Auth = 2314;
public static final int NOTIFYMSG_SYSTEM_BASE = 2304;
public static final int NOTIFYMSG_SYSTEM_CutOff_Area = 2315;
public static final int NOTIFYMSG_SYSTEM_Diag = 2309;
public static final int NOTIFYMSG_SYSTEM_ForcedContextChange = 2307;
public static final int NOTIFYMSG_SYSTEM_Lock = 2308;
public static final int NOTIFYMSG_SYSTEM_MVT_Error = 2316;
public static final int NOTIFYMSG_SYSTEM_Power = 2305;
public static final int NOTIFYMSG_SYSTEM_PowerKey = 2310;
public static final int NOTIFYMSG_SYSTEM_PowerRecoveryAfterAlarm = 2313;
public static final int NOTIFYMSG_SYSTEM_Progress = 2311;
public static final int NOTIFYMSG_SYSTEM_ToastMsg = 2317;
public static final int NOTIFYMSG_SYSTEM_VerifyFusing = 2312;
public static final int NOTIFYMSG_SYSTEM_WakeupAlarm = 2318;
public static final int NOTIFYMSG_SYSTEM_Warning = 2306;
public static final int NOTIFYMSG_TP_XmlTvEpgEnd = 2059;
public static final int NOTIFYMSG_TP_XmlTvEpgProgress = 2058;
public static final int NOTIFYMSG_TP_XmlTvEpgShowProgress = 2060;
public static final int NOTIFYMSG_TP_XmlUpdate = 2054;
public static final int NOTIFYMSG_TUNER_BASE = 1024;
public static final int NOTIFYMSG_TUNER_Lock = 1025;
public static final int NOTIFYMSG_TUNER_PosMove = 1028;
public static final int NOTIFYMSG_TUNER_Signal = 1027;
public static final int NOTIFYMSG_TUNER_Unlock = 1026;
public static final int NOTIFYMSG_UNICABLE_Finish = 1805;
public static final int NOTIFYMSG_UNICABLE_Recognition = 1804;
public static final int NOTIFYMSG_WEATHER_BASE = 2816;
public static final int NOTIFYMSG_WEATHER_CITY_Result = 2818;
public static final int NOTIFYMSG_WEATHER_HISTORY_Result = 2819;
public static final int NOTIFYMSG_WEATHER_LOAD_Result = 2817;
}
package android.dvb;
public interface INotifyMessage {
void sendMsgTo(int i, Object obj);
}
package android.os;
import java.util.ArrayList;
public class SystemProperties {
public static final int PROP_NAME_MAX = 31;
public static final int PROP_VALUE_MAX = 91;
private static final ArrayList<Runnable> sChangeCallbacks = new ArrayList();
private static native void native_add_change_callback();
private static native String native_get(String str);
private static native String native_get(String str, String str2);
private static native boolean native_get_boolean(String str, boolean z);
private static native int native_get_int(String str, int i);
private static native long native_get_long(String str, long j);
private static native void native_set(String str, String str2);
public static String get(String str) {
if (str.length() <= 31) {
return native_get(str);
}
throw new IllegalArgumentException("key.length > 31");
}
public static String get(String str, String str2) {
if (str.length() <= 31) {
return native_get(str, str2);
}
throw new IllegalArgumentException("key.length > 31");
}
public static int getInt(String str, int i) {
if (str.length() <= 31) {
return native_get_int(str, i);
}
throw new IllegalArgumentException("key.length > 31");
}
public static long getLong(String str, long j) {
if (str.length() <= 31) {
return native_get_long(str, j);
}
throw new IllegalArgumentException("key.length > 31");
}
public static boolean getBoolean(String str, boolean z) {
if (str.length() <= 31) {
return native_get_boolean(str, z);
}
throw new IllegalArgumentException("key.length > 31");
}
public static void set(String str, String str2) {
if (str.length() > 31) {
throw new IllegalArgumentException("key.length > 31");
} else if (str2 == null || str2.length() <= 91) {
native_set(str, str2);
} else {
throw new IllegalArgumentException("val.length > 91");
}
}
public static void addChangeCallback(Runnable runnable) {
synchronized (sChangeCallbacks) {
if (sChangeCallbacks.size() == 0) {
native_add_change_callback();
}
sChangeCallbacks.add(runnable);
}
}
static void callChangeCallbacks() {
synchronized (sChangeCallbacks) {
if (sChangeCallbacks.size() == 0) {
return;
}
ArrayList arrayList = new ArrayList(sChangeCallbacks);
for (int i = 0; i < arrayList.size(); i++) {
((Runnable) arrayList.get(i)).run();
}
}
}
}
package android.support.v17.leanback.animation;
import android.animation.TimeInterpolator;
public class LogAccelerateInterpolator implements TimeInterpolator {
int mBase;
int mDrift;
final float mLogScale = (1.0f / computeLog(1.0f, this.mBase, this.mDrift));
public LogAccelerateInterpolator(int i, int i2) {
this.mBase = i;
this.mDrift = i2;
}
static float computeLog(float f, int i, int i2) {
return (((float) (-Math.pow((double) i, (double) (-f)))) + 1.0f) + (((float) i2) * f);
}
public float getInterpolation(float f) {
return 1.0f - (computeLog(1.0f - f, this.mBase, this.mDrift) * this.mLogScale);
}
}
package android.support.v17.leanback.animation;
import android.animation.TimeInterpolator;
public class LogDecelerateInterpolator implements TimeInterpolator {
int mBase;
int mDrift;
final float mLogScale = (1.0f / computeLog(1.0f, this.mBase, this.mDrift));
public LogDecelerateInterpolator(int i, int i2) {
this.mBase = i;
this.mDrift = i2;
}
static float computeLog(float f, int i, int i2) {
return (((float) (-Math.pow((double) i, (double) (-f)))) + 1.0f) + (((float) i2) * f);
}
public float getInterpolation(float f) {
return computeLog(f, this.mBase, this.mDrift) * this.mLogScale;
}
}
package android.support.v17.leanback.animation;
import android.animation.Animator;
import android.animation.Animator.AnimatorListener;
import android.animation.AnimatorSet;
import android.animation.TimeInterpolator;
import java.util.ArrayList;
public class UntargetableAnimatorSet extends Animator {
private final AnimatorSet mAnimatorSet;
public UntargetableAnimatorSet(AnimatorSet animatorSet) {
this.mAnimatorSet = animatorSet;
}
public void addListener(AnimatorListener animatorListener) {
this.mAnimatorSet.addListener(animatorListener);
}
public void cancel() {
this.mAnimatorSet.cancel();
}
public Animator clone() {
return this.mAnimatorSet.clone();
}
public void end() {
this.mAnimatorSet.end();
}
public long getDuration() {
return this.mAnimatorSet.getDuration();
}
public ArrayList<AnimatorListener> getListeners() {
return this.mAnimatorSet.getListeners();
}
public long getStartDelay() {
return this.mAnimatorSet.getStartDelay();
}
public boolean isRunning() {
return this.mAnimatorSet.isRunning();
}
public boolean isStarted() {
return this.mAnimatorSet.isStarted();
}
public void removeAllListeners() {
this.mAnimatorSet.removeAllListeners();
}
public void removeListener(AnimatorListener animatorListener) {
this.mAnimatorSet.removeListener(animatorListener);
}
public Animator setDuration(long j) {
return this.mAnimatorSet.setDuration(j);
}
public void setInterpolator(TimeInterpolator timeInterpolator) {
this.mAnimatorSet.setInterpolator(timeInterpolator);
}
public void setStartDelay(long j) {
this.mAnimatorSet.setStartDelay(j);
}
public void setTarget(Object obj) {
}
public void setupEndValues() {
this.mAnimatorSet.setupEndValues();
}
public void setupStartValues() {
this.mAnimatorSet.setupStartValues();
}
public void start() {
this.mAnimatorSet.start();
}
}
package android.support.v17.leanback.app;
import android.app.Fragment;
public final class BackgroundFragment extends Fragment implements FragmentStateQueriable {
private BackgroundManager mBackgroundManager;
final void setBackgroundManager(BackgroundManager backgroundManager) {
this.mBackgroundManager = backgroundManager;
}
final BackgroundManager getBackgroundManager() {
return this.mBackgroundManager;
}
public final void onStart() {
super.onStart();
if (this.mBackgroundManager != null) {
this.mBackgroundManager.onActivityStart();
}
}
public final void onResume() {
super.onResume();
if (this.mBackgroundManager != null) {
this.mBackgroundManager.onResume();
}
}
public final void onDestroy() {
super.onDestroy();
if (this.mBackgroundManager != null) {
this.mBackgroundManager.detach();
}
}
}
package android.support.v17.leanback.app;
import android.animation.Animator;
import android.animation.Animator.AnimatorListener;
import android.animation.TimeInterpolator;
import android.animation.ValueAnimator;
import android.animation.ValueAnimator.AnimatorUpdateListener;
import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.ColorFilter;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuffColorFilter;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.Drawable.ConstantState;
import android.graphics.drawable.LayerDrawable;
import android.os.Handler;
import android.support.v17.leanback.C0029R;
import android.support.v17.leanback.widget.BackgroundHelper;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.content.ContextCompat;
import android.support.v4.view.ViewCompat;
import android.support.v4.view.animation.FastOutLinearInInterpolator;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.view.Window;
import android.view.WindowManager;
import android.view.animation.AnimationUtils;
import android.view.animation.Interpolator;
import java.lang.ref.WeakReference;
public final class BackgroundManager {
private static final int CHANGE_BG_DELAY_MS = 500;
private static final boolean DEBUG = false;
private static final int DIM_ALPHA_ON_SOLID = 204;
private static final int FADE_DURATION = 500;
private static final String FRAGMENT_TAG = BackgroundManager.class.getCanonicalName();
private static final int FULL_ALPHA = 255;
private static final String TAG = "BackgroundManager";
private static final boolean USE_SEPARATE_WINDOW = false;
private static final String WINDOW_NAME = "BackgroundManager";
private final Interpolator mAccelerateInterpolator;
private final AnimatorListener mAnimationListener = new C00311();
private final AnimatorUpdateListener mAnimationUpdateListener = new C00322();
private final ValueAnimator mAnimator;
private boolean mAttached;
private int mBackgroundColor;
private Drawable mBackgroundDrawable;
private View mBgView;
private ChangeBackgroundRunnable mChangeRunnable;
private boolean mChangeRunnablePending;
private Context mContext;
private final Interpolator mDecelerateInterpolator;
private final ValueAnimator mDimAnimator;
private Drawable mDimDrawable;
private final AnimatorUpdateListener mDimUpdateListener = new C00333();
private FragmentStateQueriable mFragmentState;
private Handler mHandler;
private int mHeightPx;
private long mLastSetTime;
private TranslucentLayerDrawable mLayerDrawable;
private BackgroundContinuityService mService;
private int mThemeDrawableResourceId;
private int mWidthPx;
private Window mWindow;
private WindowManager mWindowManager;
interface FragmentStateQueriable {
boolean isResumed();
}
class C00311 implements AnimatorListener {
final Runnable mRunnable = new C00301();
class C00301 implements Runnable {
C00301() {
}
public void run() {
BackgroundManager.this.postChangeRunnable();
}
}
C00311() {
}
public void onAnimationStart(Animator animator) {
}
public void onAnimationRepeat(Animator animator) {
}
public void onAnimationEnd(Animator animator) {
if (BackgroundManager.this.mLayerDrawable != null) {
BackgroundManager.this.mLayerDrawable.clearDrawable(C0029R.id.background_imageout, BackgroundManager.this.mContext);
}
BackgroundManager.this.mHandler.post(this.mRunnable);
}
public void onAnimationCancel(Animator animator) {
}
}
class C00322 implements AnimatorUpdateListener {
C00322() {
}
public void onAnimationUpdate(ValueAnimator valueAnimator) {
int intValue = ((Integer) valueAnimator.getAnimatedValue()).intValue();
DrawableWrapper access$500 = BackgroundManager.this.getImageInWrapper();
if (access$500 != null) {
access$500.setAlpha(intValue);
return;
}
access$500 = BackgroundManager.this.getImageOutWrapper();
if (access$500 != null) {
access$500.setAlpha(255 - intValue);
}
}
}
class C00333 implements AnimatorUpdateListener {
C00333() {
}
public void onAnimationUpdate(ValueAnimator valueAnimator) {
DrawableWrapper access$700 = BackgroundManager.this.getDimWrapper();
if (access$700 != null) {
access$700.setAlpha(((Integer) valueAnimator.getAnimatedValue()).intValue());
}
}
}
class BackgroundContinuityService {
private static boolean DEBUG = false;
private static final String TAG = "BackgroundContinuityService";
private static BackgroundContinuityService sService = new BackgroundContinuityService();
private int mColor;
private int mCount;
private Drawable mDrawable;
private int mLastThemeDrawableId;
private WeakReference<ConstantState> mLastThemeDrawableState;
private BackgroundContinuityService() {
reset();
}
private void reset() {
this.mColor = 0;
this.mDrawable = null;
}
public static BackgroundContinuityService getInstance() {
BackgroundContinuityService backgroundContinuityService = sService;
int i = backgroundContinuityService.mCount;
backgroundContinuityService.mCount = i + 1;
if (DEBUG) {
Log.v(TAG, "Returning instance with new count " + i);
}
return sService;
}
public void unref() {
if (this.mCount <= 0) {
throw new IllegalStateException("Can't unref, count " + this.mCount);
}
int i = this.mCount - 1;
this.mCount = i;
if (i == 0) {
if (DEBUG) {
Log.v(TAG, "mCount is zero, resetting");
}
reset();
}
}
public int getColor() {
return this.mColor;
}
public Drawable getDrawable() {
return this.mDrawable;
}
public void setColor(int i) {
this.mColor = i;
}
public void setDrawable(Drawable drawable) {
this.mDrawable = drawable;
}
public Drawable getThemeDrawable(Context context, int i) {
Drawable newDrawable;
if (this.mLastThemeDrawableState != null && this.mLastThemeDrawableId == i) {
ConstantState constantState = (ConstantState) this.mLastThemeDrawableState.get();
if (DEBUG) {
Log.v(TAG, "got cached theme drawable state " + constantState);
}
if (constantState != null) {
newDrawable = constantState.newDrawable();
if (newDrawable == null) {
newDrawable = ContextCompat.getDrawable(context, i);
if (DEBUG) {
Log.v(TAG, "loaded theme drawable " + newDrawable);
}
this.mLastThemeDrawableState = new WeakReference(newDrawable.getConstantState());
this.mLastThemeDrawableId = i;
}
return newDrawable;
}
}
newDrawable = null;
if (newDrawable == null) {
newDrawable = ContextCompat.getDrawable(context, i);
if (DEBUG) {
Log.v(TAG, "loaded theme drawable " + newDrawable);
}
this.mLastThemeDrawableState = new WeakReference(newDrawable.getConstantState());
this.mLastThemeDrawableId = i;
}
return newDrawable;
}
}
class BitmapDrawable extends Drawable {
private ConstantState mState;
class ConstantState extends android.graphics.drawable.Drawable.ConstantState {
Bitmap mBitmap;
Matrix mMatrix;
Paint mPaint;
ConstantState() {
}
public Drawable newDrawable() {
return new BitmapDrawable(null, this.mBitmap, this.mMatrix);
}
public int getChangingConfigurations() {
return 0;
}
}
BitmapDrawable(Resources resources, Bitmap bitmap) {
this(resources, bitmap, null);
}
BitmapDrawable(Resources resources, Bitmap bitmap, Matrix matrix) {
this.mState = new ConstantState();
this.mState.mBitmap = bitmap;
ConstantState constantState = this.mState;
if (matrix == null) {
matrix = new Matrix();
}
constantState.mMatrix = matrix;
this.mState.mPaint = new Paint();
this.mState.mPaint.setFilterBitmap(true);
}
Bitmap getBitmap() {
return this.mState.mBitmap;
}
public void draw(Canvas canvas) {
if (this.mState.mBitmap != null) {
if (this.mState.mPaint.getAlpha() >= 255 || this.mState.mPaint.getColorFilter() == null) {
canvas.drawBitmap(this.mState.mBitmap, this.mState.mMatrix, this.mState.mPaint);
return;
}
throw new IllegalStateException("Can't draw with translucent alpha and color filter");
}
}
public int getOpacity() {
return -3;
}
public void setAlpha(int i) {
if (this.mState.mPaint.getAlpha() != i) {
this.mState.mPaint.setAlpha(i);
invalidateSelf();
}
}
public void setColorFilter(ColorFilter colorFilter) {
this.mState.mPaint.setColorFilter(colorFilter);
}
public ColorFilter getColorFilter() {
return this.mState.mPaint.getColorFilter();
}
public ConstantState getConstantState() {
return this.mState;
}
}
class ChangeBackgroundRunnable implements Runnable {
private Drawable mDrawable;
ChangeBackgroundRunnable(Drawable drawable) {
this.mDrawable = drawable;
}
public void run() {
runTask();
BackgroundManager.this.mChangeRunnable = null;
}
private void runTask() {
if (BackgroundManager.this.mLayerDrawable != null && !BackgroundManager.this.sameDrawable(this.mDrawable, BackgroundManager.this.mBackgroundDrawable)) {
BackgroundManager.this.releaseBackgroundBitmap();
DrawableWrapper access$500 = BackgroundManager.this.getImageInWrapper();
if (access$500 != null) {
BackgroundManager.this.mLayerDrawable.clearDrawable(C0029R.id.background_imagein, BackgroundManager.this.mContext);
BackgroundManager.this.mLayerDrawable.updateDrawable(C0029R.id.background_imageout, access$500.getDrawable());
}
BackgroundManager.this.setBackgroundDrawable(this.mDrawable);
BackgroundManager.this.applyBackgroundChanges();
}
}
}
class DrawableWrapper {
private int mAlpha = 255;
private ColorFilter mColorFilter;
private Drawable mDrawable;
public DrawableWrapper(Drawable drawable) {
this.mDrawable = drawable;
updateAlpha();
updateColorFilter();
}
public DrawableWrapper(DrawableWrapper drawableWrapper, Drawable drawable) {
this.mDrawable = drawable;
this.mAlpha = drawableWrapper.getAlpha();
updateAlpha();
this.mColorFilter = drawableWrapper.getColorFilter();
updateColorFilter();
}
public Drawable getDrawable() {
return this.mDrawable;
}
public void setAlpha(int i) {
this.mAlpha = i;
updateAlpha();
}
public int getAlpha() {
return this.mAlpha;
}
private void updateAlpha() {
this.mDrawable.setAlpha(this.mAlpha);
}
public ColorFilter getColorFilter() {
return this.mColorFilter;
}
public void setColorFilter(ColorFilter colorFilter) {
this.mColorFilter = colorFilter;
updateColorFilter();
}
private void updateColorFilter() {
this.mDrawable.setColorFilter(this.mColorFilter);
}
public void setColor(int i) {
((ColorDrawable) this.mDrawable).setColor(i);
}
}
class TranslucentLayerDrawable extends LayerDrawable {
private Paint mPaint = new Paint();
private DrawableWrapper[] mWrapper;
public TranslucentLayerDrawable(Drawable[] drawableArr) {
super(drawableArr);
int length = drawableArr.length;
this.mWrapper = new DrawableWrapper[length];
for (int i = 0; i < length; i++) {
this.mWrapper[i] = new DrawableWrapper(drawableArr[i]);
}
}
public void setAlpha(int i) {
if (this.mPaint.getAlpha() != i) {
int alpha = this.mPaint.getAlpha();
this.mPaint.setAlpha(i);
invalidateSelf();
onAlphaChanged(alpha, i);
}
}
public int getAlpha() {
return this.mPaint.getAlpha();
}
protected void onAlphaChanged(int i, int i2) {
}
public Drawable mutate() {
Drawable mutate = super.mutate();
int numberOfLayers = getNumberOfLayers();
for (int i = 0; i < numberOfLayers; i++) {
if (this.mWrapper[i] != null) {
this.mWrapper[i] = new DrawableWrapper(this.mWrapper[i], getDrawable(i));
}
}
invalidateSelf();
return mutate;
}
public int getOpacity() {
return -3;
}
public boolean setDrawableByLayerId(int i, Drawable drawable) {
return updateDrawable(i, drawable) != null;
}
public DrawableWrapper updateDrawable(int i, Drawable drawable) {
super.setDrawableByLayerId(i, drawable);
for (int i2 = 0; i2 < getNumberOfLayers(); i2++) {
if (getId(i2) == i) {
this.mWrapper[i2] = new DrawableWrapper(drawable);
invalidateSelf();
return this.mWrapper[i2];
}
}
return null;
}
public void clearDrawable(int i, Context context) {
for (int i2 = 0; i2 < getNumberOfLayers(); i2++) {
if (getId(i2) == i) {
this.mWrapper[i2] = null;
super.setDrawableByLayerId(i, BackgroundManager.createEmptyDrawable(context));
return;
}
}
}
public DrawableWrapper findWrapperById(int i) {
for (int i2 = 0; i2 < getNumberOfLayers(); i2++) {
if (getId(i2) == i) {
return this.mWrapper[i2];
}
}
return null;
}
public void draw(Canvas canvas) {
if (this.mPaint.getAlpha() < 255) {
canvas.saveLayer(0.0f, 0.0f, (float) canvas.getWidth(), (float) canvas.getHeight(), this.mPaint, 31);
}
super.draw(canvas);
if (this.mPaint.getAlpha() < 255) {
canvas.restore();
}
}
}
class OptimizedTranslucentLayerDrawable extends TranslucentLayerDrawable {
private PorterDuffColorFilter mColorFilter;
private boolean mUpdatingColorFilter;
public OptimizedTranslucentLayerDrawable(Drawable[] drawableArr) {
super(drawableArr);
}
protected void onAlphaChanged(int i, int i2) {
if (i2 == 255 && i < 255) {
BackgroundManager.this.postChangeRunnable();
}
}
public void invalidateSelf() {
super.invalidateSelf();
updateColorFilter();
}
public void invalidateDrawable(Drawable drawable) {
if (!this.mUpdatingColorFilter) {
invalidateSelf();
}
}
private void updateColorFilter() {
DrawableWrapper findWrapperById = findWrapperById(C0029R.id.background_dim);
DrawableWrapper findWrapperById2 = findWrapperById(C0029R.id.background_imagein);
DrawableWrapper findWrapperById3 = findWrapperById(C0029R.id.background_imageout);
this.mColorFilter = null;
if (findWrapperById2 != null && findWrapperById2.getAlpha() == 255 && (findWrapperById.getDrawable() instanceof ColorDrawable)) {
int color = ((ColorDrawable) findWrapperById.getDrawable()).getColor();
if (Color.red(color) == 0 && Color.green(color) == 0 && Color.blue(color) == 0) {
color = 255 - Color.alpha(color);
this.mColorFilter = new PorterDuffColorFilter(Color.argb(getAlpha(), color, color, color), Mode.MULTIPLY);
}
}
this.mUpdatingColorFilter = true;
if (findWrapperById2 != null) {
findWrapperById2.setColorFilter(this.mColorFilter);
}
if (findWrapperById3 != null) {
findWrapperById3.setColorFilter(null);
}
this.mUpdatingColorFilter = false;
}
public void draw(Canvas canvas) {
DrawableWrapper findWrapperById = findWrapperById(C0029R.id.background_imagein);
if (findWrapperById == null || findWrapperById.getDrawable() == null || findWrapperById.getColorFilter() == null) {
super.draw(canvas);
} else {
findWrapperById.getDrawable().draw(canvas);
}
}
}
private TranslucentLayerDrawable createOptimizedTranslucentLayerDrawable(LayerDrawable layerDrawable) {
int i = 0;
int numberOfLayers = layerDrawable.getNumberOfLayers();
Drawable[] drawableArr = new Drawable[numberOfLayers];
for (int i2 = 0; i2 < numberOfLayers; i2++) {
drawableArr[i2] = layerDrawable.getDrawable(i2);
}
TranslucentLayerDrawable optimizedTranslucentLayerDrawable = new OptimizedTranslucentLayerDrawable(drawableArr);
while (i < numberOfLayers) {
optimizedTranslucentLayerDrawable.setId(i, layerDrawable.getId(i));
i++;
}
return optimizedTranslucentLayerDrawable;
}
private Drawable getThemeDrawable() {
Drawable drawable = null;
if (this.mThemeDrawableResourceId != -1) {
drawable = this.mService.getThemeDrawable(this.mContext, this.mThemeDrawableResourceId);
}
if (drawable == null) {
return createEmptyDrawable(this.mContext);
}
return drawable;
}
public static BackgroundManager getInstance(Activity activity) {
if (activity instanceof FragmentActivity) {
return getSupportInstance((FragmentActivity) activity);
}
BackgroundFragment backgroundFragment = (BackgroundFragment) activity.getFragmentManager().findFragmentByTag(FRAGMENT_TAG);
if (backgroundFragment != null) {
BackgroundManager backgroundManager = backgroundFragment.getBackgroundManager();
if (backgroundManager != null) {
return backgroundManager;
}
}
return new BackgroundManager(activity, false);
}
private static BackgroundManager getSupportInstance(FragmentActivity fragmentActivity) {
BackgroundSupportFragment backgroundSupportFragment = (BackgroundSupportFragment) fragmentActivity.getSupportFragmentManager().findFragmentByTag(FRAGMENT_TAG);
if (backgroundSupportFragment != null) {
BackgroundManager backgroundManager = backgroundSupportFragment.getBackgroundManager();
if (backgroundManager != null) {
return backgroundManager;
}
}
return new BackgroundManager(fragmentActivity, true);
}
private BackgroundManager(Activity activity, boolean z) {
this.mContext = activity;
this.mService = BackgroundContinuityService.getInstance();
this.mHeightPx = this.mContext.getResources().getDisplayMetrics().heightPixels;
this.mWidthPx = this.mContext.getResources().getDisplayMetrics().widthPixels;
this.mHandler = new Handler();
TimeInterpolator fastOutLinearInInterpolator = new FastOutLinearInInterpolator();
this.mAccelerateInterpolator = AnimationUtils.loadInterpolator(this.mContext, 17432581);
this.mDecelerateInterpolator = AnimationUtils.loadInterpolator(this.mContext, 17432582);
this.mAnimator = ValueAnimator.ofInt(new int[]{0, 255});
this.mAnimator.addListener(this.mAnimationListener);
this.mAnimator.addUpdateListener(this.mAnimationUpdateListener);
this.mAnimator.setInterpolator(fastOutLinearInInterpolator);
this.mDimAnimator = new ValueAnimator();
this.mDimAnimator.addUpdateListener(this.mDimUpdateListener);
TypedArray obtainStyledAttributes = activity.getTheme().obtainStyledAttributes(new int[]{16842836});
this.mThemeDrawableResourceId = obtainStyledAttributes.getResourceId(0, -1);
obtainStyledAttributes.recycle();
if (z) {
createSupportFragment((FragmentActivity) activity);
} else {
createFragment(activity);
}
}
private void createFragment(Activity activity) {
FragmentStateQueriable fragmentStateQueriable = (BackgroundFragment) activity.getFragmentManager().findFragmentByTag(FRAGMENT_TAG);
if (fragmentStateQueriable == null) {
fragmentStateQueriable = new BackgroundFragment();
activity.getFragmentManager().beginTransaction().add(fragmentStateQueriable, FRAGMENT_TAG).commit();
} else if (fragmentStateQueriable.getBackgroundManager() != null) {
throw new IllegalStateException("Created duplicated BackgroundManager for same activity, please use getInstance() instead");
}
fragmentStateQueriable.setBackgroundManager(this);
this.mFragmentState = fragmentStateQueriable;
}
private void createSupportFragment(FragmentActivity fragmentActivity) {
FragmentStateQueriable fragmentStateQueriable = (BackgroundSupportFragment) fragmentActivity.getSupportFragmentManager().findFragmentByTag(FRAGMENT_TAG);
if (fragmentStateQueriable == null) {
fragmentStateQueriable = new BackgroundSupportFragment();
fragmentActivity.getSupportFragmentManager().beginTransaction().add((Fragment) fragmentStateQueriable, FRAGMENT_TAG).commit();
} else if (fragmentStateQueriable.getBackgroundManager() != null) {
throw new IllegalStateException("Created duplicated BackgroundManager for same activity, please use getInstance() instead");
}
fragmentStateQueriable.setBackgroundManager(this);
this.mFragmentState = fragmentStateQueriable;
}
private DrawableWrapper getImageInWrapper() {
return this.mLayerDrawable == null ? null : this.mLayerDrawable.findWrapperById(C0029R.id.background_imagein);
}
private DrawableWrapper getImageOutWrapper() {
return this.mLayerDrawable == null ? null : this.mLayerDrawable.findWrapperById(C0029R.id.background_imageout);
}
private DrawableWrapper getDimWrapper() {
return this.mLayerDrawable == null ? null : this.mLayerDrawable.findWrapperById(C0029R.id.background_dim);
}
private DrawableWrapper getColorWrapper() {
return this.mLayerDrawable == null ? null : this.mLayerDrawable.findWrapperById(C0029R.id.background_color);
}
final void onActivityStart() {
if (this.mService != null) {
if (this.mLayerDrawable == null) {
syncWithService();
return;
}
this.mService.setColor(this.mBackgroundColor);
this.mService.setDrawable(this.mBackgroundDrawable);
}
}
final void onResume() {
postChangeRunnable();
}
private void syncWithService() {
int color = this.mService.getColor();
Drawable drawable = this.mService.getDrawable();
this.mBackgroundColor = color;
this.mBackgroundDrawable = drawable == null ? null : drawable.getConstantState().newDrawable().mutate();
updateImmediate();
}
private void lazyInit() {
if (this.mLayerDrawable == null) {
this.mLayerDrawable = createOptimizedTranslucentLayerDrawable((LayerDrawable) ContextCompat.getDrawable(this.mContext, C0029R.drawable.lb_background).mutate());
BackgroundHelper.setBackgroundPreservingAlpha(this.mBgView, this.mLayerDrawable);
this.mLayerDrawable.clearDrawable(C0029R.id.background_imageout, this.mContext);
this.mLayerDrawable.updateDrawable(C0029R.id.background_theme, getThemeDrawable());
updateDimWrapper();
}
}
private void updateDimWrapper() {
if (this.mDimDrawable == null) {
this.mDimDrawable = getDefaultDimLayer();
}
Drawable mutate = this.mDimDrawable.getConstantState().newDrawable(this.mContext.getResources()).mutate();
if (this.mLayerDrawable != null) {
this.mLayerDrawable.updateDrawable(C0029R.id.background_dim, mutate);
}
}
public final void attach(Window window) {
attachToView(window.getDecorView());
}
public final void setThemeDrawableResourceId(int i) {
this.mThemeDrawableResourceId = i;
}
private void attachBehindWindow(Window window) {
this.mWindow = window;
this.mWindowManager = window.getWindowManager();
LayoutParams layoutParams = new WindowManager.LayoutParams(1001, ViewCompat.MEASURED_STATE_TOO_SMALL, -3);
layoutParams.setTitle("BackgroundManager");
layoutParams.width = -1;
layoutParams.height = -1;
View inflate = LayoutInflater.from(this.mContext).inflate(C0029R.layout.lb_background_window, null);
this.mWindowManager.addView(inflate, layoutParams);
attachToView(inflate);
}
private void attachToView(View view) {
this.mBgView = view;
this.mAttached = true;
syncWithService();
}
public final boolean isAttached() {
return this.mAttached;
}
final void detach() {
release();
if (!(this.mWindowManager == null || this.mBgView == null)) {
this.mWindowManager.removeViewImmediate(this.mBgView);
}
this.mWindowManager = null;
this.mWindow = null;
this.mBgView = null;
this.mAttached = false;
if (this.mService != null) {
this.mService.unref();
this.mService = null;
}
}
public final void release() {
if (this.mLayerDrawable != null) {
this.mLayerDrawable.clearDrawable(C0029R.id.background_imagein, this.mContext);
this.mLayerDrawable.clearDrawable(C0029R.id.background_imageout, this.mContext);
this.mLayerDrawable.clearDrawable(C0029R.id.background_theme, this.mContext);
this.mLayerDrawable = null;
}
if (this.mChangeRunnable != null) {
this.mHandler.removeCallbacks(this.mChangeRunnable);
this.mChangeRunnable = null;
}
releaseBackgroundBitmap();
}
private void releaseBackgroundBitmap() {
this.mBackgroundDrawable = null;
}
private void setBackgroundDrawable(Drawable drawable) {
this.mBackgroundDrawable = drawable;
this.mService.setDrawable(this.mBackgroundDrawable);
}
public final void setDimLayer(Drawable drawable) {
this.mDimDrawable = drawable;
updateDimWrapper();
}
public final Drawable getDimLayer() {
return this.mDimDrawable;
}
public final Drawable getDefaultDimLayer() {
return ContextCompat.getDrawable(this.mContext, C0029R.color.lb_background_protection);
}
private void postChangeRunnable() {
if (this.mChangeRunnable != null && this.mChangeRunnablePending && !this.mAnimator.isStarted() && this.mFragmentState.isResumed() && this.mLayerDrawable.getAlpha() >= 255) {
long runnableDelay = getRunnableDelay();
this.mLastSetTime = System.currentTimeMillis();
this.mHandler.postDelayed(this.mChangeRunnable, runnableDelay);
this.mChangeRunnablePending = false;
}
}
private void updateImmediate() {
boolean z = false;
lazyInit();
DrawableWrapper colorWrapper = getColorWrapper();
if (colorWrapper != null) {
colorWrapper.setColor(this.mBackgroundColor);
}
DrawableWrapper dimWrapper = getDimWrapper();
if (dimWrapper != null) {
dimWrapper.setAlpha(this.mBackgroundColor == 0 ? 0 : 204);
}
if (this.mBackgroundColor == 0) {
z = true;
}
showWallpaper(z);
if (this.mBackgroundDrawable == null) {
this.mLayerDrawable.clearDrawable(C0029R.id.background_imagein, this.mContext);
return;
}
this.mLayerDrawable.updateDrawable(C0029R.id.background_imagein, this.mBackgroundDrawable);
if (dimWrapper != null) {
dimWrapper.setAlpha(255);
}
}
public final void setColor(int i) {
this.mBackgroundColor = i;
this.mService.setColor(this.mBackgroundColor);
DrawableWrapper colorWrapper = getColorWrapper();
if (colorWrapper != null) {
colorWrapper.setColor(this.mBackgroundColor);
}
}
public final void setDrawable(Drawable drawable) {
setDrawableInternal(drawable);
}
private void setDrawableInternal(Drawable drawable) {
if (this.mAttached) {
if (this.mChangeRunnable != null) {
if (!sameDrawable(drawable, this.mChangeRunnable.mDrawable)) {
this.mHandler.removeCallbacks(this.mChangeRunnable);
this.mChangeRunnable = null;
} else {
return;
}
}
if (this.mLayerDrawable == null || this.mLayerDrawable.getAlpha() == 0) {
setBackgroundDrawable(drawable);
updateImmediate();
return;
}
this.mChangeRunnable = new ChangeBackgroundRunnable(drawable);
this.mChangeRunnablePending = true;
postChangeRunnable();
return;
}
throw new IllegalStateException("Must attach before setting background drawable");
}
private long getRunnableDelay() {
return Math.max(0, (this.mLastSetTime + 500) - System.currentTimeMillis());
}
public final void setBitmap(Bitmap bitmap) {
Matrix matrix = null;
if (bitmap == null) {
setDrawableInternal(null);
} else if (bitmap.getWidth() > 0 && bitmap.getHeight() > 0) {
if (!(bitmap.getWidth() == this.mWidthPx && bitmap.getHeight() == this.mHeightPx)) {
float f;
int width = bitmap.getWidth();
int height = bitmap.getHeight();
if (this.mHeightPx * width > this.mWidthPx * height) {
f = ((float) this.mHeightPx) / ((float) height);
} else {
f = ((float) this.mWidthPx) / ((float) width);
}
int max = Math.max(0, (width - Math.min((int) (((float) this.mWidthPx) / f), width)) / 2);
Matrix matrix2 = new Matrix();
matrix2.setScale(f, f);
matrix2.preTranslate((float) (-max), 0.0f);
matrix = matrix2;
}
setDrawableInternal(new BitmapDrawable(this.mContext.getResources(), bitmap, matrix));
}
}
private void applyBackgroundChanges() {
if (this.mAttached) {
int i = -1;
if (getImageOutWrapper() != null) {
i = this.mBackgroundColor == 0 ? 0 : 204;
}
if (getImageInWrapper() == null && this.mBackgroundDrawable != null) {
this.mLayerDrawable.updateDrawable(C0029R.id.background_imagein, this.mBackgroundDrawable).setAlpha(0);
i = 255;
}
this.mAnimator.setDuration(500);
this.mAnimator.start();
if (getDimWrapper() != null && i >= 0) {
this.mDimAnimator.cancel();
this.mDimAnimator.setIntValues(new int[]{r3.getAlpha(), i});
this.mDimAnimator.setDuration(500);
this.mDimAnimator.setInterpolator(i == 255 ? this.mDecelerateInterpolator : this.mAccelerateInterpolator);
this.mDimAnimator.start();
}
}
}
public final int getColor() {
return this.mBackgroundColor;
}
public final Drawable getDrawable() {
return this.mBackgroundDrawable;
}
private boolean sameDrawable(Drawable drawable, Drawable drawable2) {
if (drawable == null || drawable2 == null) {
return false;
}
if (drawable == drawable2) {
return true;
}
if ((drawable instanceof BitmapDrawable) && (drawable2 instanceof BitmapDrawable) && ((BitmapDrawable) drawable).getBitmap().sameAs(((BitmapDrawable) drawable2).getBitmap())) {
return true;
}
return false;
}
private static Drawable createEmptyDrawable(Context context) {
return new BitmapDrawable(context.getResources(), null);
}
private void showWallpaper(boolean z) {
if (this.mWindow != null) {
WindowManager.LayoutParams attributes = this.mWindow.getAttributes();
if (z) {
if ((attributes.flags & 1048576) == 0) {
attributes.flags |= 1048576;
} else {
return;
}
} else if ((attributes.flags & 1048576) != 0) {
attributes.flags &= -1048577;
} else {
return;
}
this.mWindow.setAttributes(attributes);
}
}
}
package android.support.v17.leanback.app;
import android.support.v4.app.Fragment;
public final class BackgroundSupportFragment extends Fragment implements FragmentStateQueriable {
private BackgroundManager mBackgroundManager;
final void setBackgroundManager(BackgroundManager backgroundManager) {
this.mBackgroundManager = backgroundManager;
}
final BackgroundManager getBackgroundManager() {
return this.mBackgroundManager;
}
public final void onStart() {
super.onStart();
if (this.mBackgroundManager != null) {
this.mBackgroundManager.onActivityStart();
}
}
public final void onResume() {
super.onResume();
if (this.mBackgroundManager != null) {
this.mBackgroundManager.onResume();
}
}
public final void onDestroy() {
super.onDestroy();
if (this.mBackgroundManager != null) {
this.mBackgroundManager.detach();
}
}
}
package android.support.v17.leanback.app;
import android.os.Bundle;
import android.support.v17.leanback.transition.TransitionHelper;
import android.support.v17.leanback.transition.TransitionListener;
import android.view.View;
import android.view.ViewTreeObserver.OnPreDrawListener;
class BaseFragment extends BrandedFragment {
static TransitionHelper sTransitionHelper = TransitionHelper.getInstance();
private Object mEntranceTransition;
private boolean mEntranceTransitionEnabled = false;
private boolean mEntranceTransitionPreparePending = false;
private boolean mStartEntranceTransitionPending = false;
class C00352 extends TransitionListener {
C00352() {
}
public void onTransitionEnd(Object obj) {
BaseFragment.this.mEntranceTransition = null;
BaseFragment.this.onEntranceTransitionEnd();
}
}
BaseFragment() {
}
public void onViewCreated(View view, Bundle bundle) {
super.onViewCreated(view, bundle);
if (this.mEntranceTransitionPreparePending) {
this.mEntranceTransitionPreparePending = false;
onEntranceTransitionPrepare();
}
if (this.mStartEntranceTransitionPending) {
this.mStartEntranceTransitionPending = false;
startEntranceTransition();
}
}
public void prepareEntranceTransition() {
if (TransitionHelper.systemSupportsEntranceTransitions()) {
this.mEntranceTransitionEnabled = true;
if (getView() == null) {
this.mEntranceTransitionPreparePending = true;
} else {
onEntranceTransitionPrepare();
}
}
}
boolean isEntranceTransitionEnabled() {
return this.mEntranceTransitionEnabled;
}
protected Object createEntranceTransition() {
return null;
}
protected void runEntranceTransition(Object obj) {
}
protected void onEntranceTransitionPrepare() {
}
protected void onEntranceTransitionStart() {
}
protected void onEntranceTransitionEnd() {
}
public void startEntranceTransition() {
if (!this.mEntranceTransitionEnabled || this.mEntranceTransition != null) {
return;
}
if (getView() == null) {
this.mStartEntranceTransitionPending = true;
return;
}
if (this.mEntranceTransitionPreparePending) {
this.mEntranceTransitionPreparePending = false;
onEntranceTransitionPrepare();
}
final View view = getView();
view.getViewTreeObserver().addOnPreDrawListener(new OnPreDrawListener() {
public boolean onPreDraw() {
view.getViewTreeObserver().removeOnPreDrawListener(this);
BaseFragment.this.internalCreateEntranceTransition();
BaseFragment.this.mEntranceTransitionEnabled = false;
if (BaseFragment.this.mEntranceTransition != null) {
BaseFragment.this.onEntranceTransitionStart();
BaseFragment.this.runEntranceTransition(BaseFragment.this.mEntranceTransition);
}
return false;
}
});
view.invalidate();
}
void internalCreateEntranceTransition() {
this.mEntranceTransition = createEntranceTransition();
if (this.mEntranceTransition != null) {
sTransitionHelper.setTransitionListener(this.mEntranceTransition, new C00352());
}
}
}
package android.support.v17.leanback.app;
import android.app.Fragment;
import android.os.Bundle;
import android.support.v17.leanback.widget.ItemBridgeAdapter;
import android.support.v17.leanback.widget.ListRow;
import android.support.v17.leanback.widget.ObjectAdapter;
import android.support.v17.leanback.widget.OnChildViewHolderSelectedListener;
import android.support.v17.leanback.widget.PresenterSelector;
import android.support.v17.leanback.widget.Row;
import android.support.v17.leanback.widget.VerticalGridView;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.ViewHolder;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
abstract class BaseRowFragment extends Fragment {
private ObjectAdapter mAdapter;
private ItemBridgeAdapter mBridgeAdapter;
private boolean mPendingTransitionPrepare;
private PresenterSelector mPresenterSelector;
private final OnChildViewHolderSelectedListener mRowSelectedListener = new C00361();
private int mSelectedPosition = -1;
private VerticalGridView mVerticalGridView;
class C00361 extends OnChildViewHolderSelectedListener {
C00361() {
}
public void onChildViewHolderSelected(RecyclerView recyclerView, ViewHolder viewHolder, int i, int i2) {
BaseRowFragment.this.onRowSelected(recyclerView, viewHolder, i, i2);
}
}
abstract int getLayoutResourceId();
BaseRowFragment() {
}
void onRowSelected(RecyclerView recyclerView, ViewHolder viewHolder, int i, int i2) {
}
public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
View inflate = layoutInflater.inflate(getLayoutResourceId(), viewGroup, false);
this.mVerticalGridView = findGridViewFromRoot(inflate);
if (this.mPendingTransitionPrepare) {
this.mPendingTransitionPrepare = false;
onTransitionPrepare();
}
return inflate;
}
VerticalGridView findGridViewFromRoot(View view) {
return (VerticalGridView) view;
}
public void onViewCreated(View view, Bundle bundle) {
if (this.mBridgeAdapter != null) {
this.mVerticalGridView.setAdapter(this.mBridgeAdapter);
if (this.mSelectedPosition != -1) {
this.mVerticalGridView.setSelectedPosition(this.mSelectedPosition);
}
}
this.mVerticalGridView.setOnChildViewHolderSelectedListener(this.mRowSelectedListener);
}
public void onDestroyView() {
super.onDestroyView();
this.mVerticalGridView = null;
}
public final void setPresenterSelector(PresenterSelector presenterSelector) {
this.mPresenterSelector = presenterSelector;
updateAdapter();
}
public final PresenterSelector getPresenterSelector() {
return this.mPresenterSelector;
}
public final void setAdapter(ObjectAdapter objectAdapter) {
this.mAdapter = objectAdapter;
updateAdapter();
}
public final ObjectAdapter getAdapter() {
return this.mAdapter;
}
final ItemBridgeAdapter getBridgeAdapter() {
return this.mBridgeAdapter;
}
public void setSelectedPosition(int i) {
setSelectedPosition(i, true);
}
public void setSelectedPosition(int i, boolean z) {
this.mSelectedPosition = i;
if (this.mVerticalGridView != null && this.mVerticalGridView.getAdapter() != null) {
if (z) {
this.mVerticalGridView.setSelectedPositionSmooth(i);
} else {
this.mVerticalGridView.setSelectedPosition(i);
}
}
}
final VerticalGridView getVerticalGridView() {
return this.mVerticalGridView;
}
void updateAdapter() {
if (this.mBridgeAdapter != null) {
this.mBridgeAdapter.clear();
this.mBridgeAdapter = null;
}
if (this.mAdapter != null) {
this.mBridgeAdapter = new ItemBridgeAdapter(this.mAdapter, this.mPresenterSelector);
}
if (this.mVerticalGridView != null) {
this.mVerticalGridView.setAdapter(this.mBridgeAdapter);
if (this.mBridgeAdapter != null && this.mSelectedPosition != -1) {
this.mVerticalGridView.setSelectedPosition(this.mSelectedPosition);
}
}
}
Object getItem(Row row, int i) {
if (row instanceof ListRow) {
return ((ListRow) row).getAdapter().get(i);
}
return null;
}
boolean onTransitionPrepare() {
if (this.mVerticalGridView != null) {
this.mVerticalGridView.setAnimateChildLayout(false);
this.mVerticalGridView.setScrollEnabled(false);
return true;
}
this.mPendingTransitionPrepare = true;
return false;
}
void onTransitionStart() {
if (this.mVerticalGridView != null) {
this.mVerticalGridView.setPruneChild(false);
this.mVerticalGridView.setLayoutFrozen(true);
this.mVerticalGridView.setFocusSearchDisabled(true);
}
}
void onTransitionEnd() {
if (this.mVerticalGridView != null) {
this.mVerticalGridView.setLayoutFrozen(false);
this.mVerticalGridView.setAnimateChildLayout(true);
this.mVerticalGridView.setPruneChild(true);
this.mVerticalGridView.setFocusSearchDisabled(false);
this.mVerticalGridView.setScrollEnabled(true);
}
}
void setItemAlignment() {
if (this.mVerticalGridView != null) {
this.mVerticalGridView.setItemAlignmentOffset(0);
this.mVerticalGridView.setItemAlignmentOffsetPercent(-1.0f);
}
}
void setWindowAlignmentFromTop(int i) {
if (this.mVerticalGridView != null) {
this.mVerticalGridView.setWindowAlignmentOffset(i);
this.mVerticalGridView.setWindowAlignmentOffsetPercent(-1.0f);
this.mVerticalGridView.setWindowAlignment(0);
}
}
}
package android.support.v17.leanback.app;
import android.os.Bundle;
import android.support.v17.leanback.widget.ItemBridgeAdapter;
import android.support.v17.leanback.widget.ListRow;
import android.support.v17.leanback.widget.ObjectAdapter;
import android.support.v17.leanback.widget.OnChildViewHolderSelectedListener;
import android.support.v17.leanback.widget.PresenterSelector;
import android.support.v17.leanback.widget.Row;
import android.support.v17.leanback.widget.VerticalGridView;
import android.support.v4.app.Fragment;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.ViewHolder;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
abstract class BaseRowSupportFragment extends Fragment {
private ObjectAdapter mAdapter;
private ItemBridgeAdapter mBridgeAdapter;
private boolean mPendingTransitionPrepare;
private PresenterSelector mPresenterSelector;
private final OnChildViewHolderSelectedListener mRowSelectedListener = new C00371();
private int mSelectedPosition = -1;
private VerticalGridView mVerticalGridView;
class C00371 extends OnChildViewHolderSelectedListener {
C00371() {
}
public void onChildViewHolderSelected(RecyclerView recyclerView, ViewHolder viewHolder, int i, int i2) {
BaseRowSupportFragment.this.onRowSelected(recyclerView, viewHolder, i, i2);
}
}
abstract int getLayoutResourceId();
BaseRowSupportFragment() {
}
void onRowSelected(RecyclerView recyclerView, ViewHolder viewHolder, int i, int i2) {
}
public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
View inflate = layoutInflater.inflate(getLayoutResourceId(), viewGroup, false);
this.mVerticalGridView = findGridViewFromRoot(inflate);
if (this.mPendingTransitionPrepare) {
this.mPendingTransitionPrepare = false;
onTransitionPrepare();
}
return inflate;
}
VerticalGridView findGridViewFromRoot(View view) {
return (VerticalGridView) view;
}
public void onViewCreated(View view, Bundle bundle) {
if (this.mBridgeAdapter != null) {
this.mVerticalGridView.setAdapter(this.mBridgeAdapter);
if (this.mSelectedPosition != -1) {
this.mVerticalGridView.setSelectedPosition(this.mSelectedPosition);
}
}
this.mVerticalGridView.setOnChildViewHolderSelectedListener(this.mRowSelectedListener);
}
public void onDestroyView() {
super.onDestroyView();
this.mVerticalGridView = null;
}
public final void setPresenterSelector(PresenterSelector presenterSelector) {
this.mPresenterSelector = presenterSelector;
updateAdapter();
}
public final PresenterSelector getPresenterSelector() {
return this.mPresenterSelector;
}
public final void setAdapter(ObjectAdapter objectAdapter) {
this.mAdapter = objectAdapter;
updateAdapter();
}
public final ObjectAdapter getAdapter() {
return this.mAdapter;
}
final ItemBridgeAdapter getBridgeAdapter() {
return this.mBridgeAdapter;
}
public void setSelectedPosition(int i) {
setSelectedPosition(i, true);
}
public void setSelectedPosition(int i, boolean z) {
this.mSelectedPosition = i;
if (this.mVerticalGridView != null && this.mVerticalGridView.getAdapter() != null) {
if (z) {
this.mVerticalGridView.setSelectedPositionSmooth(i);
} else {
this.mVerticalGridView.setSelectedPosition(i);
}
}
}
final VerticalGridView getVerticalGridView() {
return this.mVerticalGridView;
}
void updateAdapter() {
if (this.mBridgeAdapter != null) {
this.mBridgeAdapter.clear();
this.mBridgeAdapter = null;
}
if (this.mAdapter != null) {
this.mBridgeAdapter = new ItemBridgeAdapter(this.mAdapter, this.mPresenterSelector);
}
if (this.mVerticalGridView != null) {
this.mVerticalGridView.setAdapter(this.mBridgeAdapter);
if (this.mBridgeAdapter != null && this.mSelectedPosition != -1) {
this.mVerticalGridView.setSelectedPosition(this.mSelectedPosition);
}
}
}
Object getItem(Row row, int i) {
if (row instanceof ListRow) {
return ((ListRow) row).getAdapter().get(i);
}
return null;
}
boolean onTransitionPrepare() {
if (this.mVerticalGridView != null) {
this.mVerticalGridView.setAnimateChildLayout(false);
this.mVerticalGridView.setScrollEnabled(false);
return true;
}
this.mPendingTransitionPrepare = true;
return false;
}
void onTransitionStart() {
if (this.mVerticalGridView != null) {
this.mVerticalGridView.setPruneChild(false);
this.mVerticalGridView.setLayoutFrozen(true);
this.mVerticalGridView.setFocusSearchDisabled(true);
}
}
void onTransitionEnd() {
if (this.mVerticalGridView != null) {
this.mVerticalGridView.setLayoutFrozen(false);
this.mVerticalGridView.setAnimateChildLayout(true);
this.mVerticalGridView.setPruneChild(true);
this.mVerticalGridView.setFocusSearchDisabled(false);
this.mVerticalGridView.setScrollEnabled(true);
}
}
void setItemAlignment() {
if (this.mVerticalGridView != null) {
this.mVerticalGridView.setItemAlignmentOffset(0);
this.mVerticalGridView.setItemAlignmentOffsetPercent(-1.0f);
}
}
void setWindowAlignmentFromTop(int i) {
if (this.mVerticalGridView != null) {
this.mVerticalGridView.setWindowAlignmentOffset(i);
this.mVerticalGridView.setWindowAlignmentOffsetPercent(-1.0f);
this.mVerticalGridView.setWindowAlignment(0);
}
}
}
package android.support.v17.leanback.app;
import android.os.Bundle;
import android.support.v17.leanback.transition.TransitionHelper;
import android.support.v17.leanback.transition.TransitionListener;
import android.view.View;
import android.view.ViewTreeObserver.OnPreDrawListener;
class BaseSupportFragment extends BrandedSupportFragment {
static TransitionHelper sTransitionHelper = TransitionHelper.getInstance();
private Object mEntranceTransition;
private boolean mEntranceTransitionEnabled = false;
private boolean mEntranceTransitionPreparePending = false;
private boolean mStartEntranceTransitionPending = false;
class C00392 extends TransitionListener {
C00392() {
}
public void onTransitionEnd(Object obj) {
BaseSupportFragment.this.mEntranceTransition = null;
BaseSupportFragment.this.onEntranceTransitionEnd();
}
}
BaseSupportFragment() {
}
public void onViewCreated(View view, Bundle bundle) {
super.onViewCreated(view, bundle);
if (this.mEntranceTransitionPreparePending) {
this.mEntranceTransitionPreparePending = false;
onEntranceTransitionPrepare();
}
if (this.mStartEntranceTransitionPending) {
this.mStartEntranceTransitionPending = false;
startEntranceTransition();
}
}
public void prepareEntranceTransition() {
if (TransitionHelper.systemSupportsEntranceTransitions()) {
this.mEntranceTransitionEnabled = true;
if (getView() == null) {
this.mEntranceTransitionPreparePending = true;
} else {
onEntranceTransitionPrepare();
}
}
}
boolean isEntranceTransitionEnabled() {
return this.mEntranceTransitionEnabled;
}
protected Object createEntranceTransition() {
return null;
}
protected void runEntranceTransition(Object obj) {
}
protected void onEntranceTransitionPrepare() {
}
protected void onEntranceTransitionStart() {
}
protected void onEntranceTransitionEnd() {
}
public void startEntranceTransition() {
if (!this.mEntranceTransitionEnabled || this.mEntranceTransition != null) {
return;
}
if (getView() == null) {
this.mStartEntranceTransitionPending = true;
return;
}
if (this.mEntranceTransitionPreparePending) {
this.mEntranceTransitionPreparePending = false;
onEntranceTransitionPrepare();
}
final View view = getView();
view.getViewTreeObserver().addOnPreDrawListener(new OnPreDrawListener() {
public boolean onPreDraw() {
view.getViewTreeObserver().removeOnPreDrawListener(this);
BaseSupportFragment.this.internalCreateEntranceTransition();
BaseSupportFragment.this.mEntranceTransitionEnabled = false;
if (BaseSupportFragment.this.mEntranceTransition != null) {
BaseSupportFragment.this.onEntranceTransitionStart();
BaseSupportFragment.this.runEntranceTransition(BaseSupportFragment.this.mEntranceTransition);
}
return false;
}
});
view.invalidate();
}
void internalCreateEntranceTransition() {
this.mEntranceTransition = createEntranceTransition();
if (this.mEntranceTransition != null) {
sTransitionHelper.setTransitionListener(this.mEntranceTransition, new C00392());
}
}
}
package android.support.v17.leanback.app;
import android.app.Fragment;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v17.leanback.widget.SearchOrbView.Colors;
import android.support.v17.leanback.widget.TitleHelper;
import android.support.v17.leanback.widget.TitleView;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
class BrandedFragment extends Fragment {
private static final String TITLE_SHOW = "titleShow";
private Drawable mBadgeDrawable;
private OnClickListener mExternalOnSearchClickedListener;
private boolean mSearchAffordanceColorSet;
private Colors mSearchAffordanceColors;
private boolean mShowingTitle = true;
private String mTitle;
private TitleHelper mTitleHelper;
private TitleView mTitleView;
BrandedFragment() {
}
void setTitleView(TitleView titleView) {
this.mTitleView = titleView;
if (this.mTitleView == null) {
this.mTitleHelper = null;
return;
}
this.mTitleView.setTitle(this.mTitle);
this.mTitleView.setBadgeDrawable(this.mBadgeDrawable);
if (this.mSearchAffordanceColorSet) {
this.mTitleView.setSearchAffordanceColors(this.mSearchAffordanceColors);
}
if (this.mExternalOnSearchClickedListener != null) {
this.mTitleView.setOnSearchClickedListener(this.mExternalOnSearchClickedListener);
}
if (getView() instanceof ViewGroup) {
this.mTitleHelper = new TitleHelper((ViewGroup) getView(), this.mTitleView);
}
}
TitleView getTitleView() {
return this.mTitleView;
}
TitleHelper getTitleHelper() {
return this.mTitleHelper;
}
public void onSaveInstanceState(Bundle bundle) {
super.onSaveInstanceState(bundle);
bundle.putBoolean(TITLE_SHOW, this.mShowingTitle);
}
public void onViewCreated(View view, Bundle bundle) {
super.onViewCreated(view, bundle);
if (bundle != null) {
this.mShowingTitle = bundle.getBoolean(TITLE_SHOW);
}
if (this.mTitleView != null && (view instanceof ViewGroup)) {
this.mTitleHelper = new TitleHelper((ViewGroup) view, this.mTitleView);
}
}
public void onDestroyView() {
super.onDestroyView();
this.mTitleHelper = null;
}
void showTitle(boolean z) {
if (z != this.mShowingTitle) {
this.mShowingTitle = z;
if (this.mTitleHelper != null) {
this.mTitleHelper.showTitle(z);
}
}
}
public void setBadgeDrawable(Drawable drawable) {
if (this.mBadgeDrawable != drawable) {
this.mBadgeDrawable = drawable;
if (this.mTitleView != null) {
this.mTitleView.setBadgeDrawable(drawable);
}
}
}
public Drawable getBadgeDrawable() {
return this.mBadgeDrawable;
}
public void setTitle(String str) {
this.mTitle = str;
if (this.mTitleView != null) {
this.mTitleView.setTitle(str);
}
}
public String getTitle() {
return this.mTitle;
}
public void setOnSearchClickedListener(OnClickListener onClickListener) {
this.mExternalOnSearchClickedListener = onClickListener;
if (this.mTitleView != null) {
this.mTitleView.setOnSearchClickedListener(onClickListener);
}
}
public void setSearchAffordanceColors(Colors colors) {
this.mSearchAffordanceColors = colors;
this.mSearchAffordanceColorSet = true;
if (this.mTitleView != null) {
this.mTitleView.setSearchAffordanceColors(this.mSearchAffordanceColors);
}
}
public Colors getSearchAffordanceColors() {
if (this.mSearchAffordanceColorSet) {
return this.mSearchAffordanceColors;
}
if (this.mTitleView != null) {
return this.mTitleView.getSearchAffordanceColors();
}
throw new IllegalStateException("Fragment views not yet created");
}
public void setSearchAffordanceColor(int i) {
setSearchAffordanceColors(new Colors(i));
}
public int getSearchAffordanceColor() {
return getSearchAffordanceColors().color;
}
public void onStart() {
super.onStart();
if (this.mTitleView != null) {
this.mTitleView.setVisibility(this.mShowingTitle ? 0 : 4);
}
}
public void onPause() {
if (this.mTitleView != null) {
this.mTitleView.enableAnimation(false);
}
super.onPause();
}
public void onResume() {
super.onResume();
if (this.mTitleView != null) {
this.mTitleView.enableAnimation(true);
}
}
}
package android.support.v17.leanback.app;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v17.leanback.widget.SearchOrbView.Colors;
import android.support.v17.leanback.widget.TitleHelper;
import android.support.v17.leanback.widget.TitleView;
import android.support.v4.app.Fragment;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
class BrandedSupportFragment extends Fragment {
private static final String TITLE_SHOW = "titleShow";
private Drawable mBadgeDrawable;
private OnClickListener mExternalOnSearchClickedListener;
private boolean mSearchAffordanceColorSet;
private Colors mSearchAffordanceColors;
private boolean mShowingTitle = true;
private String mTitle;
private TitleHelper mTitleHelper;
private TitleView mTitleView;
BrandedSupportFragment() {
}
void setTitleView(TitleView titleView) {
this.mTitleView = titleView;
if (this.mTitleView == null) {
this.mTitleHelper = null;
return;
}
this.mTitleView.setTitle(this.mTitle);
this.mTitleView.setBadgeDrawable(this.mBadgeDrawable);
if (this.mSearchAffordanceColorSet) {
this.mTitleView.setSearchAffordanceColors(this.mSearchAffordanceColors);
}
if (this.mExternalOnSearchClickedListener != null) {
this.mTitleView.setOnSearchClickedListener(this.mExternalOnSearchClickedListener);
}
if (getView() instanceof ViewGroup) {
this.mTitleHelper = new TitleHelper((ViewGroup) getView(), this.mTitleView);
}
}
TitleView getTitleView() {
return this.mTitleView;
}
TitleHelper getTitleHelper() {
return this.mTitleHelper;
}
public void onSaveInstanceState(Bundle bundle) {
super.onSaveInstanceState(bundle);
bundle.putBoolean(TITLE_SHOW, this.mShowingTitle);
}
public void onViewCreated(View view, Bundle bundle) {
super.onViewCreated(view, bundle);
if (bundle != null) {
this.mShowingTitle = bundle.getBoolean(TITLE_SHOW);
}
if (this.mTitleView != null && (view instanceof ViewGroup)) {
this.mTitleHelper = new TitleHelper((ViewGroup) view, this.mTitleView);
}
}
public void onDestroyView() {
super.onDestroyView();
this.mTitleHelper = null;
}
void showTitle(boolean z) {
if (z != this.mShowingTitle) {
this.mShowingTitle = z;
if (this.mTitleHelper != null) {
this.mTitleHelper.showTitle(z);
}
}
}
public void setBadgeDrawable(Drawable drawable) {
if (this.mBadgeDrawable != drawable) {
this.mBadgeDrawable = drawable;
if (this.mTitleView != null) {
this.mTitleView.setBadgeDrawable(drawable);
}
}
}
public Drawable getBadgeDrawable() {
return this.mBadgeDrawable;
}
public void setTitle(String str) {
this.mTitle = str;
if (this.mTitleView != null) {
this.mTitleView.setTitle(str);
}
}
public String getTitle() {
return this.mTitle;
}
public void setOnSearchClickedListener(OnClickListener onClickListener) {
this.mExternalOnSearchClickedListener = onClickListener;
if (this.mTitleView != null) {
this.mTitleView.setOnSearchClickedListener(onClickListener);
}
}
public void setSearchAffordanceColors(Colors colors) {
this.mSearchAffordanceColors = colors;
this.mSearchAffordanceColorSet = true;
if (this.mTitleView != null) {
this.mTitleView.setSearchAffordanceColors(this.mSearchAffordanceColors);
}
}
public Colors getSearchAffordanceColors() {
if (this.mSearchAffordanceColorSet) {
return this.mSearchAffordanceColors;
}
if (this.mTitleView != null) {
return this.mTitleView.getSearchAffordanceColors();
}
throw new IllegalStateException("Fragment views not yet created");
}
public void setSearchAffordanceColor(int i) {
setSearchAffordanceColors(new Colors(i));
}
public int getSearchAffordanceColor() {
return getSearchAffordanceColors().color;
}
public void onStart() {
super.onStart();
if (this.mTitleView != null) {
this.mTitleView.setVisibility(this.mShowingTitle ? 0 : 4);
}
}
public void onPause() {
if (this.mTitleView != null) {
this.mTitleView.enableAnimation(false);
}
super.onPause();
}
public void onResume() {
super.onResume();
if (this.mTitleView != null) {
this.mTitleView.enableAnimation(true);
}
}
}
package android.support.v17.leanback.app;
import android.app.FragmentManager.OnBackStackChangedListener;
import android.content.res.TypedArray;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v17.leanback.C0029R;
import android.support.v17.leanback.transition.TransitionListener;
import android.support.v17.leanback.widget.BrowseFrameLayout;
import android.support.v17.leanback.widget.BrowseFrameLayout.OnChildFocusListener;
import android.support.v17.leanback.widget.BrowseFrameLayout.OnFocusSearchListener;
import android.support.v17.leanback.widget.ObjectAdapter;
import android.support.v17.leanback.widget.OnItemViewClickedListener;
import android.support.v17.leanback.widget.OnItemViewSelectedListener;
import android.support.v17.leanback.widget.Presenter;
import android.support.v17.leanback.widget.PresenterSelector;
import android.support.v17.leanback.widget.Row;
import android.support.v17.leanback.widget.RowHeaderPresenter.ViewHolder;
import android.support.v17.leanback.widget.RowPresenter;
import android.support.v17.leanback.widget.SearchOrbView.Colors;
import android.support.v17.leanback.widget.TitleView;
import android.support.v17.leanback.widget.VerticalGridView;
import android.support.v4.view.ViewCompat;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.ViewGroup.MarginLayoutParams;
public class BrowseFragment extends BaseFragment {
private static final String ARG_BADGE_URI = (BrowseFragment.class.getCanonicalName() + ".badge");
private static final String ARG_HEADERS_STATE = (BrowseFragment.class.getCanonicalName() + ".headersState");
private static final String ARG_TITLE = (BrowseFragment.class.getCanonicalName() + ".title");
private static boolean DEBUG = false;
public static final int HEADERS_DISABLED = 3;
public static final int HEADERS_ENABLED = 1;
public static final int HEADERS_HIDDEN = 2;
static final String HEADER_SHOW = "headerShow";
static final String HEADER_STACK_INDEX = "headerStackIndex";
private static final String LB_HEADERS_BACKSTACK = "lbHeadersBackStack_";
private static final String TAG = "BrowseFragment";
private ObjectAdapter mAdapter;
private BackStackListener mBackStackChangedListener;
private int mBrandColor = 0;
private boolean mBrandColorSet;
private BrowseFrameLayout mBrowseFrame;
private BrowseTransitionListener mBrowseTransitionListener;
private boolean mCanShowHeaders = true;
private int mContainerListAlignTop;
private int mContainerListMarginStart;
private OnItemViewSelectedListener mExternalOnItemViewSelectedListener;
private OnHeaderClickedListener mHeaderClickedListener = new C00478();
private PresenterSelector mHeaderPresenterSelector;
private OnHeaderViewSelectedListener mHeaderViewSelectedListener = new OnHeaderViewSelectedListener() {
public void onHeaderSelected(ViewHolder viewHolder, Row row) {
int selectedPosition = BrowseFragment.this.mHeadersFragment.getVerticalGridView().getSelectedPosition();
if (BrowseFragment.DEBUG) {
Log.v(BrowseFragment.TAG, "header selected position " + selectedPosition);
}
BrowseFragment.this.onRowSelected(selectedPosition);
}
};
private boolean mHeadersBackStackEnabled = true;
private HeadersFragment mHeadersFragment;
private int mHeadersState = 1;
private Object mHeadersTransition;
private final OnChildFocusListener mOnChildFocusListener = new C00423();
private final OnFocusSearchListener mOnFocusSearchListener = new C00412();
private OnItemViewClickedListener mOnItemViewClickedListener;
private boolean mRowScaleEnabled = true;
private OnItemViewSelectedListener mRowViewSelectedListener = new C00489();
private RowsFragment mRowsFragment;
private Object mSceneAfterEntranceTransition;
private Object mSceneWithHeaders;
private Object mSceneWithoutHeaders;
private int mSelectedPosition = -1;
private final SetSelectionRunnable mSetSelectionRunnable = new SetSelectionRunnable();
private boolean mShowingHeaders = true;
private String mWithHeadersBackStackName;
class C00412 implements OnFocusSearchListener {
C00412() {
}
public View onFocusSearch(View view, int i) {
int i2 = 17;
if (BrowseFragment.this.mCanShowHeaders && BrowseFragment.this.isInHeadersTransition()) {
return view;
}
if (BrowseFragment.DEBUG) {
Log.v(BrowseFragment.TAG, "onFocusSearch focused " + view + " + direction " + i);
}
if (BrowseFragment.this.getTitleView() != null && view != BrowseFragment.this.getTitleView() && i == 33) {
return BrowseFragment.this.getTitleView();
}
if (BrowseFragment.this.getTitleView() != null && BrowseFragment.this.getTitleView().hasFocus() && i == 130) {
return (BrowseFragment.this.mCanShowHeaders && BrowseFragment.this.mShowingHeaders) ? BrowseFragment.this.mHeadersFragment.getVerticalGridView() : BrowseFragment.this.mRowsFragment.getVerticalGridView();
} else {
Object obj = ViewCompat.getLayoutDirection(view) == 1 ? 1 : null;
int i3;
if (obj != null) {
i3 = 66;
} else {
i3 = 17;
}
if (obj == null) {
i2 = 66;
}
if (BrowseFragment.this.mCanShowHeaders && i == r2) {
if (BrowseFragment.this.isVerticalScrolling() || BrowseFragment.this.mShowingHeaders) {
return view;
}
return BrowseFragment.this.mHeadersFragment.getVerticalGridView();
} else if (i != i2) {
return null;
} else {
if (BrowseFragment.this.isVerticalScrolling()) {
return view;
}
return BrowseFragment.this.mRowsFragment.getVerticalGridView();
}
}
}
}
class C00423 implements OnChildFocusListener {
C00423() {
}
public boolean onRequestFocusInDescendants(int i, Rect rect) {
if (BrowseFragment.this.getChildFragmentManager().isDestroyed()) {
return true;
}
if (BrowseFragment.this.mCanShowHeaders && BrowseFragment.this.mShowingHeaders && BrowseFragment.this.mHeadersFragment != null && BrowseFragment.this.mHeadersFragment.getView() != null && BrowseFragment.this.mHeadersFragment.getView().requestFocus(i, rect)) {
return true;
}
if (BrowseFragment.this.mRowsFragment != null && BrowseFragment.this.mRowsFragment.getView() != null && BrowseFragment.this.mRowsFragment.getView().requestFocus(i, rect)) {
return true;
}
if (BrowseFragment.this.getTitleView() == null || !BrowseFragment.this.getTitleView().requestFocus(i, rect)) {
return false;
}
return true;
}
public void onRequestChildFocus(View view, View view2) {
if (!BrowseFragment.this.getChildFragmentManager().isDestroyed() && BrowseFragment.this.mCanShowHeaders && !BrowseFragment.this.isInHeadersTransition()) {
int id = view.getId();
if (id == C0029R.id.browse_container_dock && BrowseFragment.this.mShowingHeaders) {
BrowseFragment.this.startHeadersTransitionInternal(false);
} else if (id == C0029R.id.browse_headers_dock && !BrowseFragment.this.mShowingHeaders) {
BrowseFragment.this.startHeadersTransitionInternal(true);
}
}
}
}
class C00434 implements Runnable {
C00434() {
}
public void run() {
BrowseFragment.this.showHeaders(true);
}
}
class C00445 implements Runnable {
C00445() {
}
public void run() {
BrowseFragment.this.showHeaders(false);
}
}
class C00456 implements Runnable {
C00456() {
}
public void run() {
BrowseFragment.this.setEntranceTransitionEndState();
}
}
class C00467 extends TransitionListener {
C00467() {
}
public void onTransitionStart(Object obj) {
}
public void onTransitionEnd(Object obj) {
BrowseFragment.this.mHeadersTransition = null;
BrowseFragment.this.mRowsFragment.onTransitionEnd();
BrowseFragment.this.mHeadersFragment.onTransitionEnd();
VerticalGridView verticalGridView;
if (BrowseFragment.this.mShowingHeaders) {
verticalGridView = BrowseFragment.this.mHeadersFragment.getVerticalGridView();
if (!(verticalGridView == null || verticalGridView.hasFocus())) {
verticalGridView.requestFocus();
}
} else {
verticalGridView = BrowseFragment.this.mRowsFragment.getVerticalGridView();
if (!(verticalGridView == null || verticalGridView.hasFocus())) {
verticalGridView.requestFocus();
}
}
if (BrowseFragment.this.mBrowseTransitionListener != null) {
BrowseFragment.this.mBrowseTransitionListener.onHeadersTransitionStop(BrowseFragment.this.mShowingHeaders);
}
}
}
class C00478 implements OnHeaderClickedListener {
C00478() {
}
public void onHeaderClicked() {
if (BrowseFragment.this.mCanShowHeaders && BrowseFragment.this.mShowingHeaders && !BrowseFragment.this.isInHeadersTransition()) {
BrowseFragment.this.startHeadersTransitionInternal(false);
BrowseFragment.this.mRowsFragment.getVerticalGridView().requestFocus();
}
}
}
class C00489 implements OnItemViewSelectedListener {
C00489() {
}
public void onItemSelected(Presenter.ViewHolder viewHolder, Object obj, RowPresenter.ViewHolder viewHolder2, Row row) {
int selectedPosition = BrowseFragment.this.mRowsFragment.getVerticalGridView().getSelectedPosition();
if (BrowseFragment.DEBUG) {
Log.v(BrowseFragment.TAG, "row selected position " + selectedPosition);
}
BrowseFragment.this.onRowSelected(selectedPosition);
if (BrowseFragment.this.mExternalOnItemViewSelectedListener != null) {
BrowseFragment.this.mExternalOnItemViewSelectedListener.onItemSelected(viewHolder, obj, viewHolder2, row);
}
}
}
final class BackStackListener implements OnBackStackChangedListener {
int mIndexOfHeadersBackStack = -1;
int mLastEntryCount;
BackStackListener() {
this.mLastEntryCount = BrowseFragment.this.getFragmentManager().getBackStackEntryCount();
}
final void load(Bundle bundle) {
if (bundle != null) {
this.mIndexOfHeadersBackStack = bundle.getInt(BrowseFragment.HEADER_STACK_INDEX, -1);
BrowseFragment.this.mShowingHeaders = this.mIndexOfHeadersBackStack == -1;
} else if (!BrowseFragment.this.mShowingHeaders) {
BrowseFragment.this.getFragmentManager().beginTransaction().addToBackStack(BrowseFragment.this.mWithHeadersBackStackName).commit();
}
}
final void save(Bundle bundle) {
bundle.putInt(BrowseFragment.HEADER_STACK_INDEX, this.mIndexOfHeadersBackStack);
}
public final void onBackStackChanged() {
if (BrowseFragment.this.getFragmentManager() == null) {
Log.w(BrowseFragment.TAG, "getFragmentManager() is null, stack:", new Exception());
return;
}
int backStackEntryCount = BrowseFragment.this.getFragmentManager().getBackStackEntryCount();
if (backStackEntryCount > this.mLastEntryCount) {
if (BrowseFragment.this.mWithHeadersBackStackName.equals(BrowseFragment.this.getFragmentManager().getBackStackEntryAt(backStackEntryCount - 1).getName())) {
this.mIndexOfHeadersBackStack = backStackEntryCount - 1;
}
} else if (backStackEntryCount < this.mLastEntryCount && this.mIndexOfHeadersBackStack >= backStackEntryCount) {
this.mIndexOfHeadersBackStack = -1;
if (!BrowseFragment.this.mShowingHeaders) {
BrowseFragment.this.startHeadersTransitionInternal(true);
}
}
this.mLastEntryCount = backStackEntryCount;
}
}
public class BrowseTransitionListener {
public void onHeadersTransitionStart(boolean z) {
}
public void onHeadersTransitionStop(boolean z) {
}
}
class SetSelectionRunnable implements Runnable {
static final int TYPE_INTERNAL_SYNC = 0;
static final int TYPE_INVALID = -1;
static final int TYPE_USER_REQUEST = 1;
private int mPosition;
private boolean mSmooth;
private int mType;
SetSelectionRunnable() {
reset();
}
void post(int i, int i2, boolean z) {
if (i2 >= this.mType) {
this.mPosition = i;
this.mType = i2;
this.mSmooth = z;
BrowseFragment.this.mBrowseFrame.removeCallbacks(this);
BrowseFragment.this.mBrowseFrame.post(this);
}
}
public void run() {
BrowseFragment.this.setSelection(this.mPosition, this.mSmooth);
reset();
}
private void reset() {
this.mPosition = -1;
this.mType = -1;
this.mSmooth = false;
}
}
public /* bridge */ /* synthetic */ Drawable getBadgeDrawable() {
return super.getBadgeDrawable();
}
public /* bridge */ /* synthetic */ int getSearchAffordanceColor() {
return super.getSearchAffordanceColor();
}
public /* bridge */ /* synthetic */ Colors getSearchAffordanceColors() {
return super.getSearchAffordanceColors();
}
public /* bridge */ /* synthetic */ String getTitle() {
return super.getTitle();
}
public /* bridge */ /* synthetic */ void onDestroyView() {
super.onDestroyView();
}
public /* bridge */ /* synthetic */ void onPause() {
super.onPause();
}
public /* bridge */ /* synthetic */ void onResume() {
super.onResume();
}
public /* bridge */ /* synthetic */ void onViewCreated(View view, Bundle bundle) {
super.onViewCreated(view, bundle);
}
public /* bridge */ /* synthetic */ void prepareEntranceTransition() {
super.prepareEntranceTransition();
}
public /* bridge */ /* synthetic */ void setBadgeDrawable(Drawable drawable) {
super.setBadgeDrawable(drawable);
}
public /* bridge */ /* synthetic */ void setOnSearchClickedListener(OnClickListener onClickListener) {
super.setOnSearchClickedListener(onClickListener);
}
public /* bridge */ /* synthetic */ void setSearchAffordanceColor(int i) {
super.setSearchAffordanceColor(i);
}
public /* bridge */ /* synthetic */ void setSearchAffordanceColors(Colors colors) {
super.setSearchAffordanceColors(colors);
}
public /* bridge */ /* synthetic */ void setTitle(String str) {
super.setTitle(str);
}
public /* bridge */ /* synthetic */ void startEntranceTransition() {
super.startEntranceTransition();
}
public static Bundle createArgs(Bundle bundle, String str, int i) {
if (bundle == null) {
bundle = new Bundle();
}
bundle.putString(ARG_TITLE, str);
bundle.putInt(ARG_HEADERS_STATE, i);
return bundle;
}
public void setBrandColor(int i) {
this.mBrandColor = i;
this.mBrandColorSet = true;
if (this.mHeadersFragment != null) {
this.mHeadersFragment.setBackgroundColor(this.mBrandColor);
}
}
public int getBrandColor() {
return this.mBrandColor;
}
public void setAdapter(ObjectAdapter objectAdapter) {
this.mAdapter = objectAdapter;
if (this.mRowsFragment != null) {
this.mRowsFragment.setAdapter(objectAdapter);
this.mHeadersFragment.setAdapter(objectAdapter);
}
}
public ObjectAdapter getAdapter() {
return this.mAdapter;
}
public void setOnItemViewSelectedListener(OnItemViewSelectedListener onItemViewSelectedListener) {
this.mExternalOnItemViewSelectedListener = onItemViewSelectedListener;
}
public OnItemViewSelectedListener getOnItemViewSelectedListener() {
return this.mExternalOnItemViewSelectedListener;
}
public void setOnItemViewClickedListener(OnItemViewClickedListener onItemViewClickedListener) {
this.mOnItemViewClickedListener = onItemViewClickedListener;
if (this.mRowsFragment != null) {
this.mRowsFragment.setOnItemViewClickedListener(onItemViewClickedListener);
}
}
public OnItemViewClickedListener getOnItemViewClickedListener() {
return this.mOnItemViewClickedListener;
}
public void startHeadersTransition(boolean z) {
if (!this.mCanShowHeaders) {
throw new IllegalStateException("Cannot start headers transition");
} else if (!isInHeadersTransition() && this.mShowingHeaders != z) {
startHeadersTransitionInternal(z);
}
}
public boolean isInHeadersTransition() {
return this.mHeadersTransition != null;
}
public boolean isShowingHeaders() {
return this.mShowingHeaders;
}
public void setBrowseTransitionListener(BrowseTransitionListener browseTransitionListener) {
this.mBrowseTransitionListener = browseTransitionListener;
}
public void enableRowScaling(boolean z) {
this.mRowScaleEnabled = z;
if (this.mRowsFragment != null) {
this.mRowsFragment.enableRowScaling(this.mRowScaleEnabled);
}
}
private void startHeadersTransitionInternal(final boolean z) {
if (!getFragmentManager().isDestroyed()) {
this.mShowingHeaders = z;
this.mRowsFragment.onExpandTransitionStart(!z, new Runnable() {
public void run() {
BrowseFragment.this.mHeadersFragment.onTransitionPrepare();
BrowseFragment.this.mHeadersFragment.onTransitionStart();
BrowseFragment.this.createHeadersTransition();
if (BrowseFragment.this.mBrowseTransitionListener != null) {
BrowseFragment.this.mBrowseTransitionListener.onHeadersTransitionStart(z);
}
BaseFragment.sTransitionHelper.runTransition(z ? BrowseFragment.this.mSceneWithHeaders : BrowseFragment.this.mSceneWithoutHeaders, BrowseFragment.this.mHeadersTransition);
if (!BrowseFragment.this.mHeadersBackStackEnabled) {
return;
}
if (z) {
int i = BrowseFragment.this.mBackStackChangedListener.mIndexOfHeadersBackStack;
if (i >= 0) {
BrowseFragment.this.getFragmentManager().popBackStackImmediate(BrowseFragment.this.getFragmentManager().getBackStackEntryAt(i).getId(), 1);
return;
}
return;
}
BrowseFragment.this.getFragmentManager().beginTransaction().addToBackStack(BrowseFragment.this.mWithHeadersBackStackName).commit();
}
});
}
}
private boolean isVerticalScrolling() {
return (this.mHeadersFragment.getVerticalGridView().getScrollState() == 0 && this.mRowsFragment.getVerticalGridView().getScrollState() == 0) ? false : true;
}
public void onSaveInstanceState(Bundle bundle) {
super.onSaveInstanceState(bundle);
if (this.mBackStackChangedListener != null) {
this.mBackStackChangedListener.save(bundle);
} else {
bundle.putBoolean(HEADER_SHOW, this.mShowingHeaders);
}
}
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
TypedArray obtainStyledAttributes = getActivity().obtainStyledAttributes(C0029R.styleable.LeanbackTheme);
this.mContainerListMarginStart = (int) obtainStyledAttributes.getDimension(C0029R.styleable.LeanbackTheme_browseRowsMarginStart, (float) getActivity().getResources().getDimensionPixelSize(C0029R.dimen.lb_browse_rows_margin_start));
this.mContainerListAlignTop = (int) obtainStyledAttributes.getDimension(C0029R.styleable.LeanbackTheme_browseRowsMarginTop, (float) getActivity().getResources().getDimensionPixelSize(C0029R.dimen.lb_browse_rows_margin_top));
obtainStyledAttributes.recycle();
readArguments(getArguments());
if (!this.mCanShowHeaders) {
return;
}
if (this.mHeadersBackStackEnabled) {
this.mWithHeadersBackStackName = new StringBuilder(LB_HEADERS_BACKSTACK).append(this).toString();
this.mBackStackChangedListener = new BackStackListener();
getFragmentManager().addOnBackStackChangedListener(this.mBackStackChangedListener);
this.mBackStackChangedListener.load(bundle);
} else if (bundle != null) {
this.mShowingHeaders = bundle.getBoolean(HEADER_SHOW);
}
}
public void onDestroy() {
if (this.mBackStackChangedListener != null) {
getFragmentManager().removeOnBackStackChangedListener(this.mBackStackChangedListener);
}
super.onDestroy();
}
public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
boolean z;
if (getChildFragmentManager().findFragmentById(C0029R.id.browse_container_dock) == null) {
this.mRowsFragment = new RowsFragment();
this.mHeadersFragment = new HeadersFragment();
getChildFragmentManager().beginTransaction().replace(C0029R.id.browse_headers_dock, this.mHeadersFragment).replace(C0029R.id.browse_container_dock, this.mRowsFragment).commit();
} else {
this.mHeadersFragment = (HeadersFragment) getChildFragmentManager().findFragmentById(C0029R.id.browse_headers_dock);
this.mRowsFragment = (RowsFragment) getChildFragmentManager().findFragmentById(C0029R.id.browse_container_dock);
}
HeadersFragment headersFragment = this.mHeadersFragment;
if (this.mCanShowHeaders) {
z = false;
} else {
z = true;
}
headersFragment.setHeadersGone(z);
this.mRowsFragment.setAdapter(this.mAdapter);
if (this.mHeaderPresenterSelector != null) {
this.mHeadersFragment.setPresenterSelector(this.mHeaderPresenterSelector);
}
this.mHeadersFragment.setAdapter(this.mAdapter);
this.mRowsFragment.enableRowScaling(this.mRowScaleEnabled);
this.mRowsFragment.setOnItemViewSelectedListener(this.mRowViewSelectedListener);
this.mHeadersFragment.setOnHeaderViewSelectedListener(this.mHeaderViewSelectedListener);
this.mHeadersFragment.setOnHeaderClickedListener(this.mHeaderClickedListener);
this.mRowsFragment.setOnItemViewClickedListener(this.mOnItemViewClickedListener);
View inflate = layoutInflater.inflate(C0029R.layout.lb_browse_fragment, viewGroup, false);
setTitleView((TitleView) inflate.findViewById(C0029R.id.browse_title_group));
this.mBrowseFrame = (BrowseFrameLayout) inflate.findViewById(C0029R.id.browse_frame);
this.mBrowseFrame.setOnChildFocusListener(this.mOnChildFocusListener);
this.mBrowseFrame.setOnFocusSearchListener(this.mOnFocusSearchListener);
if (this.mBrandColorSet) {
this.mHeadersFragment.setBackgroundColor(this.mBrandColor);
}
this.mSceneWithHeaders = sTransitionHelper.createScene(this.mBrowseFrame, new C00434());
this.mSceneWithoutHeaders = sTransitionHelper.createScene(this.mBrowseFrame, new C00445());
this.mSceneAfterEntranceTransition = sTransitionHelper.createScene(this.mBrowseFrame, new C00456());
return inflate;
}
private void createHeadersTransition() {
this.mHeadersTransition = sTransitionHelper.loadTransition(getActivity(), this.mShowingHeaders ? C0029R.transition.lb_browse_headers_in : C0029R.transition.lb_browse_headers_out);
sTransitionHelper.setTransitionListener(this.mHeadersTransition, new C00467());
}
public void setHeaderPresenterSelector(PresenterSelector presenterSelector) {
this.mHeaderPresenterSelector = presenterSelector;
if (this.mHeadersFragment != null) {
this.mHeadersFragment.setPresenterSelector(this.mHeaderPresenterSelector);
}
}
private void setRowsAlignedLeft(boolean z) {
View view = this.mRowsFragment.getView();
MarginLayoutParams marginLayoutParams = (MarginLayoutParams) view.getLayoutParams();
marginLayoutParams.setMarginStart(z ? 0 : this.mContainerListMarginStart);
view.setLayoutParams(marginLayoutParams);
}
private void setHeadersOnScreen(boolean z) {
View view = this.mHeadersFragment.getView();
MarginLayoutParams marginLayoutParams = (MarginLayoutParams) view.getLayoutParams();
marginLayoutParams.setMarginStart(z ? 0 : -this.mContainerListMarginStart);
view.setLayoutParams(marginLayoutParams);
}
private void showHeaders(boolean z) {
boolean z2;
boolean z3 = true;
if (DEBUG) {
Log.v(TAG, "showHeaders " + z);
}
this.mHeadersFragment.setHeadersEnabled(z);
setHeadersOnScreen(z);
if (z) {
z2 = false;
} else {
z2 = true;
}
setRowsAlignedLeft(z2);
RowsFragment rowsFragment = this.mRowsFragment;
if (z) {
z3 = false;
}
rowsFragment.setExpand(z3);
}
private void onRowSelected(int i) {
if (i != this.mSelectedPosition) {
this.mSetSelectionRunnable.post(i, 0, true);
if (getAdapter() == null || getAdapter().size() == 0 || i == 0) {
showTitle(true);
} else {
showTitle(false);
}
}
}
private void setSelection(int i, boolean z) {
if (i != -1) {
this.mRowsFragment.setSelectedPosition(i, z);
this.mHeadersFragment.setSelectedPosition(i, z);
}
this.mSelectedPosition = i;
}
public void setSelectedPosition(int i) {
setSelectedPosition(i, true);
}
public void setSelectedPosition(int i, boolean z) {
this.mSetSelectionRunnable.post(i, 1, z);
}
public void onStart() {
super.onStart();
this.mHeadersFragment.setWindowAlignmentFromTop(this.mContainerListAlignTop);
this.mHeadersFragment.setItemAlignment();
this.mRowsFragment.setWindowAlignmentFromTop(this.mContainerListAlignTop);
this.mRowsFragment.setItemAlignment();
this.mRowsFragment.setScalePivots(0.0f, (float) this.mContainerListAlignTop);
if (this.mCanShowHeaders && this.mShowingHeaders && this.mHeadersFragment.getView() != null) {
this.mHeadersFragment.getView().requestFocus();
} else if (!((this.mCanShowHeaders && this.mShowingHeaders) || this.mRowsFragment.getView() == null)) {
this.mRowsFragment.getView().requestFocus();
}
if (this.mCanShowHeaders) {
showHeaders(this.mShowingHeaders);
}
if (isEntranceTransitionEnabled()) {
setEntranceTransitionStartState();
}
}
public final void setHeadersTransitionOnBackEnabled(boolean z) {
this.mHeadersBackStackEnabled = z;
}
public final boolean isHeadersTransitionOnBackEnabled() {
return this.mHeadersBackStackEnabled;
}
private void readArguments(Bundle bundle) {
if (bundle != null) {
if (bundle.containsKey(ARG_TITLE)) {
setTitle(bundle.getString(ARG_TITLE));
}
if (bundle.containsKey(ARG_HEADERS_STATE)) {
setHeadersState(bundle.getInt(ARG_HEADERS_STATE));
}
}
}
public void setHeadersState(int i) {
boolean z = true;
if (i <= 0 || i > 3) {
throw new IllegalArgumentException("Invalid headers state: " + i);
}
if (DEBUG) {
Log.v(TAG, "setHeadersState " + i);
}
if (i != this.mHeadersState) {
this.mHeadersState = i;
switch (i) {
case 1:
this.mCanShowHeaders = true;
this.mShowingHeaders = true;
break;
case 2:
this.mCanShowHeaders = true;
this.mShowingHeaders = false;
break;
case 3:
this.mCanShowHeaders = false;
this.mShowingHeaders = false;
break;
default:
Log.w(TAG, "Unknown headers state: " + i);
break;
}
if (this.mHeadersFragment != null) {
HeadersFragment headersFragment = this.mHeadersFragment;
if (this.mCanShowHeaders) {
z = false;
}
headersFragment.setHeadersGone(z);
}
}
}
public int getHeadersState() {
return this.mHeadersState;
}
protected Object createEntranceTransition() {
return sTransitionHelper.loadTransition(getActivity(), C0029R.transition.lb_browse_entrance_transition);
}
protected void runEntranceTransition(Object obj) {
sTransitionHelper.runTransition(this.mSceneAfterEntranceTransition, obj);
}
protected void onEntranceTransitionPrepare() {
this.mHeadersFragment.onTransitionPrepare();
this.mRowsFragment.onTransitionPrepare();
}
protected void onEntranceTransitionStart() {
this.mHeadersFragment.onTransitionStart();
this.mRowsFragment.onTransitionStart();
}
protected void onEntranceTransitionEnd() {
this.mRowsFragment.onTransitionEnd();
this.mHeadersFragment.onTransitionEnd();
}
void setSearchOrbViewOnScreen(boolean z) {
View searchAffordanceView = getTitleView().getSearchAffordanceView();
MarginLayoutParams marginLayoutParams = (MarginLayoutParams) searchAffordanceView.getLayoutParams();
marginLayoutParams.setMarginStart(z ? 0 : -this.mContainerListMarginStart);
searchAffordanceView.setLayoutParams(marginLayoutParams);
}
void setEntranceTransitionStartState() {
setHeadersOnScreen(false);
setSearchOrbViewOnScreen(false);
this.mRowsFragment.setEntranceTransitionState(false);
}
void setEntranceTransitionEndState() {
setHeadersOnScreen(this.mShowingHeaders);
setSearchOrbViewOnScreen(true);
this.mRowsFragment.setEntranceTransitionState(true);
}
}
package android.support.v17.leanback.app;
import android.content.res.TypedArray;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v17.leanback.C0029R;
import android.support.v17.leanback.transition.TransitionListener;
import android.support.v17.leanback.widget.BrowseFrameLayout;
import android.support.v17.leanback.widget.BrowseFrameLayout.OnChildFocusListener;
import android.support.v17.leanback.widget.BrowseFrameLayout.OnFocusSearchListener;
import android.support.v17.leanback.widget.ObjectAdapter;
import android.support.v17.leanback.widget.OnItemViewClickedListener;
import android.support.v17.leanback.widget.OnItemViewSelectedListener;
import android.support.v17.leanback.widget.Presenter;
import android.support.v17.leanback.widget.PresenterSelector;
import android.support.v17.leanback.widget.Row;
import android.support.v17.leanback.widget.RowHeaderPresenter.ViewHolder;
import android.support.v17.leanback.widget.RowPresenter;
import android.support.v17.leanback.widget.SearchOrbView.Colors;
import android.support.v17.leanback.widget.TitleView;
import android.support.v17.leanback.widget.VerticalGridView;
import android.support.v4.app.FragmentManager.OnBackStackChangedListener;
import android.support.v4.view.ViewCompat;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.ViewGroup.MarginLayoutParams;
public class BrowseSupportFragment extends BaseSupportFragment {
private static final String ARG_BADGE_URI = (BrowseSupportFragment.class.getCanonicalName() + ".badge");
private static final String ARG_HEADERS_STATE = (BrowseSupportFragment.class.getCanonicalName() + ".headersState");
private static final String ARG_TITLE = (BrowseSupportFragment.class.getCanonicalName() + ".title");
private static boolean DEBUG = false;
public static final int HEADERS_DISABLED = 3;
public static final int HEADERS_ENABLED = 1;
public static final int HEADERS_HIDDEN = 2;
static final String HEADER_SHOW = "headerShow";
static final String HEADER_STACK_INDEX = "headerStackIndex";
private static final String LB_HEADERS_BACKSTACK = "lbHeadersBackStack_";
private static final String TAG = "BrowseSupportFragment";
private ObjectAdapter mAdapter;
private BackStackListener mBackStackChangedListener;
private int mBrandColor = 0;
private boolean mBrandColorSet;
private BrowseFrameLayout mBrowseFrame;
private BrowseTransitionListener mBrowseTransitionListener;
private boolean mCanShowHeaders = true;
private int mContainerListAlignTop;
private int mContainerListMarginStart;
private OnItemViewSelectedListener mExternalOnItemViewSelectedListener;
private OnHeaderClickedListener mHeaderClickedListener = new C00568();
private PresenterSelector mHeaderPresenterSelector;
private OnHeaderViewSelectedListener mHeaderViewSelectedListener = new OnHeaderViewSelectedListener() {
public void onHeaderSelected(ViewHolder viewHolder, Row row) {
int selectedPosition = BrowseSupportFragment.this.mHeadersSupportFragment.getVerticalGridView().getSelectedPosition();
if (BrowseSupportFragment.DEBUG) {
Log.v(BrowseSupportFragment.TAG, "header selected position " + selectedPosition);
}
BrowseSupportFragment.this.onRowSelected(selectedPosition);
}
};
private boolean mHeadersBackStackEnabled = true;
private int mHeadersState = 1;
private HeadersSupportFragment mHeadersSupportFragment;
private Object mHeadersTransition;
private final OnChildFocusListener mOnChildFocusListener = new C00513();
private final OnFocusSearchListener mOnFocusSearchListener = new C00502();
private OnItemViewClickedListener mOnItemViewClickedListener;
private boolean mRowScaleEnabled = true;
private OnItemViewSelectedListener mRowViewSelectedListener = new C00579();
private RowsSupportFragment mRowsSupportFragment;
private Object mSceneAfterEntranceTransition;
private Object mSceneWithHeaders;
private Object mSceneWithoutHeaders;
private int mSelectedPosition = -1;
private final SetSelectionRunnable mSetSelectionRunnable = new SetSelectionRunnable();
private boolean mShowingHeaders = true;
private String mWithHeadersBackStackName;
class C00502 implements OnFocusSearchListener {
C00502() {
}
public View onFocusSearch(View view, int i) {
int i2 = 17;
if (BrowseSupportFragment.this.mCanShowHeaders && BrowseSupportFragment.this.isInHeadersTransition()) {
return view;
}
if (BrowseSupportFragment.DEBUG) {
Log.v(BrowseSupportFragment.TAG, "onFocusSearch focused " + view + " + direction " + i);
}
if (BrowseSupportFragment.this.getTitleView() != null && view != BrowseSupportFragment.this.getTitleView() && i == 33) {
return BrowseSupportFragment.this.getTitleView();
}
if (BrowseSupportFragment.this.getTitleView() != null && BrowseSupportFragment.this.getTitleView().hasFocus() && i == 130) {
return (BrowseSupportFragment.this.mCanShowHeaders && BrowseSupportFragment.this.mShowingHeaders) ? BrowseSupportFragment.this.mHeadersSupportFragment.getVerticalGridView() : BrowseSupportFragment.this.mRowsSupportFragment.getVerticalGridView();
} else {
Object obj = ViewCompat.getLayoutDirection(view) == 1 ? 1 : null;
int i3;
if (obj != null) {
i3 = 66;
} else {
i3 = 17;
}
if (obj == null) {
i2 = 66;
}
if (BrowseSupportFragment.this.mCanShowHeaders && i == r2) {
if (BrowseSupportFragment.this.isVerticalScrolling() || BrowseSupportFragment.this.mShowingHeaders) {
return view;
}
return BrowseSupportFragment.this.mHeadersSupportFragment.getVerticalGridView();
} else if (i != i2) {
return null;
} else {
if (BrowseSupportFragment.this.isVerticalScrolling()) {
return view;
}
return BrowseSupportFragment.this.mRowsSupportFragment.getVerticalGridView();
}
}
}
}
class C00513 implements OnChildFocusListener {
C00513() {
}
public boolean onRequestFocusInDescendants(int i, Rect rect) {
if (BrowseSupportFragment.this.getChildFragmentManager().isDestroyed()) {
return true;
}
if (BrowseSupportFragment.this.mCanShowHeaders && BrowseSupportFragment.this.mShowingHeaders && BrowseSupportFragment.this.mHeadersSupportFragment != null && BrowseSupportFragment.this.mHeadersSupportFragment.getView() != null && BrowseSupportFragment.this.mHeadersSupportFragment.getView().requestFocus(i, rect)) {
return true;
}
if (BrowseSupportFragment.this.mRowsSupportFragment != null && BrowseSupportFragment.this.mRowsSupportFragment.getView() != null && BrowseSupportFragment.this.mRowsSupportFragment.getView().requestFocus(i, rect)) {
return true;
}
if (BrowseSupportFragment.this.getTitleView() == null || !BrowseSupportFragment.this.getTitleView().requestFocus(i, rect)) {
return false;
}
return true;
}
public void onRequestChildFocus(View view, View view2) {
if (!BrowseSupportFragment.this.getChildFragmentManager().isDestroyed() && BrowseSupportFragment.this.mCanShowHeaders && !BrowseSupportFragment.this.isInHeadersTransition()) {
int id = view.getId();
if (id == C0029R.id.browse_container_dock && BrowseSupportFragment.this.mShowingHeaders) {
BrowseSupportFragment.this.startHeadersTransitionInternal(false);
} else if (id == C0029R.id.browse_headers_dock && !BrowseSupportFragment.this.mShowingHeaders) {
BrowseSupportFragment.this.startHeadersTransitionInternal(true);
}
}
}
}
class C00524 implements Runnable {
C00524() {
}
public void run() {
BrowseSupportFragment.this.showHeaders(true);
}
}
class C00535 implements Runnable {
C00535() {
}
public void run() {
BrowseSupportFragment.this.showHeaders(false);
}
}
class C00546 implements Runnable {
C00546() {
}
public void run() {
BrowseSupportFragment.this.setEntranceTransitionEndState();
}
}
class C00557 extends TransitionListener {
C00557() {
}
public void onTransitionStart(Object obj) {
}
public void onTransitionEnd(Object obj) {
BrowseSupportFragment.this.mHeadersTransition = null;
BrowseSupportFragment.this.mRowsSupportFragment.onTransitionEnd();
BrowseSupportFragment.this.mHeadersSupportFragment.onTransitionEnd();
VerticalGridView verticalGridView;
if (BrowseSupportFragment.this.mShowingHeaders) {
verticalGridView = BrowseSupportFragment.this.mHeadersSupportFragment.getVerticalGridView();
if (!(verticalGridView == null || verticalGridView.hasFocus())) {
verticalGridView.requestFocus();
}
} else {
verticalGridView = BrowseSupportFragment.this.mRowsSupportFragment.getVerticalGridView();
if (!(verticalGridView == null || verticalGridView.hasFocus())) {
verticalGridView.requestFocus();
}
}
if (BrowseSupportFragment.this.mBrowseTransitionListener != null) {
BrowseSupportFragment.this.mBrowseTransitionListener.onHeadersTransitionStop(BrowseSupportFragment.this.mShowingHeaders);
}
}
}
class C00568 implements OnHeaderClickedListener {
C00568() {
}
public void onHeaderClicked() {
if (BrowseSupportFragment.this.mCanShowHeaders && BrowseSupportFragment.this.mShowingHeaders && !BrowseSupportFragment.this.isInHeadersTransition()) {
BrowseSupportFragment.this.startHeadersTransitionInternal(false);
BrowseSupportFragment.this.mRowsSupportFragment.getVerticalGridView().requestFocus();
}
}
}
class C00579 implements OnItemViewSelectedListener {
C00579() {
}
public void onItemSelected(Presenter.ViewHolder viewHolder, Object obj, RowPresenter.ViewHolder viewHolder2, Row row) {
int selectedPosition = BrowseSupportFragment.this.mRowsSupportFragment.getVerticalGridView().getSelectedPosition();
if (BrowseSupportFragment.DEBUG) {
Log.v(BrowseSupportFragment.TAG, "row selected position " + selectedPosition);
}
BrowseSupportFragment.this.onRowSelected(selectedPosition);
if (BrowseSupportFragment.this.mExternalOnItemViewSelectedListener != null) {
BrowseSupportFragment.this.mExternalOnItemViewSelectedListener.onItemSelected(viewHolder, obj, viewHolder2, row);
}
}
}
final class BackStackListener implements OnBackStackChangedListener {
int mIndexOfHeadersBackStack = -1;
int mLastEntryCount;
BackStackListener() {
this.mLastEntryCount = BrowseSupportFragment.this.getFragmentManager().getBackStackEntryCount();
}
final void load(Bundle bundle) {
if (bundle != null) {
this.mIndexOfHeadersBackStack = bundle.getInt(BrowseSupportFragment.HEADER_STACK_INDEX, -1);
BrowseSupportFragment.this.mShowingHeaders = this.mIndexOfHeadersBackStack == -1;
} else if (!BrowseSupportFragment.this.mShowingHeaders) {
BrowseSupportFragment.this.getFragmentManager().beginTransaction().addToBackStack(BrowseSupportFragment.this.mWithHeadersBackStackName).commit();
}
}
final void save(Bundle bundle) {
bundle.putInt(BrowseSupportFragment.HEADER_STACK_INDEX, this.mIndexOfHeadersBackStack);
}
public final void onBackStackChanged() {
if (BrowseSupportFragment.this.getFragmentManager() == null) {
Log.w(BrowseSupportFragment.TAG, "getFragmentManager() is null, stack:", new Exception());
return;
}
int backStackEntryCount = BrowseSupportFragment.this.getFragmentManager().getBackStackEntryCount();
if (backStackEntryCount > this.mLastEntryCount) {
if (BrowseSupportFragment.this.mWithHeadersBackStackName.equals(BrowseSupportFragment.this.getFragmentManager().getBackStackEntryAt(backStackEntryCount - 1).getName())) {
this.mIndexOfHeadersBackStack = backStackEntryCount - 1;
}
} else if (backStackEntryCount < this.mLastEntryCount && this.mIndexOfHeadersBackStack >= backStackEntryCount) {
this.mIndexOfHeadersBackStack = -1;
if (!BrowseSupportFragment.this.mShowingHeaders) {
BrowseSupportFragment.this.startHeadersTransitionInternal(true);
}
}
this.mLastEntryCount = backStackEntryCount;
}
}
public class BrowseTransitionListener {
public void onHeadersTransitionStart(boolean z) {
}
public void onHeadersTransitionStop(boolean z) {
}
}
class SetSelectionRunnable implements Runnable {
static final int TYPE_INTERNAL_SYNC = 0;
static final int TYPE_INVALID = -1;
static final int TYPE_USER_REQUEST = 1;
private int mPosition;
private boolean mSmooth;
private int mType;
SetSelectionRunnable() {
reset();
}
void post(int i, int i2, boolean z) {
if (i2 >= this.mType) {
this.mPosition = i;
this.mType = i2;
this.mSmooth = z;
BrowseSupportFragment.this.mBrowseFrame.removeCallbacks(this);
BrowseSupportFragment.this.mBrowseFrame.post(this);
}
}
public void run() {
BrowseSupportFragment.this.setSelection(this.mPosition, this.mSmooth);
reset();
}
private void reset() {
this.mPosition = -1;
this.mType = -1;
this.mSmooth = false;
}
}
public /* bridge */ /* synthetic */ Drawable getBadgeDrawable() {
return super.getBadgeDrawable();
}
public /* bridge */ /* synthetic */ int getSearchAffordanceColor() {
return super.getSearchAffordanceColor();
}
public /* bridge */ /* synthetic */ Colors getSearchAffordanceColors() {
return super.getSearchAffordanceColors();
}
public /* bridge */ /* synthetic */ String getTitle() {
return super.getTitle();
}
public /* bridge */ /* synthetic */ void onDestroyView() {
super.onDestroyView();
}
public /* bridge */ /* synthetic */ void onPause() {
super.onPause();
}
public /* bridge */ /* synthetic */ void onResume() {
super.onResume();
}
public /* bridge */ /* synthetic */ void onViewCreated(View view, Bundle bundle) {
super.onViewCreated(view, bundle);
}
public /* bridge */ /* synthetic */ void prepareEntranceTransition() {
super.prepareEntranceTransition();
}
public /* bridge */ /* synthetic */ void setBadgeDrawable(Drawable drawable) {
super.setBadgeDrawable(drawable);
}
public /* bridge */ /* synthetic */ void setOnSearchClickedListener(OnClickListener onClickListener) {
super.setOnSearchClickedListener(onClickListener);
}
public /* bridge */ /* synthetic */ void setSearchAffordanceColor(int i) {
super.setSearchAffordanceColor(i);
}
public /* bridge */ /* synthetic */ void setSearchAffordanceColors(Colors colors) {
super.setSearchAffordanceColors(colors);
}
public /* bridge */ /* synthetic */ void setTitle(String str) {
super.setTitle(str);
}
public /* bridge */ /* synthetic */ void startEntranceTransition() {
super.startEntranceTransition();
}
public static Bundle createArgs(Bundle bundle, String str, int i) {
if (bundle == null) {
bundle = new Bundle();
}
bundle.putString(ARG_TITLE, str);
bundle.putInt(ARG_HEADERS_STATE, i);
return bundle;
}
public void setBrandColor(int i) {
this.mBrandColor = i;
this.mBrandColorSet = true;
if (this.mHeadersSupportFragment != null) {
this.mHeadersSupportFragment.setBackgroundColor(this.mBrandColor);
}
}
public int getBrandColor() {
return this.mBrandColor;
}
public void setAdapter(ObjectAdapter objectAdapter) {
this.mAdapter = objectAdapter;
if (this.mRowsSupportFragment != null) {
this.mRowsSupportFragment.setAdapter(objectAdapter);
this.mHeadersSupportFragment.setAdapter(objectAdapter);
}
}
public ObjectAdapter getAdapter() {
return this.mAdapter;
}
public void setOnItemViewSelectedListener(OnItemViewSelectedListener onItemViewSelectedListener) {
this.mExternalOnItemViewSelectedListener = onItemViewSelectedListener;
}
public OnItemViewSelectedListener getOnItemViewSelectedListener() {
return this.mExternalOnItemViewSelectedListener;
}
public void setOnItemViewClickedListener(OnItemViewClickedListener onItemViewClickedListener) {
this.mOnItemViewClickedListener = onItemViewClickedListener;
if (this.mRowsSupportFragment != null) {
this.mRowsSupportFragment.setOnItemViewClickedListener(onItemViewClickedListener);
}
}
public OnItemViewClickedListener getOnItemViewClickedListener() {
return this.mOnItemViewClickedListener;
}
public void startHeadersTransition(boolean z) {
if (!this.mCanShowHeaders) {
throw new IllegalStateException("Cannot start headers transition");
} else if (!isInHeadersTransition() && this.mShowingHeaders != z) {
startHeadersTransitionInternal(z);
}
}
public boolean isInHeadersTransition() {
return this.mHeadersTransition != null;
}
public boolean isShowingHeaders() {
return this.mShowingHeaders;
}
public void setBrowseTransitionListener(BrowseTransitionListener browseTransitionListener) {
this.mBrowseTransitionListener = browseTransitionListener;
}
public void enableRowScaling(boolean z) {
this.mRowScaleEnabled = z;
if (this.mRowsSupportFragment != null) {
this.mRowsSupportFragment.enableRowScaling(this.mRowScaleEnabled);
}
}
private void startHeadersTransitionInternal(final boolean z) {
if (!getFragmentManager().isDestroyed()) {
this.mShowingHeaders = z;
this.mRowsSupportFragment.onExpandTransitionStart(!z, new Runnable() {
public void run() {
BrowseSupportFragment.this.mHeadersSupportFragment.onTransitionPrepare();
BrowseSupportFragment.this.mHeadersSupportFragment.onTransitionStart();
BrowseSupportFragment.this.createHeadersTransition();
if (BrowseSupportFragment.this.mBrowseTransitionListener != null) {
BrowseSupportFragment.this.mBrowseTransitionListener.onHeadersTransitionStart(z);
}
BaseSupportFragment.sTransitionHelper.runTransition(z ? BrowseSupportFragment.this.mSceneWithHeaders : BrowseSupportFragment.this.mSceneWithoutHeaders, BrowseSupportFragment.this.mHeadersTransition);
if (!BrowseSupportFragment.this.mHeadersBackStackEnabled) {
return;
}
if (z) {
int i = BrowseSupportFragment.this.mBackStackChangedListener.mIndexOfHeadersBackStack;
if (i >= 0) {
BrowseSupportFragment.this.getFragmentManager().popBackStackImmediate(BrowseSupportFragment.this.getFragmentManager().getBackStackEntryAt(i).getId(), 1);
return;
}
return;
}
BrowseSupportFragment.this.getFragmentManager().beginTransaction().addToBackStack(BrowseSupportFragment.this.mWithHeadersBackStackName).commit();
}
});
}
}
private boolean isVerticalScrolling() {
return (this.mHeadersSupportFragment.getVerticalGridView().getScrollState() == 0 && this.mRowsSupportFragment.getVerticalGridView().getScrollState() == 0) ? false : true;
}
public void onSaveInstanceState(Bundle bundle) {
super.onSaveInstanceState(bundle);
if (this.mBackStackChangedListener != null) {
this.mBackStackChangedListener.save(bundle);
} else {
bundle.putBoolean(HEADER_SHOW, this.mShowingHeaders);
}
}
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
TypedArray obtainStyledAttributes = getActivity().obtainStyledAttributes(C0029R.styleable.LeanbackTheme);
this.mContainerListMarginStart = (int) obtainStyledAttributes.getDimension(C0029R.styleable.LeanbackTheme_browseRowsMarginStart, (float) getActivity().getResources().getDimensionPixelSize(C0029R.dimen.lb_browse_rows_margin_start));
this.mContainerListAlignTop = (int) obtainStyledAttributes.getDimension(C0029R.styleable.LeanbackTheme_browseRowsMarginTop, (float) getActivity().getResources().getDimensionPixelSize(C0029R.dimen.lb_browse_rows_margin_top));
obtainStyledAttributes.recycle();
readArguments(getArguments());
if (!this.mCanShowHeaders) {
return;
}
if (this.mHeadersBackStackEnabled) {
this.mWithHeadersBackStackName = new StringBuilder(LB_HEADERS_BACKSTACK).append(this).toString();
this.mBackStackChangedListener = new BackStackListener();
getFragmentManager().addOnBackStackChangedListener(this.mBackStackChangedListener);
this.mBackStackChangedListener.load(bundle);
} else if (bundle != null) {
this.mShowingHeaders = bundle.getBoolean(HEADER_SHOW);
}
}
public void onDestroy() {
if (this.mBackStackChangedListener != null) {
getFragmentManager().removeOnBackStackChangedListener(this.mBackStackChangedListener);
}
super.onDestroy();
}
public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
boolean z;
if (getChildFragmentManager().findFragmentById(C0029R.id.browse_container_dock) == null) {
this.mRowsSupportFragment = new RowsSupportFragment();
this.mHeadersSupportFragment = new HeadersSupportFragment();
getChildFragmentManager().beginTransaction().replace(C0029R.id.browse_headers_dock, this.mHeadersSupportFragment).replace(C0029R.id.browse_container_dock, this.mRowsSupportFragment).commit();
} else {
this.mHeadersSupportFragment = (HeadersSupportFragment) getChildFragmentManager().findFragmentById(C0029R.id.browse_headers_dock);
this.mRowsSupportFragment = (RowsSupportFragment) getChildFragmentManager().findFragmentById(C0029R.id.browse_container_dock);
}
HeadersSupportFragment headersSupportFragment = this.mHeadersSupportFragment;
if (this.mCanShowHeaders) {
z = false;
} else {
z = true;
}
headersSupportFragment.setHeadersGone(z);
this.mRowsSupportFragment.setAdapter(this.mAdapter);
if (this.mHeaderPresenterSelector != null) {
this.mHeadersSupportFragment.setPresenterSelector(this.mHeaderPresenterSelector);
}
this.mHeadersSupportFragment.setAdapter(this.mAdapter);
this.mRowsSupportFragment.enableRowScaling(this.mRowScaleEnabled);
this.mRowsSupportFragment.setOnItemViewSelectedListener(this.mRowViewSelectedListener);
this.mHeadersSupportFragment.setOnHeaderViewSelectedListener(this.mHeaderViewSelectedListener);
this.mHeadersSupportFragment.setOnHeaderClickedListener(this.mHeaderClickedListener);
this.mRowsSupportFragment.setOnItemViewClickedListener(this.mOnItemViewClickedListener);
View inflate = layoutInflater.inflate(C0029R.layout.lb_browse_fragment, viewGroup, false);
setTitleView((TitleView) inflate.findViewById(C0029R.id.browse_title_group));
this.mBrowseFrame = (BrowseFrameLayout) inflate.findViewById(C0029R.id.browse_frame);
this.mBrowseFrame.setOnChildFocusListener(this.mOnChildFocusListener);
this.mBrowseFrame.setOnFocusSearchListener(this.mOnFocusSearchListener);
if (this.mBrandColorSet) {
this.mHeadersSupportFragment.setBackgroundColor(this.mBrandColor);
}
this.mSceneWithHeaders = sTransitionHelper.createScene(this.mBrowseFrame, new C00524());
this.mSceneWithoutHeaders = sTransitionHelper.createScene(this.mBrowseFrame, new C00535());
this.mSceneAfterEntranceTransition = sTransitionHelper.createScene(this.mBrowseFrame, new C00546());
return inflate;
}
private void createHeadersTransition() {
this.mHeadersTransition = sTransitionHelper.loadTransition(getActivity(), this.mShowingHeaders ? C0029R.transition.lb_browse_headers_in : C0029R.transition.lb_browse_headers_out);
sTransitionHelper.setTransitionListener(this.mHeadersTransition, new C00557());
}
public void setHeaderPresenterSelector(PresenterSelector presenterSelector) {
this.mHeaderPresenterSelector = presenterSelector;
if (this.mHeadersSupportFragment != null) {
this.mHeadersSupportFragment.setPresenterSelector(this.mHeaderPresenterSelector);
}
}
private void setRowsAlignedLeft(boolean z) {
View view = this.mRowsSupportFragment.getView();
MarginLayoutParams marginLayoutParams = (MarginLayoutParams) view.getLayoutParams();
marginLayoutParams.setMarginStart(z ? 0 : this.mContainerListMarginStart);
view.setLayoutParams(marginLayoutParams);
}
private void setHeadersOnScreen(boolean z) {
View view = this.mHeadersSupportFragment.getView();
MarginLayoutParams marginLayoutParams = (MarginLayoutParams) view.getLayoutParams();
marginLayoutParams.setMarginStart(z ? 0 : -this.mContainerListMarginStart);
view.setLayoutParams(marginLayoutParams);
}
private void showHeaders(boolean z) {
boolean z2;
boolean z3 = true;
if (DEBUG) {
Log.v(TAG, "showHeaders " + z);
}
this.mHeadersSupportFragment.setHeadersEnabled(z);
setHeadersOnScreen(z);
if (z) {
z2 = false;
} else {
z2 = true;
}
setRowsAlignedLeft(z2);
RowsSupportFragment rowsSupportFragment = this.mRowsSupportFragment;
if (z) {
z3 = false;
}
rowsSupportFragment.setExpand(z3);
}
private void onRowSelected(int i) {
if (i != this.mSelectedPosition) {
this.mSetSelectionRunnable.post(i, 0, true);
if (getAdapter() == null || getAdapter().size() == 0 || i == 0) {
showTitle(true);
} else {
showTitle(false);
}
}
}
private void setSelection(int i, boolean z) {
if (i != -1) {
this.mRowsSupportFragment.setSelectedPosition(i, z);
this.mHeadersSupportFragment.setSelectedPosition(i, z);
}
this.mSelectedPosition = i;
}
public void setSelectedPosition(int i) {
setSelectedPosition(i, true);
}
public void setSelectedPosition(int i, boolean z) {
this.mSetSelectionRunnable.post(i, 1, z);
}
public void onStart() {
super.onStart();
this.mHeadersSupportFragment.setWindowAlignmentFromTop(this.mContainerListAlignTop);
this.mHeadersSupportFragment.setItemAlignment();
this.mRowsSupportFragment.setWindowAlignmentFromTop(this.mContainerListAlignTop);
this.mRowsSupportFragment.setItemAlignment();
this.mRowsSupportFragment.setScalePivots(0.0f, (float) this.mContainerListAlignTop);
if (this.mCanShowHeaders && this.mShowingHeaders && this.mHeadersSupportFragment.getView() != null) {
this.mHeadersSupportFragment.getView().requestFocus();
} else if (!((this.mCanShowHeaders && this.mShowingHeaders) || this.mRowsSupportFragment.getView() == null)) {
this.mRowsSupportFragment.getView().requestFocus();
}
if (this.mCanShowHeaders) {
showHeaders(this.mShowingHeaders);
}
if (isEntranceTransitionEnabled()) {
setEntranceTransitionStartState();
}
}
public final void setHeadersTransitionOnBackEnabled(boolean z) {
this.mHeadersBackStackEnabled = z;
}
public final boolean isHeadersTransitionOnBackEnabled() {
return this.mHeadersBackStackEnabled;
}
private void readArguments(Bundle bundle) {
if (bundle != null) {
if (bundle.containsKey(ARG_TITLE)) {
setTitle(bundle.getString(ARG_TITLE));
}
if (bundle.containsKey(ARG_HEADERS_STATE)) {
setHeadersState(bundle.getInt(ARG_HEADERS_STATE));
}
}
}
public void setHeadersState(int i) {
boolean z = true;
if (i <= 0 || i > 3) {
throw new IllegalArgumentException("Invalid headers state: " + i);
}
if (DEBUG) {
Log.v(TAG, "setHeadersState " + i);
}
if (i != this.mHeadersState) {
this.mHeadersState = i;
switch (i) {
case 1:
this.mCanShowHeaders = true;
this.mShowingHeaders = true;
break;
case 2:
this.mCanShowHeaders = true;
this.mShowingHeaders = false;
break;
case 3:
this.mCanShowHeaders = false;
this.mShowingHeaders = false;
break;
default:
Log.w(TAG, "Unknown headers state: " + i);
break;
}
if (this.mHeadersSupportFragment != null) {
HeadersSupportFragment headersSupportFragment = this.mHeadersSupportFragment;
if (this.mCanShowHeaders) {
z = false;
}
headersSupportFragment.setHeadersGone(z);
}
}
}
public int getHeadersState() {
return this.mHeadersState;
}
protected Object createEntranceTransition() {
return sTransitionHelper.loadTransition(getActivity(), C0029R.transition.lb_browse_entrance_transition);
}
protected void runEntranceTransition(Object obj) {
sTransitionHelper.runTransition(this.mSceneAfterEntranceTransition, obj);
}
protected void onEntranceTransitionPrepare() {
this.mHeadersSupportFragment.onTransitionPrepare();
this.mRowsSupportFragment.onTransitionPrepare();
}
protected void onEntranceTransitionStart() {
this.mHeadersSupportFragment.onTransitionStart();
this.mRowsSupportFragment.onTransitionStart();
}
protected void onEntranceTransitionEnd() {
this.mRowsSupportFragment.onTransitionEnd();
this.mHeadersSupportFragment.onTransitionEnd();
}
void setSearchOrbViewOnScreen(boolean z) {
View searchAffordanceView = getTitleView().getSearchAffordanceView();
MarginLayoutParams marginLayoutParams = (MarginLayoutParams) searchAffordanceView.getLayoutParams();
marginLayoutParams.setMarginStart(z ? 0 : -this.mContainerListMarginStart);
searchAffordanceView.setLayoutParams(marginLayoutParams);
}
void setEntranceTransitionStartState() {
setHeadersOnScreen(false);
setSearchOrbViewOnScreen(false);
this.mRowsSupportFragment.setEntranceTransitionState(false);
}
void setEntranceTransitionEndState() {
setHeadersOnScreen(this.mShowingHeaders);
setSearchOrbViewOnScreen(true);
this.mRowsSupportFragment.setEntranceTransitionState(true);
}
}
package android.support.v17.leanback.app;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v17.leanback.C0029R;
import android.support.v17.leanback.widget.BrowseFrameLayout;
import android.support.v17.leanback.widget.FullWidthDetailsOverviewRowPresenter;
import android.support.v17.leanback.widget.ItemAlignmentFacet;
import android.support.v17.leanback.widget.ItemAlignmentFacet.ItemAlignmentDef;
import android.support.v17.leanback.widget.ItemBridgeAdapter;
import android.support.v17.leanback.widget.ObjectAdapter;
import android.support.v17.leanback.widget.OnItemViewClickedListener;
import android.support.v17.leanback.widget.OnItemViewSelectedListener;
import android.support.v17.leanback.widget.Presenter;
import android.support.v17.leanback.widget.Presenter.ViewHolder;
import android.support.v17.leanback.widget.Row;
import android.support.v17.leanback.widget.RowPresenter;
import android.support.v17.leanback.widget.SearchOrbView.Colors;
import android.support.v17.leanback.widget.TitleHelper;
import android.support.v17.leanback.widget.TitleView;
import android.support.v17.leanback.widget.VerticalGridView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
public class DetailsFragment extends BaseFragment {
private static boolean DEBUG = false;
private static final String TAG = "DetailsFragment";
private ObjectAdapter mAdapter;
private int mContainerListAlignTop;
private OnItemViewSelectedListener mExternalOnItemViewSelectedListener;
private OnItemViewClickedListener mOnItemViewClickedListener;
private final OnItemViewSelectedListener mOnItemViewSelectedListener = new C00581();
private RowsFragment mRowsFragment;
private Object mSceneAfterEntranceTransition;
private final SetSelectionRunnable mSetSelectionRunnable = new SetSelectionRunnable();
class C00581 implements OnItemViewSelectedListener {
C00581() {
}
public void onItemSelected(ViewHolder viewHolder, Object obj, RowPresenter.ViewHolder viewHolder2, Row row) {
int selectedPosition = DetailsFragment.this.mRowsFragment.getVerticalGridView().getSelectedPosition();
int selectedSubPosition = DetailsFragment.this.mRowsFragment.getVerticalGridView().getSelectedSubPosition();
if (DetailsFragment.DEBUG) {
Log.v(DetailsFragment.TAG, "row selected position " + selectedPosition + " subposition " + selectedSubPosition);
}
DetailsFragment.this.onRowSelected(selectedPosition, selectedSubPosition);
if (DetailsFragment.this.mExternalOnItemViewSelectedListener != null) {
DetailsFragment.this.mExternalOnItemViewSelectedListener.onItemSelected(viewHolder, obj, viewHolder2, row);
}
}
}
class C00592 implements Runnable {
C00592() {
}
public void run() {
DetailsFragment.this.mRowsFragment.setEntranceTransitionState(true);
}
}
class SetSelectionRunnable implements Runnable {
int mPosition;
boolean mSmooth;
private SetSelectionRunnable() {
this.mSmooth = true;
}
public void run() {
DetailsFragment.this.mRowsFragment.setSelectedPosition(this.mPosition, this.mSmooth);
}
}
public /* bridge */ /* synthetic */ Drawable getBadgeDrawable() {
return super.getBadgeDrawable();
}
public /* bridge */ /* synthetic */ int getSearchAffordanceColor() {
return super.getSearchAffordanceColor();
}
public /* bridge */ /* synthetic */ Colors getSearchAffordanceColors() {
return super.getSearchAffordanceColors();
}
public /* bridge */ /* synthetic */ String getTitle() {
return super.getTitle();
}
public /* bridge */ /* synthetic */ void onDestroyView() {
super.onDestroyView();
}
public /* bridge */ /* synthetic */ void onPause() {
super.onPause();
}
public /* bridge */ /* synthetic */ void onResume() {
super.onResume();
}
public /* bridge */ /* synthetic */ void onSaveInstanceState(Bundle bundle) {
super.onSaveInstanceState(bundle);
}
public /* bridge */ /* synthetic */ void onViewCreated(View view, Bundle bundle) {
super.onViewCreated(view, bundle);
}
public /* bridge */ /* synthetic */ void prepareEntranceTransition() {
super.prepareEntranceTransition();
}
public /* bridge */ /* synthetic */ void setBadgeDrawable(Drawable drawable) {
super.setBadgeDrawable(drawable);
}
public /* bridge */ /* synthetic */ void setOnSearchClickedListener(OnClickListener onClickListener) {
super.setOnSearchClickedListener(onClickListener);
}
public /* bridge */ /* synthetic */ void setSearchAffordanceColor(int i) {
super.setSearchAffordanceColor(i);
}
public /* bridge */ /* synthetic */ void setSearchAffordanceColors(Colors colors) {
super.setSearchAffordanceColors(colors);
}
public /* bridge */ /* synthetic */ void setTitle(String str) {
super.setTitle(str);
}
public /* bridge */ /* synthetic */ void startEntranceTransition() {
super.startEntranceTransition();
}
public void setAdapter(ObjectAdapter objectAdapter) {
this.mAdapter = objectAdapter;
Presenter[] presenters = objectAdapter.getPresenterSelector().getPresenters();
if (presenters != null) {
for (Presenter presenter : presenters) {
setupPresenter(presenter);
}
} else {
Log.e(TAG, "PresenterSelector.getPresenters() not implemented");
}
if (this.mRowsFragment != null) {
this.mRowsFragment.setAdapter(objectAdapter);
}
}
public ObjectAdapter getAdapter() {
return this.mAdapter;
}
public void setOnItemViewSelectedListener(OnItemViewSelectedListener onItemViewSelectedListener) {
this.mExternalOnItemViewSelectedListener = onItemViewSelectedListener;
}
public void setOnItemViewClickedListener(OnItemViewClickedListener onItemViewClickedListener) {
if (this.mOnItemViewClickedListener != onItemViewClickedListener) {
this.mOnItemViewClickedListener = onItemViewClickedListener;
if (this.mRowsFragment != null) {
this.mRowsFragment.setOnItemViewClickedListener(onItemViewClickedListener);
}
}
}
public OnItemViewClickedListener getOnItemViewClickedListener() {
return this.mOnItemViewClickedListener;
}
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
this.mContainerListAlignTop = getResources().getDimensionPixelSize(C0029R.dimen.lb_details_rows_align_top);
}
public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
View inflate = layoutInflater.inflate(C0029R.layout.lb_details_fragment, viewGroup, false);
ViewGroup viewGroup2 = (ViewGroup) inflate.findViewById(C0029R.id.details_fragment_root);
View inflateTitle = inflateTitle(layoutInflater, viewGroup2, bundle);
if (inflateTitle != null) {
viewGroup2.addView(inflateTitle);
}
this.mRowsFragment = (RowsFragment) getChildFragmentManager().findFragmentById(C0029R.id.details_rows_dock);
if (this.mRowsFragment == null) {
this.mRowsFragment = new RowsFragment();
getChildFragmentManager().beginTransaction().replace(C0029R.id.details_rows_dock, this.mRowsFragment).commit();
}
this.mRowsFragment.setAdapter(this.mAdapter);
this.mRowsFragment.setOnItemViewSelectedListener(this.mOnItemViewSelectedListener);
this.mRowsFragment.setOnItemViewClickedListener(this.mOnItemViewClickedListener);
if (inflateTitle != null) {
View findViewById = inflateTitle.findViewById(C0029R.id.browse_title_group);
if (findViewById instanceof TitleView) {
setTitleView((TitleView) findViewById);
} else {
setTitleView(null);
}
}
this.mSceneAfterEntranceTransition = sTransitionHelper.createScene((ViewGroup) inflate, new C00592());
return inflate;
}
protected View inflateTitle(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
return layoutInflater.inflate(C0029R.layout.lb_browse_title, viewGroup, false);
}
void setVerticalGridViewLayout(VerticalGridView verticalGridView) {
verticalGridView.setItemAlignmentOffset(-this.mContainerListAlignTop);
verticalGridView.setItemAlignmentOffsetPercent(-1.0f);
verticalGridView.setWindowAlignmentOffset(0);
verticalGridView.setWindowAlignmentOffsetPercent(-1.0f);
verticalGridView.setWindowAlignment(0);
}
protected void setupPresenter(Presenter presenter) {
if (presenter instanceof FullWidthDetailsOverviewRowPresenter) {
setupDetailsOverviewRowPresenter((FullWidthDetailsOverviewRowPresenter) presenter);
}
}
protected void setupDetailsOverviewRowPresenter(FullWidthDetailsOverviewRowPresenter fullWidthDetailsOverviewRowPresenter) {
ItemAlignmentFacet itemAlignmentFacet = new ItemAlignmentFacet();
ItemAlignmentDef itemAlignmentDef = new ItemAlignmentDef();
itemAlignmentDef.setItemAlignmentViewId(C0029R.id.details_frame);
itemAlignmentDef.setItemAlignmentOffset(-getResources().getDimensionPixelSize(C0029R.dimen.lb_details_v2_align_pos_for_actions));
itemAlignmentDef.setItemAlignmentOffsetPercent(0.0f);
ItemAlignmentDef itemAlignmentDef2 = new ItemAlignmentDef();
itemAlignmentDef2.setItemAlignmentViewId(C0029R.id.details_frame);
itemAlignmentDef2.setItemAlignmentFocusViewId(C0029R.id.details_overview_description);
itemAlignmentDef2.setItemAlignmentOffset(-getResources().getDimensionPixelSize(C0029R.dimen.lb_details_v2_align_pos_for_description));
itemAlignmentDef2.setItemAlignmentOffsetPercent(0.0f);
itemAlignmentFacet.setAlignmentDefs(new ItemAlignmentDef[]{itemAlignmentDef, itemAlignmentDef2});
fullWidthDetailsOverviewRowPresenter.setFacet(ItemAlignmentFacet.class, itemAlignmentFacet);
}
VerticalGridView getVerticalGridView() {
return this.mRowsFragment == null ? null : this.mRowsFragment.getVerticalGridView();
}
RowsFragment getRowsFragment() {
return this.mRowsFragment;
}
private void setupChildFragmentLayout() {
setVerticalGridViewLayout(this.mRowsFragment.getVerticalGridView());
}
private void setupFocusSearchListener() {
TitleHelper titleHelper = getTitleHelper();
if (titleHelper != null) {
((BrowseFrameLayout) getView().findViewById(C0029R.id.details_fragment_root)).setOnFocusSearchListener(titleHelper.getOnFocusSearchListener());
}
}
public void setSelectedPosition(int i) {
setSelectedPosition(i, true);
}
public void setSelectedPosition(int i, boolean z) {
this.mSetSelectionRunnable.mPosition = i;
this.mSetSelectionRunnable.mSmooth = z;
if (getView() != null && getView().getHandler() != null) {
getView().getHandler().post(this.mSetSelectionRunnable);
}
}
private void onRowSelected(int i, int i2) {
ObjectAdapter adapter = getAdapter();
if (adapter == null || adapter.size() == 0 || (i == 0 && i2 == 0)) {
showTitle(true);
} else {
showTitle(false);
}
if (adapter != null && adapter.size() > i) {
VerticalGridView verticalGridView = getVerticalGridView();
int childCount = verticalGridView.getChildCount();
for (int i3 = 0; i3 < childCount; i3++) {
ItemBridgeAdapter.ViewHolder viewHolder = (ItemBridgeAdapter.ViewHolder) verticalGridView.getChildViewHolder(verticalGridView.getChildAt(i3));
RowPresenter rowPresenter = (RowPresenter) viewHolder.getPresenter();
onSetRowStatus(rowPresenter, rowPresenter.getRowViewHolder(viewHolder.getViewHolder()), viewHolder.getAdapterPosition(), i, i2);
}
}
}
protected void onSetRowStatus(RowPresenter rowPresenter, RowPresenter.ViewHolder viewHolder, int i, int i2, int i3) {
if (rowPresenter instanceof FullWidthDetailsOverviewRowPresenter) {
onSetDetailsOverviewRowStatus((FullWidthDetailsOverviewRowPresenter) rowPresenter, (FullWidthDetailsOverviewRowPresenter.ViewHolder) viewHolder, i, i2, i3);
}
}
protected void onSetDetailsOverviewRowStatus(FullWidthDetailsOverviewRowPresenter fullWidthDetailsOverviewRowPresenter, FullWidthDetailsOverviewRowPresenter.ViewHolder viewHolder, int i, int i2, int i3) {
if (i2 > i) {
fullWidthDetailsOverviewRowPresenter.setState(viewHolder, 0);
} else if (i2 == i && i3 == 1) {
fullWidthDetailsOverviewRowPresenter.setState(viewHolder, 0);
} else if (i2 == i && i3 == 0) {
fullWidthDetailsOverviewRowPresenter.setState(viewHolder, 1);
} else {
fullWidthDetailsOverviewRowPresenter.setState(viewHolder, 2);
}
}
public void onStart() {
super.onStart();
setupChildFragmentLayout();
setupFocusSearchListener();
this.mRowsFragment.getView().requestFocus();
if (isEntranceTransitionEnabled()) {
this.mRowsFragment.onTransitionPrepare();
this.mRowsFragment.onTransitionStart();
this.mRowsFragment.setEntranceTransitionState(false);
}
}
protected Object createEntranceTransition() {
return sTransitionHelper.loadTransition(getActivity(), C0029R.transition.lb_details_enter_transition);
}
protected void runEntranceTransition(Object obj) {
sTransitionHelper.runTransition(this.mSceneAfterEntranceTransition, obj);
}
protected void onEntranceTransitionEnd() {
this.mRowsFragment.onTransitionEnd();
}
}
package android.support.v17.leanback.app;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v17.leanback.C0029R;
import android.support.v17.leanback.widget.BrowseFrameLayout;
import android.support.v17.leanback.widget.FullWidthDetailsOverviewRowPresenter;
import android.support.v17.leanback.widget.ItemAlignmentFacet;
import android.support.v17.leanback.widget.ItemAlignmentFacet.ItemAlignmentDef;
import android.support.v17.leanback.widget.ItemBridgeAdapter;
import android.support.v17.leanback.widget.ObjectAdapter;
import android.support.v17.leanback.widget.OnItemViewClickedListener;
import android.support.v17.leanback.widget.OnItemViewSelectedListener;
import android.support.v17.leanback.widget.Presenter;
import android.support.v17.leanback.widget.Presenter.ViewHolder;
import android.support.v17.leanback.widget.Row;
import android.support.v17.leanback.widget.RowPresenter;
import android.support.v17.leanback.widget.SearchOrbView.Colors;
import android.support.v17.leanback.widget.TitleHelper;
import android.support.v17.leanback.widget.TitleView;
import android.support.v17.leanback.widget.VerticalGridView;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
public class DetailsSupportFragment extends BaseSupportFragment {
private static boolean DEBUG = false;
private static final String TAG = "DetailsSupportFragment";
private ObjectAdapter mAdapter;
private int mContainerListAlignTop;
private OnItemViewSelectedListener mExternalOnItemViewSelectedListener;
private OnItemViewClickedListener mOnItemViewClickedListener;
private final OnItemViewSelectedListener mOnItemViewSelectedListener = new C00601();
private RowsSupportFragment mRowsSupportFragment;
private Object mSceneAfterEntranceTransition;
private final SetSelectionRunnable mSetSelectionRunnable = new SetSelectionRunnable();
class C00601 implements OnItemViewSelectedListener {
C00601() {
}
public void onItemSelected(ViewHolder viewHolder, Object obj, RowPresenter.ViewHolder viewHolder2, Row row) {
int selectedPosition = DetailsSupportFragment.this.mRowsSupportFragment.getVerticalGridView().getSelectedPosition();
int selectedSubPosition = DetailsSupportFragment.this.mRowsSupportFragment.getVerticalGridView().getSelectedSubPosition();
if (DetailsSupportFragment.DEBUG) {
Log.v(DetailsSupportFragment.TAG, "row selected position " + selectedPosition + " subposition " + selectedSubPosition);
}
DetailsSupportFragment.this.onRowSelected(selectedPosition, selectedSubPosition);
if (DetailsSupportFragment.this.mExternalOnItemViewSelectedListener != null) {
DetailsSupportFragment.this.mExternalOnItemViewSelectedListener.onItemSelected(viewHolder, obj, viewHolder2, row);
}
}
}
class C00612 implements Runnable {
C00612() {
}
public void run() {
DetailsSupportFragment.this.mRowsSupportFragment.setEntranceTransitionState(true);
}
}
class SetSelectionRunnable implements Runnable {
int mPosition;
boolean mSmooth;
private SetSelectionRunnable() {
this.mSmooth = true;
}
public void run() {
DetailsSupportFragment.this.mRowsSupportFragment.setSelectedPosition(this.mPosition, this.mSmooth);
}
}
public /* bridge */ /* synthetic */ Drawable getBadgeDrawable() {
return super.getBadgeDrawable();
}
public /* bridge */ /* synthetic */ int getSearchAffordanceColor() {
return super.getSearchAffordanceColor();
}
public /* bridge */ /* synthetic */ Colors getSearchAffordanceColors() {
return super.getSearchAffordanceColors();
}
public /* bridge */ /* synthetic */ String getTitle() {
return super.getTitle();
}
public /* bridge */ /* synthetic */ void onDestroyView() {
super.onDestroyView();
}
public /* bridge */ /* synthetic */ void onPause() {
super.onPause();
}
public /* bridge */ /* synthetic */ void onResume() {
super.onResume();
}
public /* bridge */ /* synthetic */ void onSaveInstanceState(Bundle bundle) {
super.onSaveInstanceState(bundle);
}
public /* bridge */ /* synthetic */ void onViewCreated(View view, Bundle bundle) {
super.onViewCreated(view, bundle);
}
public /* bridge */ /* synthetic */ void prepareEntranceTransition() {
super.prepareEntranceTransition();
}
public /* bridge */ /* synthetic */ void setBadgeDrawable(Drawable drawable) {
super.setBadgeDrawable(drawable);
}
public /* bridge */ /* synthetic */ void setOnSearchClickedListener(OnClickListener onClickListener) {
super.setOnSearchClickedListener(onClickListener);
}
public /* bridge */ /* synthetic */ void setSearchAffordanceColor(int i) {
super.setSearchAffordanceColor(i);
}
public /* bridge */ /* synthetic */ void setSearchAffordanceColors(Colors colors) {
super.setSearchAffordanceColors(colors);
}
public /* bridge */ /* synthetic */ void setTitle(String str) {
super.setTitle(str);
}
public /* bridge */ /* synthetic */ void startEntranceTransition() {
super.startEntranceTransition();
}
public void setAdapter(ObjectAdapter objectAdapter) {
this.mAdapter = objectAdapter;
Presenter[] presenters = objectAdapter.getPresenterSelector().getPresenters();
if (presenters != null) {
for (Presenter presenter : presenters) {
setupPresenter(presenter);
}
} else {
Log.e(TAG, "PresenterSelector.getPresenters() not implemented");
}
if (this.mRowsSupportFragment != null) {
this.mRowsSupportFragment.setAdapter(objectAdapter);
}
}
public ObjectAdapter getAdapter() {
return this.mAdapter;
}
public void setOnItemViewSelectedListener(OnItemViewSelectedListener onItemViewSelectedListener) {
this.mExternalOnItemViewSelectedListener = onItemViewSelectedListener;
}
public void setOnItemViewClickedListener(OnItemViewClickedListener onItemViewClickedListener) {
if (this.mOnItemViewClickedListener != onItemViewClickedListener) {
this.mOnItemViewClickedListener = onItemViewClickedListener;
if (this.mRowsSupportFragment != null) {
this.mRowsSupportFragment.setOnItemViewClickedListener(onItemViewClickedListener);
}
}
}
public OnItemViewClickedListener getOnItemViewClickedListener() {
return this.mOnItemViewClickedListener;
}
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
this.mContainerListAlignTop = getResources().getDimensionPixelSize(C0029R.dimen.lb_details_rows_align_top);
}
public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
View inflate = layoutInflater.inflate(C0029R.layout.lb_details_fragment, viewGroup, false);
ViewGroup viewGroup2 = (ViewGroup) inflate.findViewById(C0029R.id.details_fragment_root);
View inflateTitle = inflateTitle(layoutInflater, viewGroup2, bundle);
if (inflateTitle != null) {
viewGroup2.addView(inflateTitle);
}
this.mRowsSupportFragment = (RowsSupportFragment) getChildFragmentManager().findFragmentById(C0029R.id.details_rows_dock);
if (this.mRowsSupportFragment == null) {
this.mRowsSupportFragment = new RowsSupportFragment();
getChildFragmentManager().beginTransaction().replace(C0029R.id.details_rows_dock, this.mRowsSupportFragment).commit();
}
this.mRowsSupportFragment.setAdapter(this.mAdapter);
this.mRowsSupportFragment.setOnItemViewSelectedListener(this.mOnItemViewSelectedListener);
this.mRowsSupportFragment.setOnItemViewClickedListener(this.mOnItemViewClickedListener);
if (inflateTitle != null) {
View findViewById = inflateTitle.findViewById(C0029R.id.browse_title_group);
if (findViewById instanceof TitleView) {
setTitleView((TitleView) findViewById);
} else {
setTitleView(null);
}
}
this.mSceneAfterEntranceTransition = sTransitionHelper.createScene((ViewGroup) inflate, new C00612());
return inflate;
}
protected View inflateTitle(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
return layoutInflater.inflate(C0029R.layout.lb_browse_title, viewGroup, false);
}
void setVerticalGridViewLayout(VerticalGridView verticalGridView) {
verticalGridView.setItemAlignmentOffset(-this.mContainerListAlignTop);
verticalGridView.setItemAlignmentOffsetPercent(-1.0f);
verticalGridView.setWindowAlignmentOffset(0);
verticalGridView.setWindowAlignmentOffsetPercent(-1.0f);
verticalGridView.setWindowAlignment(0);
}
protected void setupPresenter(Presenter presenter) {
if (presenter instanceof FullWidthDetailsOverviewRowPresenter) {
setupDetailsOverviewRowPresenter((FullWidthDetailsOverviewRowPresenter) presenter);
}
}
protected void setupDetailsOverviewRowPresenter(FullWidthDetailsOverviewRowPresenter fullWidthDetailsOverviewRowPresenter) {
ItemAlignmentFacet itemAlignmentFacet = new ItemAlignmentFacet();
ItemAlignmentDef itemAlignmentDef = new ItemAlignmentDef();
itemAlignmentDef.setItemAlignmentViewId(C0029R.id.details_frame);
itemAlignmentDef.setItemAlignmentOffset(-getResources().getDimensionPixelSize(C0029R.dimen.lb_details_v2_align_pos_for_actions));
itemAlignmentDef.setItemAlignmentOffsetPercent(0.0f);
ItemAlignmentDef itemAlignmentDef2 = new ItemAlignmentDef();
itemAlignmentDef2.setItemAlignmentViewId(C0029R.id.details_frame);
itemAlignmentDef2.setItemAlignmentFocusViewId(C0029R.id.details_overview_description);
itemAlignmentDef2.setItemAlignmentOffset(-getResources().getDimensionPixelSize(C0029R.dimen.lb_details_v2_align_pos_for_description));
itemAlignmentDef2.setItemAlignmentOffsetPercent(0.0f);
itemAlignmentFacet.setAlignmentDefs(new ItemAlignmentDef[]{itemAlignmentDef, itemAlignmentDef2});
fullWidthDetailsOverviewRowPresenter.setFacet(ItemAlignmentFacet.class, itemAlignmentFacet);
}
VerticalGridView getVerticalGridView() {
return this.mRowsSupportFragment == null ? null : this.mRowsSupportFragment.getVerticalGridView();
}
RowsSupportFragment getRowsSupportFragment() {
return this.mRowsSupportFragment;
}
private void setupChildFragmentLayout() {
setVerticalGridViewLayout(this.mRowsSupportFragment.getVerticalGridView());
}
private void setupFocusSearchListener() {
TitleHelper titleHelper = getTitleHelper();
if (titleHelper != null) {
((BrowseFrameLayout) getView().findViewById(C0029R.id.details_fragment_root)).setOnFocusSearchListener(titleHelper.getOnFocusSearchListener());
}
}
public void setSelectedPosition(int i) {
setSelectedPosition(i, true);
}
public void setSelectedPosition(int i, boolean z) {
this.mSetSelectionRunnable.mPosition = i;
this.mSetSelectionRunnable.mSmooth = z;
if (getView() != null && getView().getHandler() != null) {
getView().getHandler().post(this.mSetSelectionRunnable);
}
}
private void onRowSelected(int i, int i2) {
ObjectAdapter adapter = getAdapter();
if (adapter == null || adapter.size() == 0 || (i == 0 && i2 == 0)) {
showTitle(true);
} else {
showTitle(false);
}
if (adapter != null && adapter.size() > i) {
VerticalGridView verticalGridView = getVerticalGridView();
int childCount = verticalGridView.getChildCount();
for (int i3 = 0; i3 < childCount; i3++) {
ItemBridgeAdapter.ViewHolder viewHolder = (ItemBridgeAdapter.ViewHolder) verticalGridView.getChildViewHolder(verticalGridView.getChildAt(i3));
RowPresenter rowPresenter = (RowPresenter) viewHolder.getPresenter();
onSetRowStatus(rowPresenter, rowPresenter.getRowViewHolder(viewHolder.getViewHolder()), viewHolder.getAdapterPosition(), i, i2);
}
}
}
protected void onSetRowStatus(RowPresenter rowPresenter, RowPresenter.ViewHolder viewHolder, int i, int i2, int i3) {
if (rowPresenter instanceof FullWidthDetailsOverviewRowPresenter) {
onSetDetailsOverviewRowStatus((FullWidthDetailsOverviewRowPresenter) rowPresenter, (FullWidthDetailsOverviewRowPresenter.ViewHolder) viewHolder, i, i2, i3);
}
}
protected void onSetDetailsOverviewRowStatus(FullWidthDetailsOverviewRowPresenter fullWidthDetailsOverviewRowPresenter, FullWidthDetailsOverviewRowPresenter.ViewHolder viewHolder, int i, int i2, int i3) {
if (i2 > i) {
fullWidthDetailsOverviewRowPresenter.setState(viewHolder, 0);
} else if (i2 == i && i3 == 1) {
fullWidthDetailsOverviewRowPresenter.setState(viewHolder, 0);
} else if (i2 == i && i3 == 0) {
fullWidthDetailsOverviewRowPresenter.setState(viewHolder, 1);
} else {
fullWidthDetailsOverviewRowPresenter.setState(viewHolder, 2);
}
}
public void onStart() {
super.onStart();
setupChildFragmentLayout();
setupFocusSearchListener();
this.mRowsSupportFragment.getView().requestFocus();
if (isEntranceTransitionEnabled()) {
this.mRowsSupportFragment.onTransitionPrepare();
this.mRowsSupportFragment.onTransitionStart();
this.mRowsSupportFragment.setEntranceTransitionState(false);
}
}
protected Object createEntranceTransition() {
return sTransitionHelper.loadTransition(getActivity(), C0029R.transition.lb_details_enter_transition);
}
protected void runEntranceTransition(Object obj) {
sTransitionHelper.runTransition(this.mSceneAfterEntranceTransition, obj);
}
protected void onEntranceTransitionEnd() {
this.mRowsSupportFragment.onTransitionEnd();
}
}
package android.support.v17.leanback.app;
import android.app.Fragment;
import android.graphics.Paint;
import android.graphics.Paint.FontMetricsInt;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v17.leanback.C0029R;
import android.support.v17.leanback.widget.TitleView;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.ViewGroup.MarginLayoutParams;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class ErrorFragment extends Fragment {
private Drawable mBackgroundDrawable;
private Drawable mBadgeDrawable;
private Button mButton;
private OnClickListener mButtonClickListener;
private String mButtonText;
private Drawable mDrawable;
private View mErrorFrame;
private ImageView mImageView;
private boolean mIsBackgroundTranslucent = true;
private CharSequence mMessage;
private TextView mTextView;
private String mTitle;
private TitleView mTitleView;
public void setBadgeDrawable(Drawable drawable) {
this.mBadgeDrawable = drawable;
updateTitle();
}
public Drawable getBadgeDrawable() {
return this.mBadgeDrawable;
}
public void setTitle(String str) {
this.mTitle = str;
updateTitle();
}
public String getTitle() {
return this.mTitle;
}
public void setDefaultBackground(boolean z) {
this.mBackgroundDrawable = null;
this.mIsBackgroundTranslucent = z;
updateBackground();
updateMessage();
}
public boolean isBackgroundTranslucent() {
return this.mIsBackgroundTranslucent;
}
public void setBackgroundDrawable(Drawable drawable) {
this.mBackgroundDrawable = drawable;
if (drawable != null) {
int opacity = drawable.getOpacity();
boolean z = opacity == -3 || opacity == -2;
this.mIsBackgroundTranslucent = z;
}
updateBackground();
updateMessage();
}
public Drawable getBackgroundDrawable() {
return this.mBackgroundDrawable;
}
public void setImageDrawable(Drawable drawable) {
this.mDrawable = drawable;
updateImageDrawable();
}
public Drawable getImageDrawable() {
return this.mDrawable;
}
public void setMessage(CharSequence charSequence) {
this.mMessage = charSequence;
updateMessage();
}
public CharSequence getMessage() {
return this.mMessage;
}
public void setButtonText(String str) {
this.mButtonText = str;
updateButton();
}
public String getButtonText() {
return this.mButtonText;
}
public void setButtonClickListener(OnClickListener onClickListener) {
this.mButtonClickListener = onClickListener;
updateButton();
}
public OnClickListener getButtonClickListener() {
return this.mButtonClickListener;
}
public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
View inflate = layoutInflater.inflate(C0029R.layout.lb_error_fragment, viewGroup, false);
this.mErrorFrame = inflate.findViewById(C0029R.id.error_frame);
updateBackground();
this.mImageView = (ImageView) inflate.findViewById(C0029R.id.image);
updateImageDrawable();
this.mTextView = (TextView) inflate.findViewById(C0029R.id.message);
updateMessage();
this.mButton = (Button) inflate.findViewById(C0029R.id.button);
updateButton();
this.mTitleView = (TitleView) inflate.findViewById(C0029R.id.browse_title_group);
updateTitle();
FontMetricsInt fontMetricsInt = getFontMetricsInt(this.mTextView);
setTopMargin(this.mTextView, viewGroup.getResources().getDimensionPixelSize(C0029R.dimen.lb_error_under_image_baseline_margin) + fontMetricsInt.ascent);
setTopMargin(this.mButton, viewGroup.getResources().getDimensionPixelSize(C0029R.dimen.lb_error_under_message_baseline_margin) - fontMetricsInt.descent);
return inflate;
}
private void updateBackground() {
if (this.mErrorFrame == null) {
return;
}
if (this.mBackgroundDrawable != null) {
this.mErrorFrame.setBackground(this.mBackgroundDrawable);
} else {
this.mErrorFrame.setBackgroundColor(this.mErrorFrame.getResources().getColor(this.mIsBackgroundTranslucent ? C0029R.color.lb_error_background_color_translucent : C0029R.color.lb_error_background_color_opaque));
}
}
private void updateTitle() {
if (this.mTitleView != null) {
this.mTitleView.setTitle(this.mTitle);
this.mTitleView.setBadgeDrawable(this.mBadgeDrawable);
}
}
private void updateMessage() {
if (this.mTextView != null) {
this.mTextView.setText(this.mMessage);
this.mTextView.setVisibility(TextUtils.isEmpty(this.mMessage) ? 8 : 0);
}
}
private void updateImageDrawable() {
if (this.mImageView != null) {
this.mImageView.setImageDrawable(this.mDrawable);
this.mImageView.setVisibility(this.mDrawable == null ? 8 : 0);
}
}
private void updateButton() {
if (this.mButton != null) {
this.mButton.setText(this.mButtonText);
this.mButton.setOnClickListener(this.mButtonClickListener);
this.mButton.setVisibility(TextUtils.isEmpty(this.mButtonText) ? 8 : 0);
this.mButton.requestFocus();
}
}
public void onStart() {
super.onStart();
this.mErrorFrame.requestFocus();
}
private static FontMetricsInt getFontMetricsInt(TextView textView) {
Paint paint = new Paint(1);
paint.setTextSize(textView.getTextSize());
paint.setTypeface(textView.getTypeface());
return paint.getFontMetricsInt();
}
private static void setTopMargin(TextView textView, int i) {
MarginLayoutParams marginLayoutParams = (MarginLayoutParams) textView.getLayoutParams();
marginLayoutParams.topMargin = i;
textView.setLayoutParams(marginLayoutParams);
}
}
package android.support.v17.leanback.app;
import android.graphics.Paint;
import android.graphics.Paint.FontMetricsInt;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v17.leanback.C0029R;
import android.support.v17.leanback.widget.TitleView;
import android.support.v4.app.Fragment;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.view.ViewGroup.MarginLayoutParams;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class ErrorSupportFragment extends Fragment {
private Drawable mBackgroundDrawable;
private Drawable mBadgeDrawable;
private Button mButton;
private OnClickListener mButtonClickListener;
private String mButtonText;
private Drawable mDrawable;
private View mErrorFrame;
private ImageView mImageView;
private boolean mIsBackgroundTranslucent = true;
private CharSequence mMessage;
private TextView mTextView;
private String mTitle;
private TitleView mTitleView;
public void setBadgeDrawable(Drawable drawable) {
this.mBadgeDrawable = drawable;
updateTitle();
}
public Drawable getBadgeDrawable() {
return this.mBadgeDrawable;
}
public void setTitle(String str) {
this.mTitle = str;
updateTitle();
}
public String getTitle() {
return this.mTitle;
}
public void setDefaultBackground(boolean z) {
this.mBackgroundDrawable = null;
this.mIsBackgroundTranslucent = z;
updateBackground();
updateMessage();
}
public boolean isBackgroundTranslucent() {
return this.mIsBackgroundTranslucent;
}
public void setBackgroundDrawable(Drawable drawable) {
this.mBackgroundDrawable = drawable;
if (drawable != null) {
int opacity = drawable.getOpacity();
boolean z = opacity == -3 || opacity == -2;
this.mIsBackgroundTranslucent = z;
}
updateBackground();
updateMessage();
}
public Drawable getBackgroundDrawable() {
return this.mBackgroundDrawable;
}
public void setImageDrawable(Drawable drawable) {
this.mDrawable = drawable;
updateImageDrawable();
}
public Drawable getImageDrawable() {
return this.mDrawable;
}
public void setMessage(CharSequence charSequence) {
this.mMessage = charSequence;
updateMessage();
}
public CharSequence getMessage() {
return this.mMessage;
}
public void setButtonText(String str) {
this.mButtonText = str;
updateButton();
}
public String getButtonText() {
return this.mButtonText;
}
public void setButtonClickListener(OnClickListener onClickListener) {
this.mButtonClickListener = onClickListener;
updateButton();
}
public OnClickListener getButtonClickListener() {
return this.mButtonClickListener;
}
public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
View inflate = layoutInflater.inflate(C0029R.layout.lb_error_fragment, viewGroup, false);
this.mErrorFrame = inflate.findViewById(C0029R.id.error_frame);
updateBackground();
this.mImageView = (ImageView) inflate.findViewById(C0029R.id.image);
updateImageDrawable();
this.mTextView = (TextView) inflate.findViewById(C0029R.id.message);
updateMessage();
this.mButton = (Button) inflate.findViewById(C0029R.id.button);
updateButton();
this.mTitleView = (TitleView) inflate.findViewById(C0029R.id.browse_title_group);
updateTitle();
FontMetricsInt fontMetricsInt = getFontMetricsInt(this.mTextView);
setTopMargin(this.mTextView, viewGroup.getResources().getDimensionPixelSize(C0029R.dimen.lb_error_under_image_baseline_margin) + fontMetricsInt.ascent);
setTopMargin(this.mButton, viewGroup.getResources().getDimensionPixelSize(C0029R.dimen.lb_error_under_message_baseline_margin) - fontMetricsInt.descent);
return inflate;
}
private void updateBackground() {
if (this.mErrorFrame == null) {
return;
}
if (this.mBackgroundDrawable != null) {
this.mErrorFrame.setBackground(this.mBackgroundDrawable);
} else {
this.mErrorFrame.setBackgroundColor(this.mErrorFrame.getResources().getColor(this.mIsBackgroundTranslucent ? C0029R.color.lb_error_background_color_translucent : C0029R.color.lb_error_background_color_opaque));
}
}
private void updateTitle() {
if (this.mTitleView != null) {
this.mTitleView.setTitle(this.mTitle);
this.mTitleView.setBadgeDrawable(this.mBadgeDrawable);
}
}
private void updateMessage() {
if (this.mTextView != null) {
this.mTextView.setText(this.mMessage);
this.mTextView.setVisibility(TextUtils.isEmpty(this.mMessage) ? 8 : 0);
}
}
private void updateImageDrawable() {
if (this.mImageView != null) {
this.mImageView.setImageDrawable(this.mDrawable);
this.mImageView.setVisibility(this.mDrawable == null ? 8 : 0);
}
}
private void updateButton() {
if (this.mButton != null) {
this.mButton.setText(this.mButtonText);
this.mButton.setOnClickListener(this.mButtonClickListener);
this.mButton.setVisibility(TextUtils.isEmpty(this.mButtonText) ? 8 : 0);
this.mButton.requestFocus();
}
}
public void onStart() {
super.onStart();
this.mErrorFrame.requestFocus();
}
private static FontMetricsInt getFontMetricsInt(TextView textView) {
Paint paint = new Paint(1);
paint.setTextSize(textView.getTextSize());
paint.setTypeface(textView.getTypeface());
return paint.getFontMetricsInt();
}
private static void setTopMargin(TextView textView, int i) {
MarginLayoutParams marginLayoutParams = (MarginLayoutParams) textView.getLayoutParams();
marginLayoutParams.topMargin = i;
textView.setLayoutParams(marginLayoutParams);
}
}
package android.support.v17.leanback.app;
import android.media.AudioManager;
import android.support.v17.leanback.widget.GuidedAction;
import android.support.v17.leanback.widget.GuidedActionsStylist;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.Adapter;
import android.support.v7.widget.RecyclerView.ViewHolder;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.view.View.OnKeyListener;
import android.view.ViewGroup;
import java.util.ArrayList;
import java.util.List;
class GuidedActionAdapter extends Adapter {
private static final boolean DEBUG = false;
private static final String TAG = "GuidedActionAdapter";
private final ActionOnFocusListener mActionOnFocusListener;
private final ActionOnKeyListener mActionOnKeyListener;
private final List<GuidedAction> mActions;
private ClickListener mClickListener;
private final OnClickListener mOnClickListener = new C00621();
private RecyclerView mRecyclerView;
private GuidedActionsStylist mStylist;
class C00621 implements OnClickListener {
C00621() {
}
public void onClick(View view) {
if (view != null && view.getWindowToken() != null && GuidedActionAdapter.this.mClickListener != null) {
GuidedAction action = ((ActionViewHolder) GuidedActionAdapter.this.mRecyclerView.getChildViewHolder(view)).getAction();
if (action.isEnabled() && !action.infoOnly()) {
GuidedActionAdapter.this.mClickListener.onGuidedActionClicked(action);
}
}
}
}
class ActionOnFocusListener implements OnFocusChangeListener {
private FocusListener mFocusListener;
private View mSelectedView;
ActionOnFocusListener(FocusListener focusListener) {
this.mFocusListener = focusListener;
}
public void setFocusListener(FocusListener focusListener) {
this.mFocusListener = focusListener;
}
public void unFocus() {
if (this.mSelectedView != null) {
ViewHolder childViewHolder = GuidedActionAdapter.this.mRecyclerView.getChildViewHolder(this.mSelectedView);
if (childViewHolder != null) {
GuidedActionAdapter.this.mStylist.onAnimateItemFocused(((ActionViewHolder) childViewHolder).mStylistViewHolder, false);
return;
}
Log.w(GuidedActionAdapter.TAG, "RecyclerView returned null view holder", new Throwable());
}
}
public void onFocusChange(View view, boolean z) {
ActionViewHolder actionViewHolder = (ActionViewHolder) GuidedActionAdapter.this.mRecyclerView.getChildViewHolder(view);
GuidedActionAdapter.this.mStylist.onAnimateItemFocused(actionViewHolder.mStylistViewHolder, z);
if (z) {
this.mSelectedView = view;
if (this.mFocusListener != null) {
this.mFocusListener.onGuidedActionFocused(actionViewHolder.getAction());
}
} else if (this.mSelectedView == view) {
this.mSelectedView = null;
}
}
}
class ActionOnKeyListener implements OnKeyListener {
private final List<GuidedAction> mActions;
private ClickListener mClickListener;
private boolean mKeyPressed = false;
public ActionOnKeyListener(ClickListener clickListener, List<GuidedAction> list) {
this.mClickListener = clickListener;
this.mActions = list;
}
public void setListener(ClickListener clickListener) {
this.mClickListener = clickListener;
}
private void playSound(View view, int i) {
if (view.isSoundEffectsEnabled()) {
((AudioManager) view.getContext().getSystemService("audio")).playSoundEffect(i);
}
}
/* JADX WARNING: inconsistent code. */
/* Code decompiled incorrectly, please refer to instructions dump. */
public boolean onKey(android.view.View r7, int r8, android.view.KeyEvent r9) {
/*
r6 = this;
r1 = 1;
r2 = 0;
if (r7 == 0) goto L_0x0006;
L_0x0004:
if (r9 != 0) goto L_0x0008;
L_0x0006:
r1 = r2;
L_0x0007:
return r1;
L_0x0008:
switch(r8) {
case 23: goto L_0x000e;
case 66: goto L_0x000e;
case 99: goto L_0x000e;
case 100: goto L_0x000e;
case 160: goto L_0x000e;
default: goto L_0x000b;
};
L_0x000b:
r0 = r2;
L_0x000c:
r1 = r0;
goto L_0x0007;
L_0x000e:
r0 = android.support.v17.leanback.app.GuidedActionAdapter.this;
r0 = r0.mRecyclerView;
r0 = r0.getChildViewHolder(r7);
r0 = (android.support.v17.leanback.app.GuidedActionAdapter.ActionViewHolder) r0;
r3 = r0.getAction();
r4 = r3.isEnabled();
if (r4 == 0) goto L_0x002a;
L_0x0024:
r4 = r3.infoOnly();
if (r4 == 0) goto L_0x002e;
L_0x002a:
r9.getAction();
goto L_0x0007;
L_0x002e:
r4 = r9.getAction();
switch(r4) {
case 0: goto L_0x0036;
case 1: goto L_0x0050;
default: goto L_0x0035;
};
L_0x0035:
goto L_0x000b;
L_0x0036:
r3 = r6.mKeyPressed;
if (r3 != 0) goto L_0x000b;
L_0x003a:
r6.mKeyPressed = r1;
r6.playSound(r7, r2);
r2 = android.support.v17.leanback.app.GuidedActionAdapter.this;
r2 = r2.mStylist;
r0 = r0.mStylistViewHolder;
r3 = r6.mKeyPressed;
r2.onAnimateItemPressed(r0, r3);
r0 = r1;
goto L_0x000c;
L_0x0050:
r4 = r6.mKeyPressed;
if (r4 == 0) goto L_0x000b;
L_0x0054:
r6.mKeyPressed = r2;
r2 = android.support.v17.leanback.app.GuidedActionAdapter.this;
r2 = r2.mStylist;
r4 = r0.mStylistViewHolder;
r5 = r6.mKeyPressed;
r2.onAnimateItemPressed(r4, r5);
r6.handleCheckedActions(r0, r3);
r0 = r6.mClickListener;
r0.onGuidedActionClicked(r3);
r0 = r1;
goto L_0x000c;
*/
throw new UnsupportedOperationException("Method not decompiled: android.support.v17.leanback.app.GuidedActionAdapter.ActionOnKeyListener.onKey(android.view.View, int, android.view.KeyEvent):boolean");
}
private void handleCheckedActions(ActionViewHolder actionViewHolder, GuidedAction guidedAction) {
int checkSetId = guidedAction.getCheckSetId();
if (checkSetId != 0) {
int size = this.mActions.size();
for (int i = 0; i < size; i++) {
GuidedAction guidedAction2 = (GuidedAction) this.mActions.get(i);
if (guidedAction2 != guidedAction && guidedAction2.getCheckSetId() == checkSetId && guidedAction2.isChecked()) {
guidedAction2.setChecked(false);
ViewHolder findViewHolderForPosition = GuidedActionAdapter.this.mRecyclerView.findViewHolderForPosition(i);
if (findViewHolderForPosition != null) {
GuidedActionAdapter.this.mStylist.onAnimateItemChecked(((ActionViewHolder) findViewHolderForPosition).mStylistViewHolder, false);
}
}
}
if (!guidedAction.isChecked()) {
guidedAction.setChecked(true);
GuidedActionAdapter.this.mStylist.onAnimateItemChecked(actionViewHolder.mStylistViewHolder, true);
}
}
}
}
class ActionViewHolder extends ViewHolder {
private GuidedAction mAction;
private final GuidedActionsStylist.ViewHolder mStylistViewHolder;
public ActionViewHolder(View view, GuidedActionsStylist.ViewHolder viewHolder) {
super(view);
this.mStylistViewHolder = viewHolder;
}
public GuidedAction getAction() {
return this.mAction;
}
public void setAction(GuidedAction guidedAction) {
this.mAction = guidedAction;
}
}
public interface ClickListener {
void onGuidedActionClicked(GuidedAction guidedAction);
}
public interface FocusListener {
void onGuidedActionFocused(GuidedAction guidedAction);
}
public GuidedActionAdapter(List<GuidedAction> list, ClickListener clickListener, FocusListener focusListener, GuidedActionsStylist guidedActionsStylist) {
this.mActions = new ArrayList(list);
this.mClickListener = clickListener;
this.mStylist = guidedActionsStylist;
this.mActionOnKeyListener = new ActionOnKeyListener(clickListener, this.mActions);
this.mActionOnFocusListener = new ActionOnFocusListener(focusListener);
}
public void setActions(List<GuidedAction> list) {
this.mActionOnFocusListener.unFocus();
this.mActions.clear();
this.mActions.addAll(list);
notifyDataSetChanged();
}
public int getCount() {
return this.mActions.size();
}
public GuidedAction getItem(int i) {
return (GuidedAction) this.mActions.get(i);
}
public void setClickListener(ClickListener clickListener) {
this.mClickListener = clickListener;
this.mActionOnKeyListener.setListener(clickListener);
}
public void setFocusListener(FocusListener focusListener) {
this.mActionOnFocusListener.setFocusListener(focusListener);
}
public List<GuidedAction> getActions() {
return new ArrayList(this.mActions);
}
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
this.mRecyclerView = recyclerView;
}
public void onDetachedFromRecyclerView(RecyclerView recyclerView) {
this.mRecyclerView = null;
}
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
GuidedActionsStylist.ViewHolder onCreateViewHolder = this.mStylist.onCreateViewHolder(viewGroup);
View view = onCreateViewHolder.view;
view.setOnKeyListener(this.mActionOnKeyListener);
view.setOnClickListener(this.mOnClickListener);
view.setOnFocusChangeListener(this.mActionOnFocusListener);
return new ActionViewHolder(view, onCreateViewHolder);
}
public void onBindViewHolder(ViewHolder viewHolder, int i) {
if (i < this.mActions.size()) {
ActionViewHolder actionViewHolder = (ActionViewHolder) viewHolder;
GuidedAction guidedAction = (GuidedAction) this.mActions.get(i);
actionViewHolder.setAction(guidedAction);
this.mStylist.onBindViewHolder(actionViewHolder.mStylistViewHolder, guidedAction);
}
}
public int getItemCount() {
return this.mActions.size();
}
}
package android.support.v17.leanback.app;
import android.animation.Animator;
import android.animation.AnimatorSet;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.content.Context;
import android.os.Bundle;
import android.support.v17.leanback.C0029R;
import android.support.v17.leanback.animation.UntargetableAnimatorSet;
import android.support.v17.leanback.app.GuidedActionAdapter.ClickListener;
import android.support.v17.leanback.app.GuidedActionAdapter.FocusListener;
import android.support.v17.leanback.widget.GuidanceStylist;
import android.support.v17.leanback.widget.GuidanceStylist.Guidance;
import android.support.v17.leanback.widget.GuidedAction;
import android.support.v17.leanback.widget.GuidedActionsStylist;
import android.support.v17.leanback.widget.VerticalGridView;
import android.util.Log;
import android.util.TypedValue;
import android.view.ContextThemeWrapper;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewTreeObserver.OnGlobalLayoutListener;
import java.util.ArrayList;
import java.util.List;
public class GuidedStepFragment extends Fragment implements ClickListener, FocusListener {
private static final int ANIMATION_FRAGMENT_ENTER = 1;
private static final int ANIMATION_FRAGMENT_ENTER_POP = 3;
private static final int ANIMATION_FRAGMENT_EXIT = 2;
private static final int ANIMATION_FRAGMENT_EXIT_POP = 4;
private static final boolean DEBUG = true;
private static final String EXTRA_ACTION_ENTRY_TRANSITION_ENABLED = "entryTransitionEnabled";
private static final String EXTRA_ACTION_SELECTED_INDEX = "selectedIndex";
private static final String EXTRA_ENTRY_TRANSITION_PERFORMED = "entryTransitionPerformed";
private static final String TAG = "GuidedStepFragment";
private static final String TAG_LEAN_BACK_ACTIONS_FRAGMENT = "leanBackGuidedStepFragment";
private List<GuidedAction> mActions = new ArrayList();
private GuidedActionsStylist mActionsStylist = onCreateActionsStylist();
private GuidedActionAdapter mAdapter;
private boolean mEntryTransitionEnabled = true;
private boolean mEntryTransitionPerformed;
private GuidanceStylist mGuidanceStylist = onCreateGuidanceStylist();
private VerticalGridView mListView;
private int mSelectedIndex = -1;
private int mTheme = onProvideTheme();
public GuidanceStylist onCreateGuidanceStylist() {
return new GuidanceStylist();
}
public GuidedActionsStylist onCreateActionsStylist() {
return new GuidedActionsStylist();
}
public int onProvideTheme() {
return -1;
}
public Guidance onCreateGuidance(Bundle bundle) {
return new Guidance("", "", "", null);
}
public void onCreateActions(List<GuidedAction> list, Bundle bundle) {
}
public void onGuidedActionClicked(GuidedAction guidedAction) {
}
public void onGuidedActionFocused(GuidedAction guidedAction) {
}
public static int add(FragmentManager fragmentManager, GuidedStepFragment guidedStepFragment) {
return add(fragmentManager, guidedStepFragment, 16908290);
}
private static int add(FragmentManager fragmentManager, GuidedStepFragment guidedStepFragment, int i) {
int i2 = getCurrentGuidedStepFragment(fragmentManager) != null ? 1 : 0;
FragmentTransaction beginTransaction = fragmentManager.beginTransaction();
if (i2 != 0) {
beginTransaction.setCustomAnimations(1, 2, 3, 4);
beginTransaction.addToBackStack(null);
}
return beginTransaction.replace(i, guidedStepFragment, TAG_LEAN_BACK_ACTIONS_FRAGMENT).commit();
}
public static GuidedStepFragment getCurrentGuidedStepFragment(FragmentManager fragmentManager) {
Fragment findFragmentByTag = fragmentManager.findFragmentByTag(TAG_LEAN_BACK_ACTIONS_FRAGMENT);
if (findFragmentByTag instanceof GuidedStepFragment) {
return (GuidedStepFragment) findFragmentByTag;
}
return null;
}
public GuidanceStylist getGuidanceStylist() {
return this.mGuidanceStylist;
}
public GuidedActionsStylist getGuidedActionsStylist() {
return this.mActionsStylist;
}
public List<GuidedAction> getActions() {
return this.mActions;
}
public void setActions(List<GuidedAction> list) {
this.mActions = list;
if (this.mAdapter != null) {
this.mAdapter.setActions(this.mActions);
}
}
public View getActionItemView(int i) {
return this.mListView.findViewHolderForPosition(i).itemView;
}
public void setSelectedActionPosition(int i) {
this.mListView.setSelectedPosition(i);
}
public int getSelectedActionPosition() {
return this.mListView.getSelectedPosition();
}
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
Log.v(TAG, "onCreate");
Bundle arguments = bundle != null ? bundle : getArguments();
if (arguments != null) {
if (this.mSelectedIndex == -1) {
this.mSelectedIndex = arguments.getInt(EXTRA_ACTION_SELECTED_INDEX, -1);
}
this.mEntryTransitionEnabled = arguments.getBoolean(EXTRA_ACTION_ENTRY_TRANSITION_ENABLED, true);
this.mEntryTransitionPerformed = arguments.getBoolean(EXTRA_ENTRY_TRANSITION_PERFORMED, false);
}
this.mActions.clear();
onCreateActions(this.mActions, bundle);
}
public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
Log.v(TAG, "onCreateView");
resolveTheme();
LayoutInflater themeInflater = getThemeInflater(layoutInflater);
View inflate = themeInflater.inflate(C0029R.layout.lb_guidedstep_fragment, viewGroup, false);
ViewGroup viewGroup2 = (ViewGroup) inflate.findViewById(C0029R.id.content_fragment);
ViewGroup viewGroup3 = (ViewGroup) inflate.findViewById(C0029R.id.action_fragment);
viewGroup2.addView(this.mGuidanceStylist.onCreateView(themeInflater, viewGroup2, onCreateGuidance(bundle)));
viewGroup3.addView(this.mActionsStylist.onCreateView(themeInflater, viewGroup3));
this.mAdapter = new GuidedActionAdapter(this.mActions, this, this, this.mActionsStylist);
this.mListView = this.mActionsStylist.getActionsGridView();
this.mListView.setAdapter(this.mAdapter);
int firstCheckedAction = (this.mSelectedIndex < 0 || this.mSelectedIndex >= this.mActions.size()) ? getFirstCheckedAction() : this.mSelectedIndex;
this.mListView.setSelectedPosition(firstCheckedAction);
return inflate;
}
public void onSaveInstanceState(Bundle bundle) {
super.onSaveInstanceState(bundle);
bundle.putInt(EXTRA_ACTION_SELECTED_INDEX, this.mListView != null ? getSelectedActionPosition() : this.mSelectedIndex);
bundle.putBoolean(EXTRA_ACTION_ENTRY_TRANSITION_ENABLED, this.mEntryTransitionEnabled);
bundle.putBoolean(EXTRA_ENTRY_TRANSITION_PERFORMED, this.mEntryTransitionPerformed);
}
public void onStart() {
Log.v(TAG, "onStart");
super.onStart();
if (isEntryTransitionEnabled() && !this.mEntryTransitionPerformed) {
this.mEntryTransitionPerformed = true;
performEntryTransition();
}
}
public Animator onCreateAnimator(int i, boolean z, int i2) {
Log.v(TAG, "onCreateAnimator: " + i + " " + z + " " + i2);
View view = getView();
List arrayList = new ArrayList();
switch (i2) {
case 1:
this.mGuidanceStylist.onFragmentEnter(arrayList);
this.mActionsStylist.onFragmentEnter(arrayList);
break;
case 2:
this.mGuidanceStylist.onFragmentExit(arrayList);
this.mActionsStylist.onFragmentExit(arrayList);
break;
case 3:
this.mGuidanceStylist.onFragmentReenter(arrayList);
this.mActionsStylist.onFragmentReenter(arrayList);
break;
case 4:
this.mGuidanceStylist.onFragmentReturn(arrayList);
this.mActionsStylist.onFragmentReturn(arrayList);
break;
default:
return super.onCreateAnimator(i, z, i2);
}
this.mEntryTransitionPerformed = true;
return createDummyAnimator(view, arrayList);
}
protected boolean isEntryTransitionEnabled() {
return this.mEntryTransitionEnabled;
}
protected void setEntryTransitionEnabled(boolean z) {
this.mEntryTransitionEnabled = z;
}
private boolean isGuidedStepTheme(Context context) {
int i = C0029R.attr.guidedStepThemeFlag;
TypedValue typedValue = new TypedValue();
boolean resolveAttribute = context.getTheme().resolveAttribute(i, typedValue, true);
Log.v(TAG, "Found guided step theme flag? " + resolveAttribute);
if (resolveAttribute && typedValue.type == 18 && typedValue.data != 0) {
return true;
}
return false;
}
private void resolveTheme() {
Context activity = getActivity();
if (this.mTheme == -1 && !isGuidedStepTheme(activity)) {
int i = C0029R.attr.guidedStepTheme;
TypedValue typedValue = new TypedValue();
boolean resolveAttribute = activity.getTheme().resolveAttribute(i, typedValue, true);
Log.v(TAG, "Found guided step theme reference? " + resolveAttribute);
if (resolveAttribute) {
if (isGuidedStepTheme(new ContextThemeWrapper(activity, typedValue.resourceId))) {
this.mTheme = typedValue.resourceId;
} else {
resolveAttribute = false;
}
}
if (!resolveAttribute) {
Log.e(TAG, "GuidedStepFragment does not have an appropriate theme set.");
}
}
}
private LayoutInflater getThemeInflater(LayoutInflater layoutInflater) {
return this.mTheme == -1 ? layoutInflater : layoutInflater.cloneInContext(new ContextThemeWrapper(getActivity(), this.mTheme));
}
private int getFirstCheckedAction() {
int size = this.mActions.size();
for (int i = 0; i < size; i++) {
if (((GuidedAction) this.mActions.get(i)).isChecked()) {
return i;
}
}
return 0;
}
private void performEntryTransition() {
Log.v(TAG, "performEntryTransition");
final View view = getView();
view.setVisibility(4);
Object arrayList = new ArrayList();
this.mGuidanceStylist.onActivityEnter(arrayList);
this.mActionsStylist.onActivityEnter(arrayList);
final Animator createDummyAnimator = createDummyAnimator(view, arrayList);
view.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
public void onGlobalLayout() {
view.getViewTreeObserver().removeOnGlobalLayoutListener(this);
if (GuidedStepFragment.this.isAdded()) {
view.setVisibility(0);
createDummyAnimator.start();
}
}
});
}
private Animator createDummyAnimator(View view, ArrayList<Animator> arrayList) {
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.playTogether(arrayList);
return new UntargetableAnimatorSet(animatorSet);
}
}
package android.support.v17.leanback.app;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.GradientDrawable;
import android.os.Bundle;
import android.support.v17.leanback.C0029R;
import android.support.v17.leanback.widget.FocusHighlightHelper;
import android.support.v17.leanback.widget.ItemBridgeAdapter;
import android.support.v17.leanback.widget.ItemBridgeAdapter.AdapterListener;
import android.support.v17.leanback.widget.ItemBridgeAdapter.Wrapper;
import android.support.v17.leanback.widget.PresenterSelector;
import android.support.v17.leanback.widget.Row;
import android.support.v17.leanback.widget.RowHeaderPresenter;
import android.support.v17.leanback.widget.RowHeaderPresenter.ViewHolder;
import android.support.v17.leanback.widget.SinglePresenterSelector;
import android.support.v17.leanback.widget.VerticalGridView;
import android.support.v7.widget.RecyclerView;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLayoutChangeListener;
import android.view.ViewGroup;
import android.widget.FrameLayout;
public class HeadersFragment extends BaseRowFragment {
private static final PresenterSelector sHeaderPresenter = new SinglePresenterSelector(new RowHeaderPresenter(C0029R.layout.lb_header));
private static OnLayoutChangeListener sLayoutChangeListener = new C00662();
private final AdapterListener mAdapterListener = new C00651();
private int mBackgroundColor;
private boolean mBackgroundColorSet;
private boolean mHeadersEnabled = true;
private boolean mHeadersGone = false;
private OnHeaderClickedListener mOnHeaderClickedListener;
private OnHeaderViewSelectedListener mOnHeaderViewSelectedListener;
private final Wrapper mWrapper = new C00673();
interface OnHeaderViewSelectedListener {
void onHeaderSelected(ViewHolder viewHolder, Row row);
}
interface OnHeaderClickedListener {
void onHeaderClicked();
}
class C00651 extends AdapterListener {
class C00641 implements OnClickListener {
C00641() {
}
public void onClick(View view) {
if (HeadersFragment.this.mOnHeaderClickedListener != null) {
HeadersFragment.this.mOnHeaderClickedListener.onHeaderClicked();
}
}
}
C00651() {
}
public void onCreate(ItemBridgeAdapter.ViewHolder viewHolder) {
View view = viewHolder.getViewHolder().view;
view.setOnClickListener(new C00641());
view.setFocusable(true);
view.setFocusableInTouchMode(true);
if (HeadersFragment.this.mWrapper != null) {
viewHolder.itemView.addOnLayoutChangeListener(HeadersFragment.sLayoutChangeListener);
} else {
view.addOnLayoutChangeListener(HeadersFragment.sLayoutChangeListener);
}
}
}
final class C00662 implements OnLayoutChangeListener {
C00662() {
}
public final void onLayoutChange(View view, int i, int i2, int i3, int i4, int i5, int i6, int i7, int i8) {
view.setPivotX(view.getLayoutDirection() == 1 ? (float) view.getWidth() : 0.0f);
view.setPivotY((float) (view.getMeasuredHeight() / 2));
}
}
class C00673 extends Wrapper {
C00673() {
}
public void wrap(View view, View view2) {
((FrameLayout) view).addView(view2);
}
public View createWrapper(View view) {
return new NoOverlappingFrameLayout(view.getContext());
}
}
class NoOverlappingFrameLayout extends FrameLayout {
public NoOverlappingFrameLayout(Context context) {
super(context);
}
public boolean hasOverlappingRendering() {
return false;
}
}
public /* bridge */ /* synthetic */ View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
return super.onCreateView(layoutInflater, viewGroup, bundle);
}
public /* bridge */ /* synthetic */ void onDestroyView() {
super.onDestroyView();
}
public /* bridge */ /* synthetic */ void setSelectedPosition(int i) {
super.setSelectedPosition(i);
}
public /* bridge */ /* synthetic */ void setSelectedPosition(int i, boolean z) {
super.setSelectedPosition(i, z);
}
public HeadersFragment() {
setPresenterSelector(sHeaderPresenter);
}
public void setOnHeaderClickedListener(OnHeaderClickedListener onHeaderClickedListener) {
this.mOnHeaderClickedListener = onHeaderClickedListener;
}
public void setOnHeaderViewSelectedListener(OnHeaderViewSelectedListener onHeaderViewSelectedListener) {
this.mOnHeaderViewSelectedListener = onHeaderViewSelectedListener;
}
VerticalGridView findGridViewFromRoot(View view) {
return (VerticalGridView) view.findViewById(C0029R.id.browse_headers);
}
void onRowSelected(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, int i, int i2) {
if (this.mOnHeaderViewSelectedListener == null) {
return;
}
if (viewHolder == null || i < 0) {
this.mOnHeaderViewSelectedListener.onHeaderSelected(null, null);
return;
}
this.mOnHeaderViewSelectedListener.onHeaderSelected((ViewHolder) ((ItemBridgeAdapter.ViewHolder) viewHolder).getViewHolder(), (Row) getAdapter().get(i));
}
int getLayoutResourceId() {
return C0029R.layout.lb_headers_fragment;
}
public void onViewCreated(View view, Bundle bundle) {
super.onViewCreated(view, bundle);
VerticalGridView verticalGridView = getVerticalGridView();
if (verticalGridView != null) {
if (getBridgeAdapter() != null) {
FocusHighlightHelper.setupHeaderItemFocusHighlight(verticalGridView);
}
view.setBackgroundColor(getBackgroundColor());
updateFadingEdgeToBrandColor(getBackgroundColor());
updateListViewVisibility();
}
}
private void updateListViewVisibility() {
VerticalGridView verticalGridView = getVerticalGridView();
if (verticalGridView != null) {
getView().setVisibility(this.mHeadersGone ? 8 : 0);
if (!this.mHeadersGone) {
if (this.mHeadersEnabled) {
verticalGridView.setChildrenVisibility(0);
} else {
verticalGridView.setChildrenVisibility(4);
}
}
}
}
void setHeadersEnabled(boolean z) {
this.mHeadersEnabled = z;
updateListViewVisibility();
}
void setHeadersGone(boolean z) {
this.mHeadersGone = z;
updateListViewVisibility();
}
void updateAdapter() {
super.updateAdapter();
ItemBridgeAdapter bridgeAdapter = getBridgeAdapter();
if (bridgeAdapter != null) {
bridgeAdapter.setAdapterListener(this.mAdapterListener);
bridgeAdapter.setWrapper(this.mWrapper);
}
if (bridgeAdapter != null && getVerticalGridView() != null) {
FocusHighlightHelper.setupHeaderItemFocusHighlight(getVerticalGridView());
}
}
void setBackgroundColor(int i) {
this.mBackgroundColor = i;
this.mBackgroundColorSet = true;
if (getView() != null) {
getView().setBackgroundColor(this.mBackgroundColor);
updateFadingEdgeToBrandColor(this.mBackgroundColor);
}
}
private void updateFadingEdgeToBrandColor(int i) {
Drawable background = getView().findViewById(C0029R.id.fade_out_edge).getBackground();
if (background instanceof GradientDrawable) {
background.mutate();
((GradientDrawable) background).setColors(new int[]{0, i});
}
}
int getBackgroundColor() {
if (getActivity() == null) {
throw new IllegalStateException("Activity must be attached");
} else if (this.mBackgroundColorSet) {
return this.mBackgroundColor;
} else {
TypedValue typedValue = new TypedValue();
if (getActivity().getTheme().resolveAttribute(C0029R.attr.defaultBrandColor, typedValue, true)) {
return getResources().getColor(typedValue.resourceId);
}
return getResources().getColor(C0029R.color.lb_default_brand_color);
}
}
void onTransitionStart() {
super.onTransitionStart();
if (!this.mHeadersEnabled) {
VerticalGridView verticalGridView = getVerticalGridView();
if (verticalGridView != null) {
verticalGridView.setDescendantFocusability(131072);
if (verticalGridView.hasFocus()) {
verticalGridView.requestFocus();
}
}
}
}
void onTransitionEnd() {
if (this.mHeadersEnabled) {
VerticalGridView verticalGridView = getVerticalGridView();
if (verticalGridView != null) {
verticalGridView.setDescendantFocusability(262144);
if (verticalGridView.hasFocus()) {
verticalGridView.requestFocus();
}
}
}
super.onTransitionEnd();
}
}
package android.support.v17.leanback.app;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.GradientDrawable;
import android.os.Bundle;
import android.support.v17.leanback.C0029R;
import android.support.v17.leanback.widget.FocusHighlightHelper;
import android.support.v17.leanback.widget.ItemBridgeAdapter;
import android.support.v17.leanback.widget.ItemBridgeAdapter.AdapterListener;
import android.support.v17.leanback.widget.ItemBridgeAdapter.Wrapper;
import android.support.v17.leanback.widget.PresenterSelector;
import android.support.v17.leanback.widget.Row;
import android.support.v17.leanback.widget.RowHeaderPresenter;
import android.support.v17.leanback.widget.RowHeaderPresenter.ViewHolder;
import android.support.v17.leanback.widget.SinglePresenterSelector;
import android.support.v17.leanback.widget.VerticalGridView;
import android.support.v7.widget.RecyclerView;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLayoutChangeListener;
import android.view.ViewGroup;
import android.widget.FrameLayout;
public class HeadersSupportFragment extends BaseRowSupportFragment {
private static final PresenterSelector sHeaderPresenter = new SinglePresenterSelector(new RowHeaderPresenter(C0029R.layout.lb_header));
private static OnLayoutChangeListener sLayoutChangeListener = new C00702();
private final AdapterListener mAdapterListener = new C00691();
private int mBackgroundColor;
private boolean mBackgroundColorSet;
private boolean mHeadersEnabled = true;
private boolean mHeadersGone = false;
private OnHeaderClickedListener mOnHeaderClickedListener;
private OnHeaderViewSelectedListener mOnHeaderViewSelectedListener;
private final Wrapper mWrapper = new C00713();
interface OnHeaderViewSelectedListener {
void onHeaderSelected(ViewHolder viewHolder, Row row);
}
interface OnHeaderClickedListener {
void onHeaderClicked();
}
class C00691 extends AdapterListener {
class C00681 implements OnClickListener {
C00681() {
}
public void onClick(View view) {
if (HeadersSupportFragment.this.mOnHeaderClickedListener != null) {
HeadersSupportFragment.this.mOnHeaderClickedListener.onHeaderClicked();
}
}
}
C00691() {
}
public void onCreate(ItemBridgeAdapter.ViewHolder viewHolder) {
View view = viewHolder.getViewHolder().view;
view.setOnClickListener(new C00681());
view.setFocusable(true);
view.setFocusableInTouchMode(true);
if (HeadersSupportFragment.this.mWrapper != null) {
viewHolder.itemView.addOnLayoutChangeListener(HeadersSupportFragment.sLayoutChangeListener);
} else {
view.addOnLayoutChangeListener(HeadersSupportFragment.sLayoutChangeListener);
}
}
}
final class C00702 implements OnLayoutChangeListener {
C00702() {
}
public final void onLayoutChange(View view, int i, int i2, int i3, int i4, int i5, int i6, int i7, int i8) {
view.setPivotX(view.getLayoutDirection() == 1 ? (float) view.getWidth() : 0.0f);
view.setPivotY((float) (view.getMeasuredHeight() / 2));
}
}
class C00713 extends Wrapper {
C00713() {
}
public void wrap(View view, View view2) {
((FrameLayout) view).addView(view2);
}
public View createWrapper(View view) {
return new NoOverlappingFrameLayout(view.getContext());
}
}
class NoOverlappingFrameLayout extends FrameLayout {
public NoOverlappingFrameLayout(Context context) {
super(context);
}
public boolean hasOverlappingRendering() {
return false;
}
}
public /* bridge */ /* synthetic */ View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
return super.onCreateView(layoutInflater, viewGroup, bundle);
}
public /* bridge */ /* synthetic */ void onDestroyView() {
super.onDestroyView();
}
public /* bridge */ /* synthetic */ void setSelectedPosition(int i) {
super.setSelectedPosition(i);
}
public /* bridge */ /* synthetic */ void setSelectedPosition(int i, boolean z) {
super.setSelectedPosition(i, z);
}
public HeadersSupportFragment() {
setPresenterSelector(sHeaderPresenter);
}
public void setOnHeaderClickedListener(OnHeaderClickedListener onHeaderClickedListener) {
this.mOnHeaderClickedListener = onHeaderClickedListener;
}
public void setOnHeaderViewSelectedListener(OnHeaderViewSelectedListener onHeaderViewSelectedListener) {
this.mOnHeaderViewSelectedListener = onHeaderViewSelectedListener;
}
VerticalGridView findGridViewFromRoot(View view) {
return (VerticalGridView) view.findViewById(C0029R.id.browse_headers);
}
void onRowSelected(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, int i, int i2) {
if (this.mOnHeaderViewSelectedListener == null) {
return;
}
if (viewHolder == null || i < 0) {
this.mOnHeaderViewSelectedListener.onHeaderSelected(null, null);
return;
}
this.mOnHeaderViewSelectedListener.onHeaderSelected((ViewHolder) ((ItemBridgeAdapter.ViewHolder) viewHolder).getViewHolder(), (Row) getAdapter().get(i));
}
int getLayoutResourceId() {
return C0029R.layout.lb_headers_fragment;
}
public void onViewCreated(View view, Bundle bundle) {
super.onViewCreated(view, bundle);
VerticalGridView verticalGridView = getVerticalGridView();
if (verticalGridView != null) {
if (getBridgeAdapter() != null) {
FocusHighlightHelper.setupHeaderItemFocusHighlight(verticalGridView);
}
view.setBackgroundColor(getBackgroundColor());
updateFadingEdgeToBrandColor(getBackgroundColor());
updateListViewVisibility();
}
}
private void updateListViewVisibility() {
VerticalGridView verticalGridView = getVerticalGridView();
if (verticalGridView != null) {
getView().setVisibility(this.mHeadersGone ? 8 : 0);
if (!this.mHeadersGone) {
if (this.mHeadersEnabled) {
verticalGridView.setChildrenVisibility(0);
} else {
verticalGridView.setChildrenVisibility(4);
}
}
}
}
void setHeadersEnabled(boolean z) {
this.mHeadersEnabled = z;
updateListViewVisibility();
}
void setHeadersGone(boolean z) {
this.mHeadersGone = z;
updateListViewVisibility();
}
void updateAdapter() {
super.updateAdapter();
ItemBridgeAdapter bridgeAdapter = getBridgeAdapter();
if (bridgeAdapter != null) {
bridgeAdapter.setAdapterListener(this.mAdapterListener);
bridgeAdapter.setWrapper(this.mWrapper);
}
if (bridgeAdapter != null && getVerticalGridView() != null) {
FocusHighlightHelper.setupHeaderItemFocusHighlight(getVerticalGridView());
}
}
void setBackgroundColor(int i) {
this.mBackgroundColor = i;
this.mBackgroundColorSet = true;
if (getView() != null) {
getView().setBackgroundColor(this.mBackgroundColor);
updateFadingEdgeToBrandColor(this.mBackgroundColor);
}
}
private void updateFadingEdgeToBrandColor(int i) {
Drawable background = getView().findViewById(C0029R.id.fade_out_edge).getBackground();
if (background instanceof GradientDrawable) {
background.mutate();
((GradientDrawable) background).setColors(new int[]{0, i});
}
}
int getBackgroundColor() {
if (getActivity() == null) {
throw new IllegalStateException("Activity must be attached");
} else if (this.mBackgroundColorSet) {
return this.mBackgroundColor;
} else {
TypedValue typedValue = new TypedValue();
if (getActivity().getTheme().resolveAttribute(C0029R.attr.defaultBrandColor, typedValue, true)) {
return getResources().getColor(typedValue.resourceId);
}
return getResources().getColor(C0029R.color.lb_default_brand_color);
}
}
void onTransitionStart() {
super.onTransitionStart();
if (!this.mHeadersEnabled) {
VerticalGridView verticalGridView = getVerticalGridView();
if (verticalGridView != null) {
verticalGridView.setDescendantFocusability(131072);
if (verticalGridView.hasFocus()) {
verticalGridView.requestFocus();
}
}
}
}
void onTransitionEnd() {
if (this.mHeadersEnabled) {
VerticalGridView verticalGridView = getVerticalGridView();
if (verticalGridView != null) {
verticalGridView.setDescendantFocusability(262144);
if (verticalGridView.hasFocus()) {
verticalGridView.requestFocus();
}
}
}
super.onTransitionEnd();
}
}
package android.support.v17.leanback.app;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v4.media.MediaMetadataCompat;
import android.support.v4.media.session.MediaControllerCompat;
import android.support.v4.media.session.MediaControllerCompat.Callback;
import android.support.v4.media.session.PlaybackStateCompat;
import android.util.Log;
public abstract class MediaControllerGlue extends PlaybackControlGlue {
private static final boolean DEBUG = false;
private static final String TAG = "MediaControllerGlue";
private final Callback mCallback = new C00721();
private MediaControllerCompat mMediaController;
class C00721 extends Callback {
C00721() {
}
public void onMetadataChanged(MediaMetadataCompat mediaMetadataCompat) {
MediaControllerGlue.this.onMetadataChanged();
}
public void onPlaybackStateChanged(PlaybackStateCompat playbackStateCompat) {
MediaControllerGlue.this.onStateChanged();
}
public void onSessionDestroyed() {
MediaControllerGlue.this.mMediaController = null;
}
public void onSessionEvent(String str, Bundle bundle) {
}
}
public MediaControllerGlue(Context context, PlaybackOverlayFragment playbackOverlayFragment, int[] iArr) {
super(context, playbackOverlayFragment, iArr);
}
public MediaControllerGlue(Context context, PlaybackOverlayFragment playbackOverlayFragment, int[] iArr, int[] iArr2) {
super(context, playbackOverlayFragment, iArr, iArr2);
}
public void attachToMediaController(MediaControllerCompat mediaControllerCompat) {
if (mediaControllerCompat != this.mMediaController) {
detach();
this.mMediaController = mediaControllerCompat;
if (this.mMediaController != null) {
this.mMediaController.registerCallback(this.mCallback);
}
onMetadataChanged();
onStateChanged();
}
}
public void detach() {
if (this.mMediaController != null) {
this.mMediaController.unregisterCallback(this.mCallback);
}
this.mMediaController = null;
}
public final MediaControllerCompat getMediaController() {
return this.mMediaController;
}
public boolean hasValidMedia() {
return (this.mMediaController == null || this.mMediaController.getMetadata() == null) ? false : true;
}
public boolean isMediaPlaying() {
return this.mMediaController.getPlaybackState().getState() == 3;
}
public int getCurrentSpeedId() {
int i = 0;
int playbackSpeed = (int) this.mMediaController.getPlaybackState().getPlaybackSpeed();
if (playbackSpeed == 0) {
return 0;
}
if (playbackSpeed == 1) {
return 1;
}
int[] fastForwardSpeeds;
if (playbackSpeed > 0) {
fastForwardSpeeds = getFastForwardSpeeds();
while (i < fastForwardSpeeds.length) {
if (playbackSpeed == fastForwardSpeeds[i]) {
return i + 10;
}
i++;
}
} else {
fastForwardSpeeds = getRewindSpeeds();
while (i < fastForwardSpeeds.length) {
if ((-playbackSpeed) == fastForwardSpeeds[i]) {
return -10 - i;
}
i++;
}
}
Log.w(TAG, "Couldn't find index for speed " + playbackSpeed);
return -1;
}
public CharSequence getMediaTitle() {
return this.mMediaController.getMetadata().getDescription().getTitle();
}
public CharSequence getMediaSubtitle() {
return this.mMediaController.getMetadata().getDescription().getSubtitle();
}
public int getMediaDuration() {
return (int) this.mMediaController.getMetadata().getLong(MediaMetadataCompat.METADATA_KEY_DURATION);
}
public int getCurrentPosition() {
return (int) this.mMediaController.getPlaybackState().getPosition();
}
public Drawable getMediaArt() {
Bitmap iconBitmap = this.mMediaController.getMetadata().getDescription().getIconBitmap();
return iconBitmap == null ? null : new BitmapDrawable(getContext().getResources(), iconBitmap);
}
public long getSupportedActions() {
long j;
long actions = this.mMediaController.getPlaybackState().getActions();
if ((512 & actions) != 0) {
j = 64;
} else {
j = 0;
}
if ((actions & 32) != 0) {
j |= 256;
}
if ((actions & 16) != 0) {
j |= 16;
}
if ((64 & actions) != 0) {
j |= 128;
}
if ((8 & actions) != 0) {
return j | 32;
}
return j;
}
protected void startPlayback(int i) {
if (i == 1) {
this.mMediaController.getTransportControls().play();
} else if (i > 0) {
this.mMediaController.getTransportControls().fastForward();
} else {
this.mMediaController.getTransportControls().rewind();
}
}
protected void pausePlayback() {
this.mMediaController.getTransportControls().pause();
}
protected void skipToNext() {
this.mMediaController.getTransportControls().skipToNext();
}
protected void skipToPrevious() {
this.mMediaController.getTransportControls().skipToPrevious();
}
}
package android.support.v17.leanback.app;
import android.content.Context;
import android.dvb.DvbApi;
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.os.Message;
import android.support.v17.leanback.app.PlaybackOverlayFragment.InputEventHandler;
import android.support.v17.leanback.widget.AbstractDetailsDescriptionPresenter;
import android.support.v17.leanback.widget.Action;
import android.support.v17.leanback.widget.ControlButtonPresenterSelector;
import android.support.v17.leanback.widget.OnActionClickedListener;
import android.support.v17.leanback.widget.OnItemViewClickedListener;
import android.support.v17.leanback.widget.PlaybackControlsRow;
import android.support.v17.leanback.widget.PlaybackControlsRow.FastForwardAction;
import android.support.v17.leanback.widget.PlaybackControlsRow.PlayPauseAction;
import android.support.v17.leanback.widget.PlaybackControlsRow.RewindAction;
import android.support.v17.leanback.widget.PlaybackControlsRow.SkipNextAction;
import android.support.v17.leanback.widget.PlaybackControlsRow.SkipPreviousAction;
import android.support.v17.leanback.widget.PlaybackControlsRowPresenter;
import android.support.v17.leanback.widget.Presenter.ViewHolder;
import android.support.v17.leanback.widget.PresenterSelector;
import android.support.v17.leanback.widget.Row;
import android.support.v17.leanback.widget.RowPresenter;
import android.support.v17.leanback.widget.SparseArrayObjectAdapter;
import android.support.v4.media.TransportMediator;
import android.view.InputEvent;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnKeyListener;
import org.apache.http.HttpStatus;
public abstract class PlaybackControlGlue implements OnActionClickedListener, OnKeyListener {
public static final int ACTION_CUSTOM_LEFT_FIRST = 1;
public static final int ACTION_CUSTOM_RIGHT_FIRST = 4096;
public static final int ACTION_FAST_FORWARD = 128;
public static final int ACTION_PLAY_PAUSE = 64;
public static final int ACTION_REWIND = 32;
public static final int ACTION_SKIP_TO_NEXT = 256;
public static final int ACTION_SKIP_TO_PREVIOUS = 16;
private static final boolean DEBUG = false;
private static final int MSG_UPDATE_PLAYBACK_STATE = 100;
private static final int NUMBER_OF_SEEK_SPEEDS = 5;
public static final int PLAYBACK_SPEED_FAST_L0 = 10;
public static final int PLAYBACK_SPEED_FAST_L1 = 11;
public static final int PLAYBACK_SPEED_FAST_L2 = 12;
public static final int PLAYBACK_SPEED_FAST_L3 = 13;
public static final int PLAYBACK_SPEED_FAST_L4 = 14;
public static final int PLAYBACK_SPEED_INVALID = -1;
public static final int PLAYBACK_SPEED_NORMAL = 1;
public static final int PLAYBACK_SPEED_PAUSED = 0;
private static final String TAG = "PlaybackControlGlue";
private static final int UPDATE_PLAYBACK_STATE_DELAY_MS = 2000;
private final Context mContext;
private PlaybackControlsRow mControlsRow;
private OnItemViewClickedListener mExternalOnItemViewClickedListener;
private boolean mFadeWhenPlaying;
private FastForwardAction mFastForwardAction;
private final int[] mFastForwardSpeeds;
private final PlaybackOverlayFragment mFragment;
private final Handler mHandler;
private final InputEventHandler mOnInputEventHandler;
private final OnItemViewClickedListener mOnItemViewClickedListener;
private PlayPauseAction mPlayPauseAction;
private int mPlaybackSpeed;
private SparseArrayObjectAdapter mPrimaryActionsAdapter;
private RewindAction mRewindAction;
private final int[] mRewindSpeeds;
private SkipNextAction mSkipNextAction;
private SkipPreviousAction mSkipPreviousAction;
class C00731 extends Handler {
C00731() {
}
public void handleMessage(Message message) {
if (message.what == 100) {
PlaybackControlGlue.this.updatePlaybackState();
}
}
}
class C00742 implements OnItemViewClickedListener {
C00742() {
}
public void onItemClicked(ViewHolder viewHolder, Object obj, RowPresenter.ViewHolder viewHolder2, Row row) {
boolean z = false;
if (obj instanceof Action) {
z = PlaybackControlGlue.this.dispatchAction((Action) obj, null);
}
if (!z && PlaybackControlGlue.this.mExternalOnItemViewClickedListener != null) {
PlaybackControlGlue.this.mExternalOnItemViewClickedListener.onItemClicked(viewHolder, obj, viewHolder2, row);
}
}
}
class C00753 implements InputEventHandler {
C00753() {
}
public boolean handleInputEvent(InputEvent inputEvent) {
if (!(inputEvent instanceof KeyEvent)) {
return false;
}
KeyEvent keyEvent = (KeyEvent) inputEvent;
return PlaybackControlGlue.this.onKey(null, keyEvent.getKeyCode(), keyEvent);
}
}
class C00764 extends AbstractDetailsDescriptionPresenter {
C00764() {
}
protected void onBindDescription(AbstractDetailsDescriptionPresenter.ViewHolder viewHolder, Object obj) {
PlaybackControlGlue playbackControlGlue = (PlaybackControlGlue) obj;
if (playbackControlGlue.hasValidMedia()) {
viewHolder.getTitle().setText(playbackControlGlue.getMediaTitle());
viewHolder.getSubtitle().setText(playbackControlGlue.getMediaSubtitle());
return;
}
viewHolder.getTitle().setText("");
viewHolder.getSubtitle().setText("");
}
}
public abstract int getCurrentPosition();
public abstract int getCurrentSpeedId();
public abstract Drawable getMediaArt();
public abstract int getMediaDuration();
public abstract CharSequence getMediaSubtitle();
public abstract CharSequence getMediaTitle();
public abstract long getSupportedActions();
public abstract boolean hasValidMedia();
public abstract boolean isMediaPlaying();
protected abstract void onRowChanged(PlaybackControlsRow playbackControlsRow);
protected abstract void pausePlayback();
protected abstract void skipToNext();
protected abstract void skipToPrevious();
protected abstract void startPlayback(int i);
public PlaybackControlGlue(Context context, int[] iArr) {
this(context, null, iArr, iArr);
}
public PlaybackControlGlue(Context context, int[] iArr, int[] iArr2) {
this(context, null, iArr, iArr2);
}
public PlaybackControlGlue(Context context, PlaybackOverlayFragment playbackOverlayFragment, int[] iArr) {
this(context, playbackOverlayFragment, iArr, iArr);
}
public PlaybackControlGlue(Context context, PlaybackOverlayFragment playbackOverlayFragment, int[] iArr, int[] iArr2) {
this.mPlaybackSpeed = 1;
this.mFadeWhenPlaying = true;
this.mHandler = new C00731();
this.mOnItemViewClickedListener = new C00742();
this.mOnInputEventHandler = new C00753();
this.mContext = context;
this.mFragment = playbackOverlayFragment;
if (playbackOverlayFragment != null) {
attachToFragment();
}
if (iArr.length == 0 || iArr.length > 5) {
throw new IllegalStateException("invalid fastForwardSpeeds array size");
}
this.mFastForwardSpeeds = iArr;
if (iArr2.length == 0 || iArr2.length > 5) {
throw new IllegalStateException("invalid rewindSpeeds array size");
}
this.mRewindSpeeds = iArr2;
}
private void attachToFragment() {
this.mFragment.setInputEventHandler(this.mOnInputEventHandler);
}
public PlaybackControlsRowPresenter createControlsRowAndPresenter() {
setControlsRow(new PlaybackControlsRow(this));
return new PlaybackControlsRowPresenter(new C00764()) {
protected void onBindRowViewHolder(RowPresenter.ViewHolder viewHolder, Object obj) {
super.onBindRowViewHolder(viewHolder, obj);
viewHolder.setOnKeyListener(PlaybackControlGlue.this);
}
protected void onUnbindRowViewHolder(RowPresenter.ViewHolder viewHolder) {
super.onUnbindRowViewHolder(viewHolder);
viewHolder.setOnKeyListener(null);
}
};
}
public PlaybackOverlayFragment getFragment() {
return this.mFragment;
}
public Context getContext() {
return this.mContext;
}
public int[] getFastForwardSpeeds() {
return this.mFastForwardSpeeds;
}
public int[] getRewindSpeeds() {
return this.mRewindSpeeds;
}
public void setFadingEnabled(boolean z) {
this.mFadeWhenPlaying = z;
if (!this.mFadeWhenPlaying && this.mFragment != null) {
this.mFragment.setFadingEnabled(false);
}
}
public boolean isFadingEnabled() {
return this.mFadeWhenPlaying;
}
public void setOnItemViewClickedListener(OnItemViewClickedListener onItemViewClickedListener) {
this.mExternalOnItemViewClickedListener = onItemViewClickedListener;
if (this.mFragment != null) {
this.mFragment.setOnItemViewClickedListener(this.mOnItemViewClickedListener);
}
}
public OnItemViewClickedListener getOnItemViewClickedListener() {
return this.mExternalOnItemViewClickedListener;
}
public void setControlsRow(PlaybackControlsRow playbackControlsRow) {
this.mControlsRow = playbackControlsRow;
this.mPrimaryActionsAdapter = createPrimaryActionsAdapter(new ControlButtonPresenterSelector());
this.mControlsRow.setPrimaryActionsAdapter(this.mPrimaryActionsAdapter);
updateControlsRow();
}
public PlaybackControlsRow getControlsRow() {
return this.mControlsRow;
}
public void enableProgressUpdating(boolean z) {
}
public int getUpdatePeriod() {
return HttpStatus.SC_INTERNAL_SERVER_ERROR;
}
public void updateProgress() {
this.mControlsRow.setCurrentTime(getCurrentPosition());
}
public void onActionClicked(Action action) {
dispatchAction(action, null);
}
public boolean onKey(View view, int i, KeyEvent keyEvent) {
switch (i) {
case 4:
case 19:
case 20:
case 21:
case 22:
case DvbApi.DVB_SVC_FAV_Modify /*111*/:
boolean z = this.mPlaybackSpeed >= 10 || this.mPlaybackSpeed <= -10;
if (!z) {
return false;
}
this.mPlaybackSpeed = 1;
startPlayback(this.mPlaybackSpeed);
updatePlaybackStatusAfterUserAction();
if (i == 4 || i == DvbApi.DVB_SVC_FAV_Modify) {
return true;
}
return false;
default:
Action actionForKeyCode = this.mControlsRow.getActionForKeyCode(this.mPrimaryActionsAdapter, i);
if (actionForKeyCode == null) {
return false;
}
if (actionForKeyCode != this.mPrimaryActionsAdapter.lookup(64) && actionForKeyCode != this.mPrimaryActionsAdapter.lookup(32) && actionForKeyCode != this.mPrimaryActionsAdapter.lookup(128) && actionForKeyCode != this.mPrimaryActionsAdapter.lookup(16) && actionForKeyCode != this.mPrimaryActionsAdapter.lookup(256)) {
return false;
}
if (keyEvent.getAction() == 0) {
dispatchAction(actionForKeyCode, keyEvent);
}
return true;
}
}
private boolean dispatchAction(Action action, KeyEvent keyEvent) {
if (action == this.mPlayPauseAction) {
int i;
int i2 = (keyEvent == null || keyEvent.getKeyCode() == 85 || keyEvent.getKeyCode() == TransportMediator.KEYCODE_MEDIA_PLAY) ? true : 0;
if (keyEvent == null || keyEvent.getKeyCode() == 85 || keyEvent.getKeyCode() == TransportMediator.KEYCODE_MEDIA_PAUSE) {
i = true;
} else {
i = 0;
}
if (this.mPlaybackSpeed != 1) {
if (i2 != 0) {
this.mPlaybackSpeed = 1;
startPlayback(this.mPlaybackSpeed);
}
} else if (i != 0) {
this.mPlaybackSpeed = 0;
pausePlayback();
}
updatePlaybackStatusAfterUserAction();
return true;
} else if (action == this.mSkipNextAction) {
skipToNext();
return true;
} else if (action == this.mSkipPreviousAction) {
skipToPrevious();
return true;
} else if (action == this.mFastForwardAction) {
if (this.mPlaybackSpeed >= getMaxForwardSpeedId()) {
return true;
}
switch (this.mPlaybackSpeed) {
case 10:
case 11:
case 12:
case 13:
this.mPlaybackSpeed++;
break;
default:
this.mPlaybackSpeed = 10;
break;
}
startPlayback(this.mPlaybackSpeed);
updatePlaybackStatusAfterUserAction();
return true;
} else if (action != this.mRewindAction) {
return false;
} else {
if (this.mPlaybackSpeed <= (-getMaxRewindSpeedId())) {
return true;
}
switch (this.mPlaybackSpeed) {
case -13:
case -12:
case -11:
case -10:
this.mPlaybackSpeed--;
break;
default:
this.mPlaybackSpeed = -10;
break;
}
startPlayback(this.mPlaybackSpeed);
updatePlaybackStatusAfterUserAction();
return true;
}
}
private int getMaxForwardSpeedId() {
return (this.mFastForwardSpeeds.length - 1) + 10;
}
private int getMaxRewindSpeedId() {
return (this.mRewindSpeeds.length - 1) + 10;
}
private void updateControlsRow() {
updateRowMetadata();
this.mHandler.removeMessages(100);
updatePlaybackState();
}
private void updatePlaybackStatusAfterUserAction() {
updatePlaybackState(this.mPlaybackSpeed);
this.mHandler.removeMessages(100);
this.mHandler.sendEmptyMessageDelayed(100, 2000);
}
private void updateRowMetadata() {
if (this.mControlsRow != null) {
if (hasValidMedia()) {
this.mControlsRow.setImageDrawable(getMediaArt());
this.mControlsRow.setTotalTime(getMediaDuration());
this.mControlsRow.setCurrentTime(getCurrentPosition());
} else {
this.mControlsRow.setImageDrawable(null);
this.mControlsRow.setTotalTime(0);
this.mControlsRow.setCurrentTime(0);
}
onRowChanged(this.mControlsRow);
}
}
private void updatePlaybackState() {
if (hasValidMedia()) {
this.mPlaybackSpeed = getCurrentSpeedId();
updatePlaybackState(this.mPlaybackSpeed);
}
}
private void updatePlaybackState(int i) {
boolean z = false;
if (this.mControlsRow != null) {
int i2;
long supportedActions = getSupportedActions();
if ((16 & supportedActions) != 0) {
if (this.mSkipPreviousAction == null) {
this.mSkipPreviousAction = new SkipPreviousAction(this.mContext);
}
this.mPrimaryActionsAdapter.set(16, this.mSkipPreviousAction);
} else {
this.mPrimaryActionsAdapter.clear(16);
this.mSkipPreviousAction = null;
}
if ((32 & supportedActions) != 0) {
if (this.mRewindAction == null) {
this.mRewindAction = new RewindAction(this.mContext, this.mRewindSpeeds.length);
}
this.mPrimaryActionsAdapter.set(32, this.mRewindAction);
} else {
this.mPrimaryActionsAdapter.clear(32);
this.mRewindAction = null;
}
if ((64 & supportedActions) != 0) {
if (this.mPlayPauseAction == null) {
this.mPlayPauseAction = new PlayPauseAction(this.mContext);
}
this.mPrimaryActionsAdapter.set(64, this.mPlayPauseAction);
} else {
this.mPrimaryActionsAdapter.clear(64);
this.mPlayPauseAction = null;
}
if ((128 & supportedActions) != 0) {
if (this.mFastForwardAction == null) {
this.mFastForwardAction = new FastForwardAction(this.mContext, this.mFastForwardSpeeds.length);
}
this.mPrimaryActionsAdapter.set(128, this.mFastForwardAction);
} else {
this.mPrimaryActionsAdapter.clear(128);
this.mFastForwardAction = null;
}
if ((supportedActions & 256) != 0) {
if (this.mSkipNextAction == null) {
this.mSkipNextAction = new SkipNextAction(this.mContext);
}
this.mPrimaryActionsAdapter.set(256, this.mSkipNextAction);
} else {
this.mPrimaryActionsAdapter.clear(256);
this.mSkipNextAction = null;
}
if (this.mFastForwardAction != null) {
if (i >= 10) {
i2 = i - 10;
if (i < getMaxForwardSpeedId()) {
i2++;
}
} else {
i2 = 0;
}
if (this.mFastForwardAction.getIndex() != i2) {
this.mFastForwardAction.setIndex(i2);
notifyItemChanged(this.mPrimaryActionsAdapter, this.mFastForwardAction);
}
}
if (this.mRewindAction != null) {
if (i <= -10) {
i2 = (-i) - 10;
if ((-i) < getMaxRewindSpeedId()) {
i2++;
}
} else {
i2 = 0;
}
if (this.mRewindAction.getIndex() != i2) {
this.mRewindAction.setIndex(i2);
notifyItemChanged(this.mPrimaryActionsAdapter, this.mRewindAction);
}
}
if (i == 0) {
updateProgress();
enableProgressUpdating(false);
} else {
enableProgressUpdating(true);
}
if (this.mFadeWhenPlaying && this.mFragment != null) {
PlaybackOverlayFragment playbackOverlayFragment = this.mFragment;
if (i == 1) {
z = true;
}
playbackOverlayFragment.setFadingEnabled(z);
}
if (this.mPlayPauseAction != null) {
i2 = i == 0 ? PlayPauseAction.PLAY : PlayPauseAction.PAUSE;
if (this.mPlayPauseAction.getIndex() != i2) {
this.mPlayPauseAction.setIndex(i2);
notifyItemChanged(this.mPrimaryActionsAdapter, this.mPlayPauseAction);
}
}
}
}
private static void notifyItemChanged(SparseArrayObjectAdapter sparseArrayObjectAdapter, Object obj) {
int indexOf = sparseArrayObjectAdapter.indexOf(obj);
if (indexOf >= 0) {
sparseArrayObjectAdapter.notifyArrayItemRangeChanged(indexOf, 1);
}
}
private static String getSpeedString(int i) {
switch (i) {
case -14:
return "-PLAYBACK_SPEED_FAST_L4";
case -13:
return "-PLAYBACK_SPEED_FAST_L3";
case -12:
return "-PLAYBACK_SPEED_FAST_L2";
case -11:
return "-PLAYBACK_SPEED_FAST_L1";
case -10:
return "-PLAYBACK_SPEED_FAST_L0";
case -1:
return "PLAYBACK_SPEED_INVALID";
case 0:
return "PLAYBACK_SPEED_PAUSED";
case 1:
return "PLAYBACK_SPEED_NORMAL";
case 10:
return "PLAYBACK_SPEED_FAST_L0";
case 11:
return "PLAYBACK_SPEED_FAST_L1";
case 12:
return "PLAYBACK_SPEED_FAST_L2";
case 13:
return "PLAYBACK_SPEED_FAST_L3";
case 14:
return "PLAYBACK_SPEED_FAST_L4";
default:
return null;
}
}
protected SparseArrayObjectAdapter createPrimaryActionsAdapter(PresenterSelector presenterSelector) {
return new SparseArrayObjectAdapter(presenterSelector);
}
protected void onStateChanged() {
if (!hasValidMedia()) {
return;
}
if (this.mHandler.hasMessages(100)) {
this.mHandler.removeMessages(100);
if (getCurrentSpeedId() != this.mPlaybackSpeed) {
this.mHandler.sendEmptyMessageDelayed(100, 2000);
return;
} else {
updatePlaybackState();
return;
}
}
updatePlaybackState();
}
protected void onMetadataChanged() {
updateRowMetadata();
}
}
package android.support.v17.leanback.app;
import android.animation.Animator;
import android.animation.AnimatorInflater;
import android.animation.TimeInterpolator;
import android.animation.ValueAnimator;
import android.animation.ValueAnimator.AnimatorUpdateListener;
import android.content.Context;
import android.dvb.DvbApi;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v17.leanback.C0029R;
import android.support.v17.leanback.animation.LogAccelerateInterpolator;
import android.support.v17.leanback.animation.LogDecelerateInterpolator;
import android.support.v17.leanback.widget.BaseGridView.OnKeyInterceptListener;
import android.support.v17.leanback.widget.BaseGridView.OnTouchInterceptListener;
import android.support.v17.leanback.widget.ItemBridgeAdapter.AdapterListener;
import android.support.v17.leanback.widget.ItemBridgeAdapter.ViewHolder;
import android.support.v17.leanback.widget.ObjectAdapter;
import android.support.v17.leanback.widget.ObjectAdapter.DataObserver;
import android.support.v17.leanback.widget.PlaybackControlsRowPresenter;
import android.support.v17.leanback.widget.Presenter;
import android.support.v17.leanback.widget.VerticalGridView;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.ItemAnimator;
import android.view.InputEvent;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AccelerateInterpolator;
import java.util.ArrayList;
import java.util.Iterator;
public class PlaybackOverlayFragment extends DetailsFragment {
private static final int ANIMATION_MULTIPLIER = 1;
public static final int BG_DARK = 1;
public static final int BG_LIGHT = 2;
public static final int BG_NONE = 0;
private static final boolean DEBUG = false;
private static final int IDLE = 0;
private static final int IN = 1;
private static final int OUT = 2;
private static int START_FADE_OUT = 1;
private static final String TAG = "PlaybackOverlayFragment";
private final AdapterListener mAdapterListener = new AdapterListener() {
public void onAttachedToWindow(ViewHolder viewHolder) {
if ((PlaybackOverlayFragment.this.mFadingStatus == 0 && PlaybackOverlayFragment.this.mBgAlpha == 0) || PlaybackOverlayFragment.this.mFadingStatus == 2) {
viewHolder.getViewHolder().view.setAlpha(0.0f);
}
if (viewHolder.getPosition() == 0 && PlaybackOverlayFragment.this.mResetControlsToPrimaryActionsPending) {
PlaybackOverlayFragment.this.resetControlsToPrimaryActions(viewHolder);
}
}
public void onDetachedFromWindow(ViewHolder viewHolder) {
viewHolder.getViewHolder().view.setAlpha(1.0f);
viewHolder.getViewHolder().view.setTranslationY(0.0f);
if (viewHolder.getViewHolder() instanceof PlaybackControlsRowPresenter.ViewHolder) {
Presenter.ViewHolder viewHolder2 = ((PlaybackControlsRowPresenter.ViewHolder) viewHolder.getViewHolder()).mDescriptionViewHolder;
if (viewHolder2 != null) {
viewHolder2.view.setAlpha(1.0f);
}
}
}
public void onBind(ViewHolder viewHolder) {
if (viewHolder.getPosition() == 0) {
PlaybackOverlayFragment.this.updateControlsBottomSpace(viewHolder);
}
}
};
private int mAlignPosition;
private int mAnimationTranslateY;
private int mBackgroundType = 1;
private int mBgAlpha;
private int mBgDarkColor;
private ValueAnimator mBgFadeInAnimator;
private ValueAnimator mBgFadeOutAnimator;
private int mBgLightColor;
private ValueAnimator mControlRowFadeInAnimator;
private ValueAnimator mControlRowFadeOutAnimator;
private ValueAnimator mDescriptionFadeInAnimator;
private ValueAnimator mDescriptionFadeOutAnimator;
private OnFadeCompleteListener mFadeCompleteListener;
private final android.animation.Animator.AnimatorListener mFadeListener = new C00781();
private boolean mFadingEnabled = true;
private int mFadingStatus = 0;
private final Handler mHandler = new C00792();
private InputEventHandler mInputEventHandler;
private ItemAnimator mItemAnimator;
private TimeInterpolator mLogAccelerateInterpolator = new LogAccelerateInterpolator(100, 0);
private TimeInterpolator mLogDecelerateInterpolator = new LogDecelerateInterpolator(100, 0);
private int mMajorFadeTranslateY;
private int mMinorFadeTranslateY;
private final DataObserver mObserver = new DataObserver() {
public void onChanged() {
PlaybackOverlayFragment.this.updateControlsBottomSpace(null);
}
};
private final OnKeyInterceptListener mOnKeyInterceptListener = new C00814();
private final OnTouchInterceptListener mOnTouchInterceptListener = new C00803();
private ValueAnimator mOtherRowFadeInAnimator;
private ValueAnimator mOtherRowFadeOutAnimator;
private int mPaddingBottom;
private boolean mResetControlsToPrimaryActionsPending;
private View mRootView;
private int mShowTimeMs;
private boolean mTranslateAnimationEnabled;
public interface InputEventHandler {
boolean handleInputEvent(InputEvent inputEvent);
}
class C00781 implements android.animation.Animator.AnimatorListener {
C00781() {
}
public void onAnimationStart(Animator animator) {
PlaybackOverlayFragment.this.enableVerticalGridAnimations(false);
}
public void onAnimationRepeat(Animator animator) {
}
public void onAnimationCancel(Animator animator) {
}
public void onAnimationEnd(Animator animator) {
if (PlaybackOverlayFragment.this.mBgAlpha > 0) {
PlaybackOverlayFragment.this.enableVerticalGridAnimations(true);
PlaybackOverlayFragment.this.startFadeTimer();
if (PlaybackOverlayFragment.this.mFadeCompleteListener != null) {
PlaybackOverlayFragment.this.mFadeCompleteListener.onFadeInComplete();
}
} else {
if (PlaybackOverlayFragment.this.getVerticalGridView() != null) {
PlaybackOverlayFragment.this.getVerticalGridView().setSelectedPosition(0);
PlaybackOverlayFragment.this.resetControlsToPrimaryActions(null);
}
if (PlaybackOverlayFragment.this.mFadeCompleteListener != null) {
PlaybackOverlayFragment.this.mFadeCompleteListener.onFadeOutComplete();
}
}
PlaybackOverlayFragment.this.mFadingStatus = 0;
}
}
class C00792 extends Handler {
C00792() {
}
public void handleMessage(Message message) {
if (message.what == PlaybackOverlayFragment.START_FADE_OUT && PlaybackOverlayFragment.this.mFadingEnabled) {
PlaybackOverlayFragment.this.fade(false);
}
}
}
class C00803 implements OnTouchInterceptListener {
C00803() {
}
public boolean onInterceptTouchEvent(MotionEvent motionEvent) {
return PlaybackOverlayFragment.this.onInterceptInputEvent(motionEvent);
}
}
class C00814 implements OnKeyInterceptListener {
C00814() {
}
public boolean onInterceptKeyEvent(KeyEvent keyEvent) {
return PlaybackOverlayFragment.this.onInterceptInputEvent(keyEvent);
}
}
class C00825 implements AnimatorUpdateListener {
C00825() {
}
public void onAnimationUpdate(ValueAnimator valueAnimator) {
PlaybackOverlayFragment.this.setBgAlpha(((Integer) valueAnimator.getAnimatedValue()).intValue());
}
}
abstract class AnimatorListener implements android.animation.Animator.AnimatorListener {
ArrayList<Integer> mLayerType = new ArrayList();
ArrayList<View> mViews = new ArrayList();
abstract void getViews(ArrayList<View> arrayList);
AnimatorListener() {
}
public void onAnimationCancel(Animator animator) {
}
public void onAnimationRepeat(Animator animator) {
}
public void onAnimationStart(Animator animator) {
getViews(this.mViews);
Iterator it = this.mViews.iterator();
while (it.hasNext()) {
View view = (View) it.next();
this.mLayerType.add(Integer.valueOf(view.getLayerType()));
view.setLayerType(2, null);
}
}
public void onAnimationEnd(Animator animator) {
for (int i = 0; i < this.mViews.size(); i++) {
((View) this.mViews.get(i)).setLayerType(((Integer) this.mLayerType.get(i)).intValue(), null);
}
this.mLayerType.clear();
this.mViews.clear();
}
}
class C00836 extends AnimatorListener {
C00836() {
}
void getViews(ArrayList<View> arrayList) {
View access$1100 = PlaybackOverlayFragment.this.getControlRowView();
if (access$1100 != null) {
arrayList.add(access$1100);
}
}
}
class C00847 implements AnimatorUpdateListener {
C00847() {
}
public void onAnimationUpdate(ValueAnimator valueAnimator) {
View access$1100 = PlaybackOverlayFragment.this.getControlRowView();
if (access$1100 != null) {
float floatValue = ((Float) valueAnimator.getAnimatedValue()).floatValue();
access$1100.setAlpha(floatValue);
access$1100.setTranslationY((1.0f - floatValue) * ((float) PlaybackOverlayFragment.this.mAnimationTranslateY));
}
}
}
class C00858 extends AnimatorListener {
C00858() {
}
void getViews(ArrayList<View> arrayList) {
if (PlaybackOverlayFragment.this.getVerticalGridView() != null) {
int childCount = PlaybackOverlayFragment.this.getVerticalGridView().getChildCount();
for (int i = 0; i < childCount; i++) {
View childAt = PlaybackOverlayFragment.this.getVerticalGridView().getChildAt(i);
if (childAt != null) {
arrayList.add(childAt);
}
}
}
}
}
public class OnFadeCompleteListener {
public void onFadeInComplete() {
}
public void onFadeOutComplete() {
}
}
private void setBgAlpha(int i) {
this.mBgAlpha = i;
if (this.mRootView != null) {
this.mRootView.getBackground().setAlpha(i);
}
}
private void enableVerticalGridAnimations(boolean z) {
if (getVerticalGridView() != null) {
getVerticalGridView().setAnimateChildLayout(z);
}
}
private void resetControlsToPrimaryActions(ViewHolder viewHolder) {
if (viewHolder == null && getVerticalGridView() != null) {
viewHolder = (ViewHolder) getVerticalGridView().findViewHolderForPosition(0);
}
if (viewHolder == null) {
this.mResetControlsToPrimaryActionsPending = true;
} else if (viewHolder.getPresenter() instanceof PlaybackControlsRowPresenter) {
this.mResetControlsToPrimaryActionsPending = false;
((PlaybackControlsRowPresenter) viewHolder.getPresenter()).showPrimaryActions((PlaybackControlsRowPresenter.ViewHolder) viewHolder.getViewHolder());
}
}
public void setFadingEnabled(boolean z) {
if (z != this.mFadingEnabled) {
this.mFadingEnabled = z;
if (!this.mFadingEnabled) {
this.mHandler.removeMessages(START_FADE_OUT);
fade(true);
} else if (isResumed() && this.mFadingStatus == 0 && !this.mHandler.hasMessages(START_FADE_OUT)) {
startFadeTimer();
}
}
}
public boolean isFadingEnabled() {
return this.mFadingEnabled;
}
public void setFadeCompleteListener(OnFadeCompleteListener onFadeCompleteListener) {
this.mFadeCompleteListener = onFadeCompleteListener;
}
public OnFadeCompleteListener getFadeCompleteListener() {
return this.mFadeCompleteListener;
}
public final void setInputEventHandler(InputEventHandler inputEventHandler) {
this.mInputEventHandler = inputEventHandler;
}
public final InputEventHandler getInputEventHandler() {
return this.mInputEventHandler;
}
public void tickle() {
if (!this.mFadingEnabled || !isResumed()) {
return;
}
if (this.mHandler.hasMessages(START_FADE_OUT)) {
startFadeTimer();
} else {
fade(true);
}
}
private boolean areControlsHidden() {
return this.mFadingStatus == 0 && this.mBgAlpha == 0;
}
private boolean onInterceptInputEvent(InputEvent inputEvent) {
boolean handleInputEvent;
int keyCode;
boolean areControlsHidden = areControlsHidden();
if (this.mInputEventHandler != null) {
handleInputEvent = this.mInputEventHandler.handleInputEvent(inputEvent);
} else {
handleInputEvent = false;
}
if (inputEvent instanceof KeyEvent) {
keyCode = ((KeyEvent) inputEvent).getKeyCode();
} else {
keyCode = 0;
}
switch (keyCode) {
case 4:
case DvbApi.DVB_SVC_FAV_Modify /*111*/:
if (this.mFadingEnabled && !areControlsHidden) {
this.mHandler.removeMessages(START_FADE_OUT);
fade(false);
return true;
} else if (!handleInputEvent) {
return handleInputEvent;
} else {
tickle();
return handleInputEvent;
}
case 19:
case 20:
case 21:
case 22:
case 23:
if (areControlsHidden) {
handleInputEvent = true;
}
tickle();
return handleInputEvent;
default:
if (!handleInputEvent) {
return handleInputEvent;
}
tickle();
return handleInputEvent;
}
}
public void onResume() {
super.onResume();
if (this.mFadingEnabled) {
setBgAlpha(0);
fade(true);
}
getVerticalGridView().setOnTouchInterceptListener(this.mOnTouchInterceptListener);
getVerticalGridView().setOnKeyInterceptListener(this.mOnKeyInterceptListener);
}
private void startFadeTimer() {
if (this.mHandler != null) {
this.mHandler.removeMessages(START_FADE_OUT);
this.mHandler.sendEmptyMessageDelayed(START_FADE_OUT, (long) this.mShowTimeMs);
}
}
private static ValueAnimator loadAnimator(Context context, int i) {
ValueAnimator valueAnimator = (ValueAnimator) AnimatorInflater.loadAnimator(context, i);
valueAnimator.setDuration(valueAnimator.getDuration());
return valueAnimator;
}
private void loadBgAnimator() {
AnimatorUpdateListener c00825 = new C00825();
this.mBgFadeInAnimator = loadAnimator(getActivity(), C0029R.animator.lb_playback_bg_fade_in);
this.mBgFadeInAnimator.addUpdateListener(c00825);
this.mBgFadeInAnimator.addListener(this.mFadeListener);
this.mBgFadeOutAnimator = loadAnimator(getActivity(), C0029R.animator.lb_playback_bg_fade_out);
this.mBgFadeOutAnimator.addUpdateListener(c00825);
this.mBgFadeOutAnimator.addListener(this.mFadeListener);
}
private View getControlRowView() {
if (getVerticalGridView() == null) {
return null;
}
RecyclerView.ViewHolder findViewHolderForPosition = getVerticalGridView().findViewHolderForPosition(0);
if (findViewHolderForPosition != null) {
return findViewHolderForPosition.itemView;
}
return null;
}
private void loadControlRowAnimator() {
android.animation.Animator.AnimatorListener c00836 = new C00836();
AnimatorUpdateListener c00847 = new C00847();
this.mControlRowFadeInAnimator = loadAnimator(getActivity(), C0029R.animator.lb_playback_controls_fade_in);
this.mControlRowFadeInAnimator.addUpdateListener(c00847);
this.mControlRowFadeInAnimator.addListener(c00836);
this.mControlRowFadeInAnimator.setInterpolator(this.mLogDecelerateInterpolator);
this.mControlRowFadeOutAnimator = loadAnimator(getActivity(), C0029R.animator.lb_playback_controls_fade_out);
this.mControlRowFadeOutAnimator.addUpdateListener(c00847);
this.mControlRowFadeOutAnimator.addListener(c00836);
this.mControlRowFadeOutAnimator.setInterpolator(this.mLogAccelerateInterpolator);
}
private void loadOtherRowAnimator() {
final android.animation.Animator.AnimatorListener c00858 = new C00858();
AnimatorUpdateListener c00869 = new AnimatorUpdateListener() {
public void onAnimationUpdate(ValueAnimator valueAnimator) {
if (PlaybackOverlayFragment.this.getVerticalGridView() != null) {
float floatValue = ((Float) valueAnimator.getAnimatedValue()).floatValue();
Iterator it = c00858.mViews.iterator();
while (it.hasNext()) {
View view = (View) it.next();
if (PlaybackOverlayFragment.this.getVerticalGridView().getChildPosition(view) > 0) {
view.setAlpha(floatValue);
view.setTranslationY(((float) PlaybackOverlayFragment.this.mAnimationTranslateY) * (1.0f - floatValue));
}
}
}
}
};
this.mOtherRowFadeInAnimator = loadAnimator(getActivity(), C0029R.animator.lb_playback_controls_fade_in);
this.mOtherRowFadeInAnimator.addListener(c00858);
this.mOtherRowFadeInAnimator.addUpdateListener(c00869);
this.mOtherRowFadeInAnimator.setInterpolator(this.mLogDecelerateInterpolator);
this.mOtherRowFadeOutAnimator = loadAnimator(getActivity(), C0029R.animator.lb_playback_controls_fade_out);
this.mOtherRowFadeOutAnimator.addListener(c00858);
this.mOtherRowFadeOutAnimator.addUpdateListener(c00869);
this.mOtherRowFadeOutAnimator.setInterpolator(new AccelerateInterpolator());
}
private void loadDescriptionAnimator() {
AnimatorUpdateListener anonymousClass10 = new AnimatorUpdateListener() {
public void onAnimationUpdate(ValueAnimator valueAnimator) {
if (PlaybackOverlayFragment.this.getVerticalGridView() != null) {
ViewHolder viewHolder = (ViewHolder) PlaybackOverlayFragment.this.getVerticalGridView().findViewHolderForPosition(0);
if (viewHolder != null && (viewHolder.getViewHolder() instanceof PlaybackControlsRowPresenter.ViewHolder)) {
Presenter.ViewHolder viewHolder2 = ((PlaybackControlsRowPresenter.ViewHolder) viewHolder.getViewHolder()).mDescriptionViewHolder;
if (viewHolder2 != null) {
viewHolder2.view.setAlpha(((Float) valueAnimator.getAnimatedValue()).floatValue());
}
}
}
}
};
this.mDescriptionFadeInAnimator = loadAnimator(getActivity(), C0029R.animator.lb_playback_description_fade_in);
this.mDescriptionFadeInAnimator.addUpdateListener(anonymousClass10);
this.mDescriptionFadeInAnimator.setInterpolator(this.mLogDecelerateInterpolator);
this.mDescriptionFadeOutAnimator = loadAnimator(getActivity(), C0029R.animator.lb_playback_description_fade_out);
this.mDescriptionFadeOutAnimator.addUpdateListener(anonymousClass10);
}
private void fade(boolean z) {
if (getView() != null) {
if (!z || this.mFadingStatus != 1) {
if (!z && this.mFadingStatus == 2) {
return;
}
if (!z || this.mBgAlpha != 255) {
if (z || this.mBgAlpha != 0) {
this.mAnimationTranslateY = getVerticalGridView().getSelectedPosition() == 0 ? this.mMajorFadeTranslateY : this.mMinorFadeTranslateY;
if (this.mFadingStatus == 0) {
if (z) {
this.mBgFadeInAnimator.start();
this.mControlRowFadeInAnimator.start();
this.mOtherRowFadeInAnimator.start();
this.mDescriptionFadeInAnimator.start();
} else {
this.mBgFadeOutAnimator.start();
this.mControlRowFadeOutAnimator.start();
this.mOtherRowFadeOutAnimator.start();
this.mDescriptionFadeOutAnimator.start();
}
} else if (z) {
this.mBgFadeOutAnimator.reverse();
this.mControlRowFadeOutAnimator.reverse();
this.mOtherRowFadeOutAnimator.reverse();
this.mDescriptionFadeOutAnimator.reverse();
} else {
this.mBgFadeInAnimator.reverse();
this.mControlRowFadeInAnimator.reverse();
this.mOtherRowFadeInAnimator.reverse();
this.mDescriptionFadeInAnimator.reverse();
}
if (z && this.mFadingStatus == 0) {
int childCount = getVerticalGridView().getChildCount();
for (int i = 0; i < childCount; i++) {
getVerticalGridView().getChildAt(i).setTranslationY((float) this.mAnimationTranslateY);
}
}
this.mFadingStatus = z ? 1 : 2;
}
}
}
}
}
public void setAdapter(ObjectAdapter objectAdapter) {
if (getAdapter() != null) {
getAdapter().unregisterObserver(this.mObserver);
}
super.setAdapter(objectAdapter);
if (objectAdapter != null) {
objectAdapter.registerObserver(this.mObserver);
}
}
void setVerticalGridViewLayout(VerticalGridView verticalGridView) {
if (verticalGridView != null) {
setBottomPadding(verticalGridView, this.mPaddingBottom);
verticalGridView.setItemAlignmentOffset(this.mAlignPosition);
verticalGridView.setItemAlignmentOffsetPercent(100.0f);
verticalGridView.setWindowAlignmentOffset(0);
verticalGridView.setWindowAlignmentOffsetPercent(100.0f);
verticalGridView.setWindowAlignment(2);
}
}
private static void setBottomPadding(View view, int i) {
view.setPadding(view.getPaddingLeft(), view.getPaddingTop(), view.getPaddingRight(), i);
}
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
this.mAlignPosition = getResources().getDimensionPixelSize(C0029R.dimen.lb_playback_controls_align_bottom);
this.mPaddingBottom = getResources().getDimensionPixelSize(C0029R.dimen.lb_playback_controls_padding_bottom);
this.mBgDarkColor = getResources().getColor(C0029R.color.lb_playback_controls_background_dark);
this.mBgLightColor = getResources().getColor(C0029R.color.lb_playback_controls_background_light);
this.mShowTimeMs = getResources().getInteger(C0029R.integer.lb_playback_controls_show_time_ms);
this.mMajorFadeTranslateY = getResources().getDimensionPixelSize(C0029R.dimen.lb_playback_major_fade_translate_y);
this.mMinorFadeTranslateY = getResources().getDimensionPixelSize(C0029R.dimen.lb_playback_minor_fade_translate_y);
loadBgAnimator();
loadControlRowAnimator();
loadOtherRowAnimator();
loadDescriptionAnimator();
}
public void setBackgroundType(int i) {
switch (i) {
case 0:
case 1:
case 2:
if (i != this.mBackgroundType) {
this.mBackgroundType = i;
updateBackground();
return;
}
return;
default:
throw new IllegalArgumentException("Invalid background type");
}
}
public int getBackgroundType() {
return this.mBackgroundType;
}
private void updateBackground() {
if (this.mRootView != null) {
int i = this.mBgDarkColor;
switch (this.mBackgroundType) {
case 0:
i = 0;
break;
case 2:
i = this.mBgLightColor;
break;
}
this.mRootView.setBackground(new ColorDrawable(i));
}
}
private void updateControlsBottomSpace(ViewHolder viewHolder) {
boolean z = false;
if (viewHolder == null && getVerticalGridView() != null) {
viewHolder = (ViewHolder) getVerticalGridView().findViewHolderForPosition(0);
}
if (viewHolder != null && (viewHolder.getPresenter() instanceof PlaybackControlsRowPresenter)) {
PlaybackControlsRowPresenter playbackControlsRowPresenter = (PlaybackControlsRowPresenter) viewHolder.getPresenter();
PlaybackControlsRowPresenter.ViewHolder viewHolder2 = (PlaybackControlsRowPresenter.ViewHolder) viewHolder.getViewHolder();
if ((getAdapter() == null ? false : getAdapter().size()) > true) {
z = true;
}
playbackControlsRowPresenter.showBottomSpace(viewHolder2, z);
}
}
public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
this.mRootView = super.onCreateView(layoutInflater, viewGroup, bundle);
this.mBgAlpha = 255;
updateBackground();
getRowsFragment().setExternalAdapterListener(this.mAdapterListener);
return this.mRootView;
}
public void onDestroyView() {
this.mRootView = null;
super.onDestroyView();
}
}
package android.support.v17.leanback.app;
import android.animation.Animator;
import android.animation.AnimatorInflater;
import android.animation.TimeInterpolator;
import android.animation.ValueAnimator;
import android.animation.ValueAnimator.AnimatorUpdateListener;
import android.content.Context;
import android.dvb.DvbApi;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v17.leanback.C0029R;
import android.support.v17.leanback.animation.LogAccelerateInterpolator;
import android.support.v17.leanback.animation.LogDecelerateInterpolator;
import android.support.v17.leanback.widget.BaseGridView.OnKeyInterceptListener;
import android.support.v17.leanback.widget.BaseGridView.OnTouchInterceptListener;
import android.support.v17.leanback.widget.ItemBridgeAdapter.AdapterListener;
import android.support.v17.leanback.widget.ItemBridgeAdapter.ViewHolder;
import android.support.v17.leanback.widget.ObjectAdapter;
import android.support.v17.leanback.widget.ObjectAdapter.DataObserver;
import android.support.v17.leanback.widget.PlaybackControlsRowPresenter;
import android.support.v17.leanback.widget.Presenter;
import android.support.v17.leanback.widget.VerticalGridView;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.ItemAnimator;
import android.view.InputEvent;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AccelerateInterpolator;
import java.util.ArrayList;
import java.util.Iterator;
public class PlaybackOverlaySupportFragment extends DetailsSupportFragment {
private static final int ANIMATION_MULTIPLIER = 1;
public static final int BG_DARK = 1;
public static final int BG_LIGHT = 2;
public static final int BG_NONE = 0;
private static final boolean DEBUG = false;
private static final int IDLE = 0;
private static final int IN = 1;
private static final int OUT = 2;
private static int START_FADE_OUT = 1;
private static final String TAG = "PlaybackOverlaySupportFragment";
private final AdapterListener mAdapterListener = new AdapterListener() {
public void onAttachedToWindow(ViewHolder viewHolder) {
if ((PlaybackOverlaySupportFragment.this.mFadingStatus == 0 && PlaybackOverlaySupportFragment.this.mBgAlpha == 0) || PlaybackOverlaySupportFragment.this.mFadingStatus == 2) {
viewHolder.getViewHolder().view.setAlpha(0.0f);
}
if (viewHolder.getPosition() == 0 && PlaybackOverlaySupportFragment.this.mResetControlsToPrimaryActionsPending) {
PlaybackOverlaySupportFragment.this.resetControlsToPrimaryActions(viewHolder);
}
}
public void onDetachedFromWindow(ViewHolder viewHolder) {
viewHolder.getViewHolder().view.setAlpha(1.0f);
viewHolder.getViewHolder().view.setTranslationY(0.0f);
if (viewHolder.getViewHolder() instanceof PlaybackControlsRowPresenter.ViewHolder) {
Presenter.ViewHolder viewHolder2 = ((PlaybackControlsRowPresenter.ViewHolder) viewHolder.getViewHolder()).mDescriptionViewHolder;
if (viewHolder2 != null) {
viewHolder2.view.setAlpha(1.0f);
}
}
}
public void onBind(ViewHolder viewHolder) {
if (viewHolder.getPosition() == 0) {
PlaybackOverlaySupportFragment.this.updateControlsBottomSpace(viewHolder);
}
}
};
private int mAlignPosition;
private int mAnimationTranslateY;
private int mBackgroundType = 1;
private int mBgAlpha;
private int mBgDarkColor;
private ValueAnimator mBgFadeInAnimator;
private ValueAnimator mBgFadeOutAnimator;
private int mBgLightColor;
private ValueAnimator mControlRowFadeInAnimator;
private ValueAnimator mControlRowFadeOutAnimator;
private ValueAnimator mDescriptionFadeInAnimator;
private ValueAnimator mDescriptionFadeOutAnimator;
private OnFadeCompleteListener mFadeCompleteListener;
private final android.animation.Animator.AnimatorListener mFadeListener = new C00871();
private boolean mFadingEnabled = true;
private int mFadingStatus = 0;
private final Handler mHandler = new C00882();
private InputEventHandler mInputEventHandler;
private ItemAnimator mItemAnimator;
private TimeInterpolator mLogAccelerateInterpolator = new LogAccelerateInterpolator(100, 0);
private TimeInterpolator mLogDecelerateInterpolator = new LogDecelerateInterpolator(100, 0);
private int mMajorFadeTranslateY;
private int mMinorFadeTranslateY;
private final DataObserver mObserver = new DataObserver() {
public void onChanged() {
PlaybackOverlaySupportFragment.this.updateControlsBottomSpace(null);
}
};
private final OnKeyInterceptListener mOnKeyInterceptListener = new C00904();
private final OnTouchInterceptListener mOnTouchInterceptListener = new C00893();
private ValueAnimator mOtherRowFadeInAnimator;
private ValueAnimator mOtherRowFadeOutAnimator;
private int mPaddingBottom;
private boolean mResetControlsToPrimaryActionsPending;
private View mRootView;
private int mShowTimeMs;
private boolean mTranslateAnimationEnabled;
class C00871 implements android.animation.Animator.AnimatorListener {
C00871() {
}
public void onAnimationStart(Animator animator) {
PlaybackOverlaySupportFragment.this.enableVerticalGridAnimations(false);
}
public void onAnimationRepeat(Animator animator) {
}
public void onAnimationCancel(Animator animator) {
}
public void onAnimationEnd(Animator animator) {
if (PlaybackOverlaySupportFragment.this.mBgAlpha > 0) {
PlaybackOverlaySupportFragment.this.enableVerticalGridAnimations(true);
PlaybackOverlaySupportFragment.this.startFadeTimer();
if (PlaybackOverlaySupportFragment.this.mFadeCompleteListener != null) {
PlaybackOverlaySupportFragment.this.mFadeCompleteListener.onFadeInComplete();
}
} else {
if (PlaybackOverlaySupportFragment.this.getVerticalGridView() != null) {
PlaybackOverlaySupportFragment.this.getVerticalGridView().setSelectedPosition(0);
PlaybackOverlaySupportFragment.this.resetControlsToPrimaryActions(null);
}
if (PlaybackOverlaySupportFragment.this.mFadeCompleteListener != null) {
PlaybackOverlaySupportFragment.this.mFadeCompleteListener.onFadeOutComplete();
}
}
PlaybackOverlaySupportFragment.this.mFadingStatus = 0;
}
}
class C00882 extends Handler {
C00882() {
}
public void handleMessage(Message message) {
if (message.what == PlaybackOverlaySupportFragment.START_FADE_OUT && PlaybackOverlaySupportFragment.this.mFadingEnabled) {
PlaybackOverlaySupportFragment.this.fade(false);
}
}
}
class C00893 implements OnTouchInterceptListener {
C00893() {
}
public boolean onInterceptTouchEvent(MotionEvent motionEvent) {
return PlaybackOverlaySupportFragment.this.onInterceptInputEvent(motionEvent);
}
}
class C00904 implements OnKeyInterceptListener {
C00904() {
}
public boolean onInterceptKeyEvent(KeyEvent keyEvent) {
return PlaybackOverlaySupportFragment.this.onInterceptInputEvent(keyEvent);
}
}
class C00915 implements AnimatorUpdateListener {
C00915() {
}
public void onAnimationUpdate(ValueAnimator valueAnimator) {
PlaybackOverlaySupportFragment.this.setBgAlpha(((Integer) valueAnimator.getAnimatedValue()).intValue());
}
}
abstract class AnimatorListener implements android.animation.Animator.AnimatorListener {
ArrayList<Integer> mLayerType = new ArrayList();
ArrayList<View> mViews = new ArrayList();
abstract void getViews(ArrayList<View> arrayList);
AnimatorListener() {
}
public void onAnimationCancel(Animator animator) {
}
public void onAnimationRepeat(Animator animator) {
}
public void onAnimationStart(Animator animator) {
getViews(this.mViews);
Iterator it = this.mViews.iterator();
while (it.hasNext()) {
View view = (View) it.next();
this.mLayerType.add(Integer.valueOf(view.getLayerType()));
view.setLayerType(2, null);
}
}
public void onAnimationEnd(Animator animator) {
for (int i = 0; i < this.mViews.size(); i++) {
((View) this.mViews.get(i)).setLayerType(((Integer) this.mLayerType.get(i)).intValue(), null);
}
this.mLayerType.clear();
this.mViews.clear();
}
}
class C00926 extends AnimatorListener {
C00926() {
}
void getViews(ArrayList<View> arrayList) {
View access$1100 = PlaybackOverlaySupportFragment.this.getControlRowView();
if (access$1100 != null) {
arrayList.add(access$1100);
}
}
}
class C00937 implements AnimatorUpdateListener {
C00937() {
}
public void onAnimationUpdate(ValueAnimator valueAnimator) {
View access$1100 = PlaybackOverlaySupportFragment.this.getControlRowView();
if (access$1100 != null) {
float floatValue = ((Float) valueAnimator.getAnimatedValue()).floatValue();
access$1100.setAlpha(floatValue);
access$1100.setTranslationY((1.0f - floatValue) * ((float) PlaybackOverlaySupportFragment.this.mAnimationTranslateY));
}
}
}
class C00948 extends AnimatorListener {
C00948() {
}
void getViews(ArrayList<View> arrayList) {
if (PlaybackOverlaySupportFragment.this.getVerticalGridView() != null) {
int childCount = PlaybackOverlaySupportFragment.this.getVerticalGridView().getChildCount();
for (int i = 0; i < childCount; i++) {
View childAt = PlaybackOverlaySupportFragment.this.getVerticalGridView().getChildAt(i);
if (childAt != null) {
arrayList.add(childAt);
}
}
}
}
}
public interface InputEventHandler {
boolean handleInputEvent(InputEvent inputEvent);
}
public class OnFadeCompleteListener {
public void onFadeInComplete() {
}
public void onFadeOutComplete() {
}
}
private void setBgAlpha(int i) {
this.mBgAlpha = i;
if (this.mRootView != null) {
this.mRootView.getBackground().setAlpha(i);
}
}
private void enableVerticalGridAnimations(boolean z) {
if (getVerticalGridView() != null) {
getVerticalGridView().setAnimateChildLayout(z);
}
}
private void resetControlsToPrimaryActions(ViewHolder viewHolder) {
if (viewHolder == null && getVerticalGridView() != null) {
viewHolder = (ViewHolder) getVerticalGridView().findViewHolderForPosition(0);
}
if (viewHolder == null) {
this.mResetControlsToPrimaryActionsPending = true;
} else if (viewHolder.getPresenter() instanceof PlaybackControlsRowPresenter) {
this.mResetControlsToPrimaryActionsPending = false;
((PlaybackControlsRowPresenter) viewHolder.getPresenter()).showPrimaryActions((PlaybackControlsRowPresenter.ViewHolder) viewHolder.getViewHolder());
}
}
public void setFadingEnabled(boolean z) {
if (z != this.mFadingEnabled) {
this.mFadingEnabled = z;
if (!this.mFadingEnabled) {
this.mHandler.removeMessages(START_FADE_OUT);
fade(true);
} else if (isResumed() && this.mFadingStatus == 0 && !this.mHandler.hasMessages(START_FADE_OUT)) {
startFadeTimer();
}
}
}
public boolean isFadingEnabled() {
return this.mFadingEnabled;
}
public void setFadeCompleteListener(OnFadeCompleteListener onFadeCompleteListener) {
this.mFadeCompleteListener = onFadeCompleteListener;
}
public OnFadeCompleteListener getFadeCompleteListener() {
return this.mFadeCompleteListener;
}
public final void setInputEventHandler(InputEventHandler inputEventHandler) {
this.mInputEventHandler = inputEventHandler;
}
public final InputEventHandler getInputEventHandler() {
return this.mInputEventHandler;
}
public void tickle() {
if (!this.mFadingEnabled || !isResumed()) {
return;
}
if (this.mHandler.hasMessages(START_FADE_OUT)) {
startFadeTimer();
} else {
fade(true);
}
}
private boolean areControlsHidden() {
return this.mFadingStatus == 0 && this.mBgAlpha == 0;
}
private boolean onInterceptInputEvent(InputEvent inputEvent) {
boolean handleInputEvent;
int keyCode;
boolean areControlsHidden = areControlsHidden();
if (this.mInputEventHandler != null) {
handleInputEvent = this.mInputEventHandler.handleInputEvent(inputEvent);
} else {
handleInputEvent = false;
}
if (inputEvent instanceof KeyEvent) {
keyCode = ((KeyEvent) inputEvent).getKeyCode();
} else {
keyCode = 0;
}
switch (keyCode) {
case 4:
case DvbApi.DVB_SVC_FAV_Modify /*111*/:
if (this.mFadingEnabled && !areControlsHidden) {
this.mHandler.removeMessages(START_FADE_OUT);
fade(false);
return true;
} else if (!handleInputEvent) {
return handleInputEvent;
} else {
tickle();
return handleInputEvent;
}
case 19:
case 20:
case 21:
case 22:
case 23:
if (areControlsHidden) {
handleInputEvent = true;
}
tickle();
return handleInputEvent;
default:
if (!handleInputEvent) {
return handleInputEvent;
}
tickle();
return handleInputEvent;
}
}
public void onResume() {
super.onResume();
if (this.mFadingEnabled) {
setBgAlpha(0);
fade(true);
}
getVerticalGridView().setOnTouchInterceptListener(this.mOnTouchInterceptListener);
getVerticalGridView().setOnKeyInterceptListener(this.mOnKeyInterceptListener);
}
private void startFadeTimer() {
if (this.mHandler != null) {
this.mHandler.removeMessages(START_FADE_OUT);
this.mHandler.sendEmptyMessageDelayed(START_FADE_OUT, (long) this.mShowTimeMs);
}
}
private static ValueAnimator loadAnimator(Context context, int i) {
ValueAnimator valueAnimator = (ValueAnimator) AnimatorInflater.loadAnimator(context, i);
valueAnimator.setDuration(valueAnimator.getDuration());
return valueAnimator;
}
private void loadBgAnimator() {
AnimatorUpdateListener c00915 = new C00915();
this.mBgFadeInAnimator = loadAnimator(getActivity(), C0029R.animator.lb_playback_bg_fade_in);
this.mBgFadeInAnimator.addUpdateListener(c00915);
this.mBgFadeInAnimator.addListener(this.mFadeListener);
this.mBgFadeOutAnimator = loadAnimator(getActivity(), C0029R.animator.lb_playback_bg_fade_out);
this.mBgFadeOutAnimator.addUpdateListener(c00915);
this.mBgFadeOutAnimator.addListener(this.mFadeListener);
}
private View getControlRowView() {
if (getVerticalGridView() == null) {
return null;
}
RecyclerView.ViewHolder findViewHolderForPosition = getVerticalGridView().findViewHolderForPosition(0);
if (findViewHolderForPosition != null) {
return findViewHolderForPosition.itemView;
}
return null;
}
private void loadControlRowAnimator() {
android.animation.Animator.AnimatorListener c00926 = new C00926();
AnimatorUpdateListener c00937 = new C00937();
this.mControlRowFadeInAnimator = loadAnimator(getActivity(), C0029R.animator.lb_playback_controls_fade_in);
this.mControlRowFadeInAnimator.addUpdateListener(c00937);
this.mControlRowFadeInAnimator.addListener(c00926);
this.mControlRowFadeInAnimator.setInterpolator(this.mLogDecelerateInterpolator);
this.mControlRowFadeOutAnimator = loadAnimator(getActivity(), C0029R.animator.lb_playback_controls_fade_out);
this.mControlRowFadeOutAnimator.addUpdateListener(c00937);
this.mControlRowFadeOutAnimator.addListener(c00926);
this.mControlRowFadeOutAnimator.setInterpolator(this.mLogAccelerateInterpolator);
}
private void loadOtherRowAnimator() {
final android.animation.Animator.AnimatorListener c00948 = new C00948();
AnimatorUpdateListener c00959 = new AnimatorUpdateListener() {
public void onAnimationUpdate(ValueAnimator valueAnimator) {
if (PlaybackOverlaySupportFragment.this.getVerticalGridView() != null) {
float floatValue = ((Float) valueAnimator.getAnimatedValue()).floatValue();
Iterator it = c00948.mViews.iterator();
while (it.hasNext()) {
View view = (View) it.next();
if (PlaybackOverlaySupportFragment.this.getVerticalGridView().getChildPosition(view) > 0) {
view.setAlpha(floatValue);
view.setTranslationY(((float) PlaybackOverlaySupportFragment.this.mAnimationTranslateY) * (1.0f - floatValue));
}
}
}
}
};
this.mOtherRowFadeInAnimator = loadAnimator(getActivity(), C0029R.animator.lb_playback_controls_fade_in);
this.mOtherRowFadeInAnimator.addListener(c00948);
this.mOtherRowFadeInAnimator.addUpdateListener(c00959);
this.mOtherRowFadeInAnimator.setInterpolator(this.mLogDecelerateInterpolator);
this.mOtherRowFadeOutAnimator = loadAnimator(getActivity(), C0029R.animator.lb_playback_controls_fade_out);
this.mOtherRowFadeOutAnimator.addListener(c00948);
this.mOtherRowFadeOutAnimator.addUpdateListener(c00959);
this.mOtherRowFadeOutAnimator.setInterpolator(new AccelerateInterpolator());
}
private void loadDescriptionAnimator() {
AnimatorUpdateListener anonymousClass10 = new AnimatorUpdateListener() {
public void onAnimationUpdate(ValueAnimator valueAnimator) {
if (PlaybackOverlaySupportFragment.this.getVerticalGridView() != null) {
ViewHolder viewHolder = (ViewHolder) PlaybackOverlaySupportFragment.this.getVerticalGridView().findViewHolderForPosition(0);
if (viewHolder != null && (viewHolder.getViewHolder() instanceof PlaybackControlsRowPresenter.ViewHolder)) {
Presenter.ViewHolder viewHolder2 = ((PlaybackControlsRowPresenter.ViewHolder) viewHolder.getViewHolder()).mDescriptionViewHolder;
if (viewHolder2 != null) {
viewHolder2.view.setAlpha(((Float) valueAnimator.getAnimatedValue()).floatValue());
}
}
}
}
};
this.mDescriptionFadeInAnimator = loadAnimator(getActivity(), C0029R.animator.lb_playback_description_fade_in);
this.mDescriptionFadeInAnimator.addUpdateListener(anonymousClass10);
this.mDescriptionFadeInAnimator.setInterpolator(this.mLogDecelerateInterpolator);
this.mDescriptionFadeOutAnimator = loadAnimator(getActivity(), C0029R.animator.lb_playback_description_fade_out);
this.mDescriptionFadeOutAnimator.addUpdateListener(anonymousClass10);
}
private void fade(boolean z) {
if (getView() != null) {
if (!z || this.mFadingStatus != 1) {
if (!z && this.mFadingStatus == 2) {
return;
}
if (!z || this.mBgAlpha != 255) {
if (z || this.mBgAlpha != 0) {
this.mAnimationTranslateY = getVerticalGridView().getSelectedPosition() == 0 ? this.mMajorFadeTranslateY : this.mMinorFadeTranslateY;
if (this.mFadingStatus == 0) {
if (z) {
this.mBgFadeInAnimator.start();
this.mControlRowFadeInAnimator.start();
this.mOtherRowFadeInAnimator.start();
this.mDescriptionFadeInAnimator.start();
} else {
this.mBgFadeOutAnimator.start();
this.mControlRowFadeOutAnimator.start();
this.mOtherRowFadeOutAnimator.start();
this.mDescriptionFadeOutAnimator.start();
}
} else if (z) {
this.mBgFadeOutAnimator.reverse();
this.mControlRowFadeOutAnimator.reverse();
this.mOtherRowFadeOutAnimator.reverse();
this.mDescriptionFadeOutAnimator.reverse();
} else {
this.mBgFadeInAnimator.reverse();
this.mControlRowFadeInAnimator.reverse();
this.mOtherRowFadeInAnimator.reverse();
this.mDescriptionFadeInAnimator.reverse();
}
if (z && this.mFadingStatus == 0) {
int childCount = getVerticalGridView().getChildCount();
for (int i = 0; i < childCount; i++) {
getVerticalGridView().getChildAt(i).setTranslationY((float) this.mAnimationTranslateY);
}
}
this.mFadingStatus = z ? 1 : 2;
}
}
}
}
}
public void setAdapter(ObjectAdapter objectAdapter) {
if (getAdapter() != null) {
getAdapter().unregisterObserver(this.mObserver);
}
super.setAdapter(objectAdapter);
if (objectAdapter != null) {
objectAdapter.registerObserver(this.mObserver);
}
}
void setVerticalGridViewLayout(VerticalGridView verticalGridView) {
if (verticalGridView != null) {
setBottomPadding(verticalGridView, this.mPaddingBottom);
verticalGridView.setItemAlignmentOffset(this.mAlignPosition);
verticalGridView.setItemAlignmentOffsetPercent(100.0f);
verticalGridView.setWindowAlignmentOffset(0);
verticalGridView.setWindowAlignmentOffsetPercent(100.0f);
verticalGridView.setWindowAlignment(2);
}
}
private static void setBottomPadding(View view, int i) {
view.setPadding(view.getPaddingLeft(), view.getPaddingTop(), view.getPaddingRight(), i);
}
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
this.mAlignPosition = getResources().getDimensionPixelSize(C0029R.dimen.lb_playback_controls_align_bottom);
this.mPaddingBottom = getResources().getDimensionPixelSize(C0029R.dimen.lb_playback_controls_padding_bottom);
this.mBgDarkColor = getResources().getColor(C0029R.color.lb_playback_controls_background_dark);
this.mBgLightColor = getResources().getColor(C0029R.color.lb_playback_controls_background_light);
this.mShowTimeMs = getResources().getInteger(C0029R.integer.lb_playback_controls_show_time_ms);
this.mMajorFadeTranslateY = getResources().getDimensionPixelSize(C0029R.dimen.lb_playback_major_fade_translate_y);
this.mMinorFadeTranslateY = getResources().getDimensionPixelSize(C0029R.dimen.lb_playback_minor_fade_translate_y);
loadBgAnimator();
loadControlRowAnimator();
loadOtherRowAnimator();
loadDescriptionAnimator();
}
public void setBackgroundType(int i) {
switch (i) {
case 0:
case 1:
case 2:
if (i != this.mBackgroundType) {
this.mBackgroundType = i;
updateBackground();
return;
}
return;
default:
throw new IllegalArgumentException("Invalid background type");
}
}
public int getBackgroundType() {
return this.mBackgroundType;
}
private void updateBackground() {
if (this.mRootView != null) {
int i = this.mBgDarkColor;
switch (this.mBackgroundType) {
case 0:
i = 0;
break;
case 2:
i = this.mBgLightColor;
break;
}
this.mRootView.setBackground(new ColorDrawable(i));
}
}
private void updateControlsBottomSpace(ViewHolder viewHolder) {
boolean z = false;
if (viewHolder == null && getVerticalGridView() != null) {
viewHolder = (ViewHolder) getVerticalGridView().findViewHolderForPosition(0);
}
if (viewHolder != null && (viewHolder.getPresenter() instanceof PlaybackControlsRowPresenter)) {
PlaybackControlsRowPresenter playbackControlsRowPresenter = (PlaybackControlsRowPresenter) viewHolder.getPresenter();
PlaybackControlsRowPresenter.ViewHolder viewHolder2 = (PlaybackControlsRowPresenter.ViewHolder) viewHolder.getViewHolder();
if ((getAdapter() == null ? false : getAdapter().size()) > true) {
z = true;
}
playbackControlsRowPresenter.showBottomSpace(viewHolder2, z);
}
}
public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
this.mRootView = super.onCreateView(layoutInflater, viewGroup, bundle);
this.mBgAlpha = 255;
updateBackground();
getRowsSupportFragment().setExternalAdapterListener(this.mAdapterListener);
return this.mRootView;
}
public void onDestroyView() {
this.mRootView = null;
super.onDestroyView();
}
}
package android.support.v17.leanback.app;
import android.animation.TimeAnimator;
import android.animation.TimeAnimator.TimeListener;
import android.os.Bundle;
import android.support.v17.leanback.C0029R;
import android.support.v17.leanback.widget.HorizontalGridView;
import android.support.v17.leanback.widget.ItemBridgeAdapter;
import android.support.v17.leanback.widget.ItemBridgeAdapter.AdapterListener;
import android.support.v17.leanback.widget.ItemBridgeAdapter.ViewHolder;
import android.support.v17.leanback.widget.ListRowPresenter;
import android.support.v17.leanback.widget.OnItemViewClickedListener;
import android.support.v17.leanback.widget.OnItemViewSelectedListener;
import android.support.v17.leanback.widget.Presenter;
import android.support.v17.leanback.widget.RowPresenter;
import android.support.v17.leanback.widget.ScaleFrameLayout;
import android.support.v17.leanback.widget.VerticalGridView;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.RecycledViewPool;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewTreeObserver.OnPreDrawListener;
import android.view.animation.DecelerateInterpolator;
import android.view.animation.Interpolator;
import java.util.ArrayList;
public class RowsFragment extends BaseRowFragment {
private static final boolean DEBUG = false;
private static final String TAG = "RowsFragment";
private boolean mAfterEntranceTransition = true;
private int mAlignedTop;
private final AdapterListener mBridgeAdapterListener = new C00961();
private boolean mExpand = true;
private AdapterListener mExternalAdapterListener;
private OnItemViewClickedListener mOnItemViewClickedListener;
private OnItemViewSelectedListener mOnItemViewSelectedListener;
private ArrayList<Presenter> mPresenterMapper;
private RecycledViewPool mRecycledViewPool;
private boolean mRowScaleEnabled;
private float mRowScaleFactor;
private ScaleFrameLayout mScaleFrameLayout;
int mSelectAnimatorDuration;
Interpolator mSelectAnimatorInterpolator = new DecelerateInterpolator(2.0f);
private ViewHolder mSelectedViewHolder;
private int mSubPosition;
private boolean mViewsCreated;
class C00961 extends AdapterListener {
C00961() {
}
public void onAddPresenter(Presenter presenter, int i) {
if (RowsFragment.this.mExternalAdapterListener != null) {
RowsFragment.this.mExternalAdapterListener.onAddPresenter(presenter, i);
}
}
public void onCreate(ViewHolder viewHolder) {
VerticalGridView verticalGridView = RowsFragment.this.getVerticalGridView();
if (verticalGridView != null) {
verticalGridView.setClipChildren(false);
}
RowsFragment.this.setupSharedViewPool(viewHolder);
RowsFragment.this.mViewsCreated = true;
viewHolder.setExtraObject(new RowViewHolderExtra(viewHolder));
RowsFragment.setRowViewSelected(viewHolder, false, true);
if (RowsFragment.this.mExternalAdapterListener != null) {
RowsFragment.this.mExternalAdapterListener.onCreate(viewHolder);
}
}
public void onAttachedToWindow(ViewHolder viewHolder) {
RowsFragment.setRowViewExpanded(viewHolder, RowsFragment.this.mExpand);
RowPresenter rowPresenter = (RowPresenter) viewHolder.getPresenter();
RowPresenter.ViewHolder rowViewHolder = rowPresenter.getRowViewHolder(viewHolder.getViewHolder());
rowViewHolder.setOnItemViewSelectedListener(RowsFragment.this.mOnItemViewSelectedListener);
rowViewHolder.setOnItemViewClickedListener(RowsFragment.this.mOnItemViewClickedListener);
rowPresenter.setEntranceTransitionState(rowViewHolder, RowsFragment.this.mAfterEntranceTransition);
if (RowsFragment.this.mExternalAdapterListener != null) {
RowsFragment.this.mExternalAdapterListener.onAttachedToWindow(viewHolder);
}
}
public void onDetachedFromWindow(ViewHolder viewHolder) {
if (RowsFragment.this.mSelectedViewHolder == viewHolder) {
RowsFragment.setRowViewSelected(RowsFragment.this.mSelectedViewHolder, false, true);
RowsFragment.this.mSelectedViewHolder = null;
}
if (RowsFragment.this.mExternalAdapterListener != null) {
RowsFragment.this.mExternalAdapterListener.onDetachedFromWindow(viewHolder);
}
}
public void onBind(ViewHolder viewHolder) {
if (RowsFragment.this.mExternalAdapterListener != null) {
RowsFragment.this.mExternalAdapterListener.onBind(viewHolder);
}
}
public void onUnbind(ViewHolder viewHolder) {
RowsFragment.setRowViewSelected(viewHolder, false, true);
if (RowsFragment.this.mExternalAdapterListener != null) {
RowsFragment.this.mExternalAdapterListener.onUnbind(viewHolder);
}
}
}
class ExpandPreLayout implements OnPreDrawListener {
static final int STATE_FIRST_DRAW = 1;
static final int STATE_INIT = 0;
static final int STATE_SECOND_DRAW = 2;
final Runnable mCallback;
int mState;
final View mVerticalView;
ExpandPreLayout(Runnable runnable) {
this.mVerticalView = RowsFragment.this.getVerticalGridView();
this.mCallback = runnable;
}
void execute() {
this.mVerticalView.getViewTreeObserver().addOnPreDrawListener(this);
RowsFragment.this.setExpand(false);
this.mState = 0;
}
public boolean onPreDraw() {
if (this.mState == 0) {
RowsFragment.this.setExpand(true);
this.mState = 1;
} else if (this.mState == 1) {
this.mCallback.run();
this.mVerticalView.getViewTreeObserver().removeOnPreDrawListener(this);
this.mState = 2;
}
return false;
}
}
final class RowViewHolderExtra implements TimeListener {
final RowPresenter mRowPresenter;
final Presenter.ViewHolder mRowViewHolder;
final TimeAnimator mSelectAnimator = new TimeAnimator();
int mSelectAnimatorDurationInUse;
Interpolator mSelectAnimatorInterpolatorInUse;
float mSelectLevelAnimDelta;
float mSelectLevelAnimStart;
RowViewHolderExtra(ViewHolder viewHolder) {
this.mRowPresenter = (RowPresenter) viewHolder.getPresenter();
this.mRowViewHolder = viewHolder.getViewHolder();
this.mSelectAnimator.setTimeListener(this);
}
public final void onTimeUpdate(TimeAnimator timeAnimator, long j, long j2) {
if (this.mSelectAnimator.isRunning()) {
updateSelect(j, j2);
}
}
final void updateSelect(long j, long j2) {
float f;
if (j >= ((long) this.mSelectAnimatorDurationInUse)) {
f = 1.0f;
this.mSelectAnimator.end();
} else {
f = (float) (((double) j) / ((double) this.mSelectAnimatorDurationInUse));
}
if (this.mSelectAnimatorInterpolatorInUse != null) {
f = this.mSelectAnimatorInterpolatorInUse.getInterpolation(f);
}
this.mRowPresenter.setSelectLevel(this.mRowViewHolder, (f * this.mSelectLevelAnimDelta) + this.mSelectLevelAnimStart);
}
final void animateSelect(boolean z, boolean z2) {
this.mSelectAnimator.end();
float f = z ? 1.0f : 0.0f;
if (z2) {
this.mRowPresenter.setSelectLevel(this.mRowViewHolder, f);
} else if (this.mRowPresenter.getSelectLevel(this.mRowViewHolder) != f) {
this.mSelectAnimatorDurationInUse = RowsFragment.this.mSelectAnimatorDuration;
this.mSelectAnimatorInterpolatorInUse = RowsFragment.this.mSelectAnimatorInterpolator;
this.mSelectLevelAnimStart = this.mRowPresenter.getSelectLevel(this.mRowViewHolder);
this.mSelectLevelAnimDelta = f - this.mSelectLevelAnimStart;
this.mSelectAnimator.start();
}
}
}
public /* bridge */ /* synthetic */ void setSelectedPosition(int i) {
super.setSelectedPosition(i);
}
public /* bridge */ /* synthetic */ void setSelectedPosition(int i, boolean z) {
super.setSelectedPosition(i, z);
}
protected VerticalGridView findGridViewFromRoot(View view) {
return (VerticalGridView) view.findViewById(C0029R.id.container_list);
}
public void setOnItemViewClickedListener(OnItemViewClickedListener onItemViewClickedListener) {
this.mOnItemViewClickedListener = onItemViewClickedListener;
if (this.mViewsCreated) {
throw new IllegalStateException("Item clicked listener must be set before views are created");
}
}
public OnItemViewClickedListener getOnItemViewClickedListener() {
return this.mOnItemViewClickedListener;
}
public void setExpand(boolean z) {
this.mExpand = z;
VerticalGridView verticalGridView = getVerticalGridView();
if (verticalGridView != null) {
updateRowScaling();
int childCount = verticalGridView.getChildCount();
for (int i = 0; i < childCount; i++) {
setRowViewExpanded((ViewHolder) verticalGridView.getChildViewHolder(verticalGridView.getChildAt(i)), this.mExpand);
}
}
}
public void setOnItemViewSelectedListener(OnItemViewSelectedListener onItemViewSelectedListener) {
this.mOnItemViewSelectedListener = onItemViewSelectedListener;
VerticalGridView verticalGridView = getVerticalGridView();
if (verticalGridView != null) {
int childCount = verticalGridView.getChildCount();
for (int i = 0; i < childCount; i++) {
ViewHolder viewHolder = (ViewHolder) verticalGridView.getChildViewHolder(verticalGridView.getChildAt(i));
((RowPresenter) viewHolder.getPresenter()).getRowViewHolder(viewHolder.getViewHolder()).setOnItemViewSelectedListener(this.mOnItemViewSelectedListener);
}
}
}
public OnItemViewSelectedListener getOnItemViewSelectedListener() {
return this.mOnItemViewSelectedListener;
}
public void enableRowScaling(boolean z) {
this.mRowScaleEnabled = z;
}
void onRowSelected(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, int i, int i2) {
if (this.mSelectedViewHolder != viewHolder || this.mSubPosition != i2) {
this.mSubPosition = i2;
if (this.mSelectedViewHolder != null) {
setRowViewSelected(this.mSelectedViewHolder, false, false);
}
this.mSelectedViewHolder = (ViewHolder) viewHolder;
if (this.mSelectedViewHolder != null) {
setRowViewSelected(this.mSelectedViewHolder, true, false);
}
}
}
int getLayoutResourceId() {
return C0029R.layout.lb_rows_fragment;
}
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
this.mSelectAnimatorDuration = getResources().getInteger(C0029R.integer.lb_browse_rows_anim_duration);
this.mRowScaleFactor = getResources().getFraction(C0029R.fraction.lb_browse_rows_scale, 1, 1);
}
public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
View onCreateView = super.onCreateView(layoutInflater, viewGroup, bundle);
this.mScaleFrameLayout = (ScaleFrameLayout) onCreateView.findViewById(C0029R.id.scale_frame);
return onCreateView;
}
public void onViewCreated(View view, Bundle bundle) {
super.onViewCreated(view, bundle);
getVerticalGridView().setItemAlignmentViewId(C0029R.id.row_content);
getVerticalGridView().setSaveChildrenPolicy(2);
this.mRecycledViewPool = null;
this.mPresenterMapper = null;
}
public void onDestroyView() {
this.mViewsCreated = false;
super.onDestroyView();
}
void setItemAlignment() {
super.setItemAlignment();
if (getVerticalGridView() != null) {
getVerticalGridView().setItemAlignmentOffsetWithPadding(true);
}
}
void setExternalAdapterListener(AdapterListener adapterListener) {
this.mExternalAdapterListener = adapterListener;
}
View getScaleView() {
return getVerticalGridView();
}
void setScalePivots(float f, float f2) {
this.mScaleFrameLayout.setPivotX(f);
this.mScaleFrameLayout.setPivotY(f2);
}
private static void setRowViewExpanded(ViewHolder viewHolder, boolean z) {
((RowPresenter) viewHolder.getPresenter()).setRowViewExpanded(viewHolder.getViewHolder(), z);
}
private static void setRowViewSelected(ViewHolder viewHolder, boolean z, boolean z2) {
((RowViewHolderExtra) viewHolder.getExtraObject()).animateSelect(z, z2);
((RowPresenter) viewHolder.getPresenter()).setRowViewSelected(viewHolder.getViewHolder(), z);
}
private void setupSharedViewPool(ViewHolder viewHolder) {
RowPresenter.ViewHolder rowViewHolder = ((RowPresenter) viewHolder.getPresenter()).getRowViewHolder(viewHolder.getViewHolder());
if (rowViewHolder instanceof ListRowPresenter.ViewHolder) {
HorizontalGridView gridView = ((ListRowPresenter.ViewHolder) rowViewHolder).getGridView();
if (this.mRecycledViewPool == null) {
this.mRecycledViewPool = gridView.getRecycledViewPool();
} else {
gridView.setRecycledViewPool(this.mRecycledViewPool);
}
ItemBridgeAdapter bridgeAdapter = ((ListRowPresenter.ViewHolder) rowViewHolder).getBridgeAdapter();
if (this.mPresenterMapper == null) {
this.mPresenterMapper = bridgeAdapter.getPresenterMapper();
} else {
bridgeAdapter.setPresenterMapper(this.mPresenterMapper);
}
}
}
void updateAdapter() {
super.updateAdapter();
this.mSelectedViewHolder = null;
this.mViewsCreated = false;
ItemBridgeAdapter bridgeAdapter = getBridgeAdapter();
if (bridgeAdapter != null) {
bridgeAdapter.setAdapterListener(this.mBridgeAdapterListener);
}
}
boolean onTransitionPrepare() {
boolean onTransitionPrepare = super.onTransitionPrepare();
if (onTransitionPrepare) {
freezeRows(true);
}
return onTransitionPrepare;
}
void onExpandTransitionStart(boolean z, Runnable runnable) {
onTransitionPrepare();
onTransitionStart();
if (z) {
runnable.run();
} else {
new ExpandPreLayout(runnable).execute();
}
}
private boolean needsScale() {
return this.mRowScaleEnabled && !this.mExpand;
}
private void updateRowScaling() {
float f = needsScale() ? this.mRowScaleFactor : 1.0f;
this.mScaleFrameLayout.setLayoutScaleY(f);
getScaleView().setScaleY(f);
getScaleView().setScaleX(f);
updateWindowAlignOffset();
}
private void updateWindowAlignOffset() {
int i = this.mAlignedTop;
if (needsScale()) {
i = (int) ((((float) i) / this.mRowScaleFactor) + 0.5f);
}
getVerticalGridView().setWindowAlignmentOffset(i);
}
void setWindowAlignmentFromTop(int i) {
this.mAlignedTop = i;
VerticalGridView verticalGridView = getVerticalGridView();
if (verticalGridView != null) {
updateWindowAlignOffset();
verticalGridView.setWindowAlignmentOffsetPercent(-1.0f);
verticalGridView.setWindowAlignment(0);
}
}
void onTransitionEnd() {
super.onTransitionEnd();
freezeRows(false);
}
private void freezeRows(boolean z) {
VerticalGridView verticalGridView = getVerticalGridView();
if (verticalGridView != null) {
int childCount = verticalGridView.getChildCount();
for (int i = 0; i < childCount; i++) {
ViewHolder viewHolder = (ViewHolder) verticalGridView.getChildViewHolder(verticalGridView.getChildAt(i));
RowPresenter rowPresenter = (RowPresenter) viewHolder.getPresenter();
rowPresenter.freeze(rowPresenter.getRowViewHolder(viewHolder.getViewHolder()), z);
}
}
}
void setEntranceTransitionState(boolean z) {
this.mAfterEntranceTransition = z;
VerticalGridView verticalGridView = getVerticalGridView();
if (verticalGridView != null) {
int childCount = verticalGridView.getChildCount();
for (int i = 0; i < childCount; i++) {
ViewHolder viewHolder = (ViewHolder) verticalGridView.getChildViewHolder(verticalGridView.getChildAt(i));
RowPresenter rowPresenter = (RowPresenter) viewHolder.getPresenter();
rowPresenter.setEntranceTransitionState(rowPresenter.getRowViewHolder(viewHolder.getViewHolder()), this.mAfterEntranceTransition);
}
}
}
}
package android.support.v17.leanback.app;
import android.animation.TimeAnimator;
import android.animation.TimeAnimator.TimeListener;
import android.os.Bundle;
import android.support.v17.leanback.C0029R;
import android.support.v17.leanback.widget.HorizontalGridView;
import android.support.v17.leanback.widget.ItemBridgeAdapter;
import android.support.v17.leanback.widget.ItemBridgeAdapter.AdapterListener;
import android.support.v17.leanback.widget.ItemBridgeAdapter.ViewHolder;
import android.support.v17.leanback.widget.ListRowPresenter;
import android.support.v17.leanback.widget.OnItemViewClickedListener;
import android.support.v17.leanback.widget.OnItemViewSelectedListener;
import android.support.v17.leanback.widget.Presenter;
import android.support.v17.leanback.widget.RowPresenter;
import android.support.v17.leanback.widget.ScaleFrameLayout;
import android.support.v17.leanback.widget.VerticalGridView;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.RecycledViewPool;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewTreeObserver.OnPreDrawListener;
import android.view.animation.DecelerateInterpolator;
import android.view.animation.Interpolator;
import java.util.ArrayList;
public class RowsSupportFragment extends BaseRowSupportFragment {
private static final boolean DEBUG = false;
private static final String TAG = "RowsSupportFragment";
private boolean mAfterEntranceTransition = true;
private int mAlignedTop;
private final AdapterListener mBridgeAdapterListener = new C00971();
private boolean mExpand = true;
private AdapterListener mExternalAdapterListener;
private OnItemViewClickedListener mOnItemViewClickedListener;
private OnItemViewSelectedListener mOnItemViewSelectedListener;
private ArrayList<Presenter> mPresenterMapper;
private RecycledViewPool mRecycledViewPool;
private boolean mRowScaleEnabled;
private float mRowScaleFactor;
private ScaleFrameLayout mScaleFrameLayout;
int mSelectAnimatorDuration;
Interpolator mSelectAnimatorInterpolator = new DecelerateInterpolator(2.0f);
private ViewHolder mSelectedViewHolder;
private int mSubPosition;
private boolean mViewsCreated;
class C00971 extends AdapterListener {
C00971() {
}
public void onAddPresenter(Presenter presenter, int i) {
if (RowsSupportFragment.this.mExternalAdapterListener != null) {
RowsSupportFragment.this.mExternalAdapterListener.onAddPresenter(presenter, i);
}
}
public void onCreate(ViewHolder viewHolder) {
VerticalGridView verticalGridView = RowsSupportFragment.this.getVerticalGridView();
if (verticalGridView != null) {
verticalGridView.setClipChildren(false);
}
RowsSupportFragment.this.setupSharedViewPool(viewHolder);
RowsSupportFragment.this.mViewsCreated = true;
viewHolder.setExtraObject(new RowViewHolderExtra(viewHolder));
RowsSupportFragment.setRowViewSelected(viewHolder, false, true);
if (RowsSupportFragment.this.mExternalAdapterListener != null) {
RowsSupportFragment.this.mExternalAdapterListener.onCreate(viewHolder);
}
}
public void onAttachedToWindow(ViewHolder viewHolder) {
RowsSupportFragment.setRowViewExpanded(viewHolder, RowsSupportFragment.this.mExpand);
RowPresenter rowPresenter = (RowPresenter) viewHolder.getPresenter();
RowPresenter.ViewHolder rowViewHolder = rowPresenter.getRowViewHolder(viewHolder.getViewHolder());
rowViewHolder.setOnItemViewSelectedListener(RowsSupportFragment.this.mOnItemViewSelectedListener);
rowViewHolder.setOnItemViewClickedListener(RowsSupportFragment.this.mOnItemViewClickedListener);
rowPresenter.setEntranceTransitionState(rowViewHolder, RowsSupportFragment.this.mAfterEntranceTransition);
if (RowsSupportFragment.this.mExternalAdapterListener != null) {
RowsSupportFragment.this.mExternalAdapterListener.onAttachedToWindow(viewHolder);
}
}
public void onDetachedFromWindow(ViewHolder viewHolder) {
if (RowsSupportFragment.this.mSelectedViewHolder == viewHolder) {
RowsSupportFragment.setRowViewSelected(RowsSupportFragment.this.mSelectedViewHolder, false, true);
RowsSupportFragment.this.mSelectedViewHolder = null;
}
if (RowsSupportFragment.this.mExternalAdapterListener != null) {
RowsSupportFragment.this.mExternalAdapterListener.onDetachedFromWindow(viewHolder);
}
}
public void onBind(ViewHolder viewHolder) {
if (RowsSupportFragment.this.mExternalAdapterListener != null) {
RowsSupportFragment.this.mExternalAdapterListener.onBind(viewHolder);
}
}
public void onUnbind(ViewHolder viewHolder) {
RowsSupportFragment.setRowViewSelected(viewHolder, false, true);
if (RowsSupportFragment.this.mExternalAdapterListener != null) {
RowsSupportFragment.this.mExternalAdapterListener.onUnbind(viewHolder);
}
}
}
class ExpandPreLayout implements OnPreDrawListener {
static final int STATE_FIRST_DRAW = 1;
static final int STATE_INIT = 0;
static final int STATE_SECOND_DRAW = 2;
final Runnable mCallback;
int mState;
final View mVerticalView;
ExpandPreLayout(Runnable runnable) {
this.mVerticalView = RowsSupportFragment.this.getVerticalGridView();
this.mCallback = runnable;
}
void execute() {
this.mVerticalView.getViewTreeObserver().addOnPreDrawListener(this);
RowsSupportFragment.this.setExpand(false);
this.mState = 0;
}
public boolean onPreDraw() {
if (this.mState == 0) {
RowsSupportFragment.this.setExpand(true);
this.mState = 1;
} else if (this.mState == 1) {
this.mCallback.run();
this.mVerticalView.getViewTreeObserver().removeOnPreDrawListener(this);
this.mState = 2;
}
return false;
}
}
final class RowViewHolderExtra implements TimeListener {
final RowPresenter mRowPresenter;
final Presenter.ViewHolder mRowViewHolder;
final TimeAnimator mSelectAnimator = new TimeAnimator();
int mSelectAnimatorDurationInUse;
Interpolator mSelectAnimatorInterpolatorInUse;
float mSelectLevelAnimDelta;
float mSelectLevelAnimStart;
RowViewHolderExtra(ViewHolder viewHolder) {
this.mRowPresenter = (RowPresenter) viewHolder.getPresenter();
this.mRowViewHolder = viewHolder.getViewHolder();
this.mSelectAnimator.setTimeListener(this);
}
public final void onTimeUpdate(TimeAnimator timeAnimator, long j, long j2) {
if (this.mSelectAnimator.isRunning()) {
updateSelect(j, j2);
}
}
final void updateSelect(long j, long j2) {
float f;
if (j >= ((long) this.mSelectAnimatorDurationInUse)) {
f = 1.0f;
this.mSelectAnimator.end();
} else {
f = (float) (((double) j) / ((double) this.mSelectAnimatorDurationInUse));
}
if (this.mSelectAnimatorInterpolatorInUse != null) {
f = this.mSelectAnimatorInterpolatorInUse.getInterpolation(f);
}
this.mRowPresenter.setSelectLevel(this.mRowViewHolder, (f * this.mSelectLevelAnimDelta) + this.mSelectLevelAnimStart);
}
final void animateSelect(boolean z, boolean z2) {
this.mSelectAnimator.end();
float f = z ? 1.0f : 0.0f;
if (z2) {
this.mRowPresenter.setSelectLevel(this.mRowViewHolder, f);
} else if (this.mRowPresenter.getSelectLevel(this.mRowViewHolder) != f) {
this.mSelectAnimatorDurationInUse = RowsSupportFragment.this.mSelectAnimatorDuration;
this.mSelectAnimatorInterpolatorInUse = RowsSupportFragment.this.mSelectAnimatorInterpolator;
this.mSelectLevelAnimStart = this.mRowPresenter.getSelectLevel(this.mRowViewHolder);
this.mSelectLevelAnimDelta = f - this.mSelectLevelAnimStart;
this.mSelectAnimator.start();
}
}
}
public /* bridge */ /* synthetic */ void setSelectedPosition(int i) {
super.setSelectedPosition(i);
}
public /* bridge */ /* synthetic */ void setSelectedPosition(int i, boolean z) {
super.setSelectedPosition(i, z);
}
protected VerticalGridView findGridViewFromRoot(View view) {
return (VerticalGridView) view.findViewById(C0029R.id.container_list);
}
public void setOnItemViewClickedListener(OnItemViewClickedListener onItemViewClickedListener) {
this.mOnItemViewClickedListener = onItemViewClickedListener;
if (this.mViewsCreated) {
throw new IllegalStateException("Item clicked listener must be set before views are created");
}
}
public OnItemViewClickedListener getOnItemViewClickedListener() {
return this.mOnItemViewClickedListener;
}
public void setExpand(boolean z) {
this.mExpand = z;
VerticalGridView verticalGridView = getVerticalGridView();
if (verticalGridView != null) {
updateRowScaling();
int childCount = verticalGridView.getChildCount();
for (int i = 0; i < childCount; i++) {
setRowViewExpanded((ViewHolder) verticalGridView.getChildViewHolder(verticalGridView.getChildAt(i)), this.mExpand);
}
}
}
public void setOnItemViewSelectedListener(OnItemViewSelectedListener onItemViewSelectedListener) {
this.mOnItemViewSelectedListener = onItemViewSelectedListener;
VerticalGridView verticalGridView = getVerticalGridView();
if (verticalGridView != null) {
int childCount = verticalGridView.getChildCount();
for (int i = 0; i < childCount; i++) {
ViewHolder viewHolder = (ViewHolder) verticalGridView.getChildViewHolder(verticalGridView.getChildAt(i));
((RowPresenter) viewHolder.getPresenter()).getRowViewHolder(viewHolder.getViewHolder()).setOnItemViewSelectedListener(this.mOnItemViewSelectedListener);
}
}
}
public OnItemViewSelectedListener getOnItemViewSelectedListener() {
return this.mOnItemViewSelectedListener;
}
public void enableRowScaling(boolean z) {
this.mRowScaleEnabled = z;
}
void onRowSelected(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, int i, int i2) {
if (this.mSelectedViewHolder != viewHolder || this.mSubPosition != i2) {
this.mSubPosition = i2;
if (this.mSelectedViewHolder != null) {
setRowViewSelected(this.mSelectedViewHolder, false, false);
}
this.mSelectedViewHolder = (ViewHolder) viewHolder;
if (this.mSelectedViewHolder != null) {
setRowViewSelected(this.mSelectedViewHolder, true, false);
}
}
}
int getLayoutResourceId() {
return C0029R.layout.lb_rows_fragment;
}
public void onCreate(Bundle bundle) {
super.onCreate(bundle);
this.mSelectAnimatorDuration = getResources().getInteger(C0029R.integer.lb_browse_rows_anim_duration);
this.mRowScaleFactor = getResources().getFraction(C0029R.fraction.lb_browse_rows_scale, 1, 1);
}
public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
View onCreateView = super.onCreateView(layoutInflater, viewGroup, bundle);
this.mScaleFrameLayout = (ScaleFrameLayout) onCreateView.findViewById(C0029R.id.scale_frame);
return onCreateView;
}
public void onViewCreated(View view, Bundle bundle) {
super.onViewCreated(view, bundle);
getVerticalGridView().setItemAlignmentViewId(C0029R.id.row_content);
getVerticalGridView().setSaveChildrenPolicy(2);
this.mRecycledViewPool = null;
this.mPresenterMapper = null;
}
public void onDestroyView() {
this.mViewsCreated = false;
super.onDestroyView();
}
void setItemAlignment() {
super.setItemAlignment();
if (getVerticalGridView() != null) {
getVerticalGridView().setItemAlignmentOffsetWithPadding(true);
}
}
void setExternalAdapterListener(AdapterListener adapterListener) {
this.mExternalAdapterListener = adapterListener;
}
View getScaleView() {
return getVerticalGridView();
}
void setScalePivots(float f, float f2) {
this.mScaleFrameLayout.setPivotX(f);
this.mScaleFrameLayout.setPivotY(f2);
}
private static void setRowViewExpanded(ViewHolder viewHolder, boolean z) {
((RowPresenter) viewHolder.getPresenter()).setRowViewExpanded(viewHolder.getViewHolder(), z);
}
private static void setRowViewSelected(ViewHolder viewHolder, boolean z, boolean z2) {
((RowViewHolderExtra) viewHolder.getExtraObject()).animateSelect(z, z2);
((RowPresenter) viewHolder.getPresenter()).setRowViewSelected(viewHolder.getViewHolder(), z);
}
private void setupSharedViewPool(ViewHolder viewHolder) {
RowPresenter.ViewHolder rowViewHolder = ((RowPresenter) viewHolder.getPresenter()).getRowViewHolder(viewHolder.getViewHolder());
if (rowViewHolder instanceof ListRowPresenter.ViewHolder) {
HorizontalGridView gridView = ((ListRowPresenter.ViewHolder) rowViewHolder).getGridView();
if (this.mRecycledViewPool == null) {
this.mRecycledViewPool = gridView.getRecycledViewPool();
} else {
gridView.setRecycledViewPool(this.mRecycledViewPool);
}
ItemBridgeAdapter bridgeAdapter = ((ListRowPresenter.ViewHolder) rowViewHolder).getBridgeAdapter();
if (this.mPresenterMapper == null) {
this.mPresenterMapper = bridgeAdapter.getPresenterMapper();
} else {
bridgeAdapter.setPresenterMapper(this.mPresenterMapper);
}
}
}
void updateAdapter() {
super.updateAdapter();
this.mSelectedViewHolder = null;
this.mViewsCreated = false;
ItemBridgeAdapter bridgeAdapter = getBridgeAdapter();
if (bridgeAdapter != null) {
bridgeAdapter.setAdapterListener(this.mBridgeAdapterListener);
}
}
boolean onTransitionPrepare() {
boolean onTransitionPrepare = super.onTransitionPrepare();
if (onTransitionPrepare) {
freezeRows(true);
}
return onTransitionPrepare;
}
void onExpandTransitionStart(boolean z, Runnable runnable) {
onTransitionPrepare();
onTransitionStart();
if (z) {
runnable.run();
} else {
new ExpandPreLayout(runnable).execute();
}
}
private boolean needsScale() {
return this.mRowScaleEnabled && !this.mExpand;
}
private void updateRowScaling() {
float f = needsScale() ? this.mRowScaleFactor : 1.0f;
this.mScaleFrameLayout.setLayoutScaleY(f);
getScaleView().setScaleY(f);
getScaleView().setScaleX(f);
updateWindowAlignOffset();
}
private void updateWindowAlignOffset() {
int i = this.mAlignedTop;
if (needsScale()) {
i = (int) ((((float) i) / this.mRowScaleFactor) + 0.5f);
}
getVerticalGridView().setWindowAlignmentOffset(i);
}
void setWindowAlignmentFromTop(int i) {
this.mAlignedTop = i;
VerticalGridView verticalGridView = getVerticalGridView();
if (verticalGridView != null) {
updateWindowAlignOffset();
verticalGridView.setWindowAlignmentOffsetPercent(-1.0f);
verticalGridView.setWindowAlignment(0);
}
}
void onTransitionEnd() {
super.onTransitionEnd();
freezeRows(false);
}
private void freezeRows(boolean z) {
VerticalGridView verticalGridView = getVerticalGridView();
if (verticalGridView != null) {
int childCount = verticalGridView.getChildCount();
for (int i = 0; i < childCount; i++) {
ViewHolder viewHolder = (ViewHolder) verticalGridView.getChildViewHolder(verticalGridView.getChildAt(i));
RowPresenter rowPresenter = (RowPresenter) viewHolder.getPresenter();
rowPresenter.freeze(rowPresenter.getRowViewHolder(viewHolder.getViewHolder()), z);
}
}
}
void setEntranceTransitionState(boolean z) {
this.mAfterEntranceTransition = z;
VerticalGridView verticalGridView = getVerticalGridView();
if (verticalGridView != null) {
int childCount = verticalGridView.getChildCount();
for (int i = 0; i < childCount; i++) {
ViewHolder viewHolder = (ViewHolder) verticalGridView.getChildViewHolder(verticalGridView.getChildAt(i));
RowPresenter rowPresenter = (RowPresenter) viewHolder.getPresenter();
rowPresenter.setEntranceTransitionState(rowPresenter.getRowViewHolder(viewHolder.getViewHolder()), this.mAfterEntranceTransition);
}
}
}
}
package android.support.v17.leanback.app;
import android.app.Fragment;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.speech.SpeechRecognizer;
import android.support.v17.leanback.C0029R;
import android.support.v17.leanback.widget.ObjectAdapter;
import android.support.v17.leanback.widget.ObjectAdapter.DataObserver;
import android.support.v17.leanback.widget.OnItemViewClickedListener;
import android.support.v17.leanback.widget.OnItemViewSelectedListener;
import android.support.v17.leanback.widget.Presenter.ViewHolder;
import android.support.v17.leanback.widget.Row;
import android.support.v17.leanback.widget.RowPresenter;
import android.support.v17.leanback.widget.SearchBar;
import android.support.v17.leanback.widget.SearchBar.SearchBarListener;
import android.support.v17.leanback.widget.SpeechRecognitionCallback;
import android.support.v17.leanback.widget.VerticalGridView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import java.util.ArrayList;
import java.util.List;
public class SearchFragment extends Fragment {
private static final String ARG_PREFIX = SearchFragment.class.getCanonicalName();
private static final String ARG_QUERY = (ARG_PREFIX + ".query");
private static final String ARG_TITLE = (ARG_PREFIX + ".title");
private static final boolean DEBUG = false;
private static final String EXTRA_LEANBACK_BADGE_PRESENT = "LEANBACK_BADGE_PRESENT";
private static final int QUERY_COMPLETE = 2;
private static final int RESULTS_CHANGED = 1;
private static final long SPEECH_RECOGNITION_DELAY_MS = 300;
private static final String TAG = SearchFragment.class.getSimpleName();
private final DataObserver mAdapterObserver = new C00981();
private boolean mAutoStartRecognition = true;
private Drawable mBadgeDrawable;
private ExternalQuery mExternalQuery;
private final Handler mHandler = new Handler();
private OnItemViewClickedListener mOnItemViewClickedListener;
private OnItemViewSelectedListener mOnItemViewSelectedListener;
private String mPendingQuery = null;
private SearchResultProvider mProvider;
private ObjectAdapter mResultAdapter;
private final Runnable mResultsChangedCallback = new C00992();
private RowsFragment mRowsFragment;
private SearchBar mSearchBar;
private final Runnable mSetSearchResultProvider = new C01003();
private SpeechRecognitionCallback mSpeechRecognitionCallback;
private SpeechRecognizer mSpeechRecognizer;
private final Runnable mStartRecognitionRunnable = new C01014();
private int mStatus;
private String mTitle;
class C00981 extends DataObserver {
C00981() {
}
public void onChanged() {
SearchFragment.this.mHandler.removeCallbacks(SearchFragment.this.mResultsChangedCallback);
SearchFragment.this.mHandler.post(SearchFragment.this.mResultsChangedCallback);
}
}
class C00992 implements Runnable {
C00992() {
}
public void run() {
if (!(SearchFragment.this.mRowsFragment == null || SearchFragment.this.mRowsFragment.getAdapter() == SearchFragment.this.mResultAdapter || (SearchFragment.this.mRowsFragment.getAdapter() == null && SearchFragment.this.mResultAdapter.size() == 0))) {
SearchFragment.this.mRowsFragment.setAdapter(SearchFragment.this.mResultAdapter);
SearchFragment.this.mRowsFragment.setSelectedPosition(0);
}
SearchFragment.access$476(SearchFragment.this, 1);
if ((SearchFragment.this.mStatus & 2) != 0) {
SearchFragment.this.updateFocus();
}
SearchFragment.this.updateSearchBarNextFocusId();
}
}
class C01003 implements Runnable {
C01003() {
}
public void run() {
if (SearchFragment.this.mRowsFragment != null) {
ObjectAdapter resultsAdapter = SearchFragment.this.mProvider.getResultsAdapter();
if (resultsAdapter != SearchFragment.this.mResultAdapter) {
Object obj = SearchFragment.this.mResultAdapter == null ? 1 : null;
SearchFragment.this.releaseAdapter();
SearchFragment.this.mResultAdapter = resultsAdapter;
if (SearchFragment.this.mResultAdapter != null) {
SearchFragment.this.mResultAdapter.registerObserver(SearchFragment.this.mAdapterObserver);
}
if (obj == null || !(SearchFragment.this.mResultAdapter == null || SearchFragment.this.mResultAdapter.size() == 0)) {
SearchFragment.this.mRowsFragment.setAdapter(SearchFragment.this.mResultAdapter);
}
SearchFragment.this.executePendingQuery();
}
SearchFragment.this.updateSearchBarNextFocusId();
if (SearchFragment.this.mAutoStartRecognition) {
SearchFragment.this.mHandler.removeCallbacks(SearchFragment.this.mStartRecognitionRunnable);
SearchFragment.this.mHandler.postDelayed(SearchFragment.this.mStartRecognitionRunnable, SearchFragment.SPEECH_RECOGNITION_DELAY_MS);
return;
}
SearchFragment.this.updateFocus();
}
}
}
class C01014 implements Runnable {
C01014() {
}
public void run() {
SearchFragment.this.mAutoStartRecognition = false;
SearchFragment.this.mSearchBar.startRecognition();
}
}
class C01025 implements SearchBarListener {
C01025() {
}
public void onSearchQueryChange(String str) {
if (SearchFragment.this.mProvider != null) {
SearchFragment.this.retrieveResults(str);
} else {
SearchFragment.this.mPendingQuery = str;
}
}
public void onSearchQuerySubmit(String str) {
SearchFragment.this.submitQuery(str);
}
public void onKeyboardDismiss(String str) {
SearchFragment.this.queryComplete();
}
}
class C01036 implements OnItemViewSelectedListener {
C01036() {
}
public void onItemSelected(ViewHolder viewHolder, Object obj, RowPresenter.ViewHolder viewHolder2, Row row) {
SearchFragment.this.mSearchBar.setVisibility(SearchFragment.this.mRowsFragment.getVerticalGridView().getSelectedPosition() <= 0 ? 0 : 8);
if (SearchFragment.this.mOnItemViewSelectedListener != null) {
SearchFragment.this.mOnItemViewSelectedListener.onItemSelected(viewHolder, obj, viewHolder2, row);
}
}
}
class ExternalQuery {
String mQuery;
boolean mSubmit;
ExternalQuery(String str, boolean z) {
this.mQuery = str;
this.mSubmit = z;
}
}
public interface SearchResultProvider {
ObjectAdapter getResultsAdapter();
boolean onQueryTextChange(String str);
boolean onQueryTextSubmit(String str);
}
static /* synthetic */ int access$476(SearchFragment searchFragment, int i) {
int i2 = searchFragment.mStatus | i;
searchFragment.mStatus = i2;
return i2;
}
public static Bundle createArgs(Bundle bundle, String str) {
return createArgs(bundle, str, null);
}
public static Bundle createArgs(Bundle bundle, String str, String str2) {
if (bundle == null) {
bundle = new Bundle();
}
bundle.putString(ARG_QUERY, str);
bundle.putString(ARG_TITLE, str2);
return bundle;
}
public static SearchFragment newInstance(String str) {
SearchFragment searchFragment = new SearchFragment();
searchFragment.setArguments(createArgs(null, str));
return searchFragment;
}
public void onCreate(Bundle bundle) {
if (this.mAutoStartRecognition) {
this.mAutoStartRecognition = bundle == null;
}
super.onCreate(bundle);
}
public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
View inflate = layoutInflater.inflate(C0029R.layout.lb_search_fragment, viewGroup, false);
this.mSearchBar = (SearchBar) ((FrameLayout) inflate.findViewById(C0029R.id.lb_search_frame)).findViewById(C0029R.id.lb_search_bar);
this.mSearchBar.setSearchBarListener(new C01025());
this.mSearchBar.setSpeechRecognitionCallback(this.mSpeechRecognitionCallback);
applyExternalQuery();
readArguments(getArguments());
if (this.mBadgeDrawable != null) {
setBadgeDrawable(this.mBadgeDrawable);
}
if (this.mTitle != null) {
setTitle(this.mTitle);
}
if (getChildFragmentManager().findFragmentById(C0029R.id.lb_results_frame) == null) {
this.mRowsFragment = new RowsFragment();
getChildFragmentManager().beginTransaction().replace(C0029R.id.lb_results_frame, this.mRowsFragment).commit();
} else {
this.mRowsFragment = (RowsFragment) getChildFragmentManager().findFragmentById(C0029R.id.lb_results_frame);
}
this.mRowsFragment.setOnItemViewSelectedListener(new C01036());
this.mRowsFragment.setOnItemViewClickedListener(this.mOnItemViewClickedListener);
this.mRowsFragment.setExpand(true);
if (this.mProvider != null) {
onSetSearchResultProvider();
}
return inflate;
}
private void resultsAvailable() {
if ((this.mStatus & 2) != 0) {
focusOnResults();
}
updateSearchBarNextFocusId();
}
public void onStart() {
super.onStart();
VerticalGridView verticalGridView = this.mRowsFragment.getVerticalGridView();
int dimensionPixelSize = getResources().getDimensionPixelSize(C0029R.dimen.lb_search_browse_rows_align_top);
verticalGridView.setItemAlignmentOffset(0);
verticalGridView.setItemAlignmentOffsetPercent(-1.0f);
verticalGridView.setWindowAlignmentOffset(dimensionPixelSize);
verticalGridView.setWindowAlignmentOffsetPercent(-1.0f);
verticalGridView.setWindowAlignment(0);
}
public void onResume() {
super.onResume();
if (this.mSpeechRecognitionCallback == null && this.mSpeechRecognizer == null) {
this.mSpeechRecognizer = SpeechRecognizer.createSpeechRecognizer(getActivity());
this.mSearchBar.setSpeechRecognizer(this.mSpeechRecognizer);
}
this.mSearchBar.stopRecognition();
}
public void onPause() {
releaseRecognizer();
super.onPause();
}
public void onDestroy() {
releaseAdapter();
super.onDestroy();
}
private void releaseRecognizer() {
if (this.mSpeechRecognizer != null) {
this.mSearchBar.setSpeechRecognizer(null);
this.mSpeechRecognizer.destroy();
this.mSpeechRecognizer = null;
}
}
public void startRecognition() {
this.mSearchBar.startRecognition();
}
public void setSearchResultProvider(SearchResultProvider searchResultProvider) {
if (this.mProvider != searchResultProvider) {
this.mProvider = searchResultProvider;
onSetSearchResultProvider();
}
}
public void setOnItemViewSelectedListener(OnItemViewSelectedListener onItemViewSelectedListener) {
this.mOnItemViewSelectedListener = onItemViewSelectedListener;
}
public void setOnItemViewClickedListener(OnItemViewClickedListener onItemViewClickedListener) {
if (onItemViewClickedListener != this.mOnItemViewClickedListener) {
this.mOnItemViewClickedListener = onItemViewClickedListener;
if (this.mRowsFragment != null) {
this.mRowsFragment.setOnItemViewClickedListener(this.mOnItemViewClickedListener);
}
}
}
public void setTitle(String str) {
this.mTitle = str;
if (this.mSearchBar != null) {
this.mSearchBar.setTitle(str);
}
}
public String getTitle() {
if (this.mSearchBar != null) {
return this.mSearchBar.getTitle();
}
return null;
}
public void setBadgeDrawable(Drawable drawable) {
this.mBadgeDrawable = drawable;
if (this.mSearchBar != null) {
this.mSearchBar.setBadgeDrawable(drawable);
}
}
public Drawable getBadgeDrawable() {
if (this.mSearchBar != null) {
return this.mSearchBar.getBadgeDrawable();
}
return null;
}
public void displayCompletions(List<String> list) {
this.mSearchBar.displayCompletions(list);
}
public void setSpeechRecognitionCallback(SpeechRecognitionCallback speechRecognitionCallback) {
this.mSpeechRecognitionCallback = speechRecognitionCallback;
if (this.mSearchBar != null) {
this.mSearchBar.setSpeechRecognitionCallback(this.mSpeechRecognitionCallback);
}
if (speechRecognitionCallback != null) {
releaseRecognizer();
}
}
public void setSearchQuery(String str, boolean z) {
if (str != null) {
this.mExternalQuery = new ExternalQuery(str, z);
applyExternalQuery();
if (this.mAutoStartRecognition) {
this.mAutoStartRecognition = false;
this.mHandler.removeCallbacks(this.mStartRecognitionRunnable);
}
}
}
public void setSearchQuery(Intent intent, boolean z) {
ArrayList stringArrayListExtra = intent.getStringArrayListExtra("android.speech.extra.RESULTS");
if (stringArrayListExtra != null && stringArrayListExtra.size() > 0) {
setSearchQuery((String) stringArrayListExtra.get(0), z);
}
}
public Intent getRecognizerIntent() {
boolean z = true;
Intent intent = new Intent("android.speech.action.RECOGNIZE_SPEECH");
intent.putExtra("android.speech.extra.LANGUAGE_MODEL", "free_form");
intent.putExtra("android.speech.extra.PARTIAL_RESULTS", true);
if (!(this.mSearchBar == null || this.mSearchBar.getHint() == null)) {
intent.putExtra("android.speech.extra.PROMPT", this.mSearchBar.getHint());
}
String str = EXTRA_LEANBACK_BADGE_PRESENT;
if (this.mBadgeDrawable == null) {
z = false;
}
intent.putExtra(str, z);
return intent;
}
private void retrieveResults(String str) {
if (this.mProvider.onQueryTextChange(str)) {
this.mStatus &= -3;
}
}
private void submitQuery(String str) {
queryComplete();
if (this.mProvider != null) {
this.mProvider.onQueryTextSubmit(str);
}
}
private void queryComplete() {
this.mStatus |= 2;
focusOnResults();
}
private void updateSearchBarNextFocusId() {
if (this.mSearchBar != null && this.mResultAdapter != null) {
int id = (this.mResultAdapter.size() == 0 || this.mRowsFragment == null || this.mRowsFragment.getVerticalGridView() == null) ? 0 : this.mRowsFragment.getVerticalGridView().getId();
this.mSearchBar.setNextFocusDownId(id);
}
}
private void updateFocus() {
if (this.mResultAdapter == null || this.mResultAdapter.size() <= 0 || this.mRowsFragment == null || this.mRowsFragment.getAdapter() != this.mResultAdapter) {
this.mSearchBar.requestFocus();
} else {
focusOnResults();
}
}
private void focusOnResults() {
if (this.mRowsFragment != null && this.mRowsFragment.getVerticalGridView() != null && this.mResultAdapter.size() != 0 && this.mRowsFragment.getVerticalGridView().requestFocus()) {
this.mStatus &= -2;
}
}
private void onSetSearchResultProvider() {
this.mHandler.removeCallbacks(this.mSetSearchResultProvider);
this.mHandler.post(this.mSetSearchResultProvider);
}
private void releaseAdapter() {
if (this.mResultAdapter != null) {
this.mResultAdapter.unregisterObserver(this.mAdapterObserver);
this.mResultAdapter = null;
}
}
private void executePendingQuery() {
if (this.mPendingQuery != null && this.mResultAdapter != null) {
String str = this.mPendingQuery;
this.mPendingQuery = null;
retrieveResults(str);
}
}
private void applyExternalQuery() {
if (this.mExternalQuery != null && this.mSearchBar != null) {
this.mSearchBar.setSearchQuery(this.mExternalQuery.mQuery);
if (this.mExternalQuery.mSubmit) {
submitQuery(this.mExternalQuery.mQuery);
}
this.mExternalQuery = null;
}
}
private void readArguments(Bundle bundle) {
if (bundle != null) {
if (bundle.containsKey(ARG_QUERY)) {
setSearchQuery(bundle.getString(ARG_QUERY));
}
if (bundle.containsKey(ARG_TITLE)) {
setTitle(bundle.getString(ARG_TITLE));
}
}
}
private void setSearchQuery(String str) {
this.mSearchBar.setSearchQuery(str);
}
}
package android.support.v17.leanback.app;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.speech.SpeechRecognizer;
import android.support.v17.leanback.C0029R;
import android.support.v17.leanback.widget.ObjectAdapter;
import android.support.v17.leanback.widget.ObjectAdapter.DataObserver;
import android.support.v17.leanback.widget.OnItemViewClickedListener;
import android.support.v17.leanback.widget.OnItemViewSelectedListener;
import android.support.v17.leanback.widget.Presenter.ViewHolder;
import android.support.v17.leanback.widget.Row;
import android.support.v17.leanback.widget.RowPresenter;
import android.support.v17.leanback.widget.SearchBar;
import android.support.v17.leanback.widget.SearchBar.SearchBarListener;
import android.support.v17.leanback.widget.SpeechRecognitionCallback;
import android.support.v17.leanback.widget.VerticalGridView;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import java.util.ArrayList;
import java.util.List;
public class SearchSupportFragment extends Fragment {
private static final String ARG_PREFIX = SearchSupportFragment.class.getCanonicalName();
private static final String ARG_QUERY = (ARG_PREFIX + ".query");
private static final String ARG_TITLE = (ARG_PREFIX + ".title");
private static final boolean DEBUG = false;
private static final String EXTRA_LEANBACK_BADGE_PRESENT = "LEANBACK_BADGE_PRESENT";
private static final int QUERY_COMPLETE = 2;
private static final int RESULTS_CHANGED = 1;
private static final long SPEECH_RECOGNITION_DELAY_MS = 300;
private static final String TAG = SearchSupportFragment.class.getSimpleName();
private final DataObserver mAdapterObserver = new C01041();
private boolean mAutoStartRecognition = true;
private Drawable mBadgeDrawable;
private ExternalQuery mExternalQuery;
private final Handler mHandler = new Handler();
private OnItemViewClickedListener mOnItemViewClickedListener;
private OnItemViewSelectedListener mOnItemViewSelectedListener;
private String mPendingQuery = null;
private SearchResultProvider mProvider;
private ObjectAdapter mResultAdapter;
private final Runnable mResultsChangedCallback = new C01052();
private RowsSupportFragment mRowsSupportFragment;
private SearchBar mSearchBar;
private final Runnable mSetSearchResultProvider = new C01063();
private SpeechRecognitionCallback mSpeechRecognitionCallback;
private SpeechRecognizer mSpeechRecognizer;
private final Runnable mStartRecognitionRunnable = new C01074();
private int mStatus;
private String mTitle;
class C01041 extends DataObserver {
C01041() {
}
public void onChanged() {
SearchSupportFragment.this.mHandler.removeCallbacks(SearchSupportFragment.this.mResultsChangedCallback);
SearchSupportFragment.this.mHandler.post(SearchSupportFragment.this.mResultsChangedCallback);
}
}
class C01052 implements Runnable {
C01052() {
}
public void run() {
if (!(SearchSupportFragment.this.mRowsSupportFragment == null || SearchSupportFragment.this.mRowsSupportFragment.getAdapter() == SearchSupportFragment.this.mResultAdapter || (SearchSupportFragment.this.mRowsSupportFragment.getAdapter() == null && SearchSupportFragment.this.mResultAdapter.size() == 0))) {
SearchSupportFragment.this.mRowsSupportFragment.setAdapter(SearchSupportFragment.this.mResultAdapter);
SearchSupportFragment.this.mRowsSupportFragment.setSelectedPosition(0);
}
SearchSupportFragment.access$476(SearchSupportFragment.this, 1);
if ((SearchSupportFragment.this.mStatus & 2) != 0) {
SearchSupportFragment.this.updateFocus();
}
SearchSupportFragment.this.updateSearchBarNextFocusId();
}
}
class C01063 implements Runnable {
C01063() {
}
public void run() {
if (SearchSupportFragment.this.mRowsSupportFragment != null) {
ObjectAdapter resultsAdapter = SearchSupportFragment.this.mProvider.getResultsAdapter();
if (resultsAdapter != SearchSupportFragment.this.mResultAdapter) {
Object obj = SearchSupportFragment.this.mResultAdapter == null ? 1 : null;
SearchSupportFragment.this.releaseAdapter();
SearchSupportFragment.this.mResultAdapter = resultsAdapter;
if (SearchSupportFragment.this.mResultAdapter != null) {
SearchSupportFragment.this.mResultAdapter.registerObserver(SearchSupportFragment.this.mAdapterObserver);
}
if (obj == null || !(SearchSupportFragment.this.mResultAdapter == null || SearchSupportFragment.this.mResultAdapter.size() == 0)) {
SearchSupportFragment.this.mRowsSupportFragment.setAdapter(SearchSupportFragment.this.mResultAdapter);
}
SearchSupportFragment.this.executePendingQuery();
}
SearchSupportFragment.this.updateSearchBarNextFocusId();
if (SearchSupportFragment.this.mAutoStartRecognition) {
SearchSupportFragment.this.mHandler.removeCallbacks(SearchSupportFragment.this.mStartRecognitionRunnable);
SearchSupportFragment.this.mHandler.postDelayed(SearchSupportFragment.this.mStartRecognitionRunnable, SearchSupportFragment.SPEECH_RECOGNITION_DELAY_MS);
return;
}
SearchSupportFragment.this.updateFocus();
}
}
}
class C01074 implements Runnable {
C01074() {
}
public void run() {
SearchSupportFragment.this.mAutoStartRecognition = false;
SearchSupportFragment.this.mSearchBar.startRecognition();
}
}
class C01085 implements SearchBarListener {
C01085() {
}
public void onSearchQueryChange(String str) {
if (SearchSupportFragment.this.mProvider != null) {
SearchSupportFragment.this.retrieveResults(str);
} else {
SearchSupportFragment.this.mPendingQuery = str;
}
}
public void onSearchQuerySubmit(String str) {
SearchSupportFragment.this.submitQuery(str);
}
public void onKeyboardDismiss(String str) {
SearchSupportFragment.this.queryComplete();
}
}
class C01096 implements OnItemViewSelectedListener {
C01096() {
}
public void onItemSelected(ViewHolder viewHolder, Object obj, RowPresenter.ViewHolder viewHolder2, Row row) {
SearchSupportFragment.this.mSearchBar.setVisibility(SearchSupportFragment.this.mRowsSupportFragment.getVerticalGridView().getSelectedPosition() <= 0 ? 0 : 8);
if (SearchSupportFragment.this.mOnItemViewSelectedListener != null) {
SearchSupportFragment.this.mOnItemViewSelectedListener.onItemSelected(viewHolder, obj, viewHolder2, row);
}
}
}
class ExternalQuery {
String mQuery;
boolean mSubmit;
ExternalQuery(String str, boolean z) {
this.mQuery = str;
this.mSubmit = z;
}
}
public interface SearchResultProvider {
ObjectAdapter getResultsAdapter();
boolean onQueryTextChange(String str);
boolean onQueryTextSubmit(String str);
}
static /* synthetic */ int access$476(SearchSupportFragment searchSupportFragment, int i) {
int i2 = searchSupportFragment.mStatus | i;
searchSupportFragment.mStatus = i2;
return i2;
}
public static Bundle createArgs(Bundle bundle, String str) {
return createArgs(bundle, str, null);
}
public static Bundle createArgs(Bundle bundle, String str, String str2) {
if (bundle == null) {
bundle = new Bundle();
}
bundle.putString(ARG_QUERY, str);
bundle.putString(ARG_TITLE, str2);
return bundle;
}
public static SearchSupportFragment newInstance(String str) {
SearchSupportFragment searchSupportFragment = new SearchSupportFragment();
searchSupportFragment.setArguments(createArgs(null, str));
return searchSupportFragment;
}
public void onCreate(Bundle bundle) {
if (this.mAutoStartRecognition) {
this.mAutoStartRecognition = bundle == null;
}
super.onCreate(bundle);
}
public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
View inflate = layoutInflater.inflate(C0029R.layout.lb_search_fragment, viewGroup, false);
this.mSearchBar = (SearchBar) ((FrameLayout) inflate.findViewById(C0029R.id.lb_search_frame)).findViewById(C0029R.id.lb_search_bar);
this.mSearchBar.setSearchBarListener(new C01085());
this.mSearchBar.setSpeechRecognitionCallback(this.mSpeechRecognitionCallback);
applyExternalQuery();
readArguments(getArguments());
if (this.mBadgeDrawable != null) {
setBadgeDrawable(this.mBadgeDrawable);
}
if (this.mTitle != null) {
setTitle(this.mTitle);
}
if (getChildFragmentManager().findFragmentById(C0029R.id.lb_results_frame) == null) {
this.mRowsSupportFragment = new RowsSupportFragment();
getChildFragmentManager().beginTransaction().replace(C0029R.id.lb_results_frame, this.mRowsSupportFragment).commit();
} else {
this.mRowsSupportFragment = (RowsSupportFragment) getChildFragmentManager().findFragmentById(C0029R.id.lb_results_frame);
}
this.mRowsSupportFragment.setOnItemViewSelectedListener(new C01096());
this.mRowsSupportFragment.setOnItemViewClickedListener(this.mOnItemViewClickedListener);
this.mRowsSupportFragment.setExpand(true);
if (this.mProvider != null) {
onSetSearchResultProvider();
}
return inflate;
}
private void resultsAvailable() {
if ((this.mStatus & 2) != 0) {
focusOnResults();
}
updateSearchBarNextFocusId();
}
public void onStart() {
super.onStart();
VerticalGridView verticalGridView = this.mRowsSupportFragment.getVerticalGridView();
int dimensionPixelSize = getResources().getDimensionPixelSize(C0029R.dimen.lb_search_browse_rows_align_top);
verticalGridView.setItemAlignmentOffset(0);
verticalGridView.setItemAlignmentOffsetPercent(-1.0f);
verticalGridView.setWindowAlignmentOffset(dimensionPixelSize);
verticalGridView.setWindowAlignmentOffsetPercent(-1.0f);
verticalGridView.setWindowAlignment(0);
}
public void onResume() {
super.onResume();
if (this.mSpeechRecognitionCallback == null && this.mSpeechRecognizer == null) {
this.mSpeechRecognizer = SpeechRecognizer.createSpeechRecognizer(getActivity());
this.mSearchBar.setSpeechRecognizer(this.mSpeechRecognizer);
}
this.mSearchBar.stopRecognition();
}
public void onPause() {
releaseRecognizer();
super.onPause();
}
public void onDestroy() {
releaseAdapter();
super.onDestroy();
}
private void releaseRecognizer() {
if (this.mSpeechRecognizer != null) {
this.mSearchBar.setSpeechRecognizer(null);
this.mSpeechRecognizer.destroy();
this.mSpeechRecognizer = null;
}
}
public void startRecognition() {
this.mSearchBar.startRecognition();
}
public void setSearchResultProvider(SearchResultProvider searchResultProvider) {
if (this.mProvider != searchResultProvider) {
this.mProvider = searchResultProvider;
onSetSearchResultProvider();
}
}
public void setOnItemViewSelectedListener(OnItemViewSelectedListener onItemViewSelectedListener) {
this.mOnItemViewSelectedListener = onItemViewSelectedListener;
}
public void setOnItemViewClickedListener(OnItemViewClickedListener onItemViewClickedListener) {
if (onItemViewClickedListener != this.mOnItemViewClickedListener) {
this.mOnItemViewClickedListener = onItemViewClickedListener;
if (this.mRowsSupportFragment != null) {
this.mRowsSupportFragment.setOnItemViewClickedListener(this.mOnItemViewClickedListener);
}
}
}
public void setTitle(String str) {
this.mTitle = str;
if (this.mSearchBar != null) {
this.mSearchBar.setTitle(str);
}
}
public String getTitle() {
if (this.mSearchBar != null) {
return this.mSearchBar.getTitle();
}
return null;
}
public void setBadgeDrawable(Drawable drawable) {
this.mBadgeDrawable = drawable;
if (this.mSearchBar != null) {
this.mSearchBar.setBadgeDrawable(drawable);
}
}
public Drawable getBadgeDrawable() {
if (this.mSearchBar != null) {
return this.mSearchBar.getBadgeDrawable();
}
return null;
}
public void displayCompletions(List<String> list) {
this.mSearchBar.displayCompletions(list);
}
public void setSpeechRecognitionCallback(SpeechRecognitionCallback speechRecognitionCallback) {
this.mSpeechRecognitionCallback = speechRecognitionCallback;
if (this.mSearchBar != null) {
this.mSearchBar.setSpeechRecognitionCallback(this.mSpeechRecognitionCallback);
}
if (speechRecognitionCallback != null) {
releaseRecognizer();
}
}
public void setSearchQuery(String str, boolean z) {
if (str != null) {
this.mExternalQuery = new ExternalQuery(str, z);
applyExternalQuery();
if (this.mAutoStartRecognition) {
this.mAutoStartRecognition = false;
this.mHandler.removeCallbacks(this.mStartRecognitionRunnable);
}
}
}
public void setSearchQuery(Intent intent, boolean z) {
ArrayList stringArrayListExtra = intent.getStringArrayListExtra("android.speech.extra.RESULTS");
if (stringArrayListExtra != null && stringArrayListExtra.size() > 0) {
setSearchQuery((String) stringArrayListExtra.get(0), z);
}
}
public Intent getRecognizerIntent() {
boolean z = true;
Intent intent = new Intent("android.speech.action.RECOGNIZE_SPEECH");
intent.putExtra("android.speech.extra.LANGUAGE_MODEL", "free_form");
intent.putExtra("android.speech.extra.PARTIAL_RESULTS", true);
if (!(this.mSearchBar == null || this.mSearchBar.getHint() == null)) {
intent.putExtra("android.speech.extra.PROMPT", this.mSearchBar.getHint());
}
String str = EXTRA_LEANBACK_BADGE_PRESENT;
if (this.mBadgeDrawable == null) {
z = false;
}
intent.putExtra(str, z);
return intent;
}
private void retrieveResults(String str) {
if (this.mProvider.onQueryTextChange(str)) {
this.mStatus &= -3;
}
}
private void submitQuery(String str) {
queryComplete();
if (this.mProvider != null) {
this.mProvider.onQueryTextSubmit(str);
}
}
private void queryComplete() {
this.mStatus |= 2;
focusOnResults();
}
private void updateSearchBarNextFocusId() {
if (this.mSearchBar != null && this.mResultAdapter != null) {
int id = (this.mResultAdapter.size() == 0 || this.mRowsSupportFragment == null || this.mRowsSupportFragment.getVerticalGridView() == null) ? 0 : this.mRowsSupportFragment.getVerticalGridView().getId();
this.mSearchBar.setNextFocusDownId(id);
}
}
private void updateFocus() {
if (this.mResultAdapter == null || this.mResultAdapter.size() <= 0 || this.mRowsSupportFragment == null || this.mRowsSupportFragment.getAdapter() != this.mResultAdapter) {
this.mSearchBar.requestFocus();
} else {
focusOnResults();
}
}
private void focusOnResults() {
if (this.mRowsSupportFragment != null && this.mRowsSupportFragment.getVerticalGridView() != null && this.mResultAdapter.size() != 0 && this.mRowsSupportFragment.getVerticalGridView().requestFocus()) {
this.mStatus &= -2;
}
}
private void onSetSearchResultProvider() {
this.mHandler.removeCallbacks(this.mSetSearchResultProvider);
this.mHandler.post(this.mSetSearchResultProvider);
}
private void releaseAdapter() {
if (this.mResultAdapter != null) {
this.mResultAdapter.unregisterObserver(this.mAdapterObserver);
this.mResultAdapter = null;
}
}
private void executePendingQuery() {
if (this.mPendingQuery != null && this.mResultAdapter != null) {
String str = this.mPendingQuery;
this.mPendingQuery = null;
retrieveResults(str);
}
}
private void applyExternalQuery() {
if (this.mExternalQuery != null && this.mSearchBar != null) {
this.mSearchBar.setSearchQuery(this.mExternalQuery.mQuery);
if (this.mExternalQuery.mSubmit) {
submitQuery(this.mExternalQuery.mQuery);
}
this.mExternalQuery = null;
}
}
private void readArguments(Bundle bundle) {
if (bundle != null) {
if (bundle.containsKey(ARG_QUERY)) {
setSearchQuery(bundle.getString(ARG_QUERY));
}
if (bundle.containsKey(ARG_TITLE)) {
setTitle(bundle.getString(ARG_TITLE));
}
}
}
private void setSearchQuery(String str) {
this.mSearchBar.setSearchQuery(str);
}
}
package android.support.v17.leanback.app;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v17.leanback.C0029R;
import android.support.v17.leanback.widget.BrowseFrameLayout;
import android.support.v17.leanback.widget.ObjectAdapter;
import android.support.v17.leanback.widget.OnChildLaidOutListener;
import android.support.v17.leanback.widget.OnItemViewClickedListener;
import android.support.v17.leanback.widget.OnItemViewSelectedListener;
import android.support.v17.leanback.widget.Presenter;
import android.support.v17.leanback.widget.Row;
import android.support.v17.leanback.widget.RowPresenter;
import android.support.v17.leanback.widget.SearchOrbView.Colors;
import android.support.v17.leanback.widget.TitleView;
import android.support.v17.leanback.widget.VerticalGridPresenter;
import android.support.v17.leanback.widget.VerticalGridPresenter.ViewHolder;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
public class VerticalGridFragment extends BrandedFragment {
private static boolean DEBUG = false;
private static final String TAG = "VerticalGridFragment";
private ObjectAdapter mAdapter;
private final OnChildLaidOutListener mChildLaidOutListener = new C01112();
private VerticalGridPresenter mGridPresenter;
private ViewHolder mGridViewHolder;
private OnItemViewClickedListener mOnItemViewClickedListener;
private OnItemViewSelectedListener mOnItemViewSelectedListener;
private int mSelectedPosition = -1;
private final OnItemViewSelectedListener mViewSelectedListener = new C01101();
class C01101 implements OnItemViewSelectedListener {
C01101() {
}
public void onItemSelected(Presenter.ViewHolder viewHolder, Object obj, RowPresenter.ViewHolder viewHolder2, Row row) {
int selectedPosition = VerticalGridFragment.this.mGridViewHolder.getGridView().getSelectedPosition();
if (VerticalGridFragment.DEBUG) {
Log.v(VerticalGridFragment.TAG, "grid selected position " + selectedPosition);
}
VerticalGridFragment.this.gridOnItemSelected(selectedPosition);
if (VerticalGridFragment.this.mOnItemViewSelectedListener != null) {
VerticalGridFragment.this.mOnItemViewSelectedListener.onItemSelected(viewHolder, obj, viewHolder2, row);
}
}
}
class C01112 implements OnChildLaidOutListener {
C01112() {
}
public void onChildLaidOut(ViewGroup viewGroup, View view, int i, long j) {
if (i == 0) {
VerticalGridFragment.this.showOrHideTitle();
}
}
}
public /* bridge */ /* synthetic */ Drawable getBadgeDrawable() {
return super.getBadgeDrawable();
}
public /* bridge */ /* synthetic */ int getSearchAffordanceColor() {
return super.getSearchAffordanceColor();
}
public /* bridge */ /* synthetic */ Colors getSearchAffordanceColors() {
return super.getSearchAffordanceColors();
}
public /* bridge */ /* synthetic */ String getTitle() {
return super.getTitle();
}
public /* bridge */ /* synthetic */ void onPause() {
super.onPause();
}
public /* bridge */ /* synthetic */ void onResume() {
super.onResume();
}
public /* bridge */ /* synthetic */ void onSaveInstanceState(Bundle bundle) {
super.onSaveInstanceState(bundle);
}
public /* bridge */ /* synthetic */ void setBadgeDrawable(Drawable drawable) {
super.setBadgeDrawable(drawable);
}
public /* bridge */ /* synthetic */ void setOnSearchClickedListener(OnClickListener onClickListener) {
super.setOnSearchClickedListener(onClickListener);
}
public /* bridge */ /* synthetic */ void setSearchAffordanceColor(int i) {
super.setSearchAffordanceColor(i);
}
public /* bridge */ /* synthetic */ void setSearchAffordanceColors(Colors colors) {
super.setSearchAffordanceColors(colors);
}
public /* bridge */ /* synthetic */ void setTitle(String str) {
super.setTitle(str);
}
public void setGridPresenter(VerticalGridPresenter verticalGridPresenter) {
if (verticalGridPresenter == null) {
throw new IllegalArgumentException("Grid presenter may not be null");
}
this.mGridPresenter = verticalGridPresenter;
this.mGridPresenter.setOnItemViewSelectedListener(this.mViewSelectedListener);
if (this.mOnItemViewClickedListener != null) {
this.mGridPresenter.setOnItemViewClickedListener(this.mOnItemViewClickedListener);
}
}
public VerticalGridPresenter getGridPresenter() {
return this.mGridPresenter;
}
public void setAdapter(ObjectAdapter objectAdapter) {
this.mAdapter = objectAdapter;
updateAdapter();
}
public ObjectAdapter getAdapter() {
return this.mAdapter;
}
public void setOnItemViewSelectedListener(OnItemViewSelectedListener onItemViewSelectedListener) {
this.mOnItemViewSelectedListener = onItemViewSelectedListener;
}
private void gridOnItemSelected(int i) {
if (i != this.mSelectedPosition) {
this.mSelectedPosition = i;
showOrHideTitle();
}
}
private void showOrHideTitle() {
if (this.mGridViewHolder.getGridView().findViewHolderForAdapterPosition(this.mSelectedPosition) != null) {
if (this.mGridViewHolder.getGridView().hasPreviousViewInSameRow(this.mSelectedPosition)) {
showTitle(false);
} else {
showTitle(true);
}
}
}
public void setOnItemViewClickedListener(OnItemViewClickedListener onItemViewClickedListener) {
this.mOnItemViewClickedListener = onItemViewClickedListener;
if (this.mGridPresenter != null) {
this.mGridPresenter.setOnItemViewClickedListener(this.mOnItemViewClickedListener);
}
}
public OnItemViewClickedListener getOnItemViewClickedListener() {
return this.mOnItemViewClickedListener;
}
public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
ViewGroup viewGroup2 = (ViewGroup) layoutInflater.inflate(C0029R.layout.lb_vertical_grid_fragment, viewGroup, false);
setTitleView((TitleView) viewGroup2.findViewById(C0029R.id.browse_title_group));
return viewGroup2;
}
public void onViewCreated(View view, Bundle bundle) {
super.onViewCreated(view, bundle);
ViewGroup viewGroup = (ViewGroup) view.findViewById(C0029R.id.browse_grid_dock);
this.mGridViewHolder = this.mGridPresenter.onCreateViewHolder(viewGroup);
viewGroup.addView(this.mGridViewHolder.view);
this.mGridViewHolder.getGridView().setOnChildLaidOutListener(this.mChildLaidOutListener);
updateAdapter();
}
private void setupFocusSearchListener() {
((BrowseFrameLayout) getView().findViewById(C0029R.id.grid_frame)).setOnFocusSearchListener(getTitleHelper().getOnFocusSearchListener());
}
public void onStart() {
super.onStart();
setupFocusSearchListener();
this.mGridViewHolder.getGridView().requestFocus();
}
public void onDestroyView() {
super.onDestroyView();
this.mGridViewHolder = null;
}
public void setSelectedPosition(int i) {
this.mSelectedPosition = i;
if (this.mGridViewHolder != null && this.mGridViewHolder.getGridView().getAdapter() != null) {
this.mGridViewHolder.getGridView().setSelectedPositionSmooth(i);
}
}
private void updateAdapter() {
if (this.mGridViewHolder != null) {
this.mGridPresenter.onBindViewHolder(this.mGridViewHolder, this.mAdapter);
if (this.mSelectedPosition != -1) {
this.mGridViewHolder.getGridView().setSelectedPosition(this.mSelectedPosition);
}
}
}
}
package android.support.v17.leanback.app;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v17.leanback.C0029R;
import android.support.v17.leanback.widget.BrowseFrameLayout;
import android.support.v17.leanback.widget.ObjectAdapter;
import android.support.v17.leanback.widget.OnChildLaidOutListener;
import android.support.v17.leanback.widget.OnItemViewClickedListener;
import android.support.v17.leanback.widget.OnItemViewSelectedListener;
import android.support.v17.leanback.widget.Presenter;
import android.support.v17.leanback.widget.Row;
import android.support.v17.leanback.widget.RowPresenter;
import android.support.v17.leanback.widget.SearchOrbView.Colors;
import android.support.v17.leanback.widget.TitleView;
import android.support.v17.leanback.widget.VerticalGridPresenter;
import android.support.v17.leanback.widget.VerticalGridPresenter.ViewHolder;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
public class VerticalGridSupportFragment extends BrandedSupportFragment {
private static boolean DEBUG = false;
private static final String TAG = "VerticalGridSupportFragment";
private ObjectAdapter mAdapter;
private final OnChildLaidOutListener mChildLaidOutListener = new C01132();
private VerticalGridPresenter mGridPresenter;
private ViewHolder mGridViewHolder;
private OnItemViewClickedListener mOnItemViewClickedListener;
private OnItemViewSelectedListener mOnItemViewSelectedListener;
private int mSelectedPosition = -1;
private final OnItemViewSelectedListener mViewSelectedListener = new C01121();
class C01121 implements OnItemViewSelectedListener {
C01121() {
}
public void onItemSelected(Presenter.ViewHolder viewHolder, Object obj, RowPresenter.ViewHolder viewHolder2, Row row) {
int selectedPosition = VerticalGridSupportFragment.this.mGridViewHolder.getGridView().getSelectedPosition();
if (VerticalGridSupportFragment.DEBUG) {
Log.v(VerticalGridSupportFragment.TAG, "grid selected position " + selectedPosition);
}
VerticalGridSupportFragment.this.gridOnItemSelected(selectedPosition);
if (VerticalGridSupportFragment.this.mOnItemViewSelectedListener != null) {
VerticalGridSupportFragment.this.mOnItemViewSelectedListener.onItemSelected(viewHolder, obj, viewHolder2, row);
}
}
}
class C01132 implements OnChildLaidOutListener {
C01132() {
}
public void onChildLaidOut(ViewGroup viewGroup, View view, int i, long j) {
if (i == 0) {
VerticalGridSupportFragment.this.showOrHideTitle();
}
}
}
public /* bridge */ /* synthetic */ Drawable getBadgeDrawable() {
return super.getBadgeDrawable();
}
public /* bridge */ /* synthetic */ int getSearchAffordanceColor() {
return super.getSearchAffordanceColor();
}
public /* bridge */ /* synthetic */ Colors getSearchAffordanceColors() {
return super.getSearchAffordanceColors();
}
public /* bridge */ /* synthetic */ String getTitle() {
return super.getTitle();
}
public /* bridge */ /* synthetic */ void onPause() {
super.onPause();
}
public /* bridge */ /* synthetic */ void onResume() {
super.onResume();
}
public /* bridge */ /* synthetic */ void onSaveInstanceState(Bundle bundle) {
super.onSaveInstanceState(bundle);
}
public /* bridge */ /* synthetic */ void setBadgeDrawable(Drawable drawable) {
super.setBadgeDrawable(drawable);
}
public /* bridge */ /* synthetic */ void setOnSearchClickedListener(OnClickListener onClickListener) {
super.setOnSearchClickedListener(onClickListener);
}
public /* bridge */ /* synthetic */ void setSearchAffordanceColor(int i) {
super.setSearchAffordanceColor(i);
}
public /* bridge */ /* synthetic */ void setSearchAffordanceColors(Colors colors) {
super.setSearchAffordanceColors(colors);
}
public /* bridge */ /* synthetic */ void setTitle(String str) {
super.setTitle(str);
}
public void setGridPresenter(VerticalGridPresenter verticalGridPresenter) {
if (verticalGridPresenter == null) {
throw new IllegalArgumentException("Grid presenter may not be null");
}
this.mGridPresenter = verticalGridPresenter;
this.mGridPresenter.setOnItemViewSelectedListener(this.mViewSelectedListener);
if (this.mOnItemViewClickedListener != null) {
this.mGridPresenter.setOnItemViewClickedListener(this.mOnItemViewClickedListener);
}
}
public VerticalGridPresenter getGridPresenter() {
return this.mGridPresenter;
}
public void setAdapter(ObjectAdapter objectAdapter) {
this.mAdapter = objectAdapter;
updateAdapter();
}
public ObjectAdapter getAdapter() {
return this.mAdapter;
}
public void setOnItemViewSelectedListener(OnItemViewSelectedListener onItemViewSelectedListener) {
this.mOnItemViewSelectedListener = onItemViewSelectedListener;
}
private void gridOnItemSelected(int i) {
if (i != this.mSelectedPosition) {
this.mSelectedPosition = i;
showOrHideTitle();
}
}
private void showOrHideTitle() {
if (this.mGridViewHolder.getGridView().findViewHolderForAdapterPosition(this.mSelectedPosition) != null) {
if (this.mGridViewHolder.getGridView().hasPreviousViewInSameRow(this.mSelectedPosition)) {
showTitle(false);
} else {
showTitle(true);
}
}
}
public void setOnItemViewClickedListener(OnItemViewClickedListener onItemViewClickedListener) {
this.mOnItemViewClickedListener = onItemViewClickedListener;
if (this.mGridPresenter != null) {
this.mGridPresenter.setOnItemViewClickedListener(this.mOnItemViewClickedListener);
}
}
public OnItemViewClickedListener getOnItemViewClickedListener() {
return this.mOnItemViewClickedListener;
}
public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Bundle bundle) {
ViewGroup viewGroup2 = (ViewGroup) layoutInflater.inflate(C0029R.layout.lb_vertical_grid_fragment, viewGroup, false);
setTitleView((TitleView) viewGroup2.findViewById(C0029R.id.browse_title_group));
return viewGroup2;
}
public void onViewCreated(View view, Bundle bundle) {
super.onViewCreated(view, bundle);
ViewGroup viewGroup = (ViewGroup) view.findViewById(C0029R.id.browse_grid_dock);
this.mGridViewHolder = this.mGridPresenter.onCreateViewHolder(viewGroup);
viewGroup.addView(this.mGridViewHolder.view);
this.mGridViewHolder.getGridView().setOnChildLaidOutListener(this.mChildLaidOutListener);
updateAdapter();
}
private void setupFocusSearchListener() {
((BrowseFrameLayout) getView().findViewById(C0029R.id.grid_frame)).setOnFocusSearchListener(getTitleHelper().getOnFocusSearchListener());
}
public void onStart() {
super.onStart();
setupFocusSearchListener();
this.mGridViewHolder.getGridView().requestFocus();
}
public void onDestroyView() {
super.onDestroyView();
this.mGridViewHolder = null;
}
public void setSelectedPosition(int i) {
this.mSelectedPosition = i;
if (this.mGridViewHolder != null && this.mGridViewHolder.getGridView().getAdapter() != null) {
this.mGridViewHolder.getGridView().setSelectedPositionSmooth(i);
}
}
private void updateAdapter() {
if (this.mGridViewHolder != null) {
this.mGridPresenter.onBindViewHolder(this.mGridViewHolder, this.mAdapter);
if (this.mSelectedPosition != -1) {
this.mGridViewHolder.getGridView().setSelectedPosition(this.mSelectedPosition);
}
}
}
}
package android.support.v17.leanback;
public final class BuildConfig {
public static final String APPLICATION_ID = "android.support.v17.leanback";
public static final String BUILD_TYPE = "release";
public static final boolean DEBUG = false;
public static final String FLAVOR = "";
public static final int VERSION_CODE = -1;
public static final String VERSION_NAME = "";
}
package android.support.v17.leanback;
import com.siptv.mytv.R;
public final class C0029R {
public final class animator {
public static final int lb_decelerator_2 = 2131099648;
public static final int lb_decelerator_4 = 2131099649;
public static final int lb_guidance_entry = 2131099650;
public static final int lb_guidedactions_entry = 2131099651;
public static final int lb_guidedactions_item_checked = 2131099652;
public static final int lb_guidedactions_item_pressed = 2131099653;
public static final int lb_guidedactions_item_unchecked = 2131099654;
public static final int lb_guidedactions_item_unpressed = 2131099655;
public static final int lb_guidedactions_selector_hide = 2131099656;
public static final int lb_guidedactions_selector_show = 2131099657;
public static final int lb_guidedstep_slide_in_from_end = 2131099658;
public static final int lb_guidedstep_slide_in_from_start = 2131099659;
public static final int lb_guidedstep_slide_out_to_end = 2131099660;
public static final int lb_guidedstep_slide_out_to_start = 2131099661;
public static final int lb_playback_bg_fade_in = 2131099662;
public static final int lb_playback_bg_fade_out = 2131099663;
public static final int lb_playback_controls_fade_in = 2131099664;
public static final int lb_playback_controls_fade_out = 2131099665;
public static final int lb_playback_description_fade_in = 2131099666;
public static final int lb_playback_description_fade_out = 2131099667;
public static final int lb_playback_rows_fade_in = 2131099668;
public static final int lb_playback_rows_fade_out = 2131099669;
}
public final class attr {
public static final int activatedAnimationDuration = 2130772274;
public static final int baseCardViewStyle = 2130772082;
public static final int browsePaddingBottom = 2130772067;
public static final int browsePaddingEnd = 2130772065;
public static final int browsePaddingStart = 2130772064;
public static final int browsePaddingTop = 2130772066;
public static final int browseRowsFadingEdgeLength = 2130772070;
public static final int browseRowsMarginStart = 2130772068;
public static final int browseRowsMarginTop = 2130772069;
public static final int browseTitleIconStyle = 2130772072;
public static final int browseTitleTextStyle = 2130772071;
public static final int browseTitleViewStyle = 2130772073;
public static final int cardType = 2130772269;
public static final int closed_captioning = 2130772297;
public static final int columnWidth = 2130772308;
public static final int defaultBrandColor = 2130772093;
public static final int defaultSearchBrightColor = 2130772095;
public static final int defaultSearchColor = 2130772094;
public static final int defaultSearchIcon = 2130772097;
public static final int detailsActionButtonStyle = 2130772087;
public static final int detailsDescriptionBodyStyle = 2130772086;
public static final int detailsDescriptionSubtitleStyle = 2130772085;
public static final int detailsDescriptionTitleStyle = 2130772084;
public static final int errorMessageStyle = 2130772092;
public static final int extraVisibility = 2130772271;
public static final int fast_forward = 2130772285;
public static final int focusOutEnd = 2130772277;
public static final int focusOutFront = 2130772276;
public static final int guidanceBreadcrumbStyle = 2130772037;
public static final int guidanceContainerStyle = 2130772034;
public static final int guidanceDescriptionStyle = 2130772036;
public static final int guidanceEntryAnimation = 2130772033;
public static final int guidanceIconStyle = 2130772038;
public static final int guidanceTitleStyle = 2130772035;
public static final int guidedActionCheckedAnimation = 2130772052;
public static final int guidedActionContentWidth = 2130772058;
public static final int guidedActionContentWidthNoIcon = 2130772059;
public static final int guidedActionDescriptionMinLines = 2130772062;
public static final int guidedActionDisabledChevronAlpha = 2130772057;
public static final int guidedActionEnabledChevronAlpha = 2130772056;
public static final int guidedActionItemCheckmarkStyle = 2130772046;
public static final int guidedActionItemChevronStyle = 2130772051;
public static final int guidedActionItemContainerStyle = 2130772045;
public static final int guidedActionItemContentStyle = 2130772048;
public static final int guidedActionItemDescriptionStyle = 2130772050;
public static final int guidedActionItemIconStyle = 2130772047;
public static final int guidedActionItemTitleStyle = 2130772049;
public static final int guidedActionPressedAnimation = 2130772054;
public static final int guidedActionTitleMaxLines = 2130772061;
public static final int guidedActionTitleMinLines = 2130772060;
public static final int guidedActionUncheckedAnimation = 2130772053;
public static final int guidedActionUnpressedAnimation = 2130772055;
public static final int guidedActionVerticalPadding = 2130772063;
public static final int guidedActionsContainerStyle = 2130772042;
public static final int guidedActionsEntryAnimation = 2130772039;
public static final int guidedActionsListStyle = 2130772044;
public static final int guidedActionsSelectorHideAnimation = 2130772041;
public static final int guidedActionsSelectorShowAnimation = 2130772040;
public static final int guidedActionsSelectorStyle = 2130772043;
public static final int guidedStepEntryAnimation = 2130772029;
public static final int guidedStepExitAnimation = 2130772030;
public static final int guidedStepReentryAnimation = 2130772031;
public static final int guidedStepReturnAnimation = 2130772032;
public static final int guidedStepTheme = 2130772027;
public static final int guidedStepThemeFlag = 2130772028;
public static final int headerStyle = 2130772075;
public static final int headersVerticalGridStyle = 2130772074;
public static final int high_quality = 2130772296;
public static final int horizontalMargin = 2130772278;
public static final int imageCardViewStyle = 2130772083;
public static final int infoAreaBackground = 2130772282;
public static final int infoVisibility = 2130772270;
public static final int itemsVerticalGridStyle = 2130772091;
public static final int layoutManager = 2130772117;
public static final int layout_viewType = 2130772275;
public static final int lb_slideEdge = 2130772307;
public static final int maintainLineSpacing = 2130772300;
public static final int numberOfColumns = 2130772309;
public static final int numberOfRows = 2130772281;
public static final int overlayDimActiveLevel = 2130772102;
public static final int overlayDimDimmedLevel = 2130772103;
public static final int overlayDimMaskColor = 2130772101;
public static final int pause = 2130772284;
public static final int play = 2130772283;
public static final int playbackControlButtonLabelStyle = 2130772089;
public static final int playbackControlsActionIcons = 2130772100;
public static final int playbackControlsButtonStyle = 2130772088;
public static final int playbackControlsIconHighlightColor = 2130772099;
public static final int playbackControlsTimeStyle = 2130772090;
public static final int playbackProgressPrimaryColor = 2130772098;
public static final int repeat = 2130772293;
public static final int repeat_one = 2130772294;
public static final int resizeTrigger = 2130772298;
public static final int resizedPaddingAdjustmentBottom = 2130772302;
public static final int resizedPaddingAdjustmentTop = 2130772301;
public static final int resizedTextSize = 2130772299;
public static final int reverseLayout = 2130772119;
public static final int rewind = 2130772286;
public static final int rowHeaderDockStyle = 2130772079;
public static final int rowHeaderStyle = 2130772078;
public static final int rowHeight = 2130772280;
public static final int rowHorizontalGridStyle = 2130772077;
public static final int rowHoverCardDescriptionStyle = 2130772081;
public static final int rowHoverCardTitleStyle = 2130772080;
public static final int rowsVerticalGridStyle = 2130772076;
public static final int searchOrbBrightColor = 2130772306;
public static final int searchOrbColor = 2130772305;
public static final int searchOrbIcon = 2130772303;
public static final int searchOrbIconColor = 2130772304;
public static final int searchOrbViewStyle = 2130772096;
public static final int selectedAnimationDelay = 2130772272;
public static final int selectedAnimationDuration = 2130772273;
public static final int shuffle = 2130772295;
public static final int skip_next = 2130772287;
public static final int skip_previous = 2130772288;
public static final int spanCount = 2130772118;
public static final int stackFromEnd = 2130772120;
public static final int thumb_down = 2130772292;
public static final int thumb_down_outline = 2130772291;
public static final int thumb_up = 2130772290;
public static final int thumb_up_outline = 2130772289;
public static final int verticalMargin = 2130772279;
}
public final class color {
public static final int lb_action_text_color = 2131755066;
public static final int lb_background_protection = 2131755067;
public static final int lb_basic_card_bg_color = 2131755068;
public static final int lb_basic_card_content_text_color = 2131755069;
public static final int lb_basic_card_info_bg_color = 2131755070;
public static final int lb_basic_card_title_text_color = 2131755071;
public static final int lb_browse_header_color = 2131755072;
public static final int lb_browse_title_color = 2131755073;
public static final int lb_control_button_color = 2131755074;
public static final int lb_control_button_text = 2131755075;
public static final int lb_default_brand_color = 2131755076;
public static final int lb_default_search_color = 2131755077;
public static final int lb_details_description_body_color = 2131755078;
public static final int lb_details_description_color = 2131755079;
public static final int lb_details_overview_bg_color = 2131755080;
public static final int lb_error_background_color_opaque = 2131755081;
public static final int lb_error_background_color_translucent = 2131755082;
public static final int lb_error_message = 2131755083;
public static final int lb_grey = 2131755084;
public static final int lb_guidedactions_background = 2131755085;
public static final int lb_guidedactions_item_unselected_text_color = 2131755086;
public static final int lb_guidedactions_selector_color = 2131755087;
public static final int lb_list_item_unselected_text_color = 2131755088;
public static final int lb_playback_background_progress_color = 2131755089;
public static final int lb_playback_controls_background_dark = 2131755090;
public static final int lb_playback_controls_background_light = 2131755091;
public static final int lb_playback_controls_time_text_color = 2131755092;
public static final int lb_playback_icon_highlight_no_theme = 2131755093;
public static final int lb_playback_progress_color_no_theme = 2131755094;
public static final int lb_playback_secondary_progress_color = 2131755095;
public static final int lb_search_bar_hint = 2131755096;
public static final int lb_search_bar_hint_speech_mode = 2131755097;
public static final int lb_search_bar_text = 2131755098;
public static final int lb_search_bar_text_speech_mode = 2131755099;
public static final int lb_search_plate_hint_text_color = 2131755100;
public static final int lb_speech_orb_not_recording = 2131755101;
public static final int lb_speech_orb_not_recording_icon = 2131755102;
public static final int lb_speech_orb_not_recording_pulsed = 2131755103;
public static final int lb_speech_orb_recording = 2131755104;
public static final int lb_tv_white = 2131755105;
public static final int lb_view_dim_mask_color = 2131755106;
}
public final class dimen {
public static final int item_touch_helper_max_drag_scroll_per_frame = 2131558479;
public static final int lb_action_1_line_height = 2131558481;
public static final int lb_action_2_lines_height = 2131558482;
public static final int lb_action_button_corner_radius = 2131558483;
public static final int lb_action_icon_margin = 2131558484;
public static final int lb_action_padding_horizontal = 2131558485;
public static final int lb_action_text_size = 2131558486;
public static final int lb_action_with_icon_padding_end = 2131558487;
public static final int lb_action_with_icon_padding_start = 2131558488;
public static final int lb_basic_card_content_text_size = 2131558489;
public static final int lb_basic_card_info_badge_margin = 2131558490;
public static final int lb_basic_card_info_badge_size = 2131558491;
public static final int lb_basic_card_info_height = 2131558492;
public static final int lb_basic_card_info_height_no_content = 2131558493;
public static final int lb_basic_card_info_padding_horizontal = 2131558494;
public static final int lb_basic_card_info_padding_top = 2131558495;
public static final int lb_basic_card_info_text_margin = 2131558496;
public static final int lb_basic_card_main_height = 2131558497;
public static final int lb_basic_card_main_width = 2131558498;
public static final int lb_basic_card_title_text_size = 2131558499;
public static final int lb_browse_expanded_row_no_hovercard_bottom_padding = 2131558500;
public static final int lb_browse_expanded_selected_row_top_padding = 2131558501;
public static final int lb_browse_header_fading_length = 2131558502;
public static final int lb_browse_header_height = 2131558503;
public static final int lb_browse_header_padding_end = 2131558504;
public static final int lb_browse_header_select_duration = 2131558505;
public static final int lb_browse_header_select_scale = 2131558506;
public static final int lb_browse_header_text_size = 2131558507;
public static final int lb_browse_headers_vertical_margin = 2131558508;
public static final int lb_browse_headers_width = 2131558509;
public static final int lb_browse_headers_z = 2131558510;
public static final int lb_browse_item_horizontal_margin = 2131558511;
public static final int lb_browse_item_vertical_margin = 2131558512;
public static final int lb_browse_padding_bottom = 2131558513;
public static final int lb_browse_padding_end = 2131558514;
public static final int lb_browse_padding_start = 2131558515;
public static final int lb_browse_padding_top = 2131558516;
public static final int lb_browse_row_hovercard_description_font_size = 2131558517;
public static final int lb_browse_row_hovercard_max_width = 2131558518;
public static final int lb_browse_row_hovercard_title_font_size = 2131558519;
public static final int lb_browse_rows_fading_edge = 2131558520;
public static final int lb_browse_rows_margin_start = 2131558521;
public static final int lb_browse_rows_margin_top = 2131558522;
public static final int lb_browse_selected_row_top_padding = 2131558523;
public static final int lb_browse_title_height = 2131558524;
public static final int lb_browse_title_icon_height = 2131558525;
public static final int lb_browse_title_icon_max_width = 2131558526;
public static final int lb_browse_title_text_size = 2131558527;
public static final int lb_browse_title_text_width = 2131558528;
public static final int lb_control_button_diameter = 2131558529;
public static final int lb_control_button_height = 2131558530;
public static final int lb_control_button_secondary_diameter = 2131558531;
public static final int lb_control_button_secondary_height = 2131558532;
public static final int lb_control_button_text_size = 2131558533;
public static final int lb_control_icon_height = 2131558534;
public static final int lb_control_icon_width = 2131558535;
public static final int lb_details_description_body_line_spacing = 2131558536;
public static final int lb_details_description_body_text_size = 2131558537;
public static final int lb_details_description_subtitle_text_size = 2131558538;
public static final int lb_details_description_title_baseline = 2131558539;
public static final int lb_details_description_title_line_spacing = 2131558540;
public static final int lb_details_description_title_padding_adjust_bottom = 2131558541;
public static final int lb_details_description_title_padding_adjust_top = 2131558542;
public static final int lb_details_description_title_resized_text_size = 2131558543;
public static final int lb_details_description_title_text_size = 2131558544;
public static final int lb_details_description_under_subtitle_baseline_margin = 2131558545;
public static final int lb_details_description_under_title_baseline_margin = 2131558546;
public static final int lb_details_overview_action_items_margin = 2131558547;
public static final int lb_details_overview_action_select_duration = 2131558548;
public static final int lb_details_overview_actions_fade_size = 2131558549;
public static final int lb_details_overview_actions_height = 2131558550;
public static final int lb_details_overview_actions_padding_end = 2131558551;
public static final int lb_details_overview_actions_padding_start = 2131558552;
public static final int lb_details_overview_description_margin_bottom = 2131558553;
public static final int lb_details_overview_description_margin_end = 2131558554;
public static final int lb_details_overview_description_margin_start = 2131558555;
public static final int lb_details_overview_description_margin_top = 2131558556;
public static final int lb_details_overview_height_large = 2131558557;
public static final int lb_details_overview_height_small = 2131558558;
public static final int lb_details_overview_image_margin_horizontal = 2131558559;
public static final int lb_details_overview_image_margin_vertical = 2131558560;
public static final int lb_details_overview_margin_bottom = 2131558561;
public static final int lb_details_overview_margin_end = 2131558562;
public static final int lb_details_overview_margin_start = 2131558563;
public static final int lb_details_overview_z = 2131558564;
public static final int lb_details_rows_align_top = 2131558565;
public static final int lb_details_v2_actions_height = 2131558566;
public static final int lb_details_v2_align_pos_for_actions = 2131558567;
public static final int lb_details_v2_align_pos_for_description = 2131558568;
public static final int lb_details_v2_blank_height = 2131558569;
public static final int lb_details_v2_card_height = 2131558570;
public static final int lb_details_v2_description_margin_end = 2131558571;
public static final int lb_details_v2_description_margin_start = 2131558572;
public static final int lb_details_v2_description_margin_top = 2131558573;
public static final int lb_details_v2_left = 2131558574;
public static final int lb_details_v2_logo_margin_start = 2131558575;
public static final int lb_details_v2_logo_max_height = 2131558576;
public static final int lb_details_v2_logo_max_width = 2131558577;
public static final int lb_error_image_max_height = 2131558578;
public static final int lb_error_message_max_width = 2131558579;
public static final int lb_error_message_text_size = 2131558580;
public static final int lb_error_under_image_baseline_margin = 2131558581;
public static final int lb_error_under_message_baseline_margin = 2131558582;
public static final int lb_guidance_entry_translationX = 2131558413;
public static final int lb_guidedactions_elevation = 2131558583;
public static final int lb_guidedactions_entry_translationX = 2131558414;
public static final int lb_guidedactions_item_checkmark_diameter = 2131558584;
public static final int lb_guidedactions_item_delimiter_padding = 2131558585;
public static final int lb_guidedactions_item_description_font_size = 2131558586;
public static final int lb_guidedactions_item_end_padding = 2131558587;
public static final int lb_guidedactions_item_icon_height = 2131558588;
public static final int lb_guidedactions_item_icon_width = 2131558589;
public static final int lb_guidedactions_item_min_height = 2131558590;
public static final int lb_guidedactions_item_start_padding = 2131558591;
public static final int lb_guidedactions_item_text_width = 2131558592;
public static final int lb_guidedactions_item_text_width_no_icon = 2131558593;
public static final int lb_guidedactions_item_title_font_size = 2131558594;
public static final int lb_guidedactions_section_width = 2131558595;
public static final int lb_guidedactions_section_width_with_shadow = 2131558596;
public static final int lb_guidedactions_selector_min_height = 2131558597;
public static final int lb_guidedactions_vertical_padding = 2131558598;
public static final int lb_guidedstep_guidance_section_width = 2131558599;
public static final int lb_guidedstep_slide_end_distance = 2131558415;
public static final int lb_guidedstep_slide_start_distance = 2131558416;
public static final int lb_list_row_height = 2131558600;
public static final int lb_material_shadow_details_z = 2131558601;
public static final int lb_material_shadow_focused_z = 2131558602;
public static final int lb_material_shadow_normal_z = 2131558603;
public static final int lb_playback_controls_align_bottom = 2131558604;
public static final int lb_playback_controls_card_height = 2131558605;
public static final int lb_playback_controls_child_margin_bigger = 2131558606;
public static final int lb_playback_controls_child_margin_biggest = 2131558607;
public static final int lb_playback_controls_child_margin_default = 2131558608;
public static final int lb_playback_controls_margin_bottom = 2131558609;
public static final int lb_playback_controls_margin_end = 2131558610;
public static final int lb_playback_controls_margin_start = 2131558611;
public static final int lb_playback_controls_padding_bottom = 2131558612;
public static final int lb_playback_controls_time_text_size = 2131558613;
public static final int lb_playback_controls_z = 2131558614;
public static final int lb_playback_current_time_margin_start = 2131558615;
public static final int lb_playback_description_margin_end = 2131558616;
public static final int lb_playback_description_margin_start = 2131558617;
public static final int lb_playback_description_margin_top = 2131558618;
public static final int lb_playback_major_fade_translate_y = 2131558619;
public static final int lb_playback_minor_fade_translate_y = 2131558620;
public static final int lb_playback_time_padding_top = 2131558621;
public static final int lb_playback_total_time_margin_end = 2131558622;
public static final int lb_rounded_rect_corner_radius = 2131558623;
public static final int lb_search_bar_edit_text_margin_start = 2131558624;
public static final int lb_search_bar_height = 2131558625;
public static final int lb_search_bar_hint_margin_start = 2131558626;
public static final int lb_search_bar_icon_height = 2131558627;
public static final int lb_search_bar_icon_margin_start = 2131558628;
public static final int lb_search_bar_icon_width = 2131558629;
public static final int lb_search_bar_inner_margin_bottom = 2131558630;
public static final int lb_search_bar_inner_margin_top = 2131558631;
public static final int lb_search_bar_items_height = 2131558632;
public static final int lb_search_bar_items_layout_margin_top = 2131558633;
public static final int lb_search_bar_items_margin_start = 2131558634;
public static final int lb_search_bar_items_width = 2131558635;
public static final int lb_search_bar_padding_start = 2131558636;
public static final int lb_search_bar_padding_top = 2131558637;
public static final int lb_search_bar_speech_orb_margin_start = 2131558638;
public static final int lb_search_bar_speech_orb_size = 2131558639;
public static final int lb_search_bar_text_size = 2131558640;
public static final int lb_search_bar_unfocused_text_size = 2131558641;
public static final int lb_search_browse_row_padding_start = 2131558642;
public static final int lb_search_browse_rows_align_top = 2131558643;
public static final int lb_search_orb_focused_z = 2131558644;
public static final int lb_search_orb_margin_bottom = 2131558645;
public static final int lb_search_orb_margin_end = 2131558646;
public static final int lb_search_orb_margin_start = 2131558647;
public static final int lb_search_orb_margin_top = 2131558648;
public static final int lb_search_orb_size = 2131558649;
public static final int lb_search_orb_unfocused_z = 2131558650;
public static final int lb_vertical_grid_padding_bottom = 2131558651;
}
public final class drawable {
public static final int lb_action_bg = 2130837650;
public static final int lb_action_bg_focused = 2130837651;
public static final int lb_background = 2130837652;
public static final int lb_card_foreground = 2130837653;
public static final int lb_card_shadow_focused = 2130837654;
public static final int lb_card_shadow_normal = 2130837655;
public static final int lb_control_button_primary = 2130837656;
public static final int lb_control_button_secondary = 2130837657;
public static final int lb_guidedactions_item_checkmark = 2130837658;
public static final int lb_headers_right_fading = 2130837659;
public static final int lb_ic_actions_right_arrow = 2130837660;
public static final int lb_ic_cc = 2130837661;
public static final int lb_ic_fast_forward = 2130837662;
public static final int lb_ic_fast_rewind = 2130837663;
public static final int lb_ic_guidedactions_item_chevron = 2130837664;
public static final int lb_ic_hq = 2130837665;
public static final int lb_ic_in_app_search = 2130837666;
public static final int lb_ic_loop = 2130837667;
public static final int lb_ic_loop_one = 2130837668;
public static final int lb_ic_more = 2130837669;
public static final int lb_ic_pause = 2130837670;
public static final int lb_ic_play = 2130837671;
public static final int lb_ic_playback_loop = 2130837672;
public static final int lb_ic_replay = 2130837673;
public static final int lb_ic_sad_cloud = 2130837674;
public static final int lb_ic_search_mic = 2130837675;
public static final int lb_ic_search_mic_out = 2130837676;
public static final int lb_ic_shuffle = 2130837677;
public static final int lb_ic_skip_next = 2130837678;
public static final int lb_ic_skip_previous = 2130837679;
public static final int lb_ic_stop = 2130837680;
public static final int lb_ic_thumb_down = 2130837681;
public static final int lb_ic_thumb_down_outline = 2130837682;
public static final int lb_ic_thumb_up = 2130837683;
public static final int lb_ic_thumb_up_outline = 2130837684;
public static final int lb_in_app_search_bg = 2130837685;
public static final int lb_in_app_search_shadow_focused = 2130837686;
public static final int lb_in_app_search_shadow_normal = 2130837687;
public static final int lb_playback_progress_bar = 2130837688;
public static final int lb_search_orb = 2130837689;
public static final int lb_speech_orb = 2130837690;
public static final int lb_text_dot_one = 2130837691;
public static final int lb_text_dot_one_small = 2130837692;
public static final int lb_text_dot_two = 2130837693;
public static final int lb_text_dot_two_small = 2130837694;
}
public final class fraction {
public static final int lb_browse_header_unselect_alpha = 2131820544;
public static final int lb_browse_rows_scale = 2131820545;
public static final int lb_focus_zoom_factor_large = 2131820546;
public static final int lb_focus_zoom_factor_medium = 2131820547;
public static final int lb_focus_zoom_factor_small = 2131820548;
public static final int lb_focus_zoom_factor_xsmall = 2131820549;
public static final int lb_search_bar_speech_orb_max_level_zoom = 2131820550;
public static final int lb_search_orb_focused_zoom = 2131820551;
public static final int lb_view_active_level = 2131820552;
public static final int lb_view_dimmed_level = 2131820553;
}
public final class id {
public static final int action_fragment = 2131886713;
public static final int activated = 2131886134;
public static final int always = 2131886124;
public static final int background_color = 2131886891;
public static final int background_dim = 2131886894;
public static final int background_imagein = 2131886893;
public static final int background_imageout = 2131886892;
public static final int background_theme = 2131886890;
public static final int bottom = 2131886140;
public static final int bottom_spacer = 2131886737;
public static final int browse_container_dock = 2131886677;
public static final int browse_dummy = 2131886675;
public static final int browse_frame = 2131886676;
public static final int browse_grid = 2131886753;
public static final int browse_grid_dock = 2131886755;
public static final int browse_headers = 2131886716;
public static final int browse_headers_dock = 2131886678;
public static final int browse_headers_root = 2131886715;
public static final int browse_title_group = 2131886679;
public static final int button = 2131886681;
public static final int container_list = 2131886740;
public static final int content_fragment = 2131886712;
public static final int content_frame = 2131886711;
public static final int content_text = 2131886720;
public static final int control_bar = 2131886680;
public static final int control_bar_focus_wrapper = 2131886728;
public static final int controls_card = 2131886732;
public static final int controls_card_right_panel = 2131886733;
public static final int controls_container = 2131886727;
public static final int controls_container_focus_wrapper = 2131886726;
public static final int controls_dock = 2131886735;
public static final int current_time = 2131886730;
public static final int description = 2131886724;
public static final int description_dock = 2131886734;
public static final int details_fragment_root = 2131886687;
public static final int details_frame = 2131886689;
public static final int details_overview = 2131886690;
public static final int details_overview_actions = 2131886694;
public static final int details_overview_actions_background = 2131886698;
public static final int details_overview_description = 2131886693;
public static final int details_overview_image = 2131886691;
public static final int details_overview_right_panel = 2131886692;
public static final int details_root = 2131886697;
public static final int details_rows_dock = 2131886688;
public static final int dummy = 2131886686;
public static final int end = 2131886120;
public static final int error_frame = 2131886695;
public static final int extra = 2131886136;
public static final int extra_badge = 2131886721;
public static final int fade_out_edge = 2131886717;
public static final int grid_frame = 2131886754;
public static final int guidance_breadcrumb = 2131886701;
public static final int guidance_description = 2131886702;
public static final int guidance_icon = 2131886699;
public static final int guidance_title = 2131886700;
public static final int guidedactions_item_checkmark = 2131886705;
public static final int guidedactions_item_chevron = 2131886710;
public static final int guidedactions_item_content = 2131886707;
public static final int guidedactions_item_description = 2131886709;
public static final int guidedactions_item_icon = 2131886706;
public static final int guidedactions_item_title = 2131886708;
public static final int guidedactions_list = 2131886704;
public static final int guidedactions_selector = 2131886703;
public static final int hovercard_panel = 2131886723;
public static final int icon = 2131886153;
public static final int image = 2131886150;
public static final int info = 2131886137;
public static final int infoOver = 2131886130;
public static final int infoUnder = 2131886131;
public static final int infoUnderWithExtra = 2131886132;
public static final int info_field = 2131886719;
public static final int item_touch_helper_previous_elevation = 2131886085;
public static final int label = 2131886682;
public static final int lb_action_button = 2131886674;
public static final int lb_control_closed_captioning = 2131886086;
public static final int lb_control_fast_forward = 2131886087;
public static final int lb_control_fast_rewind = 2131886088;
public static final int lb_control_high_quality = 2131886089;
public static final int lb_control_more_actions = 2131886090;
public static final int lb_control_play_pause = 2131886091;
public static final int lb_control_repeat = 2131886092;
public static final int lb_control_shuffle = 2131886093;
public static final int lb_control_skip_next = 2131886094;
public static final int lb_control_skip_previous = 2131886095;
public static final int lb_control_thumbs_down = 2131886096;
public static final int lb_control_thumbs_up = 2131886097;
public static final int lb_details_description_body = 2131886685;
public static final int lb_details_description_subtitle = 2131886684;
public static final int lb_details_description_title = 2131886683;
public static final int lb_focus_animator = 2131886098;
public static final int lb_results_frame = 2131886746;
public static final int lb_row_container_header_dock = 2131886738;
public static final int lb_search_bar = 2131886747;
public static final int lb_search_bar_badge = 2131886743;
public static final int lb_search_bar_items = 2131886742;
public static final int lb_search_bar_speech_orb = 2131886741;
public static final int lb_search_frame = 2131886745;
public static final int lb_search_text_editor = 2131886744;
public static final int lb_shadow_focused = 2131886750;
public static final int lb_shadow_normal = 2131886749;
public static final int lb_slide_transition_value = 2131886099;
public static final int left = 2131886141;
public static final int main = 2131886138;
public static final int mainOnly = 2131886133;
public static final int main_image = 2131886718;
public static final int maxLines = 2131886139;
public static final int message = 2131886696;
public static final int more_actions_dock = 2131886729;
public static final int playback_progress = 2131886725;
public static final int right = 2131886142;
public static final int row_content = 2131886722;
public static final int row_header = 2131886714;
public static final int scale_frame = 2131886739;
public static final int search_orb = 2131886748;
public static final int secondary_controls_dock = 2131886736;
public static final int selected = 2131886135;
public static final int spacer = 2131886156;
public static final int start = 2131886143;
public static final int title = 2131886154;
public static final int title_badge = 2131886751;
public static final int title_orb = 2131886752;
public static final int title_text = 2131886452;
public static final int top = 2131886144;
public static final int total_time = 2131886731;
public static final int wrap_content = 2131886129;
}
public final class integer {
public static final int lb_browse_headers_transition_delay = 2131689477;
public static final int lb_browse_headers_transition_duration = 2131689478;
public static final int lb_browse_rows_anim_duration = 2131689479;
public static final int lb_card_activated_animation_duration = 2131689480;
public static final int lb_card_selected_animation_delay = 2131689481;
public static final int lb_card_selected_animation_duration = 2131689482;
public static final int lb_details_description_body_max_lines = 2131689483;
public static final int lb_details_description_body_min_lines = 2131689484;
public static final int lb_details_description_subtitle_max_lines = 2131689485;
public static final int lb_details_description_title_max_lines = 2131689486;
public static final int lb_error_message_max_lines = 2131689487;
public static final int lb_guidedactions_animation_duration = 2131689488;
public static final int lb_guidedactions_item_animation_duration = 2131689489;
public static final int lb_guidedactions_item_description_min_lines = 2131689490;
public static final int lb_guidedactions_item_title_max_lines = 2131689491;
public static final int lb_guidedactions_item_title_min_lines = 2131689492;
public static final int lb_guidedstep_entry_animation_delay = 2131689493;
public static final int lb_guidedstep_entry_animation_duration = 2131689494;
public static final int lb_playback_bg_fade_in_ms = 2131689495;
public static final int lb_playback_bg_fade_out_ms = 2131689496;
public static final int lb_playback_controls_fade_in_ms = 2131689497;
public static final int lb_playback_controls_fade_out_ms = 2131689498;
public static final int lb_playback_controls_show_time_ms = 2131689499;
public static final int lb_playback_description_fade_in_ms = 2131689500;
public static final int lb_playback_description_fade_out_ms = 2131689501;
public static final int lb_playback_rows_fade_delay_ms = 2131689502;
public static final int lb_playback_rows_fade_in_ms = 2131689503;
public static final int lb_playback_rows_fade_out_ms = 2131689504;
public static final int lb_search_bar_speech_mode_background_alpha = 2131689505;
public static final int lb_search_bar_text_mode_background_alpha = 2131689506;
public static final int lb_search_orb_pulse_duration_ms = 2131689507;
public static final int lb_search_orb_scale_duration_ms = 2131689508;
}
public final class layout {
public static final int lb_action_1_line = 2130968671;
public static final int lb_action_2_lines = 2130968672;
public static final int lb_background_window = 2130968673;
public static final int lb_browse_fragment = 2130968674;
public static final int lb_browse_title = 2130968675;
public static final int lb_card_color_overlay = 2130968676;
public static final int lb_control_bar = 2130968677;
public static final int lb_control_button_primary = 2130968678;
public static final int lb_control_button_secondary = 2130968679;
public static final int lb_details_description = 2130968680;
public static final int lb_details_fragment = 2130968681;
public static final int lb_details_overview = 2130968682;
public static final int lb_error_fragment = 2130968683;
public static final int lb_fullwidth_details_overview = 2130968684;
public static final int lb_fullwidth_details_overview_logo = 2130968685;
public static final int lb_guidance = 2130968686;
public static final int lb_guidedactions = 2130968687;
public static final int lb_guidedactions_item = 2130968688;
public static final int lb_guidedstep_fragment = 2130968689;
public static final int lb_header = 2130968690;
public static final int lb_headers_fragment = 2130968691;
public static final int lb_image_card_view = 2130968692;
public static final int lb_list_row = 2130968693;
public static final int lb_list_row_hovercard = 2130968694;
public static final int lb_playback_controls = 2130968695;
public static final int lb_playback_controls_row = 2130968696;
public static final int lb_row_container = 2130968697;
public static final int lb_row_header = 2130968698;
public static final int lb_rows_fragment = 2130968699;
public static final int lb_search_bar = 2130968700;
public static final int lb_search_fragment = 2130968701;
public static final int lb_search_orb = 2130968702;
public static final int lb_shadow = 2130968703;
public static final int lb_speech_orb = 2130968704;
public static final int lb_title_view = 2130968705;
public static final int lb_vertical_grid = 2130968706;
public static final int lb_vertical_grid_fragment = 2130968707;
}
public final class raw {
public static final int lb_voice_failure = 2131296257;
public static final int lb_voice_no_input = 2131296258;
public static final int lb_voice_open = 2131296259;
public static final int lb_voice_success = 2131296260;
}
public final class string {
public static final int lb_control_display_fast_forward_multiplier = 2131361841;
public static final int lb_control_display_rewind_multiplier = 2131361842;
public static final int lb_guidedactions_item_disabled_chevron_alpha = 2131362297;
public static final int lb_guidedactions_item_enabled_chevron_alpha = 2131362298;
public static final int lb_guidedactions_item_unselected_description_text_alpha = 2131362299;
public static final int lb_guidedactions_item_unselected_text_alpha = 2131362300;
public static final int lb_playback_controls_closed_captioning_disable = 2131361843;
public static final int lb_playback_controls_closed_captioning_enable = 2131361844;
public static final int lb_playback_controls_fast_forward = 2131361845;
public static final int lb_playback_controls_fast_forward_multiplier = 2131361846;
public static final int lb_playback_controls_high_quality_disable = 2131361847;
public static final int lb_playback_controls_high_quality_enable = 2131361848;
public static final int lb_playback_controls_more_actions = 2131361849;
public static final int lb_playback_controls_pause = 2131361850;
public static final int lb_playback_controls_play = 2131361851;
public static final int lb_playback_controls_repeat_all = 2131361852;
public static final int lb_playback_controls_repeat_none = 2131361853;
public static final int lb_playback_controls_repeat_one = 2131361854;
public static final int lb_playback_controls_rewind = 2131361855;
public static final int lb_playback_controls_rewind_multiplier = 2131361856;
public static final int lb_playback_controls_shuffle_disable = 2131361857;
public static final int lb_playback_controls_shuffle_enable = 2131361858;
public static final int lb_playback_controls_skip_next = 2131361859;
public static final int lb_playback_controls_skip_previous = 2131361860;
public static final int lb_playback_controls_thumb_down = 2131361861;
public static final int lb_playback_controls_thumb_down_outline = 2131361862;
public static final int lb_playback_controls_thumb_up = 2131361863;
public static final int lb_playback_controls_thumb_up_outline = 2131361864;
public static final int lb_search_bar_hint = 2131361865;
public static final int lb_search_bar_hint_speech = 2131361866;
public static final int lb_search_bar_hint_with_title = 2131361867;
public static final int lb_search_bar_hint_with_title_speech = 2131361868;
public static final int orb_search_action = 2131361869;
}
public final class style {
public static final int TextAppearance_Leanback = 2131624167;
public static final int TextAppearance_LeanbackBase = 2131624056;
public static final int TextAppearance_Leanback_DetailsActionButton = 2131624168;
public static final int TextAppearance_Leanback_DetailsDescriptionBody = 2131624169;
public static final int TextAppearance_Leanback_DetailsDescriptionSubtitle = 2131624170;
public static final int TextAppearance_Leanback_DetailsDescriptionTitle = 2131624171;
public static final int TextAppearance_Leanback_ErrorMessage = 2131624172;
public static final int TextAppearance_Leanback_Header = 2131624173;
public static final int TextAppearance_Leanback_PlaybackControlLabel = 2131624174;
public static final int TextAppearance_Leanback_PlaybackControlsTime = 2131624175;
public static final int TextAppearance_Leanback_Row_Header = 2131624176;
public static final int TextAppearance_Leanback_Row_HoverCardDescription = 2131624177;
public static final int TextAppearance_Leanback_Row_HoverCardTitle = 2131624178;
public static final int TextAppearance_Leanback_SearchTextEdit = 2131624179;
public static final int TextAppearance_Leanback_Title = 2131624180;
public static final int Theme_Leanback = 2131624198;
public static final int Theme_LeanbackBase = 2131623983;
public static final int Theme_Leanback_Browse = 2131624199;
public static final int Theme_Leanback_Details = 2131624200;
public static final int Theme_Leanback_Details_NoSharedElementTransition = 2131624201;
public static final int Theme_Leanback_GuidedStep = 2131624202;
public static final int Widget_Leanback = 2131624276;
public static final int Widget_LeanbackBase = 2131624058;
public static final int Widget_Leanback_BaseCardViewStyle = 2131624277;
public static final int Widget_Leanback_DetailsActionButtonStyle = 2131624278;
public static final int Widget_Leanback_DetailsActionButtonStyleBase = 2131624057;
public static final int Widget_Leanback_DetailsDescriptionBodyStyle = 2131624279;
public static final int Widget_Leanback_DetailsDescriptionSubtitleStyle = 2131624280;
public static final int Widget_Leanback_DetailsDescriptionTitleStyle = 2131624281;
public static final int Widget_Leanback_ErrorMessageStyle = 2131624282;
public static final int Widget_Leanback_GridItems = 2131624283;
public static final int Widget_Leanback_GridItems_VerticalGridView = 2131624284;
public static final int Widget_Leanback_GuidanceBreadcrumbStyle = 2131624285;
public static final int Widget_Leanback_GuidanceContainerStyle = 2131624286;
public static final int Widget_Leanback_GuidanceDescriptionStyle = 2131624287;
public static final int Widget_Leanback_GuidanceIconStyle = 2131624288;
public static final int Widget_Leanback_GuidanceTitleStyle = 2131624289;
public static final int Widget_Leanback_GuidedActionItemCheckmarkStyle = 2131624290;
public static final int Widget_Leanback_GuidedActionItemChevronStyle = 2131624291;
public static final int Widget_Leanback_GuidedActionItemContainerStyle = 2131624292;
public static final int Widget_Leanback_GuidedActionItemContentStyle = 2131624293;
public static final int Widget_Leanback_GuidedActionItemDescriptionStyle = 2131624294;
public static final int Widget_Leanback_GuidedActionItemIconStyle = 2131624295;
public static final int Widget_Leanback_GuidedActionItemTitleStyle = 2131624296;
public static final int Widget_Leanback_GuidedActionsContainerStyle = 2131624297;
public static final int Widget_Leanback_GuidedActionsListStyle = 2131624298;
public static final int Widget_Leanback_GuidedActionsSelectorStyle = 2131624299;
public static final int Widget_Leanback_Header = 2131624300;
public static final int Widget_Leanback_Headers = 2131624301;
public static final int Widget_Leanback_Headers_VerticalGridView = 2131624302;
public static final int Widget_Leanback_ImageCardViewStyle = 2131624303;
public static final int Widget_Leanback_PlaybackControlLabelStyle = 2131624304;
public static final int Widget_Leanback_PlaybackControlsActionIconsStyle = 2131624305;
public static final int Widget_Leanback_PlaybackControlsButtonStyle = 2131624306;
public static final int Widget_Leanback_PlaybackControlsTimeStyle = 2131624307;
public static final int Widget_Leanback_Row = 2131624308;
public static final int Widget_Leanback_Row_Header = 2131624309;
public static final int Widget_Leanback_Row_HeaderDock = 2131624310;
public static final int Widget_Leanback_Row_HorizontalGridView = 2131624311;
public static final int Widget_Leanback_Row_HoverCardDescription = 2131624312;
public static final int Widget_Leanback_Row_HoverCardTitle = 2131624313;
public static final int Widget_Leanback_Rows = 2131624314;
public static final int Widget_Leanback_Rows_VerticalGridView = 2131624315;
public static final int Widget_Leanback_SearchOrbViewStyle = 2131624316;
public static final int Widget_Leanback_Title = 2131624317;
public static final int Widget_Leanback_TitleView = 2131624320;
public static final int Widget_Leanback_Title_Icon = 2131624318;
public static final int Widget_Leanback_Title_Text = 2131624319;
}
public final class styleable {
public static final int[] LeanbackGuidedStepTheme = new int[]{R.attr.guidedStepTheme, R.attr.guidedStepThemeFlag, R.attr.guidedStepEntryAnimation, R.attr.guidedStepExitAnimation, R.attr.guidedStepReentryAnimation, R.attr.guidedStepReturnAnimation, R.attr.guidanceEntryAnimation, R.attr.guidanceContainerStyle, R.attr.guidanceTitleStyle, R.attr.guidanceDescriptionStyle, R.attr.guidanceBreadcrumbStyle, R.attr.guidanceIconStyle, R.attr.guidedActionsEntryAnimation, R.attr.guidedActionsSelectorShowAnimation, R.attr.guidedActionsSelectorHideAnimation, R.attr.guidedActionsContainerStyle, R.attr.guidedActionsSelectorStyle, R.attr.guidedActionsListStyle, R.attr.guidedActionItemContainerStyle, R.attr.guidedActionItemCheckmarkStyle, R.attr.guidedActionItemIconStyle, R.attr.guidedActionItemContentStyle, R.attr.guidedActionItemTitleStyle, R.attr.guidedActionItemDescriptionStyle, R.attr.guidedActionItemChevronStyle, R.attr.guidedActionCheckedAnimation, R.attr.guidedActionUncheckedAnimation, R.attr.guidedActionPressedAnimation, R.attr.guidedActionUnpressedAnimation, R.attr.guidedActionEnabledChevronAlpha, R.attr.guidedActionDisabledChevronAlpha, R.attr.guidedActionContentWidth, R.attr.guidedActionContentWidthNoIcon, R.attr.guidedActionTitleMinLines, R.attr.guidedActionTitleMaxLines, R.attr.guidedActionDescriptionMinLines, R.attr.guidedActionVerticalPadding};
public static final int LeanbackGuidedStepTheme_guidanceBreadcrumbStyle = 10;
public static final int LeanbackGuidedStepTheme_guidanceContainerStyle = 7;
public static final int LeanbackGuidedStepTheme_guidanceDescriptionStyle = 9;
public static final int LeanbackGuidedStepTheme_guidanceEntryAnimation = 6;
public static final int LeanbackGuidedStepTheme_guidanceIconStyle = 11;
public static final int LeanbackGuidedStepTheme_guidanceTitleStyle = 8;
public static final int LeanbackGuidedStepTheme_guidedActionCheckedAnimation = 25;
public static final int LeanbackGuidedStepTheme_guidedActionContentWidth = 31;
public static final int LeanbackGuidedStepTheme_guidedActionContentWidthNoIcon = 32;
public static final int LeanbackGuidedStepTheme_guidedActionDescriptionMinLines = 35;
public static final int LeanbackGuidedStepTheme_guidedActionDisabledChevronAlpha = 30;
public static final int LeanbackGuidedStepTheme_guidedActionEnabledChevronAlpha = 29;
public static final int LeanbackGuidedStepTheme_guidedActionItemCheckmarkStyle = 19;
public static final int LeanbackGuidedStepTheme_guidedActionItemChevronStyle = 24;
public static final int LeanbackGuidedStepTheme_guidedActionItemContainerStyle = 18;
public static final int LeanbackGuidedStepTheme_guidedActionItemContentStyle = 21;
public static final int LeanbackGuidedStepTheme_guidedActionItemDescriptionStyle = 23;
public static final int LeanbackGuidedStepTheme_guidedActionItemIconStyle = 20;
public static final int LeanbackGuidedStepTheme_guidedActionItemTitleStyle = 22;
public static final int LeanbackGuidedStepTheme_guidedActionPressedAnimation = 27;
public static final int LeanbackGuidedStepTheme_guidedActionTitleMaxLines = 34;
public static final int LeanbackGuidedStepTheme_guidedActionTitleMinLines = 33;
public static final int LeanbackGuidedStepTheme_guidedActionUncheckedAnimation = 26;
public static final int LeanbackGuidedStepTheme_guidedActionUnpressedAnimation = 28;
public static final int LeanbackGuidedStepTheme_guidedActionVerticalPadding = 36;
public static final int LeanbackGuidedStepTheme_guidedActionsContainerStyle = 15;
public static final int LeanbackGuidedStepTheme_guidedActionsEntryAnimation = 12;
public static final int LeanbackGuidedStepTheme_guidedActionsListStyle = 17;
public static final int LeanbackGuidedStepTheme_guidedActionsSelectorHideAnimation = 14;
public static final int LeanbackGuidedStepTheme_guidedActionsSelectorShowAnimation = 13;
public static final int LeanbackGuidedStepTheme_guidedActionsSelectorStyle = 16;
public static final int LeanbackGuidedStepTheme_guidedStepEntryAnimation = 2;
public static final int LeanbackGuidedStepTheme_guidedStepExitAnimation = 3;
public static final int LeanbackGuidedStepTheme_guidedStepReentryAnimation = 4;
public static final int LeanbackGuidedStepTheme_guidedStepReturnAnimation = 5;
public static final int LeanbackGuidedStepTheme_guidedStepTheme = 0;
public static final int LeanbackGuidedStepTheme_guidedStepThemeFlag = 1;
public static final int[] LeanbackTheme = new int[]{R.attr.browsePaddingStart, R.attr.browsePaddingEnd, R.attr.browsePaddingTop, R.attr.browsePaddingBottom, R.attr.browseRowsMarginStart, R.attr.browseRowsMarginTop, R.attr.browseRowsFadingEdgeLength, R.attr.browseTitleTextStyle, R.attr.browseTitleIconStyle, R.attr.browseTitleViewStyle, R.attr.headersVerticalGridStyle, R.attr.headerStyle, R.attr.rowsVerticalGridStyle, R.attr.rowHorizontalGridStyle, R.attr.rowHeaderStyle, R.attr.rowHeaderDockStyle, R.attr.rowHoverCardTitleStyle, R.attr.rowHoverCardDescriptionStyle, R.attr.baseCardViewStyle, R.attr.imageCardViewStyle, R.attr.detailsDescriptionTitleStyle, R.attr.detailsDescriptionSubtitleStyle, R.attr.detailsDescriptionBodyStyle, R.attr.detailsActionButtonStyle, R.attr.playbackControlsButtonStyle, R.attr.playbackControlButtonLabelStyle, R.attr.playbackControlsTimeStyle, R.attr.itemsVerticalGridStyle, R.attr.errorMessageStyle, R.attr.defaultBrandColor, R.attr.defaultSearchColor, R.attr.defaultSearchBrightColor, R.attr.searchOrbViewStyle, R.attr.defaultSearchIcon, R.attr.playbackProgressPrimaryColor, R.attr.playbackControlsIconHighlightColor, R.attr.playbackControlsActionIcons, R.attr.overlayDimMaskColor, R.attr.overlayDimActiveLevel, R.attr.overlayDimDimmedLevel};
public static final int LeanbackTheme_baseCardViewStyle = 18;
public static final int LeanbackTheme_browsePaddingBottom = 3;
public static final int LeanbackTheme_browsePaddingEnd = 1;
public static final int LeanbackTheme_browsePaddingStart = 0;
public static final int LeanbackTheme_browsePaddingTop = 2;
public static final int LeanbackTheme_browseRowsFadingEdgeLength = 6;
public static final int LeanbackTheme_browseRowsMarginStart = 4;
public static final int LeanbackTheme_browseRowsMarginTop = 5;
public static final int LeanbackTheme_browseTitleIconStyle = 8;
public static final int LeanbackTheme_browseTitleTextStyle = 7;
public static final int LeanbackTheme_browseTitleViewStyle = 9;
public static final int LeanbackTheme_defaultBrandColor = 29;
public static final int LeanbackTheme_defaultSearchBrightColor = 31;
public static final int LeanbackTheme_defaultSearchColor = 30;
public static final int LeanbackTheme_defaultSearchIcon = 33;
public static final int LeanbackTheme_detailsActionButtonStyle = 23;
public static final int LeanbackTheme_detailsDescriptionBodyStyle = 22;
public static final int LeanbackTheme_detailsDescriptionSubtitleStyle = 21;
public static final int LeanbackTheme_detailsDescriptionTitleStyle = 20;
public static final int LeanbackTheme_errorMessageStyle = 28;
public static final int LeanbackTheme_headerStyle = 11;
public static final int LeanbackTheme_headersVerticalGridStyle = 10;
public static final int LeanbackTheme_imageCardViewStyle = 19;
public static final int LeanbackTheme_itemsVerticalGridStyle = 27;
public static final int LeanbackTheme_overlayDimActiveLevel = 38;
public static final int LeanbackTheme_overlayDimDimmedLevel = 39;
public static final int LeanbackTheme_overlayDimMaskColor = 37;
public static final int LeanbackTheme_playbackControlButtonLabelStyle = 25;
public static final int LeanbackTheme_playbackControlsActionIcons = 36;
public static final int LeanbackTheme_playbackControlsButtonStyle = 24;
public static final int LeanbackTheme_playbackControlsIconHighlightColor = 35;
public static final int LeanbackTheme_playbackControlsTimeStyle = 26;
public static final int LeanbackTheme_playbackProgressPrimaryColor = 34;
public static final int LeanbackTheme_rowHeaderDockStyle = 15;
public static final int LeanbackTheme_rowHeaderStyle = 14;
public static final int LeanbackTheme_rowHorizontalGridStyle = 13;
public static final int LeanbackTheme_rowHoverCardDescriptionStyle = 17;
public static final int LeanbackTheme_rowHoverCardTitleStyle = 16;
public static final int LeanbackTheme_rowsVerticalGridStyle = 12;
public static final int LeanbackTheme_searchOrbViewStyle = 32;
public static final int[] RecyclerView = new int[]{16842948, R.attr.layoutManager, R.attr.spanCount, R.attr.reverseLayout, R.attr.stackFromEnd};
public static final int RecyclerView_android_orientation = 0;
public static final int RecyclerView_layoutManager = 1;
public static final int RecyclerView_reverseLayout = 3;
public static final int RecyclerView_spanCount = 2;
public static final int RecyclerView_stackFromEnd = 4;
public static final int[] lbBaseCardView = new int[]{R.attr.cardType, R.attr.infoVisibility, R.attr.extraVisibility, R.attr.selectedAnimationDelay, R.attr.selectedAnimationDuration, R.attr.activatedAnimationDuration};
public static final int[] lbBaseCardView_Layout = new int[]{R.attr.layout_viewType};
public static final int lbBaseCardView_Layout_layout_viewType = 0;
public static final int lbBaseCardView_activatedAnimationDuration = 5;
public static final int lbBaseCardView_cardType = 0;
public static final int lbBaseCardView_extraVisibility = 2;
public static final int lbBaseCardView_infoVisibility = 1;
public static final int lbBaseCardView_selectedAnimationDelay = 3;
public static final int lbBaseCardView_selectedAnimationDuration = 4;
public static final int[] lbBaseGridView = new int[]{16842927, R.attr.focusOutFront, R.attr.focusOutEnd, R.attr.horizontalMargin, R.attr.verticalMargin};
public static final int lbBaseGridView_android_gravity = 0;
public static final int lbBaseGridView_focusOutEnd = 2;
public static final int lbBaseGridView_focusOutFront = 1;
public static final int lbBaseGridView_horizontalMargin = 3;
public static final int lbBaseGridView_verticalMargin = 4;
public static final int[] lbHorizontalGridView = new int[]{R.attr.rowHeight, R.attr.numberOfRows};
public static final int lbHorizontalGridView_numberOfRows = 1;
public static final int lbHorizontalGridView_rowHeight = 0;
public static final int[] lbImageCardView = new int[]{R.attr.infoAreaBackground};
public static final int lbImageCardView_infoAreaBackground = 0;
public static final int[] lbPlaybackControlsActionIcons = new int[]{R.attr.play, R.attr.pause, R.attr.fast_forward, R.attr.rewind, R.attr.skip_next, R.attr.skip_previous, R.attr.thumb_up_outline, R.attr.thumb_up, R.attr.thumb_down_outline, R.attr.thumb_down, R.attr.repeat, R.attr.repeat_one, R.attr.shuffle, R.attr.high_quality, R.attr.closed_captioning};
public static final int lbPlaybackControlsActionIcons_closed_captioning = 14;
public static final int lbPlaybackControlsActionIcons_fast_forward = 2;
public static final int lbPlaybackControlsActionIcons_high_quality = 13;
public static final int lbPlaybackControlsActionIcons_pause = 1;
public static final int lbPlaybackControlsActionIcons_play = 0;
public static final int lbPlaybackControlsActionIcons_repeat = 10;
public static final int lbPlaybackControlsActionIcons_repeat_one = 11;
public static final int lbPlaybackControlsActionIcons_rewind = 3;
public static final int lbPlaybackControlsActionIcons_shuffle = 12;
public static final int lbPlaybackControlsActionIcons_skip_next = 4;
public static final int lbPlaybackControlsActionIcons_skip_previous = 5;
public static final int lbPlaybackControlsActionIcons_thumb_down = 9;
public static final int lbPlaybackControlsActionIcons_thumb_down_outline = 8;
public static final int lbPlaybackControlsActionIcons_thumb_up = 7;
public static final int lbPlaybackControlsActionIcons_thumb_up_outline = 6;
public static final int[] lbResizingTextView = new int[]{R.attr.resizeTrigger, R.attr.resizedTextSize, R.attr.maintainLineSpacing, R.attr.resizedPaddingAdjustmentTop, R.attr.resizedPaddingAdjustmentBottom};
public static final int lbResizingTextView_maintainLineSpacing = 2;
public static final int lbResizingTextView_resizeTrigger = 0;
public static final int lbResizingTextView_resizedPaddingAdjustmentBottom = 4;
public static final int lbResizingTextView_resizedPaddingAdjustmentTop = 3;
public static final int lbResizingTextView_resizedTextSize = 1;
public static final int[] lbSearchOrbView = new int[]{R.attr.searchOrbIcon, R.attr.searchOrbIconColor, R.attr.searchOrbColor, R.attr.searchOrbBrightColor};
public static final int lbSearchOrbView_searchOrbBrightColor = 3;
public static final int lbSearchOrbView_searchOrbColor = 2;
public static final int lbSearchOrbView_searchOrbIcon = 0;
public static final int lbSearchOrbView_searchOrbIconColor = 1;
public static final int[] lbSlide = new int[]{16843073, 16843160, 16843746, R.attr.lb_slideEdge};
public static final int lbSlide_android_duration = 1;
public static final int lbSlide_android_interpolator = 0;
public static final int lbSlide_android_startDelay = 2;
public static final int lbSlide_lb_slideEdge = 3;
public static final int[] lbVerticalGridView = new int[]{R.attr.columnWidth, R.attr.numberOfColumns};
public static final int lbVerticalGridView_columnWidth = 0;
public static final int lbVerticalGridView_numberOfColumns = 1;
}
public final class transition {
public static final int lb_browse_enter_transition = 2131165184;
public static final int lb_browse_entrance_transition = 2131165185;
public static final int lb_browse_headers_in = 2131165186;
public static final int lb_browse_headers_out = 2131165187;
public static final int lb_browse_return_transition = 2131165188;
public static final int lb_details_enter_transition = 2131165189;
public static final int lb_details_return_transition = 2131165190;
public static final int lb_enter_transition = 2131165191;
public static final int lb_return_transition = 2131165192;
public static final int lb_shared_element_enter_transition = 2131165193;
public static final int lb_shared_element_return_transition = 2131165194;
public static final int lb_title_in = 2131165195;
public static final int lb_title_out = 2131165196;
}
}
package android.support.v17.leanback.database;
import android.database.Cursor;
public abstract class CursorMapper {
private Cursor mCursor;
protected abstract Object bind(Cursor cursor);
protected abstract void bindColumns(Cursor cursor);
public Object convert(Cursor cursor) {
if (cursor != this.mCursor) {
this.mCursor = cursor;
bindColumns(this.mCursor);
}
return bind(this.mCursor);
}
}
package android.support.v17.leanback.graphics;
import android.graphics.Color;
import android.graphics.ColorFilter;
import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuffColorFilter;
import android.util.SparseArray;
public final class ColorFilterCache {
private static final SparseArray<ColorFilterCache> sColorToFiltersMap = new SparseArray();
private final PorterDuffColorFilter[] mFilters = new PorterDuffColorFilter[256];
public static ColorFilterCache getColorFilterCache(int i) {
int red = Color.red(i);
int green = Color.green(i);
int blue = Color.blue(i);
int rgb = Color.rgb(red, green, blue);
ColorFilterCache colorFilterCache = (ColorFilterCache) sColorToFiltersMap.get(rgb);
if (colorFilterCache != null) {
return colorFilterCache;
}
colorFilterCache = new ColorFilterCache(red, green, blue);
sColorToFiltersMap.put(rgb, colorFilterCache);
return colorFilterCache;
}
private ColorFilterCache(int i, int i2, int i3) {
for (int i4 = 0; i4 <= 255; i4++) {
this.mFilters[i4] = new PorterDuffColorFilter(Color.argb(i4, i, i2, i3), Mode.SRC_ATOP);
}
}
public final ColorFilter getFilterForLevel(float f) {
if (f < 0.0f || ((double) f) > 1.0d) {
return null;
}
return this.mFilters[(int) (255.0f * f)];
}
}
package android.support.v17.leanback.graphics;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.ColorFilter;
import android.graphics.Paint;
import android.support.v17.leanback.C0029R;
import android.view.View;
public final class ColorFilterDimmer {
private final float mActiveLevel;
private final ColorFilterCache mColorDimmer;
private final float mDimmedLevel;
private ColorFilter mFilter;
private final Paint mPaint;
public static ColorFilterDimmer createDefault(Context context) {
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(C0029R.styleable.LeanbackTheme);
int color = obtainStyledAttributes.getColor(C0029R.styleable.LeanbackTheme_overlayDimMaskColor, context.getResources().getColor(C0029R.color.lb_view_dim_mask_color));
float fraction = obtainStyledAttributes.getFraction(C0029R.styleable.LeanbackTheme_overlayDimActiveLevel, 1, 1, context.getResources().getFraction(C0029R.fraction.lb_view_active_level, 1, 0));
float fraction2 = obtainStyledAttributes.getFraction(C0029R.styleable.LeanbackTheme_overlayDimDimmedLevel, 1, 1, context.getResources().getFraction(C0029R.fraction.lb_view_dimmed_level, 1, 1));
obtainStyledAttributes.recycle();
return new ColorFilterDimmer(ColorFilterCache.getColorFilterCache(color), fraction, fraction2);
}
public static ColorFilterDimmer create(ColorFilterCache colorFilterCache, float f, float f2) {
return new ColorFilterDimmer(colorFilterCache, f, f2);
}
private ColorFilterDimmer(ColorFilterCache colorFilterCache, float f, float f2) {
float f3;
float f4 = 1.0f;
float f5 = 0.0f;
this.mColorDimmer = colorFilterCache;
if (f > 1.0f) {
f3 = 1.0f;
} else {
f3 = f;
}
if (f3 < 0.0f) {
f3 = 0.0f;
}
if (f2 <= 1.0f) {
f4 = f2;
}
if (f4 >= 0.0f) {
f5 = f4;
}
this.mActiveLevel = f3;
this.mDimmedLevel = f5;
this.mPaint = new Paint();
}
public final void applyFilterToView(View view) {
if (this.mFilter != null) {
view.setLayerType(2, this.mPaint);
} else {
view.setLayerType(0, null);
}
view.invalidate();
}
public final void setActiveLevel(float f) {
float f2 = 1.0f;
float f3 = 0.0f;
if (f >= 0.0f) {
f3 = f;
}
if (f3 <= 1.0f) {
f2 = f3;
}
this.mFilter = this.mColorDimmer.getFilterForLevel((f2 * (this.mActiveLevel - this.mDimmedLevel)) + this.mDimmedLevel);
this.mPaint.setColorFilter(this.mFilter);
}
public final ColorFilter getColorFilter() {
return this.mFilter;
}
public final Paint getPaint() {
return this.mPaint;
}
}
package android.support.v17.leanback.graphics;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.support.v17.leanback.C0029R;
import android.view.View;
public final class ColorOverlayDimmer {
private final float mActiveLevel;
private int mAlpha;
private float mAlphaFloat;
private final float mDimmedLevel;
private final Paint mPaint;
public static ColorOverlayDimmer createDefault(Context context) {
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(C0029R.styleable.LeanbackTheme);
int color = obtainStyledAttributes.getColor(C0029R.styleable.LeanbackTheme_overlayDimMaskColor, context.getResources().getColor(C0029R.color.lb_view_dim_mask_color));
float fraction = obtainStyledAttributes.getFraction(C0029R.styleable.LeanbackTheme_overlayDimActiveLevel, 1, 1, context.getResources().getFraction(C0029R.fraction.lb_view_active_level, 1, 0));
float fraction2 = obtainStyledAttributes.getFraction(C0029R.styleable.LeanbackTheme_overlayDimDimmedLevel, 1, 1, context.getResources().getFraction(C0029R.fraction.lb_view_dimmed_level, 1, 1));
obtainStyledAttributes.recycle();
return new ColorOverlayDimmer(color, fraction, fraction2);
}
public static ColorOverlayDimmer createColorOverlayDimmer(int i, float f, float f2) {
return new ColorOverlayDimmer(i, f, f2);
}
private ColorOverlayDimmer(int i, float f, float f2) {
float f3;
float f4;
float f5 = 0.0f;
if (f > 1.0f) {
f3 = 1.0f;
} else {
f3 = f;
}
if (f3 < 0.0f) {
f4 = 0.0f;
} else {
f4 = f3;
}
if (f2 > 1.0f) {
f3 = 1.0f;
} else {
f3 = f2;
}
if (f3 >= 0.0f) {
f5 = f3;
}
this.mPaint = new Paint();
this.mPaint.setColor(Color.rgb(Color.red(i), Color.green(i), Color.blue(i)));
this.mActiveLevel = f4;
this.mDimmedLevel = f5;
setActiveLevel(1.0f);
}
public final void setActiveLevel(float f) {
this.mAlphaFloat = this.mDimmedLevel + ((this.mActiveLevel - this.mDimmedLevel) * f);
this.mAlpha = (int) (255.0f * this.mAlphaFloat);
this.mPaint.setAlpha(this.mAlpha);
}
public final boolean needsDraw() {
return this.mAlpha != 0;
}
public final int getAlpha() {
return this.mAlpha;
}
public final float getAlphaFloat() {
return this.mAlphaFloat;
}
public final Paint getPaint() {
return this.mPaint;
}
public final int applyToColor(int i) {
float f = 1.0f - this.mAlphaFloat;
return Color.argb(Color.alpha(i), (int) (((float) Color.red(i)) * f), (int) (((float) Color.green(i)) * f), (int) (f * ((float) Color.blue(i))));
}
public final void drawColorOverlay(Canvas canvas, View view, boolean z) {
canvas.save();
float left = ((float) view.getLeft()) + view.getTranslationX();
float top = ((float) view.getTop()) + view.getTranslationY();
canvas.translate(left, top);
canvas.concat(view.getMatrix());
canvas.translate(-left, -top);
if (z) {
canvas.drawRect((float) view.getLeft(), (float) view.getTop(), (float) view.getRight(), (float) view.getBottom(), this.mPaint);
} else {
canvas.drawRect((float) (view.getLeft() + view.getPaddingLeft()), (float) (view.getTop() + view.getPaddingTop()), (float) (view.getRight() - view.getPaddingRight()), (float) (view.getBottom() - view.getPaddingBottom()), this.mPaint);
}
canvas.restore();
}
}
package android.support.v17.leanback.os;
import android.os.Build.VERSION;
public final class TraceHelper {
static final TraceHelperVersionImpl sImpl;
interface TraceHelperVersionImpl {
void beginSection(String str);
void endSection();
}
final class TraceHelperJbmr2Impl implements TraceHelperVersionImpl {
private TraceHelperJbmr2Impl() {
}
public final void beginSection(String str) {
TraceHelperJbmr2.beginSection(str);
}
public final void endSection() {
TraceHelperJbmr2.endSection();
}
}
final class TraceHelperStubImpl implements TraceHelperVersionImpl {
private TraceHelperStubImpl() {
}
public final void beginSection(String str) {
}
public final void endSection() {
}
}
private TraceHelper() {
}
static {
if (VERSION.SDK_INT >= 18) {
sImpl = new TraceHelperJbmr2Impl();
} else {
sImpl = new TraceHelperStubImpl();
}
}
public static void beginSection(String str) {
sImpl.beginSection(str);
}
public static void endSection() {
sImpl.endSection();
}
}
package android.support.v17.leanback.os;
import android.os.Trace;
class TraceHelperJbmr2 {
TraceHelperJbmr2() {
}
public static void beginSection(String str) {
Trace.beginSection(str);
}
public static void endSection() {
Trace.endSection();
}
}
package android.support.v17.leanback.system;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ResolveInfo;
import android.content.res.Resources;
import android.support.v17.leanback.widget.ShadowOverlayContainer;
public class Settings {
private static final String ACTION_PARTNER_CUSTOMIZATION = "android.support.v17.leanback.action.PARTNER_CUSTOMIZATION";
private static final boolean DEBUG = false;
public static final String PREFER_STATIC_SHADOWS = "PREFER_STATIC_SHADOWS";
private static final String TAG = "Settings";
private static Settings sInstance;
private boolean mPreferStaticShadows;
class Customizations {
String mPackageName;
Resources mResources;
public Customizations(Resources resources, String str) {
this.mResources = resources;
this.mPackageName = str;
}
public boolean getBoolean(String str, boolean z) {
int identifier = this.mResources.getIdentifier(str, "bool", this.mPackageName);
return identifier > 0 ? this.mResources.getBoolean(identifier) : z;
}
}
public static Settings getInstance(Context context) {
if (sInstance == null) {
sInstance = new Settings(context);
}
return sInstance;
}
private Settings(Context context) {
generateShadowSetting(getCustomizations(context));
}
public boolean preferStaticShadows() {
return this.mPreferStaticShadows;
}
public boolean getBoolean(String str) {
return getOrSetBoolean(str, false, false);
}
public void setBoolean(String str, boolean z) {
getOrSetBoolean(str, true, z);
}
boolean getOrSetBoolean(String str, boolean z, boolean z2) {
if (str.compareTo(PREFER_STATIC_SHADOWS) != 0) {
throw new IllegalArgumentException("Invalid key");
} else if (!z) {
return this.mPreferStaticShadows;
} else {
this.mPreferStaticShadows = z2;
return z2;
}
}
private void generateShadowSetting(Customizations customizations) {
if (ShadowOverlayContainer.supportsDynamicShadow()) {
this.mPreferStaticShadows = false;
if (customizations != null) {
this.mPreferStaticShadows = customizations.getBoolean("leanback_prefer_static_shadows", this.mPreferStaticShadows);
return;
}
return;
}
this.mPreferStaticShadows = true;
}
private Customizations getCustomizations(Context context) {
String str;
Resources resourcesForApplication;
PackageManager packageManager = context.getPackageManager();
Customizations customizations = null;
Customizations customizations2 = null;
for (ResolveInfo resolveInfo : packageManager.queryBroadcastReceivers(new Intent(ACTION_PARTNER_CUSTOMIZATION), 0)) {
Object obj;
str = resolveInfo.activityInfo.packageName;
if (str != null && isSystemApp(resolveInfo)) {
try {
resourcesForApplication = packageManager.getResourcesForApplication(str);
} catch (NameNotFoundException e) {
}
if (resourcesForApplication == null) {
break;
}
Object obj2 = resourcesForApplication;
obj = str;
}
obj = customizations2;
if (resourcesForApplication == null) {
break;
}
Object obj22 = resourcesForApplication;
obj = str;
}
str = customizations;
resourcesForApplication = customizations2;
if (resourcesForApplication == null) {
return null;
}
return new Customizations(resourcesForApplication, str);
}
private static boolean isSystemApp(ResolveInfo resolveInfo) {
return (resolveInfo.activityInfo == null || (resolveInfo.activityInfo.applicationInfo.flags & 1) == 0) ? false : true;
}
}
package android.support.v17.leanback.transition;
import android.content.Context;
import android.os.Build.VERSION;
import android.support.v17.leanback.C0029R;
public class LeanbackTransitionHelper {
static LeanbackTransitionHelperVersion sImpl;
interface LeanbackTransitionHelperVersion {
Object loadTitleInTransition(Context context, TransitionHelper transitionHelper);
Object loadTitleOutTransition(Context context, TransitionHelper transitionHelper);
}
class LeanbackTransitionHelperDefault implements LeanbackTransitionHelperVersion {
LeanbackTransitionHelperDefault() {
}
public Object loadTitleInTransition(Context context, TransitionHelper transitionHelper) {
return transitionHelper.loadTransition(context, C0029R.transition.lb_title_in);
}
public Object loadTitleOutTransition(Context context, TransitionHelper transitionHelper) {
return transitionHelper.loadTransition(context, C0029R.transition.lb_title_out);
}
}
class LeanbackTransitionHelperKitKatImpl implements LeanbackTransitionHelperVersion {
LeanbackTransitionHelperKitKatImpl() {
}
public Object loadTitleInTransition(Context context, TransitionHelper transitionHelper) {
return LeanbackTransitionHelperKitKat.loadTitleInTransition(context);
}
public Object loadTitleOutTransition(Context context, TransitionHelper transitionHelper) {
return LeanbackTransitionHelperKitKat.loadTitleOutTransition(context);
}
}
static {
if (VERSION.SDK_INT >= 21) {
sImpl = new LeanbackTransitionHelperDefault();
} else if (VERSION.SDK_INT >= 19) {
sImpl = new LeanbackTransitionHelperKitKatImpl();
} else {
sImpl = new LeanbackTransitionHelperDefault();
}
}
public static Object loadTitleInTransition(Context context, TransitionHelper transitionHelper) {
return sImpl.loadTitleInTransition(context, transitionHelper);
}
public static Object loadTitleOutTransition(Context context, TransitionHelper transitionHelper) {
return sImpl.loadTitleOutTransition(context, transitionHelper);
}
}
package android.support.v17.leanback.transition;
import android.content.Context;
import android.support.v17.leanback.C0029R;
import android.view.animation.AnimationUtils;
class LeanbackTransitionHelperKitKat {
LeanbackTransitionHelperKitKat() {
}
public static Object loadTitleInTransition(Context context) {
SlideKitkat slideKitkat = new SlideKitkat();
slideKitkat.setSlideEdge(48);
slideKitkat.setInterpolator(AnimationUtils.loadInterpolator(context, 17432582));
slideKitkat.addTarget(C0029R.id.browse_title_group);
return slideKitkat;
}
public static Object loadTitleOutTransition(Context context) {
SlideKitkat slideKitkat = new SlideKitkat();
slideKitkat.setSlideEdge(48);
slideKitkat.setInterpolator(AnimationUtils.loadInterpolator(context, C0029R.animator.lb_decelerator_4));
slideKitkat.addTarget(C0029R.id.browse_title_group);
return slideKitkat;
}
}
package android.support.v17.leanback.transition;
import android.animation.Animator;
import android.animation.ValueAnimator;
import android.animation.ValueAnimator.AnimatorUpdateListener;
import android.transition.Transition;
import android.transition.TransitionValues;
import android.view.View;
import android.view.ViewGroup;
class Scale extends Transition {
private static final String PROPNAME_SCALE = "android:leanback:scale";
private void captureValues(TransitionValues transitionValues) {
transitionValues.values.put(PROPNAME_SCALE, Float.valueOf(transitionValues.view.getScaleX()));
}
public void captureStartValues(TransitionValues transitionValues) {
captureValues(transitionValues);
}
public void captureEndValues(TransitionValues transitionValues) {
captureValues(transitionValues);
}
public Animator createAnimator(ViewGroup viewGroup, TransitionValues transitionValues, TransitionValues transitionValues2) {
if (transitionValues == null || transitionValues2 == null) {
return null;
}
float floatValue = ((Float) transitionValues.values.get(PROPNAME_SCALE)).floatValue();
float floatValue2 = ((Float) transitionValues2.values.get(PROPNAME_SCALE)).floatValue();
final View view = transitionValues.view;
view.setScaleX(floatValue);
view.setScaleY(floatValue);
Animator ofFloat = ValueAnimator.ofFloat(new float[]{floatValue, floatValue2});
ofFloat.addUpdateListener(new AnimatorUpdateListener() {
public void onAnimationUpdate(ValueAnimator valueAnimator) {
float floatValue = ((Float) valueAnimator.getAnimatedValue()).floatValue();
view.setScaleX(floatValue);
view.setScaleY(floatValue);
}
});
return ofFloat;
}
}
package android.support.v17.leanback.transition;
import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.animation.TimeInterpolator;
import android.content.Context;
import android.content.res.TypedArray;
import android.support.v17.leanback.C0029R;
import android.support.v4.view.GravityCompat;
import android.transition.TransitionValues;
import android.transition.Visibility;
import android.util.AttributeSet;
import android.util.Property;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AccelerateInterpolator;
import android.view.animation.AnimationUtils;
import android.view.animation.DecelerateInterpolator;
class SlideKitkat extends Visibility {
private static final String TAG = "SlideKitkat";
private static final TimeInterpolator sAccelerate = new AccelerateInterpolator();
private static final CalculateSlide sCalculateBottom = new C01194();
private static final CalculateSlide sCalculateEnd = new C01216();
private static final CalculateSlide sCalculateLeft = new C01161();
private static final CalculateSlide sCalculateRight = new C01183();
private static final CalculateSlide sCalculateStart = new C01205();
private static final CalculateSlide sCalculateTop = new C01172();
private static final TimeInterpolator sDecelerate = new DecelerateInterpolator();
private CalculateSlide mSlideCalculator;
private int mSlideEdge;
interface CalculateSlide {
float getGone(View view);
float getHere(View view);
Property<View, Float> getProperty();
}
abstract class CalculateSlideHorizontal implements CalculateSlide {
private CalculateSlideHorizontal() {
}
public float getHere(View view) {
return view.getTranslationX();
}
public Property<View, Float> getProperty() {
return View.TRANSLATION_X;
}
}
final class C01161 extends CalculateSlideHorizontal {
C01161() {
super();
}
public final float getGone(View view) {
return view.getTranslationX() - ((float) view.getWidth());
}
}
abstract class CalculateSlideVertical implements CalculateSlide {
private CalculateSlideVertical() {
}
public float getHere(View view) {
return view.getTranslationY();
}
public Property<View, Float> getProperty() {
return View.TRANSLATION_Y;
}
}
final class C01172 extends CalculateSlideVertical {
C01172() {
super();
}
public final float getGone(View view) {
return view.getTranslationY() - ((float) view.getHeight());
}
}
final class C01183 extends CalculateSlideHorizontal {
C01183() {
super();
}
public final float getGone(View view) {
return view.getTranslationX() + ((float) view.getWidth());
}
}
final class C01194 extends CalculateSlideVertical {
C01194() {
super();
}
public final float getGone(View view) {
return view.getTranslationY() + ((float) view.getHeight());
}
}
final class C01205 extends CalculateSlideHorizontal {
C01205() {
super();
}
public final float getGone(View view) {
if (view.getLayoutDirection() == 1) {
return view.getTranslationX() + ((float) view.getWidth());
}
return view.getTranslationX() - ((float) view.getWidth());
}
}
final class C01216 extends CalculateSlideHorizontal {
C01216() {
super();
}
public final float getGone(View view) {
if (view.getLayoutDirection() == 1) {
return view.getTranslationX() - ((float) view.getWidth());
}
return view.getTranslationX() + ((float) view.getWidth());
}
}
class SlideAnimatorListener extends AnimatorListenerAdapter {
private boolean mCanceled = false;
private final float mEndValue;
private final int mFinalVisibility;
private float mPausedValue;
private final Property<View, Float> mProp;
private final float mTerminalValue;
private final View mView;
public SlideAnimatorListener(View view, Property<View, Float> property, float f, float f2, int i) {
this.mProp = property;
this.mView = view;
this.mTerminalValue = f;
this.mEndValue = f2;
this.mFinalVisibility = i;
view.setVisibility(0);
}
public void onAnimationCancel(Animator animator) {
this.mView.setTag(C0029R.id.lb_slide_transition_value, new float[]{this.mView.getTranslationX(), this.mView.getTranslationY()});
this.mProp.set(this.mView, Float.valueOf(this.mTerminalValue));
this.mCanceled = true;
}
public void onAnimationEnd(Animator animator) {
if (!this.mCanceled) {
this.mProp.set(this.mView, Float.valueOf(this.mTerminalValue));
}
this.mView.setVisibility(this.mFinalVisibility);
}
public void onAnimationPause(Animator animator) {
this.mPausedValue = ((Float) this.mProp.get(this.mView)).floatValue();
this.mProp.set(this.mView, Float.valueOf(this.mEndValue));
this.mView.setVisibility(this.mFinalVisibility);
}
public void onAnimationResume(Animator animator) {
this.mProp.set(this.mView, Float.valueOf(this.mPausedValue));
this.mView.setVisibility(0);
}
}
public SlideKitkat() {
setSlideEdge(80);
}
public SlideKitkat(Context context, AttributeSet attributeSet) {
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, C0029R.styleable.lbSlide);
setSlideEdge(obtainStyledAttributes.getInt(C0029R.styleable.lbSlide_lb_slideEdge, 80));
long j = (long) obtainStyledAttributes.getInt(C0029R.styleable.lbSlide_android_duration, -1);
if (j >= 0) {
setDuration(j);
}
j = (long) obtainStyledAttributes.getInt(C0029R.styleable.lbSlide_android_startDelay, -1);
if (j > 0) {
setStartDelay(j);
}
int resourceId = obtainStyledAttributes.getResourceId(C0029R.styleable.lbSlide_android_interpolator, 0);
if (resourceId > 0) {
setInterpolator(AnimationUtils.loadInterpolator(context, resourceId));
}
obtainStyledAttributes.recycle();
}
public void setSlideEdge(int i) {
switch (i) {
case 3:
this.mSlideCalculator = sCalculateLeft;
break;
case 5:
this.mSlideCalculator = sCalculateRight;
break;
case 48:
this.mSlideCalculator = sCalculateTop;
break;
case 80:
this.mSlideCalculator = sCalculateBottom;
break;
case 8388611:
this.mSlideCalculator = sCalculateStart;
break;
case GravityCompat.END /*8388613*/:
this.mSlideCalculator = sCalculateEnd;
break;
default:
throw new IllegalArgumentException("Invalid slide direction");
}
this.mSlideEdge = i;
}
public int getSlideEdge() {
return this.mSlideEdge;
}
private Animator createAnimation(View view, Property<View, Float> property, float f, float f2, float f3, TimeInterpolator timeInterpolator, int i) {
float f4;
float[] fArr = (float[]) view.getTag(C0029R.id.lb_slide_transition_value);
if (fArr != null) {
f4 = View.TRANSLATION_Y == property ? fArr[1] : fArr[0];
view.setTag(C0029R.id.lb_slide_transition_value, null);
} else {
f4 = f;
}
Animator ofFloat = ObjectAnimator.ofFloat(view, property, new float[]{f4, f2});
Object slideAnimatorListener = new SlideAnimatorListener(view, property, f3, f2, i);
ofFloat.addListener(slideAnimatorListener);
ofFloat.addPauseListener(slideAnimatorListener);
ofFloat.setInterpolator(timeInterpolator);
return ofFloat;
}
public Animator onAppear(ViewGroup viewGroup, TransitionValues transitionValues, int i, TransitionValues transitionValues2, int i2) {
View view = transitionValues2 != null ? transitionValues2.view : null;
if (view == null) {
return null;
}
float here = this.mSlideCalculator.getHere(view);
return createAnimation(view, this.mSlideCalculator.getProperty(), this.mSlideCalculator.getGone(view), here, here, sDecelerate, 0);
}
public Animator onDisappear(ViewGroup viewGroup, TransitionValues transitionValues, int i, TransitionValues transitionValues2, int i2) {
View view = transitionValues != null ? transitionValues.view : null;
if (view == null) {
return null;
}
float here = this.mSlideCalculator.getHere(view);
return createAnimation(view, this.mSlideCalculator.getProperty(), here, this.mSlideCalculator.getGone(view), here, sAccelerate, 4);
}
}
package android.support.v17.leanback.transition;
import android.content.Context;
import android.transition.Slide;
import android.util.AttributeSet;
public class SlideNoPropagation extends Slide {
public SlideNoPropagation(int i) {
super(i);
}
public SlideNoPropagation(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
}
public void setSlideEdge(int i) {
super.setSlideEdge(i);
setPropagation(null);
}
}
package android.support.v17.leanback.transition;
import android.content.Context;
import android.os.Build.VERSION;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
public final class TransitionHelper {
public static final int FADE_IN = 1;
public static final int FADE_OUT = 2;
public static final int SLIDE_BOTTOM = 80;
public static final int SLIDE_LEFT = 3;
public static final int SLIDE_RIGHT = 5;
public static final int SLIDE_TOP = 48;
private static final TransitionHelper sHelper = new TransitionHelper();
TransitionHelperVersionImpl mImpl;
interface TransitionHelperVersionImpl {
void addTarget(Object obj, View view);
void addTransition(Object obj, Object obj2);
Object createAutoTransition();
Object createChangeBounds(boolean z);
Object createDefaultInterpolator(Context context);
Object createFadeTransition(int i);
Object createScale();
Object createScene(ViewGroup viewGroup, Runnable runnable);
Object createSlide(int i);
Object createTransitionSet(boolean z);
void exclude(Object obj, int i, boolean z);
void exclude(Object obj, View view, boolean z);
void excludeChildren(Object obj, int i, boolean z);
void excludeChildren(Object obj, View view, boolean z);
Object getEnterTransition(Window window);
Object getExitTransition(Window window);
Object getReenterTransition(Window window);
Object getReturnTransition(Window window);
Object getSharedElementEnterTransition(Window window);
Object getSharedElementExitTransition(Window window);
Object getSharedElementReenterTransition(Window window);
Object getSharedElementReturnTransition(Window window);
void include(Object obj, int i);
void include(Object obj, View view);
Object loadTransition(Context context, int i);
void runTransition(Object obj, Object obj2);
void setChangeBoundsDefaultStartDelay(Object obj, int i);
void setChangeBoundsStartDelay(Object obj, int i, int i2);
void setChangeBoundsStartDelay(Object obj, View view, int i);
void setChangeBoundsStartDelay(Object obj, String str, int i);
void setDuration(Object obj, long j);
void setInterpolator(Object obj, Object obj2);
void setStartDelay(Object obj, long j);
void setTransitionListener(Object obj, TransitionListener transitionListener);
}
class TransitionHelperKitkatImpl implements TransitionHelperVersionImpl {
private TransitionHelperKitkatImpl() {
}
public Object getSharedElementEnterTransition(Window window) {
return null;
}
public Object getSharedElementReturnTransition(Window window) {
return null;
}
public Object getSharedElementExitTransition(Window window) {
return null;
}
public Object getSharedElementReenterTransition(Window window) {
return null;
}
public Object getEnterTransition(Window window) {
return null;
}
public Object getReturnTransition(Window window) {
return null;
}
public Object getExitTransition(Window window) {
return null;
}
public Object getReenterTransition(Window window) {
return null;
}
public Object createScene(ViewGroup viewGroup, Runnable runnable) {
return TransitionHelperKitkat.createScene(viewGroup, runnable);
}
public Object createAutoTransition() {
return TransitionHelperKitkat.createAutoTransition();
}
public Object createFadeTransition(int i) {
return TransitionHelperKitkat.createFadeTransition(i);
}
public Object createChangeBounds(boolean z) {
return TransitionHelperKitkat.createChangeBounds(z);
}
public Object createSlide(int i) {
return TransitionHelperKitkat.createSlide(i);
}
public Object createScale() {
return TransitionHelperKitkat.createScale();
}
public void setChangeBoundsStartDelay(Object obj, View view, int i) {
TransitionHelperKitkat.setChangeBoundsStartDelay(obj, view, i);
}
public void setChangeBoundsStartDelay(Object obj, int i, int i2) {
TransitionHelperKitkat.setChangeBoundsStartDelay(obj, i, i2);
}
public void setChangeBoundsStartDelay(Object obj, String str, int i) {
TransitionHelperKitkat.setChangeBoundsStartDelay(obj, str, i);
}
public void setChangeBoundsDefaultStartDelay(Object obj, int i) {
TransitionHelperKitkat.setChangeBoundsDefaultStartDelay(obj, i);
}
public Object createTransitionSet(boolean z) {
return TransitionHelperKitkat.createTransitionSet(z);
}
public void addTransition(Object obj, Object obj2) {
TransitionHelperKitkat.addTransition(obj, obj2);
}
public void exclude(Object obj, int i, boolean z) {
TransitionHelperKitkat.exclude(obj, i, z);
}
public void exclude(Object obj, View view, boolean z) {
TransitionHelperKitkat.exclude(obj, view, z);
}
public void excludeChildren(Object obj, int i, boolean z) {
TransitionHelperKitkat.excludeChildren(obj, i, z);
}
public void excludeChildren(Object obj, View view, boolean z) {
TransitionHelperKitkat.excludeChildren(obj, view, z);
}
public void include(Object obj, int i) {
TransitionHelperKitkat.include(obj, i);
}
public void include(Object obj, View view) {
TransitionHelperKitkat.include(obj, view);
}
public void setStartDelay(Object obj, long j) {
TransitionHelperKitkat.setStartDelay(obj, j);
}
public void setDuration(Object obj, long j) {
TransitionHelperKitkat.setDuration(obj, j);
}
public void setTransitionListener(Object obj, TransitionListener transitionListener) {
TransitionHelperKitkat.setTransitionListener(obj, transitionListener);
}
public void runTransition(Object obj, Object obj2) {
TransitionHelperKitkat.runTransition(obj, obj2);
}
public void setInterpolator(Object obj, Object obj2) {
TransitionHelperKitkat.setInterpolator(obj, obj2);
}
public void addTarget(Object obj, View view) {
TransitionHelperKitkat.addTarget(obj, view);
}
public Object createDefaultInterpolator(Context context) {
return null;
}
public Object loadTransition(Context context, int i) {
return TransitionHelperKitkat.loadTransition(context, i);
}
}
final class TransitionHelperApi21Impl extends TransitionHelperKitkatImpl {
private TransitionHelperApi21Impl() {
super();
}
public final Object getSharedElementEnterTransition(Window window) {
return TransitionHelperApi21.getSharedElementEnterTransition(window);
}
public final Object getSharedElementReturnTransition(Window window) {
return TransitionHelperApi21.getSharedElementReturnTransition(window);
}
public final Object getSharedElementExitTransition(Window window) {
return TransitionHelperApi21.getSharedElementExitTransition(window);
}
public final Object getSharedElementReenterTransition(Window window) {
return TransitionHelperApi21.getSharedElementReenterTransition(window);
}
public final Object getEnterTransition(Window window) {
return TransitionHelperApi21.getEnterTransition(window);
}
public final Object getReturnTransition(Window window) {
return TransitionHelperApi21.getReturnTransition(window);
}
public final Object getExitTransition(Window window) {
return TransitionHelperApi21.getExitTransition(window);
}
public final Object getReenterTransition(Window window) {
return TransitionHelperApi21.getReenterTransition(window);
}
public final Object createScale() {
return TransitionHelperApi21.createScale();
}
public final Object createDefaultInterpolator(Context context) {
return TransitionHelperApi21.createDefaultInterpolator(context);
}
}
final class TransitionHelperStubImpl implements TransitionHelperVersionImpl {
class TransitionStub {
TransitionListener mTransitionListener;
private TransitionStub() {
}
}
private TransitionHelperStubImpl() {
}
public final Object getSharedElementEnterTransition(Window window) {
return null;
}
public final Object getSharedElementReturnTransition(Window window) {
return null;
}
public final Object getSharedElementExitTransition(Window window) {
return null;
}
public final Object getSharedElementReenterTransition(Window window) {
return null;
}
public final Object getEnterTransition(Window window) {
return null;
}
public final Object getReturnTransition(Window window) {
return null;
}
public final Object getExitTransition(Window window) {
return null;
}
public final Object getReenterTransition(Window window) {
return null;
}
public final Object createScene(ViewGroup viewGroup, Runnable runnable) {
return runnable;
}
public final Object createAutoTransition() {
return new TransitionStub();
}
public final Object createFadeTransition(int i) {
return new TransitionStub();
}
public final Object createChangeBounds(boolean z) {
return new TransitionStub();
}
public final Object createSlide(int i) {
return new TransitionStub();
}
public final Object createScale() {
return new TransitionStub();
}
public final void setChangeBoundsStartDelay(Object obj, View view, int i) {
}
public final void setChangeBoundsStartDelay(Object obj, int i, int i2) {
}
public final void setChangeBoundsStartDelay(Object obj, String str, int i) {
}
public final void setChangeBoundsDefaultStartDelay(Object obj, int i) {
}
public final Object createTransitionSet(boolean z) {
return new TransitionStub();
}
public final void addTransition(Object obj, Object obj2) {
}
public final void exclude(Object obj, int i, boolean z) {
}
public final void exclude(Object obj, View view, boolean z) {
}
public final void excludeChildren(Object obj, int i, boolean z) {
}
public final void excludeChildren(Object obj, View view, boolean z) {
}
public final void include(Object obj, int i) {
}
public final void include(Object obj, View view) {
}
public final void setStartDelay(Object obj, long j) {
}
public final void setDuration(Object obj, long j) {
}
public final void setTransitionListener(Object obj, TransitionListener transitionListener) {
((TransitionStub) obj).mTransitionListener = transitionListener;
}
public final void runTransition(Object obj, Object obj2) {
TransitionStub transitionStub = (TransitionStub) obj2;
if (!(transitionStub == null || transitionStub.mTransitionListener == null)) {
transitionStub.mTransitionListener.onTransitionStart(obj2);
}
Runnable runnable = (Runnable) obj;
if (runnable != null) {
runnable.run();
}
if (transitionStub != null && transitionStub.mTransitionListener != null) {
transitionStub.mTransitionListener.onTransitionEnd(obj2);
}
}
public final void setInterpolator(Object obj, Object obj2) {
}
public final void addTarget(Object obj, View view) {
}
public final Object createDefaultInterpolator(Context context) {
return null;
}
public final Object loadTransition(Context context, int i) {
return new TransitionStub();
}
}
public static boolean systemSupportsTransitions() {
if (VERSION.SDK_INT >= 19) {
return true;
}
return false;
}
public static boolean systemSupportsEntranceTransitions() {
return VERSION.SDK_INT >= 21;
}
public static TransitionHelper getInstance() {
return sHelper;
}
private TransitionHelper() {
if (VERSION.SDK_INT >= 21) {
this.mImpl = new TransitionHelperApi21Impl();
} else if (systemSupportsTransitions()) {
this.mImpl = new TransitionHelperKitkatImpl();
} else {
this.mImpl = new TransitionHelperStubImpl();
}
}
public final Object getSharedElementEnterTransition(Window window) {
return this.mImpl.getSharedElementEnterTransition(window);
}
public final Object getSharedElementReturnTransition(Window window) {
return this.mImpl.getSharedElementReturnTransition(window);
}
public final Object getSharedElementExitTransition(Window window) {
return this.mImpl.getSharedElementExitTransition(window);
}
public final Object getSharedElementReenterTransition(Window window) {
return this.mImpl.getSharedElementReenterTransition(window);
}
public final Object getEnterTransition(Window window) {
return this.mImpl.getEnterTransition(window);
}
public final Object getReturnTransition(Window window) {
return this.mImpl.getReturnTransition(window);
}
public final Object getExitTransition(Window window) {
return this.mImpl.getExitTransition(window);
}
public final Object getReenterTransition(Window window) {
return this.mImpl.getReenterTransition(window);
}
public final Object createScene(ViewGroup viewGroup, Runnable runnable) {
return this.mImpl.createScene(viewGroup, runnable);
}
public final Object createChangeBounds(boolean z) {
return this.mImpl.createChangeBounds(z);
}
public final void setChangeBoundsStartDelay(Object obj, View view, int i) {
this.mImpl.setChangeBoundsStartDelay(obj, view, i);
}
public final void setChangeBoundsStartDelay(Object obj, int i, int i2) {
this.mImpl.setChangeBoundsStartDelay(obj, i, i2);
}
public final void setChangeBoundsStartDelay(Object obj, String str, int i) {
this.mImpl.setChangeBoundsStartDelay(obj, str, i);
}
public final void setChangeBoundsDefaultStartDelay(Object obj, int i) {
this.mImpl.setChangeBoundsDefaultStartDelay(obj, i);
}
public final Object createTransitionSet(boolean z) {
return this.mImpl.createTransitionSet(z);
}
public final Object createSlide(int i) {
return this.mImpl.createSlide(i);
}
public final Object createScale() {
return this.mImpl.createScale();
}
public final void addTransition(Object obj, Object obj2) {
this.mImpl.addTransition(obj, obj2);
}
public final void exclude(Object obj, int i, boolean z) {
this.mImpl.exclude(obj, i, z);
}
public final void exclude(Object obj, View view, boolean z) {
this.mImpl.exclude(obj, view, z);
}
public final void excludeChildren(Object obj, int i, boolean z) {
this.mImpl.excludeChildren(obj, i, z);
}
public final void excludeChildren(Object obj, View view, boolean z) {
this.mImpl.excludeChildren(obj, view, z);
}
public final void include(Object obj, int i) {
this.mImpl.include(obj, i);
}
public final void include(Object obj, View view) {
this.mImpl.include(obj, view);
}
public final void setStartDelay(Object obj, long j) {
this.mImpl.setStartDelay(obj, j);
}
public final void setDuration(Object obj, long j) {
this.mImpl.setDuration(obj, j);
}
public final Object createAutoTransition() {
return this.mImpl.createAutoTransition();
}
public final Object createFadeTransition(int i) {
return this.mImpl.createFadeTransition(i);
}
public final void setTransitionListener(Object obj, TransitionListener transitionListener) {
this.mImpl.setTransitionListener(obj, transitionListener);
}
public final void runTransition(Object obj, Object obj2) {
this.mImpl.runTransition(obj, obj2);
}
public final void setInterpolator(Object obj, Object obj2) {
this.mImpl.setInterpolator(obj, obj2);
}
public final void addTarget(Object obj, View view) {
this.mImpl.addTarget(obj, view);
}
public final Object createDefaultInterpolator(Context context) {
return this.mImpl.createDefaultInterpolator(context);
}
public final Object loadTransition(Context context, int i) {
return this.mImpl.loadTransition(context, i);
}
}
package android.support.v17.leanback.transition;
import android.content.Context;
import android.transition.ChangeTransform;
import android.view.Window;
import android.view.animation.AnimationUtils;
final class TransitionHelperApi21 {
TransitionHelperApi21() {
}
public static Object getSharedElementEnterTransition(Window window) {
return window.getSharedElementEnterTransition();
}
public static Object getSharedElementReturnTransition(Window window) {
return window.getSharedElementReturnTransition();
}
public static Object getSharedElementExitTransition(Window window) {
return window.getSharedElementExitTransition();
}
public static Object getSharedElementReenterTransition(Window window) {
return window.getSharedElementReenterTransition();
}
public static Object getEnterTransition(Window window) {
return window.getEnterTransition();
}
public static Object getReturnTransition(Window window) {
return window.getReturnTransition();
}
public static Object getExitTransition(Window window) {
return window.getExitTransition();
}
public static Object getReenterTransition(Window window) {
return window.getReenterTransition();
}
public static Object createScale() {
return new ChangeTransform();
}
public static Object createDefaultInterpolator(Context context) {
return AnimationUtils.loadInterpolator(context, 17563663);
}
}
package android.support.v17.leanback.transition;
import android.animation.Animator;
import android.animation.TimeInterpolator;
import android.content.Context;
import android.transition.AutoTransition;
import android.transition.ChangeBounds;
import android.transition.Fade;
import android.transition.Scene;
import android.transition.Transition;
import android.transition.Transition.TransitionListener;
import android.transition.TransitionInflater;
import android.transition.TransitionManager;
import android.transition.TransitionSet;
import android.transition.TransitionValues;
import android.util.SparseIntArray;
import android.view.View;
import android.view.ViewGroup;
import java.util.HashMap;
final class TransitionHelperKitkat {
final class C01231 implements TransitionListener {
final /* synthetic */ TransitionListener val$listener;
C01231(TransitionListener transitionListener) {
this.val$listener = transitionListener;
}
public final void onTransitionStart(Transition transition) {
this.val$listener.onTransitionStart(transition);
}
public final void onTransitionResume(Transition transition) {
}
public final void onTransitionPause(Transition transition) {
}
public final void onTransitionEnd(Transition transition) {
this.val$listener.onTransitionEnd(transition);
}
public final void onTransitionCancel(Transition transition) {
}
}
class CustomChangeBounds extends ChangeBounds {
final HashMap<String, Integer> mClassStartDelays = new HashMap();
int mDefaultStartDelay;
final SparseIntArray mIdStartDelays = new SparseIntArray();
final HashMap<View, Integer> mViewStartDelays = new HashMap();
CustomChangeBounds() {
}
private int getDelay(View view) {
Integer num = (Integer) this.mViewStartDelays.get(view);
if (num != null) {
return num.intValue();
}
int i = this.mIdStartDelays.get(view.getId(), -1);
if (i != -1) {
return i;
}
num = (Integer) this.mClassStartDelays.get(view.getClass().getName());
if (num != null) {
return num.intValue();
}
return this.mDefaultStartDelay;
}
public Animator createAnimator(ViewGroup viewGroup, TransitionValues transitionValues, TransitionValues transitionValues2) {
Animator createAnimator = super.createAnimator(viewGroup, transitionValues, transitionValues2);
if (!(createAnimator == null || transitionValues2 == null || transitionValues2.view == null)) {
createAnimator.setStartDelay((long) getDelay(transitionValues2.view));
}
return createAnimator;
}
public void setStartDelay(View view, int i) {
this.mViewStartDelays.put(view, Integer.valueOf(i));
}
public void setStartDelay(int i, int i2) {
this.mIdStartDelays.put(i, i2);
}
public void setStartDelay(String str, int i) {
this.mClassStartDelays.put(str, Integer.valueOf(i));
}
public void setDefaultStartDelay(int i) {
this.mDefaultStartDelay = i;
}
}
TransitionHelperKitkat() {
}
static Object createScene(ViewGroup viewGroup, Runnable runnable) {
Scene scene = new Scene(viewGroup);
scene.setEnterAction(runnable);
return scene;
}
static Object createTransitionSet(boolean z) {
TransitionSet transitionSet = new TransitionSet();
transitionSet.setOrdering(z ? 1 : 0);
return transitionSet;
}
static void addTransition(Object obj, Object obj2) {
((TransitionSet) obj).addTransition((Transition) obj2);
}
static Object createAutoTransition() {
return new AutoTransition();
}
static Object createSlide(int i) {
SlideKitkat slideKitkat = new SlideKitkat();
slideKitkat.setSlideEdge(i);
return slideKitkat;
}
static Object createScale() {
return new Scale();
}
static Object createFadeTransition(int i) {
return new Fade(i);
}
static Object createChangeBounds(boolean z) {
CustomChangeBounds customChangeBounds = new CustomChangeBounds();
customChangeBounds.setReparent(z);
return customChangeBounds;
}
static void setChangeBoundsStartDelay(Object obj, int i, int i2) {
((CustomChangeBounds) obj).setStartDelay(i, i2);
}
static void setChangeBoundsStartDelay(Object obj, View view, int i) {
((CustomChangeBounds) obj).setStartDelay(view, i);
}
static void setChangeBoundsStartDelay(Object obj, String str, int i) {
((CustomChangeBounds) obj).setStartDelay(str, i);
}
static void setChangeBoundsDefaultStartDelay(Object obj, int i) {
((CustomChangeBounds) obj).setDefaultStartDelay(i);
}
static void setStartDelay(Object obj, long j) {
((Transition) obj).setStartDelay(j);
}
static void setDuration(Object obj, long j) {
((Transition) obj).setDuration(j);
}
static void exclude(Object obj, int i, boolean z) {
((Transition) obj).excludeTarget(i, z);
}
static void exclude(Object obj, View view, boolean z) {
((Transition) obj).excludeTarget(view, z);
}
static void excludeChildren(Object obj, int i, boolean z) {
((Transition) obj).excludeChildren(i, z);
}
static void excludeChildren(Object obj, View view, boolean z) {
((Transition) obj).excludeChildren(view, z);
}
static void include(Object obj, int i) {
((Transition) obj).addTarget(i);
}
static void include(Object obj, View view) {
((Transition) obj).addTarget(view);
}
static void setTransitionListener(Object obj, TransitionListener transitionListener) {
((Transition) obj).addListener(new C01231(transitionListener));
}
static void runTransition(Object obj, Object obj2) {
TransitionManager.go((Scene) obj, (Transition) obj2);
}
static void setInterpolator(Object obj, Object obj2) {
((Transition) obj).setInterpolator((TimeInterpolator) obj2);
}
static void addTarget(Object obj, View view) {
((Transition) obj).addTarget(view);
}
static Object loadTransition(Context context, int i) {
return TransitionInflater.from(context).inflateTransition(i);
}
}
package android.support.v17.leanback.transition;
public class TransitionListener {
public void onTransitionStart(Object obj) {
}
public void onTransitionEnd(Object obj) {
}
}
package android.support.v17.leanback.widget;
import android.graphics.Paint;
import android.graphics.Paint.FontMetricsInt;
import android.support.v17.leanback.C0029R;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnLayoutChangeListener;
import android.view.ViewGroup;
import android.view.ViewGroup.MarginLayoutParams;
import android.view.ViewTreeObserver.OnPreDrawListener;
import android.widget.TextView;
public abstract class AbstractDetailsDescriptionPresenter extends Presenter {
public class ViewHolder extends android.support.v17.leanback.widget.Presenter.ViewHolder {
private final TextView mBody;
private final FontMetricsInt mBodyFontMetricsInt = getFontMetricsInt(this.mBody);
private final int mBodyLineSpacing;
private final int mBodyMaxLines;
private final int mBodyMinLines;
private OnPreDrawListener mPreDrawListener;
private final TextView mSubtitle;
private final FontMetricsInt mSubtitleFontMetricsInt = getFontMetricsInt(this.mSubtitle);
private final TextView mTitle;
private final FontMetricsInt mTitleFontMetricsInt = getFontMetricsInt(this.mTitle);
private final int mTitleLineSpacing;
private final int mTitleMargin;
private final int mTitleMaxLines = this.mTitle.getMaxLines();
private final int mUnderSubtitleBaselineMargin;
private final int mUnderTitleBaselineMargin;
class C01241 implements OnLayoutChangeListener {
C01241() {
}
public void onLayoutChange(View view, int i, int i2, int i3, int i4, int i5, int i6, int i7, int i8) {
ViewHolder.this.addPreDrawListener();
}
}
class C01252 implements OnPreDrawListener {
C01252() {
}
public boolean onPreDraw() {
if (ViewHolder.this.mSubtitle.getVisibility() != 0 || ViewHolder.this.mSubtitle.getTop() <= ViewHolder.this.view.getHeight() || ViewHolder.this.mTitle.getLineCount() <= 1) {
int access$200 = ViewHolder.this.mTitle.getLineCount() > 1 ? ViewHolder.this.mBodyMinLines : ViewHolder.this.mBodyMaxLines;
if (ViewHolder.this.mBody.getMaxLines() != access$200) {
ViewHolder.this.mBody.setMaxLines(access$200);
return false;
}
ViewHolder.this.removePreDrawListener();
return true;
}
ViewHolder.this.mTitle.setMaxLines(ViewHolder.this.mTitle.getLineCount() - 1);
return false;
}
}
public ViewHolder(View view) {
super(view);
this.mTitle = (TextView) view.findViewById(C0029R.id.lb_details_description_title);
this.mSubtitle = (TextView) view.findViewById(C0029R.id.lb_details_description_subtitle);
this.mBody = (TextView) view.findViewById(C0029R.id.lb_details_description_body);
FontMetricsInt fontMetricsInt = getFontMetricsInt(this.mTitle);
this.mTitleMargin = fontMetricsInt.ascent + view.getResources().getDimensionPixelSize(C0029R.dimen.lb_details_description_title_baseline);
this.mUnderTitleBaselineMargin = view.getResources().getDimensionPixelSize(C0029R.dimen.lb_details_description_under_title_baseline_margin);
this.mUnderSubtitleBaselineMargin = view.getResources().getDimensionPixelSize(C0029R.dimen.lb_details_description_under_subtitle_baseline_margin);
this.mTitleLineSpacing = view.getResources().getDimensionPixelSize(C0029R.dimen.lb_details_description_title_line_spacing);
this.mBodyLineSpacing = view.getResources().getDimensionPixelSize(C0029R.dimen.lb_details_description_body_line_spacing);
this.mBodyMaxLines = view.getResources().getInteger(C0029R.integer.lb_details_description_body_max_lines);
this.mBodyMinLines = view.getResources().getInteger(C0029R.integer.lb_details_description_body_min_lines);
this.mTitle.addOnLayoutChangeListener(new C01241());
}
void addPreDrawListener() {
if (this.mPreDrawListener == null) {
this.mPreDrawListener = new C01252();
this.view.getViewTreeObserver().addOnPreDrawListener(this.mPreDrawListener);
}
}
void removePreDrawListener() {
if (this.mPreDrawListener != null) {
this.view.getViewTreeObserver().removeOnPreDrawListener(this.mPreDrawListener);
this.mPreDrawListener = null;
}
}
public TextView getTitle() {
return this.mTitle;
}
public TextView getSubtitle() {
return this.mSubtitle;
}
public TextView getBody() {
return this.mBody;
}
private FontMetricsInt getFontMetricsInt(TextView textView) {
Paint paint = new Paint(1);
paint.setTextSize(textView.getTextSize());
paint.setTypeface(textView.getTypeface());
return paint.getFontMetricsInt();
}
}
protected abstract void onBindDescription(ViewHolder viewHolder, Object obj);
public final ViewHolder onCreateViewHolder(ViewGroup viewGroup) {
return new ViewHolder(LayoutInflater.from(viewGroup.getContext()).inflate(C0029R.layout.lb_details_description, viewGroup, false));
}
public final void onBindViewHolder(android.support.v17.leanback.widget.Presenter.ViewHolder viewHolder, Object obj) {
int i;
int i2 = 1;
ViewHolder viewHolder2 = (ViewHolder) viewHolder;
onBindDescription(viewHolder2, obj);
if (TextUtils.isEmpty(viewHolder2.mTitle.getText())) {
viewHolder2.mTitle.setVisibility(8);
i = 0;
} else {
viewHolder2.mTitle.setVisibility(0);
viewHolder2.mTitle.setLineSpacing(((float) (viewHolder2.mTitleLineSpacing - viewHolder2.mTitle.getLineHeight())) + viewHolder2.mTitle.getLineSpacingExtra(), viewHolder2.mTitle.getLineSpacingMultiplier());
viewHolder2.mTitle.setMaxLines(viewHolder2.mTitleMaxLines);
i = 1;
}
setTopMargin(viewHolder2.mTitle, viewHolder2.mTitleMargin);
if (TextUtils.isEmpty(viewHolder2.mSubtitle.getText())) {
viewHolder2.mSubtitle.setVisibility(8);
i2 = 0;
} else {
viewHolder2.mSubtitle.setVisibility(0);
if (i != 0) {
setTopMargin(viewHolder2.mSubtitle, (viewHolder2.mUnderTitleBaselineMargin + viewHolder2.mSubtitleFontMetricsInt.ascent) - viewHolder2.mTitleFontMetricsInt.descent);
} else {
setTopMargin(viewHolder2.mSubtitle, 0);
}
}
if (TextUtils.isEmpty(viewHolder2.mBody.getText())) {
viewHolder2.mBody.setVisibility(8);
return;
}
viewHolder2.mBody.setVisibility(0);
viewHolder2.mBody.setLineSpacing(((float) (viewHolder2.mBodyLineSpacing - viewHolder2.mBody.getLineHeight())) + viewHolder2.mBody.getLineSpacingExtra(), viewHolder2.mBody.getLineSpacingMultiplier());
if (i2 != 0) {
setTopMargin(viewHolder2.mBody, (viewHolder2.mUnderSubtitleBaselineMargin + viewHolder2.mBodyFontMetricsInt.ascent) - viewHolder2.mSubtitleFontMetricsInt.descent);
} else if (i != 0) {
setTopMargin(viewHolder2.mBody, (viewHolder2.mUnderTitleBaselineMargin + viewHolder2.mBodyFontMetricsInt.ascent) - viewHolder2.mTitleFontMetricsInt.descent);
} else {
setTopMargin(viewHolder2.mBody, 0);
}
}
public void onUnbindViewHolder(android.support.v17.leanback.widget.Presenter.ViewHolder viewHolder) {
}
public void onViewAttachedToWindow(android.support.v17.leanback.widget.Presenter.ViewHolder viewHolder) {
((ViewHolder) viewHolder).addPreDrawListener();
super.onViewAttachedToWindow(viewHolder);
}
public void onViewDetachedFromWindow(android.support.v17.leanback.widget.Presenter.ViewHolder viewHolder) {
((ViewHolder) viewHolder).removePreDrawListener();
super.onViewDetachedFromWindow(viewHolder);
}
private void setTopMargin(TextView textView, int i) {
MarginLayoutParams marginLayoutParams = (MarginLayoutParams) textView.getLayoutParams();
marginLayoutParams.topMargin = i;
textView.setLayoutParams(marginLayoutParams);
}
}
package android.support.v17.leanback.widget;
import android.graphics.drawable.Drawable;
import android.text.TextUtils;
import java.util.ArrayList;
public class Action {
private Drawable mIcon;
private long mId;
private ArrayList mKeyCodes;
private CharSequence mLabel1;
private CharSequence mLabel2;
public Action(long j) {
this(j, "");
}
public Action(long j, CharSequence charSequence) {
this(j, charSequence, null);
}
public Action(long j, CharSequence charSequence, CharSequence charSequence2) {
this(j, charSequence, charSequence2, null);
}
public Action(long j, CharSequence charSequence, CharSequence charSequence2, Drawable drawable) {
this.mId = -1;
this.mKeyCodes = new ArrayList();
setId(j);
setLabel1(charSequence);
setLabel2(charSequence2);
setIcon(drawable);
}
public final void setId(long j) {
this.mId = j;
}
public final long getId() {
return this.mId;
}
public final void setLabel1(CharSequence charSequence) {
this.mLabel1 = charSequence;
}
public final CharSequence getLabel1() {
return this.mLabel1;
}
public final void setLabel2(CharSequence charSequence) {
this.mLabel2 = charSequence;
}
public final CharSequence getLabel2() {
return this.mLabel2;
}
public final void setIcon(Drawable drawable) {
this.mIcon = drawable;
}
public final Drawable getIcon() {
return this.mIcon;
}
public final void addKeyCode(int i) {
this.mKeyCodes.add(Integer.valueOf(i));
}
public final void removeKeyCode(int i) {
this.mKeyCodes.remove(i);
}
public final boolean respondsToKeyCode(int i) {
return this.mKeyCodes.contains(Integer.valueOf(i));
}
public String toString() {
StringBuilder stringBuilder = new StringBuilder();
if (!TextUtils.isEmpty(this.mLabel1)) {
stringBuilder.append(this.mLabel1);
}
if (!TextUtils.isEmpty(this.mLabel2)) {
if (!TextUtils.isEmpty(this.mLabel1)) {
stringBuilder.append(" ");
}
stringBuilder.append(this.mLabel2);
}
if (this.mIcon != null && stringBuilder.length() == 0) {
stringBuilder.append("(action icon)");
}
return stringBuilder.toString();
}
}
package android.support.v17.leanback.widget;
import android.graphics.drawable.Drawable;
import android.support.v17.leanback.C0029R;
import android.support.v17.leanback.widget.Presenter.ViewHolder;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
class ActionPresenterSelector extends PresenterSelector {
private final Presenter mOneLineActionPresenter = new OneLineActionPresenter();
private final Presenter[] mPresenters = new Presenter[]{this.mOneLineActionPresenter, this.mTwoLineActionPresenter};
private final Presenter mTwoLineActionPresenter = new TwoLineActionPresenter();
class ActionViewHolder extends ViewHolder {
Action mAction;
Button mButton;
int mLayoutDirection;
public ActionViewHolder(View view, int i) {
super(view);
this.mButton = (Button) view.findViewById(C0029R.id.lb_action_button);
this.mLayoutDirection = i;
}
}
class OneLineActionPresenter extends Presenter {
OneLineActionPresenter() {
}
public ViewHolder onCreateViewHolder(ViewGroup viewGroup) {
return new ActionViewHolder(LayoutInflater.from(viewGroup.getContext()).inflate(C0029R.layout.lb_action_1_line, viewGroup, false), viewGroup.getLayoutDirection());
}
public void onBindViewHolder(ViewHolder viewHolder, Object obj) {
Action action = (Action) obj;
ActionViewHolder actionViewHolder = (ActionViewHolder) viewHolder;
actionViewHolder.mAction = action;
actionViewHolder.mButton.setText(action.getLabel1());
}
public void onUnbindViewHolder(ViewHolder viewHolder) {
((ActionViewHolder) viewHolder).mAction = null;
}
}
class TwoLineActionPresenter extends Presenter {
TwoLineActionPresenter() {
}
public ViewHolder onCreateViewHolder(ViewGroup viewGroup) {
return new ActionViewHolder(LayoutInflater.from(viewGroup.getContext()).inflate(C0029R.layout.lb_action_2_lines, viewGroup, false), viewGroup.getLayoutDirection());
}
public void onBindViewHolder(ViewHolder viewHolder, Object obj) {
Action action = (Action) obj;
ActionViewHolder actionViewHolder = (ActionViewHolder) viewHolder;
Drawable icon = action.getIcon();
actionViewHolder.mAction = action;
if (icon != null) {
actionViewHolder.view.setPaddingRelative(actionViewHolder.view.getResources().getDimensionPixelSize(C0029R.dimen.lb_action_with_icon_padding_start), 0, actionViewHolder.view.getResources().getDimensionPixelSize(C0029R.dimen.lb_action_with_icon_padding_end), 0);
} else {
int dimensionPixelSize = actionViewHolder.view.getResources().getDimensionPixelSize(C0029R.dimen.lb_action_padding_horizontal);
actionViewHolder.view.setPaddingRelative(dimensionPixelSize, 0, dimensionPixelSize, 0);
}
if (actionViewHolder.mLayoutDirection == 1) {
actionViewHolder.mButton.setCompoundDrawablesWithIntrinsicBounds(null, null, icon, null);
} else {
actionViewHolder.mButton.setCompoundDrawablesWithIntrinsicBounds(icon, null, null, null);
}
CharSequence label1 = action.getLabel1();
CharSequence label2 = action.getLabel2();
if (TextUtils.isEmpty(label1)) {
actionViewHolder.mButton.setText(label2);
} else if (TextUtils.isEmpty(label2)) {
actionViewHolder.mButton.setText(label1);
} else {
actionViewHolder.mButton.setText(label1 + "\n" + label2);
}
}
public void onUnbindViewHolder(ViewHolder viewHolder) {
ActionViewHolder actionViewHolder = (ActionViewHolder) viewHolder;
actionViewHolder.mButton.setCompoundDrawablesWithIntrinsicBounds(null, null, null, null);
actionViewHolder.view.setPadding(0, 0, 0, 0);
actionViewHolder.mAction = null;
}
}
ActionPresenterSelector() {
}
public Presenter getPresenter(Object obj) {
if (TextUtils.isEmpty(((Action) obj).getLabel2())) {
return this.mOneLineActionPresenter;
}
return this.mTwoLineActionPresenter;
}
public Presenter[] getPresenters() {
return this.mPresenters;
}
}
package android.support.v17.leanback.widget;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
public class ArrayObjectAdapter extends ObjectAdapter {
private ArrayList<Object> mItems = new ArrayList();
public ArrayObjectAdapter(PresenterSelector presenterSelector) {
super(presenterSelector);
}
public ArrayObjectAdapter(Presenter presenter) {
super(presenter);
}
public int size() {
return this.mItems.size();
}
public Object get(int i) {
return this.mItems.get(i);
}
public int indexOf(Object obj) {
return this.mItems.indexOf(obj);
}
public void notifyArrayItemRangeChanged(int i, int i2) {
notifyItemRangeChanged(i, i2);
}
public void add(Object obj) {
add(this.mItems.size(), obj);
}
public void add(int i, Object obj) {
this.mItems.add(i, obj);
notifyItemRangeInserted(i, 1);
}
public void addAll(int i, Collection collection) {
int size = collection.size();
if (size != 0) {
this.mItems.addAll(i, collection);
notifyItemRangeInserted(i, size);
}
}
public boolean remove(Object obj) {
int indexOf = this.mItems.indexOf(obj);
if (indexOf >= 0) {
this.mItems.remove(indexOf);
notifyItemRangeRemoved(indexOf, 1);
}
if (indexOf >= 0) {
return true;
}
return false;
}
public void replace(int i, Object obj) {
this.mItems.set(i, obj);
notifyItemRangeChanged(i, 1);
}
public int removeItems(int i, int i2) {
int i3 = 0;
int min = Math.min(i2, this.mItems.size() - i);
if (min <= 0) {
return 0;
}
while (i3 < min) {
this.mItems.remove(i);
i3++;
}
notifyItemRangeRemoved(i, min);
return min;
}
public void clear() {
int size = this.mItems.size();
if (size != 0) {
this.mItems.clear();
notifyItemRangeRemoved(0, size);
}
}
public <E> List<E> unmodifiableList() {
return Collections.unmodifiableList(this.mItems);
}
}
package android.support.v17.leanback.widget;
import android.graphics.drawable.Drawable;
import android.os.Build.VERSION;
import android.view.View;
public final class BackgroundHelper {
static final BackgroundHelperVersionImpl sImpl;
interface BackgroundHelperVersionImpl {
void setBackgroundPreservingAlpha(View view, Drawable drawable);
}
final class BackgroundHelperKitkatImpl implements BackgroundHelperVersionImpl {
private BackgroundHelperKitkatImpl() {
}
public final void setBackgroundPreservingAlpha(View view, Drawable drawable) {
BackgroundHelperKitkat.setBackgroundPreservingAlpha(view, drawable);
}
}
final class BackgroundHelperStubImpl implements BackgroundHelperVersionImpl {
private BackgroundHelperStubImpl() {
}
public final void setBackgroundPreservingAlpha(View view, Drawable drawable) {
view.setBackground(drawable);
}
}
private BackgroundHelper() {
}
static {
if (VERSION.SDK_INT >= 19) {
sImpl = new BackgroundHelperKitkatImpl();
} else {
sImpl = new BackgroundHelperStubImpl();
}
}
public static void setBackgroundPreservingAlpha(View view, Drawable drawable) {
sImpl.setBackgroundPreservingAlpha(view, drawable);
}
}
package android.support.v17.leanback.widget;
import android.graphics.drawable.Drawable;
import android.view.View;
class BackgroundHelperKitkat {
BackgroundHelperKitkat() {
}
public static void setBackgroundPreservingAlpha(View view, Drawable drawable) {
if (view.getBackground() != null) {
drawable.setAlpha(view.getBackground().getAlpha());
}
view.setBackground(drawable);
}
}
package android.support.v17.leanback.widget;
import android.content.Context;
import android.content.res.TypedArray;
import android.support.v17.leanback.C0029R;
import android.util.AttributeSet;
import android.util.Log;
import android.view.View;
import android.view.View.MeasureSpec;
import android.view.ViewDebug.ExportedProperty;
import android.view.ViewDebug.IntToString;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.view.animation.DecelerateInterpolator;
import android.view.animation.Transformation;
import android.widget.FrameLayout;
import java.util.ArrayList;
public class BaseCardView extends FrameLayout {
public static final int CARD_REGION_VISIBLE_ACTIVATED = 1;
public static final int CARD_REGION_VISIBLE_ALWAYS = 0;
public static final int CARD_REGION_VISIBLE_SELECTED = 2;
public static final int CARD_TYPE_INFO_OVER = 1;
public static final int CARD_TYPE_INFO_UNDER = 2;
public static final int CARD_TYPE_INFO_UNDER_WITH_EXTRA = 3;
private static final int CARD_TYPE_INVALID = 4;
public static final int CARD_TYPE_MAIN_ONLY = 0;
private static final boolean DEBUG = false;
private static final int[] LB_PRESSED_STATE_SET = new int[]{16842919};
private static final String TAG = "BaseCardView";
private final int mActivatedAnimDuration;
private Animation mAnim;
private final Runnable mAnimationTrigger;
private int mCardType;
private boolean mDelaySelectedAnim;
private ArrayList<View> mExtraViewList;
private int mExtraVisibility;
private float mInfoAlpha;
private float mInfoOffset;
private ArrayList<View> mInfoViewList;
private float mInfoVisFraction;
private int mInfoVisibility;
private ArrayList<View> mMainViewList;
private int mMeasuredHeight;
private int mMeasuredWidth;
private final int mSelectedAnimDuration;
private int mSelectedAnimationDelay;
class C01271 implements Runnable {
C01271() {
}
public void run() {
BaseCardView.this.animateInfoOffset(true);
}
}
class C01282 implements AnimationListener {
C01282() {
}
public void onAnimationStart(Animation animation) {
}
public void onAnimationEnd(Animation animation) {
if (BaseCardView.this.mInfoOffset == 0.0f) {
for (int i = 0; i < BaseCardView.this.mExtraViewList.size(); i++) {
((View) BaseCardView.this.mExtraViewList.get(i)).setVisibility(8);
}
}
}
public void onAnimationRepeat(Animation animation) {
}
}
class C01293 implements AnimationListener {
C01293() {
}
public void onAnimationStart(Animation animation) {
}
public void onAnimationEnd(Animation animation) {
if (BaseCardView.this.mInfoOffset == 0.0f) {
for (int i = 0; i < BaseCardView.this.mExtraViewList.size(); i++) {
((View) BaseCardView.this.mExtraViewList.get(i)).setVisibility(8);
}
}
}
public void onAnimationRepeat(Animation animation) {
}
}
class C01304 implements AnimationListener {
C01304() {
}
public void onAnimationStart(Animation animation) {
}
public void onAnimationEnd(Animation animation) {
if (((double) BaseCardView.this.mInfoAlpha) == 0.0d) {
for (int i = 0; i < BaseCardView.this.mInfoViewList.size(); i++) {
((View) BaseCardView.this.mInfoViewList.get(i)).setVisibility(8);
}
}
}
public void onAnimationRepeat(Animation animation) {
}
}
class InfoAlphaAnimation extends Animation {
private float mDelta;
private float mStartValue;
public InfoAlphaAnimation(float f, float f2) {
this.mStartValue = f;
this.mDelta = f2 - f;
}
protected void applyTransformation(float f, Transformation transformation) {
BaseCardView.this.mInfoAlpha = this.mStartValue + (this.mDelta * f);
for (int i = 0; i < BaseCardView.this.mInfoViewList.size(); i++) {
((View) BaseCardView.this.mInfoViewList.get(i)).setAlpha(BaseCardView.this.mInfoAlpha);
}
}
}
class InfoHeightAnimation extends Animation {
private float mDelta;
private float mStartValue;
public InfoHeightAnimation(float f, float f2) {
this.mStartValue = f;
this.mDelta = f2 - f;
}
protected void applyTransformation(float f, Transformation transformation) {
BaseCardView.this.mInfoVisFraction = this.mStartValue + (this.mDelta * f);
BaseCardView.this.requestLayout();
}
}
class InfoOffsetAnimation extends Animation {
private float mDelta;
private float mStartValue;
public InfoOffsetAnimation(float f, float f2) {
this.mStartValue = f;
this.mDelta = f2 - f;
}
protected void applyTransformation(float f, Transformation transformation) {
BaseCardView.this.mInfoOffset = this.mStartValue + (this.mDelta * f);
BaseCardView.this.requestLayout();
}
}
public class LayoutParams extends android.widget.FrameLayout.LayoutParams {
public static final int VIEW_TYPE_EXTRA = 2;
public static final int VIEW_TYPE_INFO = 1;
public static final int VIEW_TYPE_MAIN = 0;
@ExportedProperty(category = "layout", mapping = {@IntToString(from = 0, to = "MAIN"), @IntToString(from = 1, to = "INFO"), @IntToString(from = 2, to = "EXTRA")})
public int viewType = 0;
public LayoutParams(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, C0029R.styleable.lbBaseCardView_Layout);
this.viewType = obtainStyledAttributes.getInt(C0029R.styleable.lbBaseCardView_Layout_layout_viewType, 0);
obtainStyledAttributes.recycle();
}
public LayoutParams(int i, int i2) {
super(i, i2);
}
public LayoutParams(android.view.ViewGroup.LayoutParams layoutParams) {
super(layoutParams);
}
public LayoutParams(LayoutParams layoutParams) {
super(layoutParams);
this.viewType = layoutParams.viewType;
}
}
public BaseCardView(Context context) {
this(context, null);
}
public BaseCardView(Context context, AttributeSet attributeSet) {
this(context, attributeSet, C0029R.attr.baseCardViewStyle);
}
public BaseCardView(Context context, AttributeSet attributeSet, int i) {
super(context, attributeSet, i);
this.mInfoAlpha = 1.0f;
this.mAnimationTrigger = new C01271();
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, C0029R.styleable.lbBaseCardView, i, 0);
try {
this.mCardType = obtainStyledAttributes.getInteger(C0029R.styleable.lbBaseCardView_cardType, 0);
this.mInfoVisibility = obtainStyledAttributes.getInteger(C0029R.styleable.lbBaseCardView_infoVisibility, 1);
this.mExtraVisibility = obtainStyledAttributes.getInteger(C0029R.styleable.lbBaseCardView_extraVisibility, 2);
if (this.mExtraVisibility < this.mInfoVisibility) {
this.mExtraVisibility = this.mInfoVisibility;
}
this.mSelectedAnimationDelay = obtainStyledAttributes.getInteger(C0029R.styleable.lbBaseCardView_selectedAnimationDelay, getResources().getInteger(C0029R.integer.lb_card_selected_animation_delay));
this.mSelectedAnimDuration = obtainStyledAttributes.getInteger(C0029R.styleable.lbBaseCardView_selectedAnimationDuration, getResources().getInteger(C0029R.integer.lb_card_selected_animation_duration));
this.mActivatedAnimDuration = obtainStyledAttributes.getInteger(C0029R.styleable.lbBaseCardView_activatedAnimationDuration, getResources().getInteger(C0029R.integer.lb_card_activated_animation_duration));
this.mDelaySelectedAnim = true;
this.mMainViewList = new ArrayList();
this.mInfoViewList = new ArrayList();
this.mExtraViewList = new ArrayList();
this.mInfoOffset = 0.0f;
this.mInfoVisFraction = 0.0f;
} finally {
obtainStyledAttributes.recycle();
}
}
public void setSelectedAnimationDelayed(boolean z) {
this.mDelaySelectedAnim = z;
}
public boolean isSelectedAnimationDelayed() {
return this.mDelaySelectedAnim;
}
public void setCardType(int i) {
if (this.mCardType != i) {
if (i < 0 || i >= 4) {
Log.e(TAG, "Invalid card type specified: " + i + ". Defaulting to type CARD_TYPE_MAIN_ONLY.");
this.mCardType = 0;
} else {
this.mCardType = i;
}
requestLayout();
}
}
public int getCardType() {
return this.mCardType;
}
public void setInfoVisibility(int i) {
if (this.mInfoVisibility != i) {
this.mInfoVisibility = i;
if (this.mInfoVisibility == 2 && isSelected()) {
this.mInfoVisFraction = 1.0f;
} else {
this.mInfoVisFraction = 0.0f;
}
requestLayout();
}
}
public int getInfoVisibility() {
return this.mInfoVisibility;
}
public void setExtraVisibility(int i) {
if (this.mExtraVisibility != i) {
this.mExtraVisibility = i;
requestLayout();
}
}
public int getExtraVisibility() {
return this.mExtraVisibility;
}
public void setActivated(boolean z) {
if (z != isActivated()) {
super.setActivated(z);
applyActiveState(isActivated());
}
}
public void setSelected(boolean z) {
if (z != isSelected()) {
super.setSelected(z);
applySelectedState(isSelected());
}
}
public boolean shouldDelayChildPressedState() {
return false;
}
protected void onMeasure(int i, int i2) {
int i3;
int i4;
int i5;
int i6 = 0;
this.mMeasuredWidth = 0;
this.mMeasuredHeight = 0;
findChildrenViews();
int makeMeasureSpec = MeasureSpec.makeMeasureSpec(0, 0);
int i7 = 0;
int i8 = 0;
for (i3 = 0; i3 < this.mMainViewList.size(); i3++) {
View view = (View) this.mMainViewList.get(i3);
if (view.getVisibility() != 8) {
measureChild(view, makeMeasureSpec, makeMeasureSpec);
this.mMeasuredWidth = Math.max(this.mMeasuredWidth, view.getMeasuredWidth());
i7 += view.getMeasuredHeight();
i8 = View.combineMeasuredStates(i8, view.getMeasuredState());
}
}
setPivotX((float) (this.mMeasuredWidth / 2));
setPivotY((float) (i7 / 2));
int makeMeasureSpec2 = MeasureSpec.makeMeasureSpec(this.mMeasuredWidth, 1073741824);
if (hasInfoRegion()) {
i4 = i8;
i8 = 0;
for (i3 = 0; i3 < this.mInfoViewList.size(); i3++) {
view = (View) this.mInfoViewList.get(i3);
if (view.getVisibility() != 8) {
measureChild(view, makeMeasureSpec2, makeMeasureSpec);
if (this.mCardType != 1) {
i8 += view.getMeasuredHeight();
}
i4 = View.combineMeasuredStates(i4, view.getMeasuredState());
}
}
if (hasExtraRegion()) {
i5 = i4;
i4 = 0;
for (i3 = 0; i3 < this.mExtraViewList.size(); i3++) {
view = (View) this.mExtraViewList.get(i3);
if (view.getVisibility() != 8) {
measureChild(view, makeMeasureSpec2, makeMeasureSpec);
i4 += view.getMeasuredHeight();
i5 = View.combineMeasuredStates(i5, view.getMeasuredState());
}
}
} else {
i5 = i4;
i4 = 0;
}
} else {
i4 = 0;
i5 = i8;
i8 = 0;
}
if (hasInfoRegion() && this.mInfoVisibility == 2) {
i6 = 1;
}
this.mMeasuredHeight = (int) ((((float) i4) + ((i6 != 0 ? ((float) i8) * this.mInfoVisFraction : (float) i8) + ((float) i7))) - (i6 != 0 ? 0.0f : this.mInfoOffset));
setMeasuredDimension(View.resolveSizeAndState((this.mMeasuredWidth + getPaddingLeft()) + getPaddingRight(), i, i5), View.resolveSizeAndState((this.mMeasuredHeight + getPaddingTop()) + getPaddingBottom(), i2, i5 << 16));
}
protected void onLayout(boolean z, int i, int i2, int i3, int i4) {
int i5;
float paddingTop = (float) getPaddingTop();
for (i5 = 0; i5 < this.mMainViewList.size(); i5++) {
View view = (View) this.mMainViewList.get(i5);
if (view.getVisibility() != 8) {
view.layout(getPaddingLeft(), (int) paddingTop, this.mMeasuredWidth + getPaddingLeft(), (int) (((float) view.getMeasuredHeight()) + paddingTop));
paddingTop += (float) view.getMeasuredHeight();
}
}
if (hasInfoRegion()) {
float f = 0.0f;
for (i5 = 0; i5 < this.mInfoViewList.size(); i5++) {
f += (float) ((View) this.mInfoViewList.get(i5)).getMeasuredHeight();
}
if (this.mCardType == 1) {
paddingTop -= f;
if (paddingTop < 0.0f) {
paddingTop = 0.0f;
}
} else if (this.mCardType != 2) {
paddingTop -= this.mInfoOffset;
} else if (this.mInfoVisibility == 2) {
f *= this.mInfoVisFraction;
}
for (i5 = 0; i5 < this.mInfoViewList.size(); i5++) {
view = (View) this.mInfoViewList.get(i5);
if (view.getVisibility() != 8) {
int measuredHeight = view.getMeasuredHeight();
if (((float) measuredHeight) > f) {
measuredHeight = (int) f;
}
view.layout(getPaddingLeft(), (int) paddingTop, this.mMeasuredWidth + getPaddingLeft(), (int) (((float) measuredHeight) + paddingTop));
paddingTop += (float) measuredHeight;
f -= (float) measuredHeight;
if (f <= 0.0f) {
break;
}
}
}
if (hasExtraRegion()) {
for (i5 = 0; i5 < this.mExtraViewList.size(); i5++) {
view = (View) this.mExtraViewList.get(i5);
if (view.getVisibility() != 8) {
view.layout(getPaddingLeft(), (int) paddingTop, this.mMeasuredWidth + getPaddingLeft(), (int) (((float) view.getMeasuredHeight()) + paddingTop));
paddingTop += (float) view.getMeasuredHeight();
}
}
}
}
onSizeChanged(0, 0, i3 - i, i4 - i2);
}
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
removeCallbacks(this.mAnimationTrigger);
cancelAnimations();
this.mInfoOffset = 0.0f;
this.mInfoVisFraction = 0.0f;
}
private boolean hasInfoRegion() {
return this.mCardType != 0;
}
private boolean hasExtraRegion() {
return this.mCardType == 3;
}
private boolean isRegionVisible(int i) {
switch (i) {
case 0:
return true;
case 1:
return isActivated();
case 2:
return isActivated() && isSelected();
default:
return false;
}
}
private void findChildrenViews() {
int i;
this.mMainViewList.clear();
this.mInfoViewList.clear();
this.mExtraViewList.clear();
int childCount = getChildCount();
boolean isRegionVisible = isRegionVisible(this.mInfoVisibility);
int i2 = (!hasExtraRegion() || this.mInfoOffset <= 0.0f) ? 0 : 1;
if (this.mCardType == 2 && this.mInfoVisibility == 2) {
if (!isRegionVisible || this.mInfoVisFraction <= 0.0f) {
i = 0;
} else {
i = 1;
}
int i3 = i;
} else {
boolean z = isRegionVisible;
}
for (int i4 = 0; i4 < childCount; i4++) {
View childAt = getChildAt(i4);
if (childAt != null) {
LayoutParams layoutParams = (LayoutParams) childAt.getLayoutParams();
if (layoutParams.viewType == 1) {
this.mInfoViewList.add(childAt);
if (i3 != 0) {
i = 0;
} else {
i = 8;
}
childAt.setVisibility(i);
} else if (layoutParams.viewType == 2) {
this.mExtraViewList.add(childAt);
childAt.setVisibility(i2 != 0 ? 0 : 8);
} else {
this.mMainViewList.add(childAt);
childAt.setVisibility(0);
}
}
}
}
protected int[] onCreateDrawableState(int i) {
Object obj = null;
int[] onCreateDrawableState = super.onCreateDrawableState(i);
int length = onCreateDrawableState.length;
Object obj2 = null;
for (int i2 = 0; i2 < length; i2++) {
if (onCreateDrawableState[i2] == 16842919) {
obj = 1;
}
if (onCreateDrawableState[i2] == 16842910) {
obj2 = 1;
}
}
if (obj != null && obj2 != null) {
return View.PRESSED_ENABLED_STATE_SET;
}
if (obj != null) {
return LB_PRESSED_STATE_SET;
}
if (obj2 != null) {
return View.ENABLED_STATE_SET;
}
return View.EMPTY_STATE_SET;
}
private void applyActiveState(boolean z) {
if (hasInfoRegion() && this.mInfoVisibility <= 1) {
setInfoViewVisibility(z);
}
hasExtraRegion();
}
private void setInfoViewVisibility(boolean z) {
int i = 0;
int i2;
if (this.mCardType == 3) {
if (z) {
for (i2 = 0; i2 < this.mInfoViewList.size(); i2++) {
((View) this.mInfoViewList.get(i2)).setVisibility(0);
}
return;
}
for (i2 = 0; i2 < this.mInfoViewList.size(); i2++) {
((View) this.mInfoViewList.get(i2)).setVisibility(8);
}
while (i < this.mExtraViewList.size()) {
((View) this.mExtraViewList.get(i)).setVisibility(8);
i++;
}
this.mInfoOffset = 0.0f;
} else if (this.mCardType == 2) {
if (this.mInfoVisibility == 2) {
animateInfoHeight(z);
return;
}
for (i2 = 0; i2 < this.mInfoViewList.size(); i2++) {
int i3;
View view = (View) this.mInfoViewList.get(i2);
if (z) {
i3 = 0;
} else {
i3 = 8;
}
view.setVisibility(i3);
}
} else if (this.mCardType == 1) {
animateInfoAlpha(z);
}
}
private void applySelectedState(boolean z) {
removeCallbacks(this.mAnimationTrigger);
if (this.mCardType == 3) {
if (!z) {
animateInfoOffset(false);
} else if (this.mDelaySelectedAnim) {
postDelayed(this.mAnimationTrigger, (long) this.mSelectedAnimationDelay);
} else {
post(this.mAnimationTrigger);
this.mDelaySelectedAnim = true;
}
} else if (this.mInfoVisibility == 2) {
setInfoViewVisibility(z);
}
}
private void cancelAnimations() {
if (this.mAnim != null) {
this.mAnim.cancel();
this.mAnim = null;
}
}
private void animateInfoOffset(boolean z) {
int i;
cancelAnimations();
if (z) {
int makeMeasureSpec = MeasureSpec.makeMeasureSpec(this.mMeasuredWidth, 1073741824);
int makeMeasureSpec2 = MeasureSpec.makeMeasureSpec(0, 0);
i = 0;
for (int i2 = 0; i2 < this.mExtraViewList.size(); i2++) {
View view = (View) this.mExtraViewList.get(i2);
view.setVisibility(0);
view.measure(makeMeasureSpec, makeMeasureSpec2);
i = Math.max(i, view.getMeasuredHeight());
}
} else {
i = 0;
}
this.mAnim = new InfoOffsetAnimation(this.mInfoOffset, z ? (float) i : 0.0f);
this.mAnim.setDuration((long) this.mSelectedAnimDuration);
this.mAnim.setInterpolator(new AccelerateDecelerateInterpolator());
this.mAnim.setAnimationListener(new C01282());
startAnimation(this.mAnim);
}
private void animateInfoHeight(boolean z) {
cancelAnimations();
if (z) {
int makeMeasureSpec = MeasureSpec.makeMeasureSpec(this.mMeasuredWidth, 1073741824);
int makeMeasureSpec2 = MeasureSpec.makeMeasureSpec(0, 0);
int i = 0;
for (int i2 = 0; i2 < this.mExtraViewList.size(); i2++) {
View view = (View) this.mExtraViewList.get(i2);
view.setVisibility(0);
view.measure(makeMeasureSpec, makeMeasureSpec2);
i = Math.max(i, view.getMeasuredHeight());
}
}
this.mAnim = new InfoHeightAnimation(this.mInfoVisFraction, z ? 1.0f : 0.0f);
this.mAnim.setDuration((long) this.mSelectedAnimDuration);
this.mAnim.setInterpolator(new AccelerateDecelerateInterpolator());
this.mAnim.setAnimationListener(new C01293());
startAnimation(this.mAnim);
}
private void animateInfoAlpha(boolean z) {
cancelAnimations();
if (z) {
for (int i = 0; i < this.mInfoViewList.size(); i++) {
((View) this.mInfoViewList.get(i)).setVisibility(0);
}
}
this.mAnim = new InfoAlphaAnimation(this.mInfoAlpha, z ? 1.0f : 0.0f);
this.mAnim.setDuration((long) this.mActivatedAnimDuration);
this.mAnim.setInterpolator(new DecelerateInterpolator());
this.mAnim.setAnimationListener(new C01304());
startAnimation(this.mAnim);
}
public LayoutParams generateLayoutParams(AttributeSet attributeSet) {
return new LayoutParams(getContext(), attributeSet);
}
protected LayoutParams generateDefaultLayoutParams() {
return new LayoutParams(-2, -2);
}
protected LayoutParams generateLayoutParams(android.view.ViewGroup.LayoutParams layoutParams) {
if (layoutParams instanceof LayoutParams) {
return new LayoutParams((LayoutParams) layoutParams);
}
return new LayoutParams(layoutParams);
}
protected boolean checkLayoutParams(android.view.ViewGroup.LayoutParams layoutParams) {
return layoutParams instanceof LayoutParams;
}
public String toString() {
return super.toString();
}
}
package android.support.v17.leanback.widget;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Rect;
import android.support.v17.leanback.C0029R;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.ItemAnimator;
import android.support.v7.widget.RecyclerView.RecyclerListener;
import android.support.v7.widget.RecyclerView.ViewHolder;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
abstract class BaseGridView extends RecyclerView {
public static final int FOCUS_SCROLL_ALIGNED = 0;
public static final int FOCUS_SCROLL_ITEM = 1;
public static final int FOCUS_SCROLL_PAGE = 2;
public static final float ITEM_ALIGN_OFFSET_PERCENT_DISABLED = -1.0f;
public static final int SAVE_ALL_CHILD = 3;
public static final int SAVE_LIMITED_CHILD = 2;
public static final int SAVE_NO_CHILD = 0;
public static final int SAVE_ON_SCREEN_CHILD = 1;
public static final int WINDOW_ALIGN_BOTH_EDGE = 3;
public static final int WINDOW_ALIGN_HIGH_EDGE = 2;
public static final int WINDOW_ALIGN_LOW_EDGE = 1;
public static final int WINDOW_ALIGN_NO_EDGE = 0;
public static final float WINDOW_ALIGN_OFFSET_PERCENT_DISABLED = -1.0f;
private boolean mAnimateChildLayout = true;
private RecyclerListener mChainedRecyclerListener;
private boolean mHasOverlappingRendering = true;
final GridLayoutManager mLayoutManager = new GridLayoutManager(this);
private OnKeyInterceptListener mOnKeyInterceptListener;
private OnMotionInterceptListener mOnMotionInterceptListener;
private OnTouchInterceptListener mOnTouchInterceptListener;
private OnUnhandledKeyListener mOnUnhandledKeyListener;
private ItemAnimator mSavedItemAnimator;
public interface OnTouchInterceptListener {
boolean onInterceptTouchEvent(MotionEvent motionEvent);
}
public interface OnKeyInterceptListener {
boolean onInterceptKeyEvent(KeyEvent keyEvent);
}
class C01311 implements RecyclerListener {
C01311() {
}
public void onViewRecycled(ViewHolder viewHolder) {
BaseGridView.this.mLayoutManager.onChildRecycled(viewHolder);
if (BaseGridView.this.mChainedRecyclerListener != null) {
BaseGridView.this.mChainedRecyclerListener.onViewRecycled(viewHolder);
}
}
}
public interface OnMotionInterceptListener {
boolean onInterceptMotionEvent(MotionEvent motionEvent);
}
public interface OnUnhandledKeyListener {
boolean onUnhandledKey(KeyEvent keyEvent);
}
public BaseGridView(Context context, AttributeSet attributeSet, int i) {
super(context, attributeSet, i);
setLayoutManager(this.mLayoutManager);
setDescendantFocusability(262144);
setHasFixedSize(true);
setChildrenDrawingOrderEnabled(true);
setWillNotDraw(true);
setOverScrollMode(2);
getItemAnimator().setSupportsChangeAnimations(false);
super.setRecyclerListener(new C01311());
}
protected void initBaseGridViewAttributes(Context context, AttributeSet attributeSet) {
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, C0029R.styleable.lbBaseGridView);
this.mLayoutManager.setFocusOutAllowed(obtainStyledAttributes.getBoolean(C0029R.styleable.lbBaseGridView_focusOutFront, false), obtainStyledAttributes.getBoolean(C0029R.styleable.lbBaseGridView_focusOutEnd, false));
this.mLayoutManager.setVerticalMargin(obtainStyledAttributes.getDimensionPixelSize(C0029R.styleable.lbBaseGridView_verticalMargin, 0));
this.mLayoutManager.setHorizontalMargin(obtainStyledAttributes.getDimensionPixelSize(C0029R.styleable.lbBaseGridView_horizontalMargin, 0));
if (obtainStyledAttributes.hasValue(C0029R.styleable.lbBaseGridView_android_gravity)) {
setGravity(obtainStyledAttributes.getInt(C0029R.styleable.lbBaseGridView_android_gravity, 0));
}
obtainStyledAttributes.recycle();
}
public void setFocusScrollStrategy(int i) {
if (i == 0 || i == 1 || i == 2) {
this.mLayoutManager.setFocusScrollStrategy(i);
requestLayout();
return;
}
throw new IllegalArgumentException("Invalid scrollStrategy");
}
public int getFocusScrollStrategy() {
return this.mLayoutManager.getFocusScrollStrategy();
}
public void setWindowAlignment(int i) {
this.mLayoutManager.setWindowAlignment(i);
requestLayout();
}
public int getWindowAlignment() {
return this.mLayoutManager.getWindowAlignment();
}
public void setWindowAlignmentOffset(int i) {
this.mLayoutManager.setWindowAlignmentOffset(i);
requestLayout();
}
public int getWindowAlignmentOffset() {
return this.mLayoutManager.getWindowAlignmentOffset();
}
public void setWindowAlignmentOffsetPercent(float f) {
this.mLayoutManager.setWindowAlignmentOffsetPercent(f);
requestLayout();
}
public float getWindowAlignmentOffsetPercent() {
return this.mLayoutManager.getWindowAlignmentOffsetPercent();
}
public void setItemAlignmentOffset(int i) {
this.mLayoutManager.setItemAlignmentOffset(i);
requestLayout();
}
public int getItemAlignmentOffset() {
return this.mLayoutManager.getItemAlignmentOffset();
}
public void setItemAlignmentOffsetWithPadding(boolean z) {
this.mLayoutManager.setItemAlignmentOffsetWithPadding(z);
requestLayout();
}
public boolean isItemAlignmentOffsetWithPadding() {
return this.mLayoutManager.isItemAlignmentOffsetWithPadding();
}
public void setItemAlignmentOffsetPercent(float f) {
this.mLayoutManager.setItemAlignmentOffsetPercent(f);
requestLayout();
}
public float getItemAlignmentOffsetPercent() {
return this.mLayoutManager.getItemAlignmentOffsetPercent();
}
public void setItemAlignmentViewId(int i) {
this.mLayoutManager.setItemAlignmentViewId(i);
}
public int getItemAlignmentViewId() {
return this.mLayoutManager.getItemAlignmentViewId();
}
public void setItemMargin(int i) {
this.mLayoutManager.setItemMargin(i);
requestLayout();
}
public void setVerticalMargin(int i) {
this.mLayoutManager.setVerticalMargin(i);
requestLayout();
}
public int getVerticalMargin() {
return this.mLayoutManager.getVerticalMargin();
}
public void setHorizontalMargin(int i) {
this.mLayoutManager.setHorizontalMargin(i);
requestLayout();
}
public int getHorizontalMargin() {
return this.mLayoutManager.getHorizontalMargin();
}
public void setOnChildLaidOutListener(OnChildLaidOutListener onChildLaidOutListener) {
this.mLayoutManager.setOnChildLaidOutListener(onChildLaidOutListener);
}
public void setOnChildSelectedListener(OnChildSelectedListener onChildSelectedListener) {
this.mLayoutManager.setOnChildSelectedListener(onChildSelectedListener);
}
public void setOnChildViewHolderSelectedListener(OnChildViewHolderSelectedListener onChildViewHolderSelectedListener) {
this.mLayoutManager.setOnChildViewHolderSelectedListener(onChildViewHolderSelectedListener);
}
public void setSelectedPosition(int i) {
this.mLayoutManager.setSelection(this, i, 0);
}
public void setSelectedPositionWithSub(int i, int i2) {
this.mLayoutManager.setSelectionWithSub(this, i, i2, 0);
}
public void setSelectedPosition(int i, int i2) {
this.mLayoutManager.setSelection(this, i, i2);
}
public void setSelectedPositionWithSub(int i, int i2, int i3) {
this.mLayoutManager.setSelectionWithSub(this, i, i2, i3);
}
public void setSelectedPositionSmooth(int i) {
this.mLayoutManager.setSelectionSmooth(this, i);
}
public void setSelectedPositionSmoothWithSub(int i, int i2) {
this.mLayoutManager.setSelectionSmoothWithSub(this, i, i2);
}
public int getSelectedPosition() {
return this.mLayoutManager.getSelection();
}
public int getSelectedSubPosition() {
return this.mLayoutManager.getSubSelection();
}
public void setAnimateChildLayout(boolean z) {
if (this.mAnimateChildLayout != z) {
this.mAnimateChildLayout = z;
if (this.mAnimateChildLayout) {
super.setItemAnimator(this.mSavedItemAnimator);
return;
}
this.mSavedItemAnimator = getItemAnimator();
super.setItemAnimator(null);
}
}
public boolean isChildLayoutAnimated() {
return this.mAnimateChildLayout;
}
public void setGravity(int i) {
this.mLayoutManager.setGravity(i);
requestLayout();
}
public boolean onRequestFocusInDescendants(int i, Rect rect) {
return this.mLayoutManager.gridOnRequestFocusInDescendants(this, i, rect);
}
public void getViewSelectedOffsets(View view, int[] iArr) {
this.mLayoutManager.getViewSelectedOffsets(view, iArr);
}
public int getChildDrawingOrder(int i, int i2) {
return this.mLayoutManager.getChildDrawingOrder(this, i, i2);
}
final boolean isChildrenDrawingOrderEnabledInternal() {
return isChildrenDrawingOrderEnabled();
}
public View focusSearch(int i) {
if (isFocused()) {
View findViewByPosition = this.mLayoutManager.findViewByPosition(this.mLayoutManager.getSelection());
if (findViewByPosition != null) {
return focusSearch(findViewByPosition, i);
}
}
return super.focusSearch(i);
}
protected void onFocusChanged(boolean z, int i, Rect rect) {
super.onFocusChanged(z, i, rect);
this.mLayoutManager.onFocusChanged(z, i, rect);
}
public final void setFocusSearchDisabled(boolean z) {
setDescendantFocusability(z ? 393216 : 262144);
this.mLayoutManager.setFocusSearchDisabled(z);
}
public final boolean isFocusSearchDisabled() {
return this.mLayoutManager.isFocusSearchDisabled();
}
public void setLayoutEnabled(boolean z) {
this.mLayoutManager.setLayoutEnabled(z);
}
public void setChildrenVisibility(int i) {
this.mLayoutManager.setChildrenVisibility(i);
}
public void setPruneChild(boolean z) {
this.mLayoutManager.setPruneChild(z);
}
public void setScrollEnabled(boolean z) {
this.mLayoutManager.setScrollEnabled(z);
}
public boolean isScrollEnabled() {
return this.mLayoutManager.isScrollEnabled();
}
public boolean hasPreviousViewInSameRow(int i) {
return this.mLayoutManager.hasPreviousViewInSameRow(i);
}
public void setFocusDrawingOrderEnabled(boolean z) {
super.setChildrenDrawingOrderEnabled(z);
}
public boolean isFocusDrawingOrderEnabled() {
return super.isChildrenDrawingOrderEnabled();
}
public void setOnTouchInterceptListener(OnTouchInterceptListener onTouchInterceptListener) {
this.mOnTouchInterceptListener = onTouchInterceptListener;
}
public void setOnMotionInterceptListener(OnMotionInterceptListener onMotionInterceptListener) {
this.mOnMotionInterceptListener = onMotionInterceptListener;
}
public void setOnKeyInterceptListener(OnKeyInterceptListener onKeyInterceptListener) {
this.mOnKeyInterceptListener = onKeyInterceptListener;
}
public void setOnUnhandledKeyListener(OnUnhandledKeyListener onUnhandledKeyListener) {
this.mOnUnhandledKeyListener = onUnhandledKeyListener;
}
public OnUnhandledKeyListener getOnUnhandledKeyListener() {
return this.mOnUnhandledKeyListener;
}
public boolean dispatchKeyEvent(KeyEvent keyEvent) {
if ((this.mOnKeyInterceptListener != null && this.mOnKeyInterceptListener.onInterceptKeyEvent(keyEvent)) || super.dispatchKeyEvent(keyEvent)) {
return true;
}
if (this.mOnUnhandledKeyListener == null || !this.mOnUnhandledKeyListener.onUnhandledKey(keyEvent)) {
return false;
}
return true;
}
public boolean dispatchTouchEvent(MotionEvent motionEvent) {
if (this.mOnTouchInterceptListener == null || !this.mOnTouchInterceptListener.onInterceptTouchEvent(motionEvent)) {
return super.dispatchTouchEvent(motionEvent);
}
return true;
}
public boolean dispatchGenericFocusedEvent(MotionEvent motionEvent) {
if (this.mOnMotionInterceptListener == null || !this.mOnMotionInterceptListener.onInterceptMotionEvent(motionEvent)) {
return super.dispatchGenericFocusedEvent(motionEvent);
}
return true;
}
public final int getSaveChildrenPolicy() {
return this.mLayoutManager.mChildrenStates.getSavePolicy();
}
public final int getSaveChildrenLimitNumber() {
return this.mLayoutManager.mChildrenStates.getLimitNumber();
}
public final void setSaveChildrenPolicy(int i) {
this.mLayoutManager.mChildrenStates.setSavePolicy(i);
}
public final void setSaveChildrenLimitNumber(int i) {
this.mLayoutManager.mChildrenStates.setLimitNumber(i);
}
public boolean hasOverlappingRendering() {
return this.mHasOverlappingRendering;
}
public void setHasOverlappingRendering(boolean z) {
this.mHasOverlappingRendering = z;
}
public void onRtlPropertiesChanged(int i) {
this.mLayoutManager.onRtlPropertiesChanged(i);
}
public void setRecyclerListener(RecyclerListener recyclerListener) {
this.mChainedRecyclerListener = recyclerListener;
}
public void setExtraLayoutSpace(int i) {
this.mLayoutManager.setExtraLayoutSpace(i);
}
public int getExtraLayoutSpace() {
return this.mLayoutManager.getExtraLayoutSpace();
}
}
package android.support.v17.leanback.widget;
import android.content.Context;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.view.View;
import android.widget.FrameLayout;
public class BrowseFrameLayout extends FrameLayout {
private OnFocusSearchListener mListener;
private OnChildFocusListener mOnChildFocusListener;
public interface OnFocusSearchListener {
View onFocusSearch(View view, int i);
}
public interface OnChildFocusListener {
void onRequestChildFocus(View view, View view2);
boolean onRequestFocusInDescendants(int i, Rect rect);
}
public BrowseFrameLayout(Context context) {
this(context, null, 0);
}
public BrowseFrameLayout(Context context, AttributeSet attributeSet) {
this(context, attributeSet, 0);
}
public BrowseFrameLayout(Context context, AttributeSet attributeSet, int i) {
super(context, attributeSet, i);
}
public void setOnFocusSearchListener(OnFocusSearchListener onFocusSearchListener) {
this.mListener = onFocusSearchListener;
}
public OnFocusSearchListener getOnFocusSearchListener() {
return this.mListener;
}
public void setOnChildFocusListener(OnChildFocusListener onChildFocusListener) {
this.mOnChildFocusListener = onChildFocusListener;
}
public OnChildFocusListener getOnChildFocusListener() {
return this.mOnChildFocusListener;
}
protected boolean onRequestFocusInDescendants(int i, Rect rect) {
if (this.mOnChildFocusListener != null) {
return this.mOnChildFocusListener.onRequestFocusInDescendants(i, rect);
}
return super.onRequestFocusInDescendants(i, rect);
}
public View focusSearch(View view, int i) {
if (this.mListener != null) {
View onFocusSearch = this.mListener.onFocusSearch(view, i);
if (onFocusSearch != null) {
return onFocusSearch;
}
}
return super.focusSearch(view, i);
}
public void requestChildFocus(View view, View view2) {
super.requestChildFocus(view, view2);
if (this.mOnChildFocusListener != null) {
this.mOnChildFocusListener.onRequestChildFocus(view, view2);
}
}
}
package android.support.v17.leanback.widget;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup.MarginLayoutParams;
import android.widget.FrameLayout;
public class BrowseRowsFrameLayout extends FrameLayout {
public BrowseRowsFrameLayout(Context context) {
this(context, null);
}
public BrowseRowsFrameLayout(Context context, AttributeSet attributeSet) {
this(context, attributeSet, 0);
}
public BrowseRowsFrameLayout(Context context, AttributeSet attributeSet, int i) {
super(context, attributeSet, i);
}
protected void measureChildWithMargins(View view, int i, int i2, int i3, int i4) {
MarginLayoutParams marginLayoutParams = (MarginLayoutParams) view.getLayoutParams();
view.measure(getChildMeasureSpec(i, (getPaddingLeft() + getPaddingRight()) + i2, marginLayoutParams.width), getChildMeasureSpec(i3, (getPaddingTop() + getPaddingBottom()) + i4, marginLayoutParams.height));
}
}
package android.support.v17.leanback.widget;
import java.util.ArrayList;
import java.util.HashMap;
public final class ClassPresenterSelector extends PresenterSelector {
private final HashMap<Class<?>, Presenter> mClassMap = new HashMap();
private final ArrayList<Presenter> mPresenters = new ArrayList();
public final void addClassPresenter(Class<?> cls, Presenter presenter) {
this.mClassMap.put(cls, presenter);
if (!this.mPresenters.contains(presenter)) {
this.mPresenters.add(presenter);
}
}
public final Presenter getPresenter(Object obj) {
Presenter presenter;
Class cls = obj.getClass();
do {
presenter = (Presenter) this.mClassMap.get(cls);
cls = cls.getSuperclass();
if (presenter != null) {
break;
}
} while (cls != null);
return presenter;
}
public final Presenter[] getPresenters() {
return (Presenter[]) this.mPresenters.toArray(new Presenter[this.mPresenters.size()]);
}
}
package android.support.v17.leanback.widget;
import android.content.Context;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
class ControlBar extends LinearLayout {
private int mChildMarginFromCenter;
private OnChildFocusedListener mOnChildFocusedListener;
public interface OnChildFocusedListener {
void onChildFocusedListener(View view, View view2);
}
public ControlBar(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
}
public ControlBar(Context context, AttributeSet attributeSet, int i) {
super(context, attributeSet, i);
}
public boolean requestFocus(int i, Rect rect) {
if (getChildCount() <= 0 || !getChildAt(getChildCount() / 2).requestFocus(i, rect)) {
return super.requestFocus(i, rect);
}
return true;
}
public void setOnChildFocusedListener(OnChildFocusedListener onChildFocusedListener) {
this.mOnChildFocusedListener = onChildFocusedListener;
}
public void setChildMarginFromCenter(int i) {
this.mChildMarginFromCenter = i;
}
public void requestChildFocus(View view, View view2) {
super.requestChildFocus(view, view2);
if (this.mOnChildFocusedListener != null) {
this.mOnChildFocusedListener.onChildFocusedListener(view, view2);
}
}
protected void onMeasure(int i, int i2) {
super.onMeasure(i, i2);
if (this.mChildMarginFromCenter > 0) {
int i3 = 0;
for (int i4 = 0; i4 < getChildCount() - 1; i4++) {
View childAt = getChildAt(i4);
View childAt2 = getChildAt(i4 + 1);
int measuredWidth = this.mChildMarginFromCenter - ((childAt.getMeasuredWidth() + childAt2.getMeasuredWidth()) / 2);
LayoutParams layoutParams = (LayoutParams) childAt2.getLayoutParams();
int marginStart = measuredWidth - layoutParams.getMarginStart();
layoutParams.setMarginStart(measuredWidth);
childAt2.setLayoutParams(layoutParams);
i3 += marginStart;
}
setMeasuredDimension(getMeasuredWidth() + i3, getMeasuredHeight());
}
}
}
package android.support.v17.leanback.widget;
import android.content.Context;
import android.support.v17.leanback.C0029R;
import android.support.v17.leanback.widget.ControlBar.OnChildFocusedListener;
import android.support.v17.leanback.widget.ObjectAdapter.DataObserver;
import android.util.SparseArray;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
class ControlBarPresenter extends Presenter {
private static final int MAX_CONTROLS = 7;
private static int sChildMarginDefault;
private static int sControlIconWidth;
private int mLayoutResourceId;
private OnControlClickedListener mOnControlClickedListener;
private OnControlSelectedListener mOnControlSelectedListener;
class BoundData {
ObjectAdapter adapter;
Presenter presenter;
BoundData() {
}
}
interface OnControlClickedListener {
void onControlClicked(android.support.v17.leanback.widget.Presenter.ViewHolder viewHolder, Object obj, BoundData boundData);
}
interface OnControlSelectedListener {
void onControlSelected(android.support.v17.leanback.widget.Presenter.ViewHolder viewHolder, Object obj, BoundData boundData);
}
class ViewHolder extends android.support.v17.leanback.widget.Presenter.ViewHolder {
ObjectAdapter mAdapter;
ControlBar mControlBar;
View mControlsContainer;
BoundData mData;
DataObserver mDataObserver;
Presenter mPresenter;
SparseArray<android.support.v17.leanback.widget.Presenter.ViewHolder> mViewHolders = new SparseArray();
ViewHolder(View view) {
super(view);
this.mControlsContainer = view.findViewById(C0029R.id.controls_container);
this.mControlBar = (ControlBar) view.findViewById(C0029R.id.control_bar);
if (this.mControlBar == null) {
throw new IllegalStateException("Couldn't find control_bar");
}
this.mControlBar.setOnChildFocusedListener(new OnChildFocusedListener(ControlBarPresenter.this) {
public void onChildFocusedListener(View view, View view2) {
if (ControlBarPresenter.this.mOnControlSelectedListener != null) {
for (int i = 0; i < ViewHolder.this.mViewHolders.size(); i++) {
if (((android.support.v17.leanback.widget.Presenter.ViewHolder) ViewHolder.this.mViewHolders.get(i)).view == view) {
ControlBarPresenter.this.mOnControlSelectedListener.onControlSelected((android.support.v17.leanback.widget.Presenter.ViewHolder) ViewHolder.this.mViewHolders.get(i), ViewHolder.this.getDisplayedAdapter().get(i), ViewHolder.this.mData);
return;
}
}
}
}
});
this.mDataObserver = new DataObserver(ControlBarPresenter.this) {
public void onChanged() {
if (ViewHolder.this.mAdapter == ViewHolder.this.getDisplayedAdapter()) {
ViewHolder.this.showControls(ViewHolder.this.mPresenter);
}
}
public void onItemRangeChanged(int i, int i2) {
if (ViewHolder.this.mAdapter == ViewHolder.this.getDisplayedAdapter()) {
for (int i3 = 0; i3 < i2; i3++) {
ViewHolder.this.bindControlToAction(i + i3, ViewHolder.this.mPresenter);
}
}
}
};
}
int getChildMarginFromCenter(Context context, int i) {
return ControlBarPresenter.this.getChildMarginDefault(context) + ControlBarPresenter.this.getControlIconWidth(context);
}
void showControls(Presenter presenter) {
int i = 0;
ObjectAdapter displayedAdapter = getDisplayedAdapter();
int size = displayedAdapter == null ? 0 : displayedAdapter.size();
View focusedChild = this.mControlBar.getFocusedChild();
if (focusedChild != null && size > 0 && this.mControlBar.indexOfChild(focusedChild) >= size) {
this.mControlBar.getChildAt(displayedAdapter.size() - 1).requestFocus();
}
for (int childCount = this.mControlBar.getChildCount() - 1; childCount >= size; childCount--) {
this.mControlBar.removeViewAt(childCount);
}
while (i < size && i < 7) {
bindControlToAction(i, displayedAdapter, presenter);
i++;
}
this.mControlBar.setChildMarginFromCenter(getChildMarginFromCenter(this.mControlBar.getContext(), size));
}
void bindControlToAction(int i, Presenter presenter) {
bindControlToAction(i, getDisplayedAdapter(), presenter);
}
private void bindControlToAction(final int i, ObjectAdapter objectAdapter, Presenter presenter) {
android.support.v17.leanback.widget.Presenter.ViewHolder viewHolder = (android.support.v17.leanback.widget.Presenter.ViewHolder) this.mViewHolders.get(i);
Object obj = objectAdapter.get(i);
if (viewHolder == null) {
viewHolder = presenter.onCreateViewHolder(this.mControlBar);
this.mViewHolders.put(i, viewHolder);
presenter.setOnClickListener(viewHolder, new OnClickListener() {
public void onClick(View view) {
Object obj = ViewHolder.this.getDisplayedAdapter().get(i);
if (ControlBarPresenter.this.mOnControlClickedListener != null) {
ControlBarPresenter.this.mOnControlClickedListener.onControlClicked(viewHolder, obj, ViewHolder.this.mData);
}
}
});
}
if (viewHolder.view.getParent() == null) {
this.mControlBar.addView(viewHolder.view);
}
presenter.onBindViewHolder(viewHolder, obj);
}
ObjectAdapter getDisplayedAdapter() {
return this.mAdapter;
}
}
public ControlBarPresenter(int i) {
this.mLayoutResourceId = i;
}
public int getLayoutResourceId() {
return this.mLayoutResourceId;
}
public void setOnControlClickedListener(OnControlClickedListener onControlClickedListener) {
this.mOnControlClickedListener = onControlClickedListener;
}
public OnControlClickedListener getOnItemViewClickedListener() {
return this.mOnControlClickedListener;
}
public void setOnControlSelectedListener(OnControlSelectedListener onControlSelectedListener) {
this.mOnControlSelectedListener = onControlSelectedListener;
}
public OnControlSelectedListener getOnItemControlListener() {
return this.mOnControlSelectedListener;
}
public void setBackgroundColor(ViewHolder viewHolder, int i) {
viewHolder.mControlsContainer.setBackgroundColor(i);
}
public android.support.v17.leanback.widget.Presenter.ViewHolder onCreateViewHolder(ViewGroup viewGroup) {
return new ViewHolder(LayoutInflater.from(viewGroup.getContext()).inflate(getLayoutResourceId(), viewGroup, false));
}
public void onBindViewHolder(android.support.v17.leanback.widget.Presenter.ViewHolder viewHolder, Object obj) {
ViewHolder viewHolder2 = (ViewHolder) viewHolder;
BoundData boundData = (BoundData) obj;
if (viewHolder2.mAdapter != boundData.adapter) {
viewHolder2.mAdapter = boundData.adapter;
if (viewHolder2.mAdapter != null) {
viewHolder2.mAdapter.registerObserver(viewHolder2.mDataObserver);
}
}
viewHolder2.mPresenter = boundData.presenter;
viewHolder2.mData = boundData;
viewHolder2.showControls(viewHolder2.mPresenter);
}
public void onUnbindViewHolder(android.support.v17.leanback.widget.Presenter.ViewHolder viewHolder) {
ViewHolder viewHolder2 = (ViewHolder) viewHolder;
if (viewHolder2.mAdapter != null) {
viewHolder2.mAdapter.unregisterObserver(viewHolder2.mDataObserver);
viewHolder2.mAdapter = null;
}
viewHolder2.mData = null;
}
int getChildMarginDefault(Context context) {
if (sChildMarginDefault == 0) {
sChildMarginDefault = context.getResources().getDimensionPixelSize(C0029R.dimen.lb_playback_controls_child_margin_default);
}
return sChildMarginDefault;
}
int getControlIconWidth(Context context) {
if (sControlIconWidth == 0) {
sControlIconWidth = context.getResources().getDimensionPixelSize(C0029R.dimen.lb_control_icon_width);
}
return sControlIconWidth;
}
}
package android.support.v17.leanback.widget;
import android.support.v17.leanback.C0029R;
import android.support.v17.leanback.widget.Presenter.ViewHolder;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
public class ControlButtonPresenterSelector extends PresenterSelector {
private final Presenter[] mPresenters = new Presenter[]{this.mPrimaryPresenter};
private final Presenter mPrimaryPresenter = new ControlButtonPresenter(C0029R.layout.lb_control_button_primary);
private final Presenter mSecondaryPresenter = new ControlButtonPresenter(C0029R.layout.lb_control_button_secondary);
class ActionViewHolder extends ViewHolder {
View mFocusableView;
ImageView mIcon;
TextView mLabel;
public ActionViewHolder(View view) {
super(view);
this.mIcon = (ImageView) view.findViewById(C0029R.id.icon);
this.mLabel = (TextView) view.findViewById(C0029R.id.label);
this.mFocusableView = view.findViewById(C0029R.id.button);
}
}
class ControlButtonPresenter extends Presenter {
private int mLayoutResourceId;
ControlButtonPresenter(int i) {
this.mLayoutResourceId = i;
}
public ViewHolder onCreateViewHolder(ViewGroup viewGroup) {
return new ActionViewHolder(LayoutInflater.from(viewGroup.getContext()).inflate(this.mLayoutResourceId, viewGroup, false));
}
public void onBindViewHolder(ViewHolder viewHolder, Object obj) {
Action action = (Action) obj;
ActionViewHolder actionViewHolder = (ActionViewHolder) viewHolder;
actionViewHolder.mIcon.setImageDrawable(action.getIcon());
if (actionViewHolder.mLabel != null) {
if (action.getIcon() == null) {
actionViewHolder.mLabel.setText(action.getLabel1());
} else {
actionViewHolder.mLabel.setText(null);
}
}
CharSequence label1 = TextUtils.isEmpty(action.getLabel2()) ? action.getLabel1() : action.getLabel2();
if (!TextUtils.equals(actionViewHolder.mFocusableView.getContentDescription(), label1)) {
actionViewHolder.mFocusableView.setContentDescription(label1);
actionViewHolder.mFocusableView.sendAccessibilityEvent(32768);
}
}
public void onUnbindViewHolder(ViewHolder viewHolder) {
ActionViewHolder actionViewHolder = (ActionViewHolder) viewHolder;
actionViewHolder.mIcon.setImageDrawable(null);
if (actionViewHolder.mLabel != null) {
actionViewHolder.mLabel.setText(null);
}
actionViewHolder.mFocusableView.setContentDescription(null);
}
public void setOnClickListener(ViewHolder viewHolder, OnClickListener onClickListener) {
((ActionViewHolder) viewHolder).mFocusableView.setOnClickListener(onClickListener);
}
}
public Presenter getPrimaryPresenter() {
return this.mPrimaryPresenter;
}
public Presenter getSecondaryPresenter() {
return this.mSecondaryPresenter;
}
public Presenter getPresenter(Object obj) {
return this.mPrimaryPresenter;
}
public Presenter[] getPresenters() {
return this.mPresenters;
}
}
package android.support.v17.leanback.widget;
import android.database.Cursor;
import android.support.v17.leanback.database.CursorMapper;
import android.util.LruCache;
public class CursorObjectAdapter extends ObjectAdapter {
private static final int CACHE_SIZE = 100;
private Cursor mCursor;
private final LruCache<Integer, Object> mItemCache = new LruCache(100);
private CursorMapper mMapper;
public CursorObjectAdapter(PresenterSelector presenterSelector) {
super(presenterSelector);
}
public CursorObjectAdapter(Presenter presenter) {
super(presenter);
}
public void changeCursor(Cursor cursor) {
if (cursor != this.mCursor) {
if (this.mCursor != null) {
this.mCursor.close();
}
this.mCursor = cursor;
this.mItemCache.trimToSize(0);
onCursorChanged();
}
}
public Cursor swapCursor(Cursor cursor) {
if (cursor == this.mCursor) {
return this.mCursor;
}
Cursor cursor2 = this.mCursor;
this.mCursor = cursor;
this.mItemCache.trimToSize(0);
onCursorChanged();
return cursor2;
}
protected void onCursorChanged() {
notifyChanged();
}
public final Cursor getCursor() {
return this.mCursor;
}
public final void setMapper(CursorMapper cursorMapper) {
Object obj = this.mMapper != cursorMapper ? 1 : null;
this.mMapper = cursorMapper;
if (obj != null) {
onMapperChanged();
}
}
protected void onMapperChanged() {
}
public final CursorMapper getMapper() {
return this.mMapper;
}
public int size() {
if (this.mCursor == null) {
return 0;
}
return this.mCursor.getCount();
}
public Object get(int i) {
if (this.mCursor == null) {
return null;
}
if (this.mCursor.moveToPosition(i)) {
Object obj = this.mItemCache.get(Integer.valueOf(i));
if (obj != null) {
return obj;
}
obj = this.mMapper.convert(this.mCursor);
this.mItemCache.put(Integer.valueOf(i), obj);
return obj;
}
throw new ArrayIndexOutOfBoundsException();
}
public void close() {
if (this.mCursor != null) {
this.mCursor.close();
this.mCursor = null;
}
}
public boolean isClosed() {
return this.mCursor == null || this.mCursor.isClosed();
}
protected final void invalidateCache(int i) {
this.mItemCache.remove(Integer.valueOf(i));
}
protected final void invalidateCache(int i, int i2) {
int i3 = i2 + i;
while (i < i3) {
invalidateCache(i);
i++;
}
}
}
package android.support.v17.leanback.widget;
import android.support.v17.leanback.C0029R;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.view.ViewGroup.MarginLayoutParams;
import android.widget.ImageView;
public class DetailsOverviewLogoPresenter extends Presenter {
public class ViewHolder extends android.support.v17.leanback.widget.Presenter.ViewHolder {
protected FullWidthDetailsOverviewRowPresenter mParentPresenter;
protected android.support.v17.leanback.widget.FullWidthDetailsOverviewRowPresenter.ViewHolder mParentViewHolder;
public ViewHolder(View view) {
super(view);
}
}
public android.support.v17.leanback.widget.Presenter.ViewHolder onCreateViewHolder(ViewGroup viewGroup) {
View inflate = LayoutInflater.from(viewGroup.getContext()).inflate(C0029R.layout.lb_fullwidth_details_overview_logo, viewGroup, false);
inflate.setLayoutParams(new MarginLayoutParams(0, 0));
return new ViewHolder(inflate);
}
public void setContext(ViewHolder viewHolder, android.support.v17.leanback.widget.FullWidthDetailsOverviewRowPresenter.ViewHolder viewHolder2, FullWidthDetailsOverviewRowPresenter fullWidthDetailsOverviewRowPresenter) {
viewHolder.mParentViewHolder = viewHolder2;
viewHolder.mParentPresenter = fullWidthDetailsOverviewRowPresenter;
}
public boolean isBoundToImage(ViewHolder viewHolder, DetailsOverviewRow detailsOverviewRow) {
return (detailsOverviewRow == null || detailsOverviewRow.getImageDrawable() == null) ? false : true;
}
public void onBindViewHolder(android.support.v17.leanback.widget.Presenter.ViewHolder viewHolder, Object obj) {
DetailsOverviewRow detailsOverviewRow = (DetailsOverviewRow) obj;
ImageView imageView = (ImageView) viewHolder.view;
imageView.setImageDrawable(detailsOverviewRow.getImageDrawable());
if (isBoundToImage((ViewHolder) viewHolder, detailsOverviewRow)) {
LayoutParams layoutParams = imageView.getLayoutParams();
layoutParams.width = detailsOverviewRow.getImageDrawable().getIntrinsicWidth();
layoutParams.height = detailsOverviewRow.getImageDrawable().getIntrinsicHeight();
imageView.setLayoutParams(layoutParams);
ViewHolder viewHolder2 = (ViewHolder) viewHolder;
viewHolder2.mParentPresenter.notifyOnBindLogo(viewHolder2.mParentViewHolder);
}
}
public void onUnbindViewHolder(android.support.v17.leanback.widget.Presenter.ViewHolder viewHolder) {
}
}
package android.support.v17.leanback.widget;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
public class DetailsOverviewRow extends Row {
private ObjectAdapter mActionsAdapter = new ArrayObjectAdapter(this.mDefaultActionPresenter);
private PresenterSelector mDefaultActionPresenter = new ActionPresenterSelector();
private Drawable mImageDrawable;
private boolean mImageScaleUpAllowed = true;
private Object mItem;
private ArrayList<WeakReference<Listener>> mListeners;
public class Listener {
public void onImageDrawableChanged(DetailsOverviewRow detailsOverviewRow) {
}
public void onItemChanged(DetailsOverviewRow detailsOverviewRow) {
}
public void onActionsAdapterChanged(DetailsOverviewRow detailsOverviewRow) {
}
}
public DetailsOverviewRow(Object obj) {
super(null);
this.mItem = obj;
verify();
}
final void addListener(Listener listener) {
if (this.mListeners == null) {
this.mListeners = new ArrayList();
} else {
int i = 0;
while (i < this.mListeners.size()) {
Listener listener2 = (Listener) ((WeakReference) this.mListeners.get(i)).get();
if (listener2 == null) {
this.mListeners.remove(i);
} else if (listener2 != listener) {
i++;
} else {
return;
}
}
}
this.mListeners.add(new WeakReference(listener));
}
final void removeListener(Listener listener) {
if (this.mListeners != null) {
int i = 0;
while (i < this.mListeners.size()) {
Listener listener2 = (Listener) ((WeakReference) this.mListeners.get(i)).get();
if (listener2 == null) {
this.mListeners.remove(i);
} else if (listener2 == listener) {
this.mListeners.remove(i);
return;
} else {
i++;
}
}
}
}
final void notifyItemChanged() {
if (this.mListeners != null) {
int i = 0;
while (i < this.mListeners.size()) {
Listener listener = (Listener) ((WeakReference) this.mListeners.get(i)).get();
if (listener == null) {
this.mListeners.remove(i);
} else {
listener.onItemChanged(this);
i++;
}
}
}
}
final void notifyImageDrawableChanged() {
if (this.mListeners != null) {
int i = 0;
while (i < this.mListeners.size()) {
Listener listener = (Listener) ((WeakReference) this.mListeners.get(i)).get();
if (listener == null) {
this.mListeners.remove(i);
} else {
listener.onImageDrawableChanged(this);
i++;
}
}
}
}
final void notifyActionsAdapterChanged() {
if (this.mListeners != null) {
int i = 0;
while (i < this.mListeners.size()) {
Listener listener = (Listener) ((WeakReference) this.mListeners.get(i)).get();
if (listener == null) {
this.mListeners.remove(i);
} else {
listener.onActionsAdapterChanged(this);
i++;
}
}
}
}
public final Object getItem() {
return this.mItem;
}
public final void setItem(Object obj) {
if (obj != this.mItem) {
this.mItem = obj;
notifyItemChanged();
}
}
public final void setImageDrawable(Drawable drawable) {
if (this.mImageDrawable != drawable) {
this.mImageDrawable = drawable;
notifyImageDrawableChanged();
}
}
public final void setImageBitmap(Context context, Bitmap bitmap) {
this.mImageDrawable = new BitmapDrawable(context.getResources(), bitmap);
notifyImageDrawableChanged();
}
public final Drawable getImageDrawable() {
return this.mImageDrawable;
}
public void setImageScaleUpAllowed(boolean z) {
if (z != this.mImageScaleUpAllowed) {
this.mImageScaleUpAllowed = z;
notifyImageDrawableChanged();
}
}
public boolean isImageScaleUpAllowed() {
return this.mImageScaleUpAllowed;
}
private ArrayObjectAdapter getArrayObjectAdapter() {
return (ArrayObjectAdapter) this.mActionsAdapter;
}
public final void addAction(Action action) {
getArrayObjectAdapter().add(action);
}
public final void addAction(int i, Action action) {
getArrayObjectAdapter().add(i, action);
}
public final boolean removeAction(Action action) {
return getArrayObjectAdapter().remove(action);
}
public final List<Action> getActions() {
return getArrayObjectAdapter().unmodifiableList();
}
public final ObjectAdapter getActionsAdapter() {
return this.mActionsAdapter;
}
public final void setActionsAdapter(ObjectAdapter objectAdapter) {
if (objectAdapter != this.mActionsAdapter) {
this.mActionsAdapter = objectAdapter;
if (this.mActionsAdapter.getPresenterSelector() == null) {
this.mActionsAdapter.setPresenterSelector(this.mDefaultActionPresenter);
}
notifyActionsAdapterChanged();
}
}
public Action getActionForKeyCode(int i) {
ObjectAdapter actionsAdapter = getActionsAdapter();
if (actionsAdapter != null) {
for (int i2 = 0; i2 < actionsAdapter.size(); i2++) {
Action action = (Action) actionsAdapter.get(i2);
if (action.respondsToKeyCode(i)) {
return action;
}
}
}
return null;
}
private void verify() {
if (this.mItem == null) {
throw new IllegalArgumentException("Object cannot be null");
}
}
}
package android.support.v17.leanback.widget;
import android.app.Activity;
import android.content.Context;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.support.v17.leanback.C0029R;
import android.support.v17.leanback.widget.BaseGridView.OnUnhandledKeyListener;
import android.support.v17.leanback.widget.DetailsOverviewRow.Listener;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.OnScrollListener;
import android.util.TypedValue;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLayoutChangeListener;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.view.ViewGroup.MarginLayoutParams;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
@Deprecated
public class DetailsOverviewRowPresenter extends RowPresenter {
private static final boolean DEBUG = false;
private static final long DEFAULT_TIMEOUT = 5000;
private static final int MORE_ACTIONS_FADE_MS = 100;
private static final String TAG = "DetailsOverviewRowPresenter";
private OnActionClickedListener mActionClickedListener;
private int mBackgroundColor = 0;
private boolean mBackgroundColorSet;
private final Presenter mDetailsPresenter;
private boolean mIsStyleLarge = true;
private DetailsOverviewSharedElementHelper mSharedElementHelper;
class ActionsItemBridgeAdapter extends ItemBridgeAdapter {
ViewHolder mViewHolder;
ActionsItemBridgeAdapter(ViewHolder viewHolder) {
this.mViewHolder = viewHolder;
}
public void onBind(final android.support.v17.leanback.widget.ItemBridgeAdapter.ViewHolder viewHolder) {
if (this.mViewHolder.getOnItemViewClickedListener() != null || DetailsOverviewRowPresenter.this.mActionClickedListener != null) {
viewHolder.getPresenter().setOnClickListener(viewHolder.getViewHolder(), new OnClickListener() {
public void onClick(View view) {
if (ActionsItemBridgeAdapter.this.mViewHolder.getOnItemViewClickedListener() != null) {
ActionsItemBridgeAdapter.this.mViewHolder.getOnItemViewClickedListener().onItemClicked(viewHolder.getViewHolder(), viewHolder.getItem(), ActionsItemBridgeAdapter.this.mViewHolder, ActionsItemBridgeAdapter.this.mViewHolder.getRow());
}
if (DetailsOverviewRowPresenter.this.mActionClickedListener != null) {
DetailsOverviewRowPresenter.this.mActionClickedListener.onActionClicked((Action) viewHolder.getItem());
}
}
});
}
}
public void onUnbind(android.support.v17.leanback.widget.ItemBridgeAdapter.ViewHolder viewHolder) {
if (this.mViewHolder.getOnItemViewClickedListener() != null || DetailsOverviewRowPresenter.this.mActionClickedListener != null) {
viewHolder.getPresenter().setOnClickListener(viewHolder.getViewHolder(), null);
}
}
public void onAttachedToWindow(android.support.v17.leanback.widget.ItemBridgeAdapter.ViewHolder viewHolder) {
viewHolder.itemView.removeOnLayoutChangeListener(this.mViewHolder.mLayoutChangeListener);
viewHolder.itemView.addOnLayoutChangeListener(this.mViewHolder.mLayoutChangeListener);
}
public void onDetachedFromWindow(android.support.v17.leanback.widget.ItemBridgeAdapter.ViewHolder viewHolder) {
viewHolder.itemView.removeOnLayoutChangeListener(this.mViewHolder.mLayoutChangeListener);
this.mViewHolder.checkFirstAndLastPosition(false);
}
}
public final class ViewHolder extends android.support.v17.leanback.widget.RowPresenter.ViewHolder {
ItemBridgeAdapter mActionBridgeAdapter;
final HorizontalGridView mActionsRow;
final OnChildSelectedListener mChildSelectedListener = new C01404();
final FrameLayout mDetailsDescriptionFrame;
public final android.support.v17.leanback.widget.Presenter.ViewHolder mDetailsDescriptionViewHolder;
final Handler mHandler = new Handler();
final ImageView mImageView;
final OnLayoutChangeListener mLayoutChangeListener = new C01393();
final Listener mListener = new C01382();
int mNumItems;
final FrameLayout mOverviewFrame;
final ViewGroup mOverviewView;
final ViewGroup mRightPanel;
final OnScrollListener mScrollListener = new C01415();
boolean mShowMoreLeft;
boolean mShowMoreRight;
final Runnable mUpdateDrawableCallback = new C01371();
class C01371 implements Runnable {
C01371() {
}
public void run() {
DetailsOverviewRowPresenter.this.bindImageDrawable(ViewHolder.this);
}
}
class C01382 extends Listener {
C01382() {
}
public void onImageDrawableChanged(DetailsOverviewRow detailsOverviewRow) {
ViewHolder.this.mHandler.removeCallbacks(ViewHolder.this.mUpdateDrawableCallback);
ViewHolder.this.mHandler.post(ViewHolder.this.mUpdateDrawableCallback);
}
public void onItemChanged(DetailsOverviewRow detailsOverviewRow) {
if (ViewHolder.this.mDetailsDescriptionViewHolder != null) {
DetailsOverviewRowPresenter.this.mDetailsPresenter.onUnbindViewHolder(ViewHolder.this.mDetailsDescriptionViewHolder);
}
DetailsOverviewRowPresenter.this.mDetailsPresenter.onBindViewHolder(ViewHolder.this.mDetailsDescriptionViewHolder, detailsOverviewRow.getItem());
}
public void onActionsAdapterChanged(DetailsOverviewRow detailsOverviewRow) {
ViewHolder.this.bindActions(detailsOverviewRow.getActionsAdapter());
}
}
class C01393 implements OnLayoutChangeListener {
C01393() {
}
public void onLayoutChange(View view, int i, int i2, int i3, int i4, int i5, int i6, int i7, int i8) {
ViewHolder.this.checkFirstAndLastPosition(false);
}
}
class C01404 implements OnChildSelectedListener {
C01404() {
}
public void onChildSelected(ViewGroup viewGroup, View view, int i, long j) {
ViewHolder.this.dispatchItemSelection(view);
}
}
class C01415 extends OnScrollListener {
C01415() {
}
public void onScrollStateChanged(RecyclerView recyclerView, int i) {
}
public void onScrolled(RecyclerView recyclerView, int i, int i2) {
ViewHolder.this.checkFirstAndLastPosition(true);
}
}
final void bindActions(ObjectAdapter objectAdapter) {
this.mActionBridgeAdapter.setAdapter(objectAdapter);
this.mActionsRow.setAdapter(this.mActionBridgeAdapter);
this.mNumItems = this.mActionBridgeAdapter.getItemCount();
this.mShowMoreRight = false;
this.mShowMoreLeft = true;
showMoreLeft(false);
}
final void dispatchItemSelection(View view) {
if (isSelected()) {
android.support.v17.leanback.widget.ItemBridgeAdapter.ViewHolder viewHolder = (android.support.v17.leanback.widget.ItemBridgeAdapter.ViewHolder) (view != null ? this.mActionsRow.getChildViewHolder(view) : this.mActionsRow.findViewHolderForPosition(this.mActionsRow.getSelectedPosition()));
if (viewHolder == null) {
if (getOnItemViewSelectedListener() != null) {
getOnItemViewSelectedListener().onItemSelected(null, null, this, getRow());
}
} else if (getOnItemViewSelectedListener() != null) {
getOnItemViewSelectedListener().onItemSelected(viewHolder.getViewHolder(), viewHolder.getItem(), this, getRow());
}
}
}
private int getViewCenter(View view) {
return (view.getRight() - view.getLeft()) / 2;
}
private void checkFirstAndLastPosition(boolean z) {
boolean z2 = false;
android.support.v7.widget.RecyclerView.ViewHolder findViewHolderForPosition = this.mActionsRow.findViewHolderForPosition(this.mNumItems - 1);
boolean z3 = findViewHolderForPosition == null || findViewHolderForPosition.itemView.getRight() > this.mActionsRow.getWidth();
android.support.v7.widget.RecyclerView.ViewHolder findViewHolderForPosition2 = this.mActionsRow.findViewHolderForPosition(0);
if (findViewHolderForPosition2 == null || findViewHolderForPosition2.itemView.getLeft() < 0) {
z2 = true;
}
showMoreRight(z3);
showMoreLeft(z2);
}
private void showMoreLeft(boolean z) {
if (z != this.mShowMoreLeft) {
this.mActionsRow.setFadingLeftEdge(z);
this.mShowMoreLeft = z;
}
}
private void showMoreRight(boolean z) {
if (z != this.mShowMoreRight) {
this.mActionsRow.setFadingRightEdge(z);
this.mShowMoreRight = z;
}
}
public ViewHolder(View view, Presenter presenter) {
super(view);
this.mOverviewFrame = (FrameLayout) view.findViewById(C0029R.id.details_frame);
this.mOverviewView = (ViewGroup) view.findViewById(C0029R.id.details_overview);
this.mImageView = (ImageView) view.findViewById(C0029R.id.details_overview_image);
this.mRightPanel = (ViewGroup) view.findViewById(C0029R.id.details_overview_right_panel);
this.mDetailsDescriptionFrame = (FrameLayout) this.mRightPanel.findViewById(C0029R.id.details_overview_description);
this.mActionsRow = (HorizontalGridView) this.mRightPanel.findViewById(C0029R.id.details_overview_actions);
this.mActionsRow.setHasOverlappingRendering(false);
this.mActionsRow.setOnScrollListener(this.mScrollListener);
this.mActionsRow.setAdapter(this.mActionBridgeAdapter);
this.mActionsRow.setOnChildSelectedListener(this.mChildSelectedListener);
int dimensionPixelSize = view.getResources().getDimensionPixelSize(C0029R.dimen.lb_details_overview_actions_fade_size);
this.mActionsRow.setFadingRightEdgeLength(dimensionPixelSize);
this.mActionsRow.setFadingLeftEdgeLength(dimensionPixelSize);
this.mDetailsDescriptionViewHolder = presenter.onCreateViewHolder(this.mDetailsDescriptionFrame);
this.mDetailsDescriptionFrame.addView(this.mDetailsDescriptionViewHolder.view);
}
}
public DetailsOverviewRowPresenter(Presenter presenter) {
setHeaderPresenter(null);
setSelectEffectEnabled(false);
this.mDetailsPresenter = presenter;
}
public void setOnActionClickedListener(OnActionClickedListener onActionClickedListener) {
this.mActionClickedListener = onActionClickedListener;
}
public OnActionClickedListener getOnActionClickedListener() {
return this.mActionClickedListener;
}
public void setBackgroundColor(int i) {
this.mBackgroundColor = i;
this.mBackgroundColorSet = true;
}
public int getBackgroundColor() {
return this.mBackgroundColor;
}
public void setStyleLarge(boolean z) {
this.mIsStyleLarge = z;
}
public boolean isStyleLarge() {
return this.mIsStyleLarge;
}
public final void setSharedElementEnterTransition(Activity activity, String str, long j) {
if (this.mSharedElementHelper == null) {
this.mSharedElementHelper = new DetailsOverviewSharedElementHelper();
}
this.mSharedElementHelper.setSharedElementEnterTransition(activity, str, j);
}
public final void setSharedElementEnterTransition(Activity activity, String str) {
setSharedElementEnterTransition(activity, str, DEFAULT_TIMEOUT);
}
private int getDefaultBackgroundColor(Context context) {
TypedValue typedValue = new TypedValue();
if (context.getTheme().resolveAttribute(C0029R.attr.defaultBrandColor, typedValue, true)) {
return context.getResources().getColor(typedValue.resourceId);
}
return context.getResources().getColor(C0029R.color.lb_default_brand_color);
}
protected void onRowViewSelected(android.support.v17.leanback.widget.RowPresenter.ViewHolder viewHolder, boolean z) {
super.onRowViewSelected(viewHolder, z);
if (z) {
((ViewHolder) viewHolder).dispatchItemSelection(null);
}
}
protected android.support.v17.leanback.widget.RowPresenter.ViewHolder createRowViewHolder(ViewGroup viewGroup) {
android.support.v17.leanback.widget.RowPresenter.ViewHolder viewHolder = new ViewHolder(LayoutInflater.from(viewGroup.getContext()).inflate(C0029R.layout.lb_details_overview, viewGroup, false), this.mDetailsPresenter);
initDetailsOverview(viewHolder);
return viewHolder;
}
private int getCardHeight(Context context) {
return context.getResources().getDimensionPixelSize(this.mIsStyleLarge ? C0029R.dimen.lb_details_overview_height_large : C0029R.dimen.lb_details_overview_height_small);
}
private void initDetailsOverview(final ViewHolder viewHolder) {
viewHolder.mActionBridgeAdapter = new ActionsItemBridgeAdapter(viewHolder);
View view = viewHolder.mOverviewFrame;
LayoutParams layoutParams = view.getLayoutParams();
layoutParams.height = getCardHeight(view.getContext());
view.setLayoutParams(layoutParams);
if (!getSelectEffectEnabled()) {
viewHolder.mOverviewFrame.setForeground(null);
}
viewHolder.mActionsRow.setOnUnhandledKeyListener(new OnUnhandledKeyListener() {
public boolean onUnhandledKey(KeyEvent keyEvent) {
if (viewHolder.getOnKeyListener() == null || !viewHolder.getOnKeyListener().onKey(viewHolder.view, keyEvent.getKeyCode(), keyEvent)) {
return false;
}
return true;
}
});
}
private static int getNonNegativeWidth(Drawable drawable) {
int intrinsicWidth = drawable == null ? 0 : drawable.getIntrinsicWidth();
if (intrinsicWidth > 0) {
return intrinsicWidth;
}
return 0;
}
private static int getNonNegativeHeight(Drawable drawable) {
int intrinsicHeight = drawable == null ? 0 : drawable.getIntrinsicHeight();
if (intrinsicHeight > 0) {
return intrinsicHeight;
}
return 0;
}
private void bindImageDrawable(ViewHolder viewHolder) {
DetailsOverviewRow detailsOverviewRow = (DetailsOverviewRow) viewHolder.getRow();
MarginLayoutParams marginLayoutParams = (MarginLayoutParams) viewHolder.mImageView.getLayoutParams();
int cardHeight = getCardHeight(viewHolder.mImageView.getContext());
int dimensionPixelSize = viewHolder.mImageView.getResources().getDimensionPixelSize(C0029R.dimen.lb_details_overview_image_margin_vertical);
int dimensionPixelSize2 = viewHolder.mImageView.getResources().getDimensionPixelSize(C0029R.dimen.lb_details_overview_image_margin_horizontal);
int nonNegativeWidth = getNonNegativeWidth(detailsOverviewRow.getImageDrawable());
int nonNegativeHeight = getNonNegativeHeight(detailsOverviewRow.getImageDrawable());
boolean isImageScaleUpAllowed = detailsOverviewRow.isImageScaleUpAllowed();
Object obj = null;
if (detailsOverviewRow.getImageDrawable() != null) {
Object obj2 = null;
if (nonNegativeWidth > nonNegativeHeight) {
obj2 = 1;
if (this.mIsStyleLarge) {
obj = 1;
}
}
if ((obj2 != null && nonNegativeWidth > cardHeight) || (obj2 == null && nonNegativeHeight > cardHeight)) {
isImageScaleUpAllowed = true;
}
if (!isImageScaleUpAllowed) {
obj = 1;
}
if (!(obj == null || isImageScaleUpAllowed)) {
if (obj2 != null && nonNegativeWidth > cardHeight - dimensionPixelSize2) {
isImageScaleUpAllowed = true;
} else if (obj2 == null && nonNegativeHeight > cardHeight - (dimensionPixelSize * 2)) {
isImageScaleUpAllowed = true;
}
}
}
int defaultBackgroundColor = this.mBackgroundColorSet ? this.mBackgroundColor : getDefaultBackgroundColor(viewHolder.mOverviewView.getContext());
if (obj != null) {
marginLayoutParams.setMarginStart(dimensionPixelSize2);
marginLayoutParams.bottomMargin = dimensionPixelSize;
marginLayoutParams.topMargin = dimensionPixelSize;
viewHolder.mOverviewFrame.setBackgroundColor(defaultBackgroundColor);
viewHolder.mRightPanel.setBackground(null);
viewHolder.mImageView.setBackground(null);
} else {
marginLayoutParams.bottomMargin = 0;
marginLayoutParams.topMargin = 0;
marginLayoutParams.leftMargin = 0;
viewHolder.mRightPanel.setBackgroundColor(defaultBackgroundColor);
viewHolder.mImageView.setBackgroundColor(defaultBackgroundColor);
viewHolder.mOverviewFrame.setBackground(null);
}
RoundedRectHelper.getInstance().setClipToRoundedOutline(viewHolder.mOverviewFrame, true);
if (isImageScaleUpAllowed) {
viewHolder.mImageView.setScaleType(ScaleType.FIT_START);
viewHolder.mImageView.setAdjustViewBounds(true);
viewHolder.mImageView.setMaxWidth(cardHeight);
marginLayoutParams.height = -1;
marginLayoutParams.width = -2;
} else {
viewHolder.mImageView.setScaleType(ScaleType.CENTER);
viewHolder.mImageView.setAdjustViewBounds(false);
marginLayoutParams.height = -2;
marginLayoutParams.width = Math.min(cardHeight, nonNegativeWidth);
}
viewHolder.mImageView.setLayoutParams(marginLayoutParams);
viewHolder.mImageView.setImageDrawable(detailsOverviewRow.getImageDrawable());
if (detailsOverviewRow.getImageDrawable() != null && this.mSharedElementHelper != null) {
this.mSharedElementHelper.onBindToDrawable(viewHolder);
}
}
protected void onBindRowViewHolder(android.support.v17.leanback.widget.RowPresenter.ViewHolder viewHolder, Object obj) {
super.onBindRowViewHolder(viewHolder, obj);
DetailsOverviewRow detailsOverviewRow = (DetailsOverviewRow) obj;
ViewHolder viewHolder2 = (ViewHolder) viewHolder;
bindImageDrawable(viewHolder2);
this.mDetailsPresenter.onBindViewHolder(viewHolder2.mDetailsDescriptionViewHolder, detailsOverviewRow.getItem());
viewHolder2.bindActions(detailsOverviewRow.getActionsAdapter());
detailsOverviewRow.addListener(viewHolder2.mListener);
}
protected void onUnbindRowViewHolder(android.support.v17.leanback.widget.RowPresenter.ViewHolder viewHolder) {
ViewHolder viewHolder2 = (ViewHolder) viewHolder;
((DetailsOverviewRow) viewHolder2.getRow()).removeListener(viewHolder2.mListener);
if (viewHolder2.mDetailsDescriptionViewHolder != null) {
this.mDetailsPresenter.onUnbindViewHolder(viewHolder2.mDetailsDescriptionViewHolder);
}
super.onUnbindRowViewHolder(viewHolder);
}
public final boolean isUsingDefaultSelectEffect() {
return false;
}
protected void onSelectLevelChanged(android.support.v17.leanback.widget.RowPresenter.ViewHolder viewHolder) {
super.onSelectLevelChanged(viewHolder);
if (getSelectEffectEnabled()) {
ViewHolder viewHolder2 = (ViewHolder) viewHolder;
((ColorDrawable) viewHolder2.mOverviewFrame.getForeground().mutate()).setColor(viewHolder2.mColorDimmer.getPaint().getColor());
}
}
protected void onRowViewAttachedToWindow(android.support.v17.leanback.widget.RowPresenter.ViewHolder viewHolder) {
super.onRowViewAttachedToWindow(viewHolder);
if (this.mDetailsPresenter != null) {
this.mDetailsPresenter.onViewAttachedToWindow(((ViewHolder) viewHolder).mDetailsDescriptionViewHolder);
}
}
protected void onRowViewDetachedFromWindow(android.support.v17.leanback.widget.RowPresenter.ViewHolder viewHolder) {
super.onRowViewDetachedFromWindow(viewHolder);
if (this.mDetailsPresenter != null) {
this.mDetailsPresenter.onViewDetachedFromWindow(((ViewHolder) viewHolder).mDetailsDescriptionViewHolder);
}
}
}
package android.support.v17.leanback.widget;
import android.app.Activity;
import android.graphics.Matrix;
import android.os.Handler;
import android.support.v17.leanback.transition.TransitionHelper;
import android.support.v17.leanback.transition.TransitionListener;
import android.support.v17.leanback.widget.DetailsOverviewRowPresenter.ViewHolder;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.SharedElementCallback;
import android.support.v4.view.ViewCompat;
import android.text.TextUtils;
import android.view.View;
import android.view.View.MeasureSpec;
import android.view.View.OnLayoutChangeListener;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
import java.util.List;
final class DetailsOverviewSharedElementHelper extends SharedElementCallback {
private static final boolean DEBUG = false;
private static final String TAG = "DetailsOverviewSharedElementHelper";
private Activity mActivityToRunTransition;
private int mRightPanelHeight;
private int mRightPanelWidth;
private Matrix mSavedMatrix;
private ScaleType mSavedScaleType;
private String mSharedElementName;
private boolean mStartedPostpone;
private ViewHolder mViewHolder;
class C01421 implements Runnable {
C01421() {
}
public void run() {
if (!DetailsOverviewSharedElementHelper.this.mStartedPostpone) {
DetailsOverviewSharedElementHelper.this.startPostponedEnterTransition();
}
}
}
class C01432 implements OnLayoutChangeListener {
C01432() {
}
public void onLayoutChange(View view, int i, int i2, int i3, int i4, int i5, int i6, int i7, int i8) {
DetailsOverviewSharedElementHelper.this.mViewHolder.mRightPanel.removeOnLayoutChangeListener(this);
DetailsOverviewSharedElementHelper.this.mRightPanelWidth = DetailsOverviewSharedElementHelper.this.mViewHolder.mRightPanel.getWidth();
DetailsOverviewSharedElementHelper.this.mRightPanelHeight = DetailsOverviewSharedElementHelper.this.mViewHolder.mRightPanel.getHeight();
}
}
class C01453 implements Runnable {
C01453() {
}
public void run() {
ViewCompat.setTransitionName(DetailsOverviewSharedElementHelper.this.mViewHolder.mOverviewFrame, DetailsOverviewSharedElementHelper.this.mSharedElementName);
final TransitionHelper instance = TransitionHelper.getInstance();
Object sharedElementEnterTransition = instance.getSharedElementEnterTransition(DetailsOverviewSharedElementHelper.this.mActivityToRunTransition.getWindow());
if (sharedElementEnterTransition != null) {
instance.setTransitionListener(sharedElementEnterTransition, new TransitionListener() {
public void onTransitionEnd(Object obj) {
if (DetailsOverviewSharedElementHelper.this.mViewHolder.mActionsRow.isFocused()) {
DetailsOverviewSharedElementHelper.this.mViewHolder.mActionsRow.requestFocus();
}
instance.setTransitionListener(obj, null);
}
});
}
DetailsOverviewSharedElementHelper.this.startPostponedEnterTransition();
}
}
DetailsOverviewSharedElementHelper() {
}
private boolean hasImageViewScaleChange(View view) {
return view instanceof ImageView;
}
private void saveImageViewScale() {
if (this.mSavedScaleType == null) {
ImageView imageView = this.mViewHolder.mImageView;
this.mSavedScaleType = imageView.getScaleType();
this.mSavedMatrix = this.mSavedScaleType == ScaleType.MATRIX ? imageView.getMatrix() : null;
}
}
private static void updateImageViewAfterScaleTypeChange(ImageView imageView) {
imageView.measure(MeasureSpec.makeMeasureSpec(imageView.getMeasuredWidth(), 1073741824), MeasureSpec.makeMeasureSpec(imageView.getMeasuredHeight(), 1073741824));
imageView.layout(imageView.getLeft(), imageView.getTop(), imageView.getRight(), imageView.getBottom());
}
private void changeImageViewScale(View view) {
ImageView imageView = (ImageView) view;
ImageView imageView2 = this.mViewHolder.mImageView;
imageView2.setScaleType(imageView.getScaleType());
if (imageView.getScaleType() == ScaleType.MATRIX) {
imageView2.setImageMatrix(imageView.getImageMatrix());
}
updateImageViewAfterScaleTypeChange(imageView2);
}
private void restoreImageViewScale() {
if (this.mSavedScaleType != null) {
ImageView imageView = this.mViewHolder.mImageView;
imageView.setScaleType(this.mSavedScaleType);
if (this.mSavedScaleType == ScaleType.MATRIX) {
imageView.setImageMatrix(this.mSavedMatrix);
}
this.mSavedScaleType = null;
updateImageViewAfterScaleTypeChange(imageView);
}
}
public final void onSharedElementStart(List<String> list, List<View> list2, List<View> list3) {
if (list2.size() > 0) {
View view = (View) list2.get(0);
if (this.mViewHolder != null && this.mViewHolder.mOverviewFrame == view) {
View view2 = (View) list3.get(0);
if (hasImageViewScaleChange(view2)) {
saveImageViewScale();
changeImageViewScale(view2);
}
view2 = this.mViewHolder.mImageView;
int width = view.getWidth();
int height = view.getHeight();
view2.measure(MeasureSpec.makeMeasureSpec(width, 1073741824), MeasureSpec.makeMeasureSpec(height, 1073741824));
view2.layout(0, 0, width, height);
view = this.mViewHolder.mRightPanel;
if (this.mRightPanelWidth == 0 || this.mRightPanelHeight == 0) {
view.offsetLeftAndRight(width - view.getLeft());
} else {
view.measure(MeasureSpec.makeMeasureSpec(this.mRightPanelWidth, 1073741824), MeasureSpec.makeMeasureSpec(this.mRightPanelHeight, 1073741824));
view.layout(width, view.getTop(), this.mRightPanelWidth + width, view.getTop() + this.mRightPanelHeight);
}
this.mViewHolder.mActionsRow.setVisibility(4);
this.mViewHolder.mDetailsDescriptionFrame.setVisibility(4);
}
}
}
public final void onSharedElementEnd(List<String> list, List<View> list2, List<View> list3) {
if (list2.size() > 0) {
View view = (View) list2.get(0);
if (this.mViewHolder != null && this.mViewHolder.mOverviewFrame == view) {
restoreImageViewScale();
this.mViewHolder.mActionsRow.setDescendantFocusability(131072);
this.mViewHolder.mActionsRow.setVisibility(0);
this.mViewHolder.mActionsRow.setDescendantFocusability(262144);
this.mViewHolder.mDetailsDescriptionFrame.setVisibility(0);
}
}
}
final void setSharedElementEnterTransition(Activity activity, String str, long j) {
if ((activity == null && !TextUtils.isEmpty(str)) || (activity != null && TextUtils.isEmpty(str))) {
throw new IllegalArgumentException();
} else if (activity != this.mActivityToRunTransition || !TextUtils.equals(str, this.mSharedElementName)) {
if (this.mActivityToRunTransition != null) {
ActivityCompat.setEnterSharedElementCallback(this.mActivityToRunTransition, null);
}
this.mActivityToRunTransition = activity;
this.mSharedElementName = str;
ActivityCompat.setEnterSharedElementCallback(this.mActivityToRunTransition, this);
ActivityCompat.postponeEnterTransition(this.mActivityToRunTransition);
if (j > 0) {
new Handler().postDelayed(new C01421(), j);
}
}
}
final void onBindToDrawable(ViewHolder viewHolder) {
if (this.mViewHolder != null) {
ViewCompat.setTransitionName(this.mViewHolder.mOverviewFrame, null);
}
this.mViewHolder = viewHolder;
this.mViewHolder.mRightPanel.addOnLayoutChangeListener(new C01432());
this.mViewHolder.mRightPanel.postOnAnimation(new C01453());
}
private void startPostponedEnterTransition() {
if (!this.mStartedPostpone) {
ActivityCompat.startPostponedEnterTransition(this.mActivityToRunTransition);
this.mStartedPostpone = true;
}
}
}
package android.support.v17.leanback.widget;
public interface FacetProvider {
Object getFacet(Class<?> cls);
}
package android.support.v17.leanback.widget;
public interface FacetProviderAdapter {
FacetProvider getFacetProvider(int i);
}
package android.support.v17.leanback.widget;
public interface FocusHighlight {
public static final int ZOOM_FACTOR_LARGE = 3;
public static final int ZOOM_FACTOR_MEDIUM = 2;
public static final int ZOOM_FACTOR_NONE = 0;
public static final int ZOOM_FACTOR_SMALL = 1;
public static final int ZOOM_FACTOR_XSMALL = 4;
}
package android.support.v17.leanback.widget;
import android.view.View;
interface FocusHighlightHandler {
void onInitializeView(View view);
void onItemFocused(View view, boolean z);
}
package android.support.v17.leanback.widget;
import android.animation.TimeAnimator;
import android.animation.TimeAnimator.TimeListener;
import android.content.res.Resources;
import android.support.v17.leanback.C0029R;
import android.support.v17.leanback.graphics.ColorOverlayDimmer;
import android.support.v17.leanback.widget.ItemBridgeAdapter.ViewHolder;
import android.view.View;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.view.animation.Interpolator;
public class FocusHighlightHelper {
class BrowseItemFocusHighlight implements FocusHighlightHandler {
private static final int DURATION_MS = 150;
private int mScaleIndex;
private final boolean mUseDimmer;
BrowseItemFocusHighlight(int i, boolean z) {
if (FocusHighlightHelper.isValidZoomIndex(i)) {
this.mScaleIndex = i;
this.mUseDimmer = z;
return;
}
throw new IllegalArgumentException("Unhandled zoom index");
}
private float getScale(Resources resources) {
return this.mScaleIndex == 0 ? 1.0f : resources.getFraction(FocusHighlightHelper.getResId(this.mScaleIndex), 1, 1);
}
public void onItemFocused(View view, boolean z) {
view.setSelected(z);
getOrCreateAnimator(view).animateFocus(z, false);
}
public void onInitializeView(View view) {
getOrCreateAnimator(view).animateFocus(false, true);
}
private FocusAnimator getOrCreateAnimator(View view) {
FocusAnimator focusAnimator = (FocusAnimator) view.getTag(C0029R.id.lb_focus_animator);
if (focusAnimator != null) {
return focusAnimator;
}
focusAnimator = new FocusAnimator(view, getScale(view.getResources()), this.mUseDimmer, 150);
view.setTag(C0029R.id.lb_focus_animator, focusAnimator);
return focusAnimator;
}
}
class FocusAnimator implements TimeListener {
private final TimeAnimator mAnimator = new TimeAnimator();
private final ColorOverlayDimmer mDimmer;
private final int mDuration;
private float mFocusLevel = 0.0f;
private float mFocusLevelDelta;
private float mFocusLevelStart;
private final Interpolator mInterpolator = new AccelerateDecelerateInterpolator();
private final float mScaleDiff;
private final View mView;
private final ShadowOverlayContainer mWrapper;
void animateFocus(boolean z, boolean z2) {
endAnimation();
float f = z ? 1.0f : 0.0f;
if (z2) {
setFocusLevel(f);
} else if (this.mFocusLevel != f) {
this.mFocusLevelStart = this.mFocusLevel;
this.mFocusLevelDelta = f - this.mFocusLevelStart;
this.mAnimator.start();
}
}
FocusAnimator(View view, float f, boolean z, int i) {
this.mView = view;
this.mDuration = i;
this.mScaleDiff = f - 1.0f;
if (view instanceof ShadowOverlayContainer) {
this.mWrapper = (ShadowOverlayContainer) view;
} else {
this.mWrapper = null;
}
this.mAnimator.setTimeListener(this);
if (this.mWrapper == null || !z) {
this.mDimmer = null;
} else {
this.mDimmer = ColorOverlayDimmer.createDefault(view.getContext());
}
}
void setFocusLevel(float f) {
this.mFocusLevel = f;
float f2 = 1.0f + (this.mScaleDiff * f);
this.mView.setScaleX(f2);
this.mView.setScaleY(f2);
if (this.mWrapper != null) {
this.mWrapper.setShadowFocusLevel(f);
if (this.mDimmer != null) {
this.mDimmer.setActiveLevel(f);
this.mWrapper.setOverlayColor(this.mDimmer.getPaint().getColor());
}
}
}
float getFocusLevel() {
return this.mFocusLevel;
}
void endAnimation() {
this.mAnimator.end();
}
public void onTimeUpdate(TimeAnimator timeAnimator, long j, long j2) {
float f;
if (j >= ((long) this.mDuration)) {
f = 1.0f;
this.mAnimator.end();
} else {
f = (float) (((double) j) / ((double) this.mDuration));
}
if (this.mInterpolator != null) {
f = this.mInterpolator.getInterpolation(f);
}
setFocusLevel((f * this.mFocusLevelDelta) + this.mFocusLevelStart);
}
}
class HeaderItemFocusHighlight implements FocusHighlightHandler {
private static int sDuration;
private static boolean sInitialized;
private static float sSelectScale;
private BaseGridView mGridView;
class HeaderFocusAnimator extends FocusAnimator {
ViewHolder mViewHolder;
HeaderFocusAnimator(View view, float f, int i) {
super(view, f, false, i);
this.mViewHolder = (ViewHolder) HeaderItemFocusHighlight.this.mGridView.getChildViewHolder(view);
}
void setFocusLevel(float f) {
Presenter presenter = this.mViewHolder.getPresenter();
if (presenter instanceof RowHeaderPresenter) {
((RowHeaderPresenter) presenter).setSelectLevel((RowHeaderPresenter.ViewHolder) this.mViewHolder.getViewHolder(), f);
}
super.setFocusLevel(f);
}
}
HeaderItemFocusHighlight(BaseGridView baseGridView) {
this.mGridView = baseGridView;
lazyInit(baseGridView.getContext().getResources());
}
private static void lazyInit(Resources resources) {
if (!sInitialized) {
sSelectScale = Float.parseFloat(resources.getString(C0029R.dimen.lb_browse_header_select_scale));
sDuration = Integer.parseInt(resources.getString(C0029R.dimen.lb_browse_header_select_duration));
sInitialized = true;
}
}
private void viewFocused(View view, boolean z) {
view.setSelected(z);
FocusAnimator focusAnimator = (FocusAnimator) view.getTag(C0029R.id.lb_focus_animator);
if (focusAnimator == null) {
focusAnimator = new HeaderFocusAnimator(view, sSelectScale, sDuration);
view.setTag(C0029R.id.lb_focus_animator, focusAnimator);
}
focusAnimator.animateFocus(z, false);
}
public void onItemFocused(View view, boolean z) {
viewFocused(view, z);
}
public void onInitializeView(View view) {
}
}
static boolean isValidZoomIndex(int i) {
return i == 0 || getResId(i) > 0;
}
private static int getResId(int i) {
switch (i) {
case 1:
return C0029R.fraction.lb_focus_zoom_factor_small;
case 2:
return C0029R.fraction.lb_focus_zoom_factor_medium;
case 3:
return C0029R.fraction.lb_focus_zoom_factor_large;
case 4:
return C0029R.fraction.lb_focus_zoom_factor_xsmall;
default:
return 0;
}
}
public static void setupBrowseItemFocusHighlight(ItemBridgeAdapter itemBridgeAdapter, int i, boolean z) {
itemBridgeAdapter.setFocusHighlight(new BrowseItemFocusHighlight(i, z));
}
public static void setupHeaderItemFocusHighlight(VerticalGridView verticalGridView) {
if (verticalGridView.getAdapter() instanceof ItemBridgeAdapter) {
((ItemBridgeAdapter) verticalGridView.getAdapter()).setFocusHighlight(new HeaderItemFocusHighlight(verticalGridView));
}
}
}
package android.support.v17.leanback.widget;
import android.animation.Animator;
import java.util.List;
public interface FragmentAnimationProvider {
void onActivityEnter(List<Animator> list);
void onActivityExit(List<Animator> list);
void onFragmentEnter(List<Animator> list);
void onFragmentExit(List<Animator> list);
void onFragmentReenter(List<Animator> list);
void onFragmentReturn(List<Animator> list);
}
package android.support.v17.leanback.widget;
import android.content.Context;
import android.content.res.Resources;
import android.graphics.Color;
import android.graphics.Rect;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.os.Handler;
import android.support.v17.leanback.C0029R;
import android.support.v17.leanback.widget.BaseGridView.OnUnhandledKeyListener;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.OnScrollListener;
import android.util.TypedValue;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnLayoutChangeListener;
import android.view.ViewGroup;
import android.view.ViewGroup.MarginLayoutParams;
import android.widget.FrameLayout;
public class FullWidthDetailsOverviewRowPresenter extends RowPresenter {
public static final int ALIGN_MODE_MIDDLE = 1;
public static final int ALIGN_MODE_START = 0;
private static final boolean DEBUG = false;
public static final int STATE_FULL = 1;
public static final int STATE_HALF = 0;
public static final int STATE_SMALL = 2;
private static final String TAG = "FullWidthDetailsOverviewRowPresenter";
private static final Handler sHandler = new Handler();
private static Rect sTmpRect = new Rect();
private OnActionClickedListener mActionClickedListener;
private int mActionsBackgroundColor;
private boolean mActionsBackgroundColorSet;
private int mAlignmentMode;
private int mBackgroundColor;
private boolean mBackgroundColorSet;
private final DetailsOverviewLogoPresenter mDetailsOverviewLogoPresenter;
private final Presenter mDetailsPresenter;
protected int mInitialState;
private Listener mListener;
private boolean mParticipatingEntranceTransition;
class ActionsItemBridgeAdapter extends ItemBridgeAdapter {
ViewHolder mViewHolder;
ActionsItemBridgeAdapter(ViewHolder viewHolder) {
this.mViewHolder = viewHolder;
}
public void onBind(final android.support.v17.leanback.widget.ItemBridgeAdapter.ViewHolder viewHolder) {
if (this.mViewHolder.getOnItemViewClickedListener() != null || FullWidthDetailsOverviewRowPresenter.this.mActionClickedListener != null) {
viewHolder.getPresenter().setOnClickListener(viewHolder.getViewHolder(), new OnClickListener() {
public void onClick(View view) {
if (ActionsItemBridgeAdapter.this.mViewHolder.getOnItemViewClickedListener() != null) {
ActionsItemBridgeAdapter.this.mViewHolder.getOnItemViewClickedListener().onItemClicked(viewHolder.getViewHolder(), viewHolder.getItem(), ActionsItemBridgeAdapter.this.mViewHolder, ActionsItemBridgeAdapter.this.mViewHolder.getRow());
}
if (FullWidthDetailsOverviewRowPresenter.this.mActionClickedListener != null) {
FullWidthDetailsOverviewRowPresenter.this.mActionClickedListener.onActionClicked((Action) viewHolder.getItem());
}
}
});
}
}
public void onUnbind(android.support.v17.leanback.widget.ItemBridgeAdapter.ViewHolder viewHolder) {
if (this.mViewHolder.getOnItemViewClickedListener() != null || FullWidthDetailsOverviewRowPresenter.this.mActionClickedListener != null) {
viewHolder.getPresenter().setOnClickListener(viewHolder.getViewHolder(), null);
}
}
public void onAttachedToWindow(android.support.v17.leanback.widget.ItemBridgeAdapter.ViewHolder viewHolder) {
viewHolder.itemView.removeOnLayoutChangeListener(this.mViewHolder.mLayoutChangeListener);
viewHolder.itemView.addOnLayoutChangeListener(this.mViewHolder.mLayoutChangeListener);
}
public void onDetachedFromWindow(android.support.v17.leanback.widget.ItemBridgeAdapter.ViewHolder viewHolder) {
viewHolder.itemView.removeOnLayoutChangeListener(this.mViewHolder.mLayoutChangeListener);
this.mViewHolder.checkFirstAndLastPosition(false);
}
}
public abstract class Listener {
public void onBindLogo(ViewHolder viewHolder) {
}
}
public class ViewHolder extends android.support.v17.leanback.widget.RowPresenter.ViewHolder {
ItemBridgeAdapter mActionBridgeAdapter;
final HorizontalGridView mActionsRow;
final OnChildSelectedListener mChildSelectedListener = new C01503();
final ViewGroup mDetailsDescriptionFrame;
final android.support.v17.leanback.widget.Presenter.ViewHolder mDetailsDescriptionViewHolder;
final android.support.v17.leanback.widget.DetailsOverviewLogoPresenter.ViewHolder mDetailsLogoViewHolder;
final OnLayoutChangeListener mLayoutChangeListener = new C01492();
int mNumItems;
final FrameLayout mOverviewFrame;
final ViewGroup mOverviewRoot;
protected final android.support.v17.leanback.widget.DetailsOverviewRow.Listener mRowListener = createRowListener();
final OnScrollListener mScrollListener = new C01514();
int mState = 0;
final Runnable mUpdateDrawableCallback = new C01481();
class C01481 implements Runnable {
C01481() {
}
public void run() {
Row row = ViewHolder.this.getRow();
if (row != null) {
FullWidthDetailsOverviewRowPresenter.this.mDetailsOverviewLogoPresenter.onBindViewHolder(ViewHolder.this.mDetailsLogoViewHolder, row);
}
}
}
class C01492 implements OnLayoutChangeListener {
C01492() {
}
public void onLayoutChange(View view, int i, int i2, int i3, int i4, int i5, int i6, int i7, int i8) {
ViewHolder.this.checkFirstAndLastPosition(false);
}
}
class C01503 implements OnChildSelectedListener {
C01503() {
}
public void onChildSelected(ViewGroup viewGroup, View view, int i, long j) {
ViewHolder.this.dispatchItemSelection(view);
}
}
class C01514 extends OnScrollListener {
C01514() {
}
public void onScrollStateChanged(RecyclerView recyclerView, int i) {
}
public void onScrolled(RecyclerView recyclerView, int i, int i2) {
ViewHolder.this.checkFirstAndLastPosition(true);
}
}
public class DetailsOverviewRowListener extends android.support.v17.leanback.widget.DetailsOverviewRow.Listener {
public void onImageDrawableChanged(DetailsOverviewRow detailsOverviewRow) {
FullWidthDetailsOverviewRowPresenter.sHandler.removeCallbacks(ViewHolder.this.mUpdateDrawableCallback);
FullWidthDetailsOverviewRowPresenter.sHandler.post(ViewHolder.this.mUpdateDrawableCallback);
}
public void onItemChanged(DetailsOverviewRow detailsOverviewRow) {
if (ViewHolder.this.mDetailsDescriptionViewHolder != null) {
FullWidthDetailsOverviewRowPresenter.this.mDetailsPresenter.onUnbindViewHolder(ViewHolder.this.mDetailsDescriptionViewHolder);
}
FullWidthDetailsOverviewRowPresenter.this.mDetailsPresenter.onBindViewHolder(ViewHolder.this.mDetailsDescriptionViewHolder, detailsOverviewRow.getItem());
}
public void onActionsAdapterChanged(DetailsOverviewRow detailsOverviewRow) {
ViewHolder.this.bindActions(detailsOverviewRow.getActionsAdapter());
}
}
protected android.support.v17.leanback.widget.DetailsOverviewRow.Listener createRowListener() {
return new DetailsOverviewRowListener();
}
void bindActions(ObjectAdapter objectAdapter) {
this.mActionBridgeAdapter.setAdapter(objectAdapter);
this.mActionsRow.setAdapter(this.mActionBridgeAdapter);
this.mNumItems = this.mActionBridgeAdapter.getItemCount();
}
void onBind() {
DetailsOverviewRow detailsOverviewRow = (DetailsOverviewRow) getRow();
bindActions(detailsOverviewRow.getActionsAdapter());
detailsOverviewRow.addListener(this.mRowListener);
}
void onUnbind() {
((DetailsOverviewRow) getRow()).removeListener(this.mRowListener);
FullWidthDetailsOverviewRowPresenter.sHandler.removeCallbacks(this.mUpdateDrawableCallback);
}
void dispatchItemSelection(View view) {
if (isSelected()) {
android.support.v17.leanback.widget.ItemBridgeAdapter.ViewHolder viewHolder = (android.support.v17.leanback.widget.ItemBridgeAdapter.ViewHolder) (view != null ? this.mActionsRow.getChildViewHolder(view) : this.mActionsRow.findViewHolderForPosition(this.mActionsRow.getSelectedPosition()));
if (viewHolder == null) {
if (getOnItemViewSelectedListener() != null) {
getOnItemViewSelectedListener().onItemSelected(null, null, this, getRow());
}
} else if (getOnItemViewSelectedListener() != null) {
getOnItemViewSelectedListener().onItemSelected(viewHolder.getViewHolder(), viewHolder.getItem(), this, getRow());
}
}
}
private int getViewCenter(View view) {
return (view.getRight() - view.getLeft()) / 2;
}
private void checkFirstAndLastPosition(boolean z) {
android.support.v7.widget.RecyclerView.ViewHolder findViewHolderForPosition = this.mActionsRow.findViewHolderForPosition(this.mNumItems - 1);
if (findViewHolderForPosition != null) {
findViewHolderForPosition.itemView.getRight();
this.mActionsRow.getWidth();
}
findViewHolderForPosition = this.mActionsRow.findViewHolderForPosition(0);
if (findViewHolderForPosition != null) {
findViewHolderForPosition.itemView.getLeft();
}
}
public ViewHolder(View view, Presenter presenter, DetailsOverviewLogoPresenter detailsOverviewLogoPresenter) {
super(view);
this.mOverviewRoot = (ViewGroup) view.findViewById(C0029R.id.details_root);
this.mOverviewFrame = (FrameLayout) view.findViewById(C0029R.id.details_frame);
this.mDetailsDescriptionFrame = (ViewGroup) view.findViewById(C0029R.id.details_overview_description);
this.mActionsRow = (HorizontalGridView) this.mOverviewFrame.findViewById(C0029R.id.details_overview_actions);
this.mActionsRow.setHasOverlappingRendering(false);
this.mActionsRow.setOnScrollListener(this.mScrollListener);
this.mActionsRow.setAdapter(this.mActionBridgeAdapter);
this.mActionsRow.setOnChildSelectedListener(this.mChildSelectedListener);
int dimensionPixelSize = view.getResources().getDimensionPixelSize(C0029R.dimen.lb_details_overview_actions_fade_size);
this.mActionsRow.setFadingRightEdgeLength(dimensionPixelSize);
this.mActionsRow.setFadingLeftEdgeLength(dimensionPixelSize);
this.mDetailsDescriptionViewHolder = presenter.onCreateViewHolder(this.mDetailsDescriptionFrame);
this.mDetailsDescriptionFrame.addView(this.mDetailsDescriptionViewHolder.view);
this.mDetailsLogoViewHolder = (android.support.v17.leanback.widget.DetailsOverviewLogoPresenter.ViewHolder) detailsOverviewLogoPresenter.onCreateViewHolder(this.mOverviewRoot);
this.mOverviewRoot.addView(this.mDetailsLogoViewHolder.view);
}
public final ViewGroup getOverviewView() {
return this.mOverviewFrame;
}
public final android.support.v17.leanback.widget.DetailsOverviewLogoPresenter.ViewHolder getLogoViewHolder() {
return this.mDetailsLogoViewHolder;
}
public final android.support.v17.leanback.widget.Presenter.ViewHolder getDetailsDescriptionViewHolder() {
return this.mDetailsDescriptionViewHolder;
}
public final ViewGroup getDetailsDescriptionFrame() {
return this.mDetailsDescriptionFrame;
}
public final ViewGroup getActionsRow() {
return this.mActionsRow;
}
public final int getState() {
return this.mState;
}
}
public FullWidthDetailsOverviewRowPresenter(Presenter presenter) {
this(presenter, new DetailsOverviewLogoPresenter());
}
public FullWidthDetailsOverviewRowPresenter(Presenter presenter, DetailsOverviewLogoPresenter detailsOverviewLogoPresenter) {
this.mInitialState = 0;
this.mBackgroundColor = 0;
this.mActionsBackgroundColor = 0;
setHeaderPresenter(null);
setSelectEffectEnabled(false);
this.mDetailsPresenter = presenter;
this.mDetailsOverviewLogoPresenter = detailsOverviewLogoPresenter;
}
public void setOnActionClickedListener(OnActionClickedListener onActionClickedListener) {
this.mActionClickedListener = onActionClickedListener;
}
public OnActionClickedListener getOnActionClickedListener() {
return this.mActionClickedListener;
}
public final void setBackgroundColor(int i) {
this.mBackgroundColor = i;
this.mBackgroundColorSet = true;
}
public final int getBackgroundColor() {
return this.mBackgroundColor;
}
public final void setActionsBackgroundColor(int i) {
this.mActionsBackgroundColor = i;
this.mActionsBackgroundColorSet = true;
}
public final int getActionsBackgroundColor() {
return this.mActionsBackgroundColor;
}
public final boolean isParticipatingEntranceTransition() {
return this.mParticipatingEntranceTransition;
}
public final void setParticipatingEntranceTransition(boolean z) {
this.mParticipatingEntranceTransition = z;
}
public final void setInitialState(int i) {
this.mInitialState = i;
}
public final int getInitialState() {
return this.mInitialState;
}
public final void setAlignmentMode(int i) {
this.mAlignmentMode = i;
}
public final int getAlignmentMode() {
return this.mAlignmentMode;
}
protected boolean isClippingChildren() {
return true;
}
public final void setListener(Listener listener) {
this.mListener = listener;
}
private int getDefaultBackgroundColor(Context context) {
TypedValue typedValue = new TypedValue();
if (context.getTheme().resolveAttribute(C0029R.attr.defaultBrandColor, typedValue, true)) {
return context.getResources().getColor(typedValue.resourceId);
}
return context.getResources().getColor(C0029R.color.lb_default_brand_color);
}
private int getDefaultActionsBackgroundColor(Context context) {
int defaultBackgroundColor = getDefaultBackgroundColor(context);
return Color.argb(Color.alpha(defaultBackgroundColor), Color.red(defaultBackgroundColor) / 2, Color.green(defaultBackgroundColor) / 2, Color.blue(defaultBackgroundColor) / 2);
}
protected int getLayoutResourceId() {
return C0029R.layout.lb_fullwidth_details_overview;
}
protected android.support.v17.leanback.widget.RowPresenter.ViewHolder createRowViewHolder(ViewGroup viewGroup) {
final android.support.v17.leanback.widget.RowPresenter.ViewHolder viewHolder = new ViewHolder(LayoutInflater.from(viewGroup.getContext()).inflate(getLayoutResourceId(), viewGroup, false), this.mDetailsPresenter, this.mDetailsOverviewLogoPresenter);
this.mDetailsOverviewLogoPresenter.setContext(viewHolder.mDetailsLogoViewHolder, viewHolder, this);
setState(viewHolder, this.mInitialState);
viewHolder.mActionBridgeAdapter = new ActionsItemBridgeAdapter(viewHolder);
View view = viewHolder.mOverviewFrame;
view.setBackgroundColor(this.mBackgroundColorSet ? this.mBackgroundColor : getDefaultBackgroundColor(view.getContext()));
view.findViewById(C0029R.id.details_overview_actions_background).setBackgroundColor(this.mActionsBackgroundColorSet ? this.mActionsBackgroundColor : getDefaultActionsBackgroundColor(view.getContext()));
RoundedRectHelper.getInstance().setClipToRoundedOutline(view, true);
if (!getSelectEffectEnabled()) {
viewHolder.mOverviewFrame.setForeground(null);
}
viewHolder.mActionsRow.setOnUnhandledKeyListener(new OnUnhandledKeyListener() {
public boolean onUnhandledKey(KeyEvent keyEvent) {
if (viewHolder.getOnKeyListener() == null || !viewHolder.getOnKeyListener().onKey(viewHolder.view, keyEvent.getKeyCode(), keyEvent)) {
return false;
}
return true;
}
});
return viewHolder;
}
private static int getNonNegativeWidth(Drawable drawable) {
int intrinsicWidth = drawable == null ? 0 : drawable.getIntrinsicWidth();
if (intrinsicWidth > 0) {
return intrinsicWidth;
}
return 0;
}
private static int getNonNegativeHeight(Drawable drawable) {
int intrinsicHeight = drawable == null ? 0 : drawable.getIntrinsicHeight();
if (intrinsicHeight > 0) {
return intrinsicHeight;
}
return 0;
}
protected void onBindRowViewHolder(android.support.v17.leanback.widget.RowPresenter.ViewHolder viewHolder, Object obj) {
super.onBindRowViewHolder(viewHolder, obj);
DetailsOverviewRow detailsOverviewRow = (DetailsOverviewRow) obj;
ViewHolder viewHolder2 = (ViewHolder) viewHolder;
this.mDetailsOverviewLogoPresenter.onBindViewHolder(viewHolder2.mDetailsLogoViewHolder, detailsOverviewRow);
this.mDetailsPresenter.onBindViewHolder(viewHolder2.mDetailsDescriptionViewHolder, detailsOverviewRow.getItem());
viewHolder2.onBind();
}
protected void onUnbindRowViewHolder(android.support.v17.leanback.widget.RowPresenter.ViewHolder viewHolder) {
ViewHolder viewHolder2 = (ViewHolder) viewHolder;
viewHolder2.onUnbind();
this.mDetailsPresenter.onUnbindViewHolder(viewHolder2.mDetailsDescriptionViewHolder);
this.mDetailsOverviewLogoPresenter.onUnbindViewHolder(viewHolder2.mDetailsLogoViewHolder);
super.onUnbindRowViewHolder(viewHolder);
}
public final boolean isUsingDefaultSelectEffect() {
return false;
}
protected void onSelectLevelChanged(android.support.v17.leanback.widget.RowPresenter.ViewHolder viewHolder) {
super.onSelectLevelChanged(viewHolder);
if (getSelectEffectEnabled()) {
ViewHolder viewHolder2 = (ViewHolder) viewHolder;
((ColorDrawable) viewHolder2.mOverviewFrame.getForeground().mutate()).setColor(viewHolder2.mColorDimmer.getPaint().getColor());
}
}
protected void onRowViewAttachedToWindow(android.support.v17.leanback.widget.RowPresenter.ViewHolder viewHolder) {
super.onRowViewAttachedToWindow(viewHolder);
ViewHolder viewHolder2 = (ViewHolder) viewHolder;
this.mDetailsPresenter.onViewAttachedToWindow(viewHolder2.mDetailsDescriptionViewHolder);
this.mDetailsOverviewLogoPresenter.onViewAttachedToWindow(viewHolder2.mDetailsLogoViewHolder);
}
protected void onRowViewDetachedFromWindow(android.support.v17.leanback.widget.RowPresenter.ViewHolder viewHolder) {
super.onRowViewDetachedFromWindow(viewHolder);
ViewHolder viewHolder2 = (ViewHolder) viewHolder;
this.mDetailsPresenter.onViewDetachedFromWindow(viewHolder2.mDetailsDescriptionViewHolder);
this.mDetailsOverviewLogoPresenter.onViewDetachedFromWindow(viewHolder2.mDetailsLogoViewHolder);
}
public final void notifyOnBindLogo(ViewHolder viewHolder) {
onLayoutOverviewFrame(viewHolder, viewHolder.getState(), true);
onLayoutLogo(viewHolder, viewHolder.getState(), true);
if (this.mListener != null) {
this.mListener.onBindLogo(viewHolder);
}
}
protected void onLayoutLogo(ViewHolder viewHolder, int i, boolean z) {
View view = viewHolder.getLogoViewHolder().view;
MarginLayoutParams marginLayoutParams = (MarginLayoutParams) view.getLayoutParams();
switch (this.mAlignmentMode) {
case 1:
marginLayoutParams.setMarginStart(view.getResources().getDimensionPixelSize(C0029R.dimen.lb_details_v2_left) - marginLayoutParams.width);
break;
default:
marginLayoutParams.setMarginStart(view.getResources().getDimensionPixelSize(C0029R.dimen.lb_details_v2_logo_margin_start));
break;
}
switch (viewHolder.getState()) {
case 0:
marginLayoutParams.topMargin = (view.getResources().getDimensionPixelSize(C0029R.dimen.lb_details_v2_blank_height) + view.getResources().getDimensionPixelSize(C0029R.dimen.lb_details_v2_actions_height)) + view.getResources().getDimensionPixelSize(C0029R.dimen.lb_details_v2_description_margin_top);
break;
case 2:
marginLayoutParams.topMargin = 0;
break;
default:
marginLayoutParams.topMargin = view.getResources().getDimensionPixelSize(C0029R.dimen.lb_details_v2_blank_height) - (marginLayoutParams.height / 2);
break;
}
view.setLayoutParams(marginLayoutParams);
}
protected void onLayoutOverviewFrame(ViewHolder viewHolder, int i, boolean z) {
int i2;
int i3 = 0;
int i4 = i == 2 ? 1 : 0;
if (viewHolder.getState() == 2) {
i2 = 1;
} else {
i2 = 0;
}
if (i4 != i2 || z) {
int dimensionPixelSize;
int i5;
int i6;
Resources resources = viewHolder.view.getResources();
if (this.mDetailsOverviewLogoPresenter.isBoundToImage(viewHolder.getLogoViewHolder(), (DetailsOverviewRow) viewHolder.getRow())) {
i4 = viewHolder.getLogoViewHolder().view.getLayoutParams().width;
} else {
i4 = 0;
}
switch (this.mAlignmentMode) {
case 1:
if (i2 == 0) {
dimensionPixelSize = resources.getDimensionPixelSize(C0029R.dimen.lb_details_v2_left);
i5 = 0;
break;
}
i5 = resources.getDimensionPixelSize(C0029R.dimen.lb_details_v2_left) - i4;
dimensionPixelSize = i4;
break;
default:
if (i2 == 0) {
dimensionPixelSize = i4 + resources.getDimensionPixelSize(C0029R.dimen.lb_details_v2_logo_margin_start);
i5 = 0;
break;
}
i5 = resources.getDimensionPixelSize(C0029R.dimen.lb_details_v2_logo_margin_start);
dimensionPixelSize = i4;
break;
}
MarginLayoutParams marginLayoutParams = (MarginLayoutParams) viewHolder.getOverviewView().getLayoutParams();
if (i2 != 0) {
i6 = 0;
} else {
i6 = resources.getDimensionPixelSize(C0029R.dimen.lb_details_v2_blank_height);
}
marginLayoutParams.topMargin = i6;
marginLayoutParams.rightMargin = i5;
marginLayoutParams.leftMargin = i5;
viewHolder.getOverviewView().setLayoutParams(marginLayoutParams);
View detailsDescriptionFrame = viewHolder.getDetailsDescriptionFrame();
marginLayoutParams = (MarginLayoutParams) detailsDescriptionFrame.getLayoutParams();
marginLayoutParams.setMarginStart(dimensionPixelSize);
detailsDescriptionFrame.setLayoutParams(marginLayoutParams);
detailsDescriptionFrame = viewHolder.getActionsRow();
marginLayoutParams = (MarginLayoutParams) detailsDescriptionFrame.getLayoutParams();
marginLayoutParams.setMarginStart(dimensionPixelSize);
if (i2 == 0) {
i3 = resources.getDimensionPixelSize(C0029R.dimen.lb_details_v2_actions_height);
}
marginLayoutParams.height = i3;
detailsDescriptionFrame.setLayoutParams(marginLayoutParams);
}
}
public final void setState(ViewHolder viewHolder, int i) {
if (viewHolder.getState() != i) {
int state = viewHolder.getState();
viewHolder.mState = i;
onStateChanged(viewHolder, state);
}
}
protected void onStateChanged(ViewHolder viewHolder, int i) {
onLayoutOverviewFrame(viewHolder, i, false);
onLayoutLogo(viewHolder, i, false);
}
public void setEntranceTransitionState(android.support.v17.leanback.widget.RowPresenter.ViewHolder viewHolder, boolean z) {
super.setEntranceTransitionState(viewHolder, z);
if (this.mParticipatingEntranceTransition) {
viewHolder.view.setVisibility(z ? 0 : 4);
}
}
}
package android.support.v17.leanback.widget;
import android.app.Activity;
import android.os.Handler;
import android.support.v17.leanback.transition.TransitionHelper;
import android.support.v17.leanback.transition.TransitionListener;
import android.support.v17.leanback.widget.FullWidthDetailsOverviewRowPresenter.Listener;
import android.support.v17.leanback.widget.FullWidthDetailsOverviewRowPresenter.ViewHolder;
import android.support.v4.app.ActivityCompat;
import android.support.v4.view.ViewCompat;
import android.text.TextUtils;
public class FullWidthDetailsOverviewSharedElementHelper extends Listener {
private static final boolean DEBUG = false;
private static final long DEFAULT_TIMEOUT = 5000;
private static final String TAG = "FullWidthDetailsOverviewSharedElementHelper";
private Activity mActivityToRunTransition;
private boolean mAutoStartSharedElementTransition = true;
private String mSharedElementName;
private boolean mStartedPostpone;
private ViewHolder mViewHolder;
class C01521 implements Runnable {
C01521() {
}
public void run() {
FullWidthDetailsOverviewSharedElementHelper.this.startPostponedEnterTransitionInternal();
}
}
class C01542 implements Runnable {
C01542() {
}
public void run() {
ViewCompat.setTransitionName(FullWidthDetailsOverviewSharedElementHelper.this.mViewHolder.getLogoViewHolder().view, FullWidthDetailsOverviewSharedElementHelper.this.mSharedElementName);
final TransitionHelper instance = TransitionHelper.getInstance();
Object sharedElementEnterTransition = instance.getSharedElementEnterTransition(FullWidthDetailsOverviewSharedElementHelper.this.mActivityToRunTransition.getWindow());
if (sharedElementEnterTransition != null) {
instance.setTransitionListener(sharedElementEnterTransition, new TransitionListener() {
public void onTransitionEnd(Object obj) {
if (FullWidthDetailsOverviewSharedElementHelper.this.mViewHolder.getActionsRow().isFocused()) {
FullWidthDetailsOverviewSharedElementHelper.this.mViewHolder.getActionsRow().requestFocus();
}
instance.setTransitionListener(obj, null);
}
});
}
FullWidthDetailsOverviewSharedElementHelper.this.startPostponedEnterTransitionInternal();
}
}
class C01553 implements Runnable {
C01553() {
}
public void run() {
FullWidthDetailsOverviewSharedElementHelper.this.startPostponedEnterTransitionInternal();
}
}
public void setSharedElementEnterTransition(Activity activity, String str) {
setSharedElementEnterTransition(activity, str, DEFAULT_TIMEOUT);
}
public void setSharedElementEnterTransition(Activity activity, String str, long j) {
if ((activity == null && !TextUtils.isEmpty(str)) || (activity != null && TextUtils.isEmpty(str))) {
throw new IllegalArgumentException();
} else if (activity != this.mActivityToRunTransition || !TextUtils.equals(str, this.mSharedElementName)) {
this.mActivityToRunTransition = activity;
this.mSharedElementName = str;
setAutoStartSharedElementTransition(TransitionHelper.getInstance().getSharedElementEnterTransition(activity.getWindow()) != null);
ActivityCompat.postponeEnterTransition(this.mActivityToRunTransition);
if (j > 0) {
new Handler().postDelayed(new C01521(), j);
}
}
}
public void setAutoStartSharedElementTransition(boolean z) {
this.mAutoStartSharedElementTransition = z;
}
public boolean getAutoStartSharedElementTransition() {
return this.mAutoStartSharedElementTransition;
}
public void onBindLogo(ViewHolder viewHolder) {
this.mViewHolder = viewHolder;
if (this.mAutoStartSharedElementTransition) {
if (this.mViewHolder != null) {
ViewCompat.setTransitionName(this.mViewHolder.getLogoViewHolder().view, null);
}
this.mViewHolder.getDetailsDescriptionFrame().postOnAnimation(new C01542());
}
}
public void startPostponedEnterTransition() {
new Handler().post(new C01553());
}
private void startPostponedEnterTransitionInternal() {
if (!this.mStartedPostpone && this.mViewHolder != null) {
ActivityCompat.startPostponedEnterTransition(this.mActivityToRunTransition);
this.mStartedPostpone = true;
}
}
}
package android.support.v17.leanback.widget;
import android.support.v4.util.CircularIntArray;
import java.io.PrintWriter;
abstract class Grid {
public static final int START_DEFAULT = -1;
protected int mFirstVisibleIndex = -1;
protected int mLastVisibleIndex = -1;
protected int mMargin;
protected int mNumRows;
protected Provider mProvider;
protected boolean mReversedFlow;
protected int mStartIndex = -1;
protected CircularIntArray[] mTmpItemPositionsInRows;
public class Location {
public int row;
public Location(int i) {
this.row = i;
}
}
public interface Provider {
void addItem(Object obj, int i, int i2, int i3, int i4);
int createItem(int i, boolean z, Object[] objArr);
int getCount();
int getEdge(int i);
int getSize(int i);
void removeItem(int i);
}
protected abstract boolean appendVisibleItems(int i, boolean z);
public abstract void debugPrint(PrintWriter printWriter);
protected abstract int findRowMax(boolean z, int i, int[] iArr);
protected abstract int findRowMin(boolean z, int i, int[] iArr);
public abstract CircularIntArray[] getItemPositionsInRows(int i, int i2);
public abstract Location getLocation(int i);
protected abstract boolean prependVisibleItems(int i, boolean z);
Grid() {
}
public static Grid createGrid(int i) {
if (i == 1) {
return new SingleRow();
}
Grid staggeredGridDefault = new StaggeredGridDefault();
staggeredGridDefault.setNumRows(i);
return staggeredGridDefault;
}
public final void setMargin(int i) {
this.mMargin = i;
}
public final void setReversedFlow(boolean z) {
this.mReversedFlow = z;
}
public boolean isReversedFlow() {
return this.mReversedFlow;
}
public void setProvider(Provider provider) {
this.mProvider = provider;
}
public void setStart(int i) {
this.mStartIndex = i;
}
public int getNumRows() {
return this.mNumRows;
}
void setNumRows(int i) {
if (i <= 0) {
throw new IllegalArgumentException();
} else if (this.mNumRows != i) {
this.mNumRows = i;
this.mTmpItemPositionsInRows = new CircularIntArray[this.mNumRows];
for (int i2 = 0; i2 < this.mNumRows; i2++) {
this.mTmpItemPositionsInRows[i2] = new CircularIntArray();
}
}
}
public final int getFirstVisibleIndex() {
return this.mFirstVisibleIndex;
}
public final int getLastVisibleIndex() {
return this.mLastVisibleIndex;
}
public void resetVisibleIndex() {
this.mLastVisibleIndex = -1;
this.mFirstVisibleIndex = -1;
}
public void invalidateItemsAfter(int i) {
if (i >= 0 && this.mLastVisibleIndex >= 0) {
while (this.mLastVisibleIndex >= i) {
this.mProvider.removeItem(this.mLastVisibleIndex);
this.mLastVisibleIndex--;
}
resetVisbileIndexIfEmpty();
if (getFirstVisibleIndex() < 0) {
setStart(i);
}
}
}
public final int getRowIndex(int i) {
return getLocation(i).row;
}
public final int findRowMin(boolean z, int[] iArr) {
return findRowMin(z, this.mReversedFlow ? this.mLastVisibleIndex : this.mFirstVisibleIndex, iArr);
}
public final int findRowMax(boolean z, int[] iArr) {
return findRowMax(z, this.mReversedFlow ? this.mFirstVisibleIndex : this.mLastVisibleIndex, iArr);
}
protected final boolean checkAppendOverLimit(int i) {
if (this.mLastVisibleIndex < 0) {
return false;
}
if (this.mReversedFlow) {
if (findRowMin(true, null) <= this.mMargin + i) {
return true;
}
return false;
} else if (findRowMax(false, null) >= i - this.mMargin) {
return true;
} else {
return false;
}
}
protected final boolean checkPrependOverLimit(int i) {
if (this.mLastVisibleIndex < 0) {
return false;
}
if (this.mReversedFlow) {
if (findRowMax(false, null) >= this.mMargin + i) {
return true;
}
return false;
} else if (findRowMin(true, null) <= i - this.mMargin) {
return true;
} else {
return false;
}
}
public final CircularIntArray[] getItemPositionsInRows() {
return getItemPositionsInRows(getFirstVisibleIndex(), getLastVisibleIndex());
}
public final boolean prependOneColumnVisibleItems() {
return prependVisibleItems(this.mReversedFlow ? Integer.MIN_VALUE : Integer.MAX_VALUE, true);
}
public final void prependVisibleItems(int i) {
prependVisibleItems(i, false);
}
public boolean appendOneColumnVisibleItems() {
return appendVisibleItems(this.mReversedFlow ? Integer.MAX_VALUE : Integer.MIN_VALUE, true);
}
public final void appendVisibleItems(int i) {
appendVisibleItems(i, false);
}
public void removeInvisibleItemsAtEnd(int i, int i2) {
while (this.mLastVisibleIndex >= this.mFirstVisibleIndex && this.mLastVisibleIndex > i) {
Object obj;
if (!this.mReversedFlow) {
obj = this.mProvider.getEdge(this.mLastVisibleIndex) >= i2 ? 1 : null;
} else if (this.mProvider.getEdge(this.mLastVisibleIndex) <= i2) {
int i3 = 1;
} else {
obj = null;
}
if (obj == null) {
break;
}
this.mProvider.removeItem(this.mLastVisibleIndex);
this.mLastVisibleIndex--;
}
resetVisbileIndexIfEmpty();
}
public void removeInvisibleItemsAtFront(int i, int i2) {
while (this.mLastVisibleIndex >= this.mFirstVisibleIndex && this.mFirstVisibleIndex < i) {
Object obj;
if (!this.mReversedFlow) {
obj = this.mProvider.getEdge(this.mFirstVisibleIndex) + this.mProvider.getSize(this.mFirstVisibleIndex) <= i2 ? 1 : null;
} else if (this.mProvider.getEdge(this.mFirstVisibleIndex) - this.mProvider.getSize(this.mFirstVisibleIndex) >= i2) {
int i3 = 1;
} else {
obj = null;
}
if (obj == null) {
break;
}
this.mProvider.removeItem(this.mFirstVisibleIndex);
this.mFirstVisibleIndex++;
}
resetVisbileIndexIfEmpty();
}
private void resetVisbileIndexIfEmpty() {
if (this.mLastVisibleIndex < this.mFirstVisibleIndex) {
resetVisibleIndex();
}
}
}
package android.support.v17.leanback.widget;
import android.content.Context;
import android.dvb.DvbApi;
import android.graphics.PointF;
import android.graphics.Rect;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
import android.os.Parcelable.Creator;
import android.support.v17.leanback.widget.Grid.Location;
import android.support.v17.leanback.widget.Grid.Provider;
import android.support.v17.leanback.widget.ItemAlignmentFacet.ItemAlignmentDef;
import android.support.v17.leanback.widget.WindowAlignment.Axis;
import android.support.v4.util.CircularIntArray;
import android.support.v4.view.GravityCompat;
import android.support.v4.view.ViewCompat;
import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat;
import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat;
import android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat;
import android.support.v7.widget.LinearSmoothScroller;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.Adapter;
import android.support.v7.widget.RecyclerView.LayoutManager;
import android.support.v7.widget.RecyclerView.Recycler;
import android.support.v7.widget.RecyclerView.SmoothScroller;
import android.support.v7.widget.RecyclerView.SmoothScroller.Action;
import android.support.v7.widget.RecyclerView.State;
import android.support.v7.widget.RecyclerView.ViewHolder;
import android.util.AttributeSet;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.View.MeasureSpec;
import android.view.ViewGroup;
import android.view.ViewGroup.MarginLayoutParams;
import java.util.ArrayList;
final class GridLayoutManager extends LayoutManager {
private static final boolean DEBUG = false;
private static final int MAX_PENDING_MOVES = 10;
private static final int NEXT_ITEM = 1;
private static final int NEXT_ROW = 3;
private static final int PREV_ITEM = 0;
private static final int PREV_ROW = 2;
private static final String TAG = "GridLayoutManager";
private static final boolean TRACE = false;
private static int[] sTwoInts = new int[2];
private final BaseGridView mBaseGridView;
private OnChildLaidOutListener mChildLaidOutListener = null;
private OnChildSelectedListener mChildSelectedListener = null;
private OnChildViewHolderSelectedListener mChildViewHolderSelectedListener = null;
private int mChildVisibility = -1;
final ViewsStateBundle mChildrenStates = new ViewsStateBundle();
private int mExtraLayoutSpace;
private FacetProviderAdapter mFacetProviderAdapter;
private int mFixedRowSizeSecondary;
private boolean mFocusOutEnd;
private boolean mFocusOutFront;
private int mFocusPosition = -1;
private int mFocusPositionOffset = 0;
private int mFocusScrollStrategy = 0;
private boolean mFocusSearchDisabled;
private boolean mForceFullLayout;
private int mGravity = 8388659;
Grid mGrid;
private Provider mGridProvider = new C01572();
private int mHorizontalMargin;
private boolean mInFastRelayout;
private boolean mInLayout;
private boolean mInLayoutSearchFocus;
private boolean mInScroll;
private boolean mInSelection = false;
private final ItemAlignment mItemAlignment = new ItemAlignment();
private boolean mLayoutEnabled = true;
private int mMarginPrimary;
private int mMarginSecondary;
private int mMaxSizeSecondary;
private int[] mMeasuredDimension = new int[2];
private int mNumRows;
private int mNumRowsRequested = 1;
private int mOrientation = 0;
private PendingMoveSmoothScroller mPendingMoveSmoothScroller;
private int mPrimaryScrollExtra;
private boolean mPruneChild = true;
private Recycler mRecycler;
private final Runnable mRequestLayoutRunnable = new C01561();
private boolean mReverseFlowPrimary = false;
private boolean mReverseFlowSecondary = false;
private boolean mRowSecondarySizeRefresh;
private int[] mRowSizeSecondary;
private int mRowSizeSecondaryRequested;
private boolean mScrollEnabled = true;
private int mScrollOffsetPrimary;
private int mScrollOffsetSecondary;
private int mSizePrimary;
private State mState;
private int mSubFocusPosition = 0;
private int mVerticalMargin;
private final WindowAlignment mWindowAlignment = new WindowAlignment();
class C01561 implements Runnable {
C01561() {
}
public void run() {
GridLayoutManager.this.requestLayout();
}
}
class C01572 implements Provider {
C01572() {
}
public int getCount() {
return GridLayoutManager.this.mState.getItemCount();
}
public int createItem(int i, boolean z, Object[] objArr) {
View viewForPosition = GridLayoutManager.this.getViewForPosition(i);
LayoutParams layoutParams = (LayoutParams) viewForPosition.getLayoutParams();
layoutParams.setItemAlignmentFacet((ItemAlignmentFacet) GridLayoutManager.this.getFacet(GridLayoutManager.this.mBaseGridView.getChildViewHolder(viewForPosition), ItemAlignmentFacet.class));
if (!layoutParams.isItemRemoved()) {
if (z) {
GridLayoutManager.this.addView(viewForPosition);
} else {
GridLayoutManager.this.addView(viewForPosition, 0);
}
if (GridLayoutManager.this.mChildVisibility != -1) {
viewForPosition.setVisibility(GridLayoutManager.this.mChildVisibility);
}
if (GridLayoutManager.this.mPendingMoveSmoothScroller != null) {
GridLayoutManager.this.mPendingMoveSmoothScroller.consumePendingMovesBeforeLayout();
}
int access$1800 = GridLayoutManager.this.getSubPositionByView(viewForPosition, viewForPosition.findFocus());
if (GridLayoutManager.this.mInLayout) {
if (!GridLayoutManager.this.mInFastRelayout) {
if (!GridLayoutManager.this.mInLayoutSearchFocus && i == GridLayoutManager.this.mFocusPosition && access$1800 == GridLayoutManager.this.mSubFocusPosition) {
GridLayoutManager.this.dispatchChildSelected();
} else if (GridLayoutManager.this.mInLayoutSearchFocus && i >= GridLayoutManager.this.mFocusPosition && viewForPosition.hasFocusable()) {
GridLayoutManager.this.mFocusPosition = i;
GridLayoutManager.this.mSubFocusPosition = access$1800;
GridLayoutManager.this.mInLayoutSearchFocus = false;
GridLayoutManager.this.dispatchChildSelected();
}
}
} else if (i == GridLayoutManager.this.mFocusPosition && access$1800 == GridLayoutManager.this.mSubFocusPosition && GridLayoutManager.this.mPendingMoveSmoothScroller == null) {
GridLayoutManager.this.dispatchChildSelected();
}
GridLayoutManager.this.measureChild(viewForPosition);
}
objArr[0] = viewForPosition;
if (GridLayoutManager.this.mOrientation == 0) {
return viewForPosition.getMeasuredWidth();
}
return viewForPosition.getMeasuredHeight();
}
public void addItem(Object obj, int i, int i2, int i3, int i4) {
int i5;
int i6;
View view = (View) obj;
if (i4 == Integer.MIN_VALUE || i4 == Integer.MAX_VALUE) {
i4 = !GridLayoutManager.this.mGrid.isReversedFlow() ? GridLayoutManager.this.mWindowAlignment.mainAxis().getPaddingLow() : GridLayoutManager.this.mWindowAlignment.mainAxis().getSize() - GridLayoutManager.this.mWindowAlignment.mainAxis().getPaddingHigh();
}
if ((!GridLayoutManager.this.mGrid.isReversedFlow() ? 1 : null) != null) {
i5 = i4 + i2;
i6 = i4;
} else {
i6 = i4 - i2;
i5 = i4;
}
int access$2400 = GridLayoutManager.this.getRowStartSecondary(i3) - GridLayoutManager.this.mScrollOffsetSecondary;
GridLayoutManager.this.mChildrenStates.loadView(view, i);
GridLayoutManager.this.layoutChild(i3, view, i6, i5, access$2400);
if (i == GridLayoutManager.this.mGrid.getFirstVisibleIndex()) {
if (GridLayoutManager.this.mGrid.isReversedFlow()) {
GridLayoutManager.this.updateScrollMax();
} else {
GridLayoutManager.this.updateScrollMin();
}
}
if (i == GridLayoutManager.this.mGrid.getLastVisibleIndex()) {
if (GridLayoutManager.this.mGrid.isReversedFlow()) {
GridLayoutManager.this.updateScrollMin();
} else {
GridLayoutManager.this.updateScrollMax();
}
}
if (!(GridLayoutManager.this.mInLayout || GridLayoutManager.this.mPendingMoveSmoothScroller == null)) {
GridLayoutManager.this.mPendingMoveSmoothScroller.consumePendingMovesAfterLayout();
}
if (GridLayoutManager.this.mChildLaidOutListener != null) {
ViewHolder childViewHolder = GridLayoutManager.this.mBaseGridView.getChildViewHolder(view);
GridLayoutManager.this.mChildLaidOutListener.onChildLaidOut(GridLayoutManager.this.mBaseGridView, view, i, childViewHolder == null ? -1 : childViewHolder.getItemId());
}
}
public void removeItem(int i) {
View findViewByPosition = GridLayoutManager.this.findViewByPosition(i);
if (GridLayoutManager.this.mInLayout) {
GridLayoutManager.this.detachAndScrapView(findViewByPosition, GridLayoutManager.this.mRecycler);
} else {
GridLayoutManager.this.removeAndRecycleView(findViewByPosition, GridLayoutManager.this.mRecycler);
}
}
public int getEdge(int i) {
if (GridLayoutManager.this.mReverseFlowPrimary) {
return GridLayoutManager.this.getViewMax(GridLayoutManager.this.findViewByPosition(i));
}
return GridLayoutManager.this.getViewMin(GridLayoutManager.this.findViewByPosition(i));
}
public int getSize(int i) {
return GridLayoutManager.this.getViewPrimarySize(GridLayoutManager.this.findViewByPosition(i));
}
}
abstract class GridLinearSmoothScroller extends LinearSmoothScroller {
GridLinearSmoothScroller() {
super(GridLayoutManager.this.mBaseGridView.getContext());
}
protected void onStop() {
View findViewByPosition = findViewByPosition(getTargetPosition());
if (GridLayoutManager.this.hasFocus() && findViewByPosition != null) {
GridLayoutManager.this.mInSelection = true;
findViewByPosition.requestFocus();
GridLayoutManager.this.mInSelection = false;
}
GridLayoutManager.this.dispatchChildSelected();
super.onStop();
}
protected void onTargetFound(View view, State state, Action action) {
if (GridLayoutManager.this.getScrollPosition(view, null, GridLayoutManager.sTwoInts)) {
int i;
int i2;
if (GridLayoutManager.this.mOrientation == 0) {
i = GridLayoutManager.sTwoInts[0];
i2 = GridLayoutManager.sTwoInts[1];
} else {
i = GridLayoutManager.sTwoInts[1];
i2 = GridLayoutManager.sTwoInts[0];
}
action.update(i, i2, calculateTimeForDeceleration((int) Math.sqrt((double) ((i * i) + (i2 * i2)))), this.mDecelerateInterpolator);
}
}
}
class C01583 extends GridLinearSmoothScroller {
C01583() {
super();
}
public PointF computeScrollVectorForPosition(int i) {
int i2 = 1;
int i3 = 0;
if (getChildCount() == 0) {
return null;
}
int position = GridLayoutManager.this.getPosition(GridLayoutManager.this.getChildAt(0));
if (GridLayoutManager.this.mReverseFlowPrimary) {
if (i > position) {
i3 = 1;
}
} else if (i < position) {
i3 = 1;
}
if (i3 != 0) {
i2 = -1;
}
if (GridLayoutManager.this.mOrientation == 0) {
return new PointF((float) i2, 0.0f);
}
return new PointF(0.0f, (float) i2);
}
}
class LayoutParams extends android.support.v7.widget.RecyclerView.LayoutParams {
private int[] mAlignMultiple;
private int mAlignX;
private int mAlignY;
private ItemAlignmentFacet mAlignmentFacet;
private int mBottomInset;
private int mLeftInset;
private int mRightInset;
private int mTopInset;
public LayoutParams(Context context, AttributeSet attributeSet) {
super(context, attributeSet);
}
public LayoutParams(int i, int i2) {
super(i, i2);
}
public LayoutParams(MarginLayoutParams marginLayoutParams) {
super(marginLayoutParams);
}
public LayoutParams(android.view.ViewGroup.LayoutParams layoutParams) {
super(layoutParams);
}
public LayoutParams(android.support.v7.widget.RecyclerView.LayoutParams layoutParams) {
super(layoutParams);
}
public LayoutParams(LayoutParams layoutParams) {
super((android.support.v7.widget.RecyclerView.LayoutParams) layoutParams);
}
int getAlignX() {
return this.mAlignX;
}
int getAlignY() {
return this.mAlignY;
}
int getOpticalLeft(View view) {
return view.getLeft() + this.mLeftInset;
}
int getOpticalTop(View view) {
return view.getTop() + this.mTopInset;
}
int getOpticalRight(View view) {
return view.getRight() - this.mRightInset;
}
int getOpticalBottom(View view) {
return view.getBottom() - this.mBottomInset;
}
int getOpticalWidth(View view) {
return (view.getWidth() - this.mLeftInset) - this.mRightInset;
}
int getOpticalHeight(View view) {
return (view.getHeight() - this.mTopInset) - this.mBottomInset;
}
int getOpticalLeftInset() {
return this.mLeftInset;
}
int getOpticalRightInset() {
return this.mRightInset;
}
int getOpticalTopInset() {
return this.mTopInset;
}
int getOpticalBottomInset() {
return this.mBottomInset;
}
void setAlignX(int i) {
this.mAlignX = i;
}
void setAlignY(int i) {
this.mAlignY = i;
}
void setItemAlignmentFacet(ItemAlignmentFacet itemAlignmentFacet) {
this.mAlignmentFacet = itemAlignmentFacet;
}
ItemAlignmentFacet getItemAlignmentFacet() {
return this.mAlignmentFacet;
}
void calculateItemAlignments(int i, View view) {
ItemAlignmentDef[] alignmentDefs = this.mAlignmentFacet.getAlignmentDefs();
if (this.mAlignMultiple == null || this.mAlignMultiple.length != alignmentDefs.length) {
this.mAlignMultiple = new int[alignmentDefs.length];
}
for (int i2 = 0; i2 < alignmentDefs.length; i2++) {
this.mAlignMultiple[i2] = ItemAlignmentFacetHelper.getAlignmentPosition(view, alignmentDefs[i2], i);
}
if (i == 0) {
this.mAlignX = this.mAlignMultiple[0];
} else {
this.mAlignY = this.mAlignMultiple[0];
}
}
int[] getAlignMultiple() {
return this.mAlignMultiple;
}
void setOpticalInsets(int i, int i2, int i3, int i4) {
this.mLeftInset = i;
this.mTopInset = i2;
this.mRightInset = i3;
this.mBottomInset = i4;
}
}
final class PendingMoveSmoothScroller extends GridLinearSmoothScroller {
static final int TARGET_UNDEFINED = -2;
private int mPendingMoves;
private final boolean mStaggeredGrid;
PendingMoveSmoothScroller(int i, boolean z) {
super();
this.mPendingMoves = i;
this.mStaggeredGrid = z;
setTargetPosition(-2);
}
final void increasePendingMoves() {
if (this.mPendingMoves < 10) {
this.mPendingMoves++;
}
}
final void decreasePendingMoves() {
if (this.mPendingMoves > -10) {
this.mPendingMoves--;
}
}
final void consumePendingMovesBeforeLayout() {
if (!this.mStaggeredGrid && this.mPendingMoves != 0) {
int access$600;
View view = null;
if (this.mPendingMoves > 0) {
access$600 = GridLayoutManager.this.mFocusPosition + GridLayoutManager.this.mNumRows;
} else {
access$600 = GridLayoutManager.this.mFocusPosition - GridLayoutManager.this.mNumRows;
}
int i = access$600;
while (this.mPendingMoves != 0) {
View findViewByPosition = findViewByPosition(i);
if (findViewByPosition == null) {
break;
}
int access$700;
if (GridLayoutManager.this.canScrollTo(findViewByPosition)) {
GridLayoutManager.this.mFocusPosition = i;
GridLayoutManager.this.mSubFocusPosition = 0;
if (this.mPendingMoves > 0) {
this.mPendingMoves--;
} else {
this.mPendingMoves++;
}
} else {
findViewByPosition = view;
}
if (this.mPendingMoves > 0) {
access$700 = GridLayoutManager.this.mNumRows + i;
} else {
access$700 = i - GridLayoutManager.this.mNumRows;
}
i = access$700;
view = findViewByPosition;
}
if (view != null && GridLayoutManager.this.hasFocus()) {
GridLayoutManager.this.mInSelection = true;
view.requestFocus();
GridLayoutManager.this.mInSelection = false;
}
}
}
final void consumePendingMovesAfterLayout() {
if (this.mStaggeredGrid && this.mPendingMoves != 0) {
this.mPendingMoves = GridLayoutManager.this.processSelectionMoves(true, this.mPendingMoves);
}
if (this.mPendingMoves == 0 || ((this.mPendingMoves > 0 && GridLayoutManager.this.hasCreatedLastItem()) || (this.mPendingMoves < 0 && GridLayoutManager.this.hasCreatedFirstItem()))) {
setTargetPosition(GridLayoutManager.this.mFocusPosition);
stop();
}
}
protected final void updateActionForInterimTarget(Action action) {
if (this.mPendingMoves != 0) {
super.updateActionForInterimTarget(action);
}
}
public final PointF computeScrollVectorForPosition(int i) {
if (this.mPendingMoves == 0) {
return null;
}
int i2 = (GridLayoutManager.this.mReverseFlowPrimary ? this.mPendingMoves > 0 : this.mPendingMoves < 0) ? -1 : 1;
if (GridLayoutManager.this.mOrientation == 0) {
return new PointF((float) i2, 0.0f);
}
return new PointF(0.0f, (float) i2);
}
protected final void onStop() {
super.onStop();
this.mPendingMoves = 0;
GridLayoutManager.this.mPendingMoveSmoothScroller = null;
View findViewByPosition = findViewByPosition(getTargetPosition());
if (findViewByPosition != null) {
GridLayoutManager.this.scrollToView(findViewByPosition, true);
}
}
}
final class SavedState implements Parcelable {
public static final Creator<SavedState> CREATOR = new C01591();
Bundle childStates = Bundle.EMPTY;
int index;
final class C01591 implements Creator<SavedState> {
C01591() {
}
public final SavedState createFromParcel(Parcel parcel) {
return new SavedState(parcel);
}
public final SavedState[] newArray(int i) {
return new SavedState[i];
}
}
public final void writeToParcel(Parcel parcel, int i) {
parcel.writeInt(this.index);
parcel.writeBundle(this.childStates);
}
public final int describeContents() {
return 0;
}
SavedState(Parcel parcel) {
this.index = parcel.readInt();
this.childStates = parcel.readBundle(GridLayoutManager.class.getClassLoader());
}
SavedState() {
}
}
private String getTag() {
return "GridLayoutManager:" + this.mBaseGridView.getId();
}
public GridLayoutManager(BaseGridView baseGridView) {
this.mBaseGridView = baseGridView;
}
public final void setOrientation(int i) {
if (i == 0 || i == 1) {
this.mOrientation = i;
this.mWindowAlignment.setOrientation(i);
this.mItemAlignment.setOrientation(i);
this.mForceFullLayout = true;
}
}
public final void onRtlPropertiesChanged(int i) {
boolean z = true;
if (this.mOrientation == 0) {
this.mReverseFlowPrimary = i == 1;
this.mReverseFlowSecondary = false;
} else {
boolean z2;
if (i == 1) {
z2 = true;
} else {
z2 = false;
}
this.mReverseFlowSecondary = z2;
this.mReverseFlowPrimary = false;
}
Axis axis = this.mWindowAlignment.horizontal;
if (i != 1) {
z = false;
}
axis.setReversedFlow(z);
}
public final int getFocusScrollStrategy() {
return this.mFocusScrollStrategy;
}
public final void setFocusScrollStrategy(int i) {
this.mFocusScrollStrategy = i;
}
public final void setWindowAlignment(int i) {
this.mWindowAlignment.mainAxis().setWindowAlignment(i);
}
public final int getWindowAlignment() {
return this.mWindowAlignment.mainAxis().getWindowAlignment();
}
public final void setWindowAlignmentOffset(int i) {
this.mWindowAlignment.mainAxis().setWindowAlignmentOffset(i);
}
public final int getWindowAlignmentOffset() {
return this.mWindowAlignment.mainAxis().getWindowAlignmentOffset();
}
public final void setWindowAlignmentOffsetPercent(float f) {
this.mWindowAlignment.mainAxis().setWindowAlignmentOffsetPercent(f);
}
public final float getWindowAlignmentOffsetPercent() {
return this.mWindowAlignment.mainAxis().getWindowAlignmentOffsetPercent();
}
public final void setItemAlignmentOffset(int i) {
this.mItemAlignment.mainAxis().setItemAlignmentOffset(i);
updateChildAlignments();
}
public final int getItemAlignmentOffset() {
return this.mItemAlignment.mainAxis().getItemAlignmentOffset();
}
public final void setItemAlignmentOffsetWithPadding(boolean z) {
this.mItemAlignment.mainAxis().setItemAlignmentOffsetWithPadding(z);
updateChildAlignments();
}
public final boolean isItemAlignmentOffsetWithPadding() {
return this.mItemAlignment.mainAxis().isItemAlignmentOffsetWithPadding();
}
public final void setItemAlignmentOffsetPercent(float f) {
this.mItemAlignment.mainAxis().setItemAlignmentOffsetPercent(f);
updateChildAlignments();
}
public final float getItemAlignmentOffsetPercent() {
return this.mItemAlignment.mainAxis().getItemAlignmentOffsetPercent();
}
public final void setItemAlignmentViewId(int i) {
this.mItemAlignment.mainAxis().setItemAlignmentViewId(i);
updateChildAlignments();
}
public final int getItemAlignmentViewId() {
return this.mItemAlignment.mainAxis().getItemAlignmentViewId();
}
public final void setFocusOutAllowed(boolean z, boolean z2) {
this.mFocusOutFront = z;
this.mFocusOutEnd = z2;
}
public final void setNumRows(int i) {
if (i < 0) {
throw new IllegalArgumentException();
}
this.mNumRowsRequested = i;
}
public final void setRowHeight(int i) {
if (i >= 0 || i == -2) {
this.mRowSizeSecondaryRequested = i;
return;
}
throw new IllegalArgumentException("Invalid row height: " + i);
}
public final void setItemMargin(int i) {
this.mHorizontalMargin = i;
this.mVerticalMargin = i;
this.mMarginSecondary = i;
this.mMarginPrimary = i;
}
public final void setVerticalMargin(int i) {
if (this.mOrientation == 0) {
this.mVerticalMargin = i;
this.mMarginSecondary = i;
return;
}
this.mVerticalMargin = i;
this.mMarginPrimary = i;
}
public final void setHorizontalMargin(int i) {
if (this.mOrientation == 0) {
this.mHorizontalMargin = i;
this.mMarginPrimary = i;
return;
}
this.mHorizontalMargin = i;
this.mMarginSecondary = i;
}
public final int getVerticalMargin() {
return this.mVerticalMargin;
}
public final int getHorizontalMargin() {
return this.mHorizontalMargin;
}
public final void setGravity(int i) {
this.mGravity = i;
}
protected final boolean hasDoneFirstLayout() {
return this.mGrid != null;
}
public final void setOnChildSelectedListener(OnChildSelectedListener onChildSelectedListener) {
this.mChildSelectedListener = onChildSelectedListener;
}
public final void setOnChildViewHolderSelectedListener(OnChildViewHolderSelectedListener onChildViewHolderSelectedListener) {
this.mChildViewHolderSelectedListener = onChildViewHolderSelectedListener;
}
final void setOnChildLaidOutListener(OnChildLaidOutListener onChildLaidOutListener) {
this.mChildLaidOutListener = onChildLaidOutListener;
}
private int getPositionByView(View view) {
if (view == null) {
return -1;
}
LayoutParams layoutParams = (LayoutParams) view.getLayoutParams();
if (layoutParams == null || layoutParams.isItemRemoved()) {
return -1;
}
return layoutParams.getViewPosition();
}
private int getSubPositionByView(View view, View view2) {
if (view == null || view2 == null) {
return 0;
}
ItemAlignmentFacet itemAlignmentFacet = ((LayoutParams) view.getLayoutParams()).getItemAlignmentFacet();
if (itemAlignmentFacet != null) {
ItemAlignmentDef[] alignmentDefs = itemAlignmentFacet.getAlignmentDefs();
if (alignmentDefs.length > 1) {
while (view2 != view) {
int id = view2.getId();
if (id != -1) {
for (int i = 1; i < alignmentDefs.length; i++) {
if (alignmentDefs[i].getItemAlignmentFocusViewId() == id) {
return i;
}
}
continue;
}
view2 = (View) view2.getParent();
}
}
}
return 0;
}
private int getPositionByIndex(int i) {
return getPositionByView(getChildAt(i));
}
private void dispatchChildSelected() {
long j = -1;
if (this.mChildSelectedListener != null || this.mChildViewHolderSelectedListener != null) {
View findViewByPosition = this.mFocusPosition == -1 ? null : findViewByPosition(this.mFocusPosition);
if (findViewByPosition != null) {
ViewHolder childViewHolder = this.mBaseGridView.getChildViewHolder(findViewByPosition);
if (this.mChildSelectedListener != null) {
OnChildSelectedListener onChildSelectedListener = this.mChildSelectedListener;
ViewGroup viewGroup = this.mBaseGridView;
int i = this.mFocusPosition;
if (childViewHolder != null) {
j = childViewHolder.getItemId();
}
onChildSelectedListener.onChildSelected(viewGroup, findViewByPosition, i, j);
}
if (this.mChildViewHolderSelectedListener != null) {
this.mChildViewHolderSelectedListener.onChildViewHolderSelected(this.mBaseGridView, childViewHolder, this.mFocusPosition, this.mSubFocusPosition);
}
} else {
if (this.mChildSelectedListener != null) {
this.mChildSelectedListener.onChildSelected(this.mBaseGridView, null, -1, -1);
}
if (this.mChildViewHolderSelectedListener != null) {
this.mChildViewHolderSelectedListener.onChildViewHolderSelected(this.mBaseGridView, null, -1, 0);
}
}
if (!this.mInLayout && !this.mBaseGridView.isLayoutRequested()) {
int childCount = getChildCount();
for (int i2 = 0; i2 < childCount; i2++) {
if (getChildAt(i2).isLayoutRequested()) {
forceRequestLayout();
return;
}
}
}
}
}
public final boolean canScrollHorizontally() {
return this.mOrientation == 0 || this.mNumRows > 1;
}
public final boolean canScrollVertically() {
return this.mOrientation == 1 || this.mNumRows > 1;
}
public final android.support.v7.widget.RecyclerView.LayoutParams generateDefaultLayoutParams() {
return new LayoutParams(-2, -2);
}
public final android.support.v7.widget.RecyclerView.LayoutParams generateLayoutParams(Context context, AttributeSet attributeSet) {
return new LayoutParams(context, attributeSet);
}
public final android.support.v7.widget.RecyclerView.LayoutParams generateLayoutParams(android.view.ViewGroup.LayoutParams layoutParams) {
if (layoutParams instanceof LayoutParams) {
return new LayoutParams((LayoutParams) layoutParams);
}
if (layoutParams instanceof android.support.v7.widget.RecyclerView.LayoutParams) {
return new LayoutParams((android.support.v7.widget.RecyclerView.LayoutParams) layoutParams);
}
if (layoutParams instanceof MarginLayoutParams) {
return new LayoutParams((MarginLayoutParams) layoutParams);
}
return new LayoutParams(layoutParams);
}
protected final View getViewForPosition(int i) {
return this.mRecycler.getViewForPosition(i);
}
final int getOpticalLeft(View view) {
return ((LayoutParams) view.getLayoutParams()).getOpticalLeft(view);
}
final int getOpticalRight(View view) {
return ((LayoutParams) view.getLayoutParams()).getOpticalRight(view);
}
final int getOpticalTop(View view) {
return ((LayoutParams) view.getLayoutParams()).getOpticalTop(view);
}
final int getOpticalBottom(View view) {
return ((LayoutParams) view.getLayoutParams()).getOpticalBottom(view);
}
private int getViewMin(View view) {
return this.mOrientation == 0 ? getOpticalLeft(view) : getOpticalTop(view);
}
private int getViewMax(View view) {
return this.mOrientation == 0 ? getOpticalRight(view) : getOpticalBottom(view);
}
private int getViewPrimarySize(View view) {
LayoutParams layoutParams = (LayoutParams) view.getLayoutParams();
return this.mOrientation == 0 ? layoutParams.getOpticalWidth(view) : layoutParams.getOpticalHeight(view);
}
private int getViewCenter(View view) {
return this.mOrientation == 0 ? getViewCenterX(view) : getViewCenterY(view);
}
private int getViewCenterSecondary(View view) {
return this.mOrientation == 0 ? getViewCenterY(view) : getViewCenterX(view);
}
private int getViewCenterX(View view) {
LayoutParams layoutParams = (LayoutParams) view.getLayoutParams();
return layoutParams.getAlignX() + layoutParams.getOpticalLeft(view);
}
private int getViewCenterY(View view) {
LayoutParams layoutParams = (LayoutParams) view.getLayoutParams();
return layoutParams.getAlignY() + layoutParams.getOpticalTop(view);
}
private void saveContext(Recycler recycler, State state) {
if (!(this.mRecycler == null && this.mState == null)) {
Log.e(TAG, "Recycler information was not released, bug!");
}
this.mRecycler = recycler;
this.mState = state;
}
private void leaveContext() {
this.mRecycler = null;
this.mState = null;
}
private boolean layoutInit() {
boolean z = this.mGrid != null && this.mFocusPosition >= 0 && this.mFocusPosition >= this.mGrid.getFirstVisibleIndex() && this.mFocusPosition <= this.mGrid.getLastVisibleIndex();
int itemCount = this.mState.getItemCount();
if (itemCount == 0) {
this.mFocusPosition = -1;
this.mSubFocusPosition = 0;
} else if (this.mFocusPosition >= itemCount) {
this.mFocusPosition = itemCount - 1;
this.mSubFocusPosition = 0;
} else if (this.mFocusPosition == -1 && itemCount > 0) {
this.mFocusPosition = 0;
this.mSubFocusPosition = 0;
}
if (this.mState.didStructureChange() || this.mGrid.getFirstVisibleIndex() < 0 || this.mForceFullLayout || this.mGrid == null || this.mGrid.getNumRows() != this.mNumRows) {
this.mForceFullLayout = false;
int firstVisibleIndex = z ? this.mGrid.getFirstVisibleIndex() : 0;
if (!(this.mGrid != null && this.mNumRows == this.mGrid.getNumRows() && this.mReverseFlowPrimary == this.mGrid.isReversedFlow())) {
this.mGrid = Grid.createGrid(this.mNumRows);
this.mGrid.setProvider(this.mGridProvider);
this.mGrid.setReversedFlow(this.mReverseFlowPrimary);
}
initScrollController();
updateScrollSecondAxis();
this.mGrid.setMargin(this.mMarginPrimary);
detachAndScrapAttachedViews(this.mRecycler);
this.mGrid.resetVisibleIndex();
if (this.mFocusPosition == -1) {
this.mBaseGridView.clearFocus();
}
this.mWindowAlignment.mainAxis().invalidateScrollMin();
this.mWindowAlignment.mainAxis().invalidateScrollMax();
if (!z || firstVisibleIndex > this.mFocusPosition) {
this.mGrid.setStart(this.mFocusPosition);
} else {
this.mGrid.setStart(firstVisibleIndex);
}
return false;
}
updateScrollController();
updateScrollSecondAxis();
this.mGrid.setMargin(this.mMarginPrimary);
if (z || this.mFocusPosition == -1) {
return true;
}
this.mGrid.setStart(this.mFocusPosition);
return true;
}
private int getRowSizeSecondary(int i) {
if (this.mFixedRowSizeSecondary != 0) {
return this.mFixedRowSizeSecondary;
}
if (this.mRowSizeSecondary == null) {
return 0;
}
return this.mRowSizeSecondary[i];
}
private int getRowStartSecondary(int i) {
int i2 = 0;
int i3;
int rowSizeSecondary;
if (this.mReverseFlowSecondary) {
i3 = this.mNumRows - 1;
while (i3 > i) {
rowSizeSecondary = (getRowSizeSecondary(i3) + this.mMarginSecondary) + i2;
i3--;
i2 = rowSizeSecondary;
}
} else {
i3 = 0;
while (i3 < i) {
rowSizeSecondary = (getRowSizeSecondary(i3) + this.mMarginSecondary) + i2;
i3++;
i2 = rowSizeSecondary;
}
}
return i2;
}
private int getSizeSecondary() {
int i = this.mReverseFlowSecondary ? 0 : this.mNumRows - 1;
return getRowSizeSecondary(i) + getRowStartSecondary(i);
}
private void measureScrapChild(int i, int i2, int i3, int[] iArr) {
View viewForPosition = this.mRecycler.getViewForPosition(i);
if (viewForPosition != null) {
LayoutParams layoutParams = (LayoutParams) viewForPosition.getLayoutParams();
viewForPosition.measure(ViewGroup.getChildMeasureSpec(i2, getPaddingLeft() + getPaddingRight(), layoutParams.width), ViewGroup.getChildMeasureSpec(i3, getPaddingTop() + getPaddingBottom(), layoutParams.height));
iArr[0] = viewForPosition.getMeasuredWidth();
iArr[1] = viewForPosition.getMeasuredHeight();
this.mRecycler.recycleView(viewForPosition);
}
}
private boolean processRowSizeSecondary(boolean z) {
if (this.mFixedRowSizeSecondary != 0 || this.mRowSizeSecondary == null) {
return false;
}
CircularIntArray[] itemPositionsInRows = this.mGrid == null ? null : this.mGrid.getItemPositionsInRows();
boolean z2 = false;
int i = -1;
int i2 = -1;
int i3 = 0;
while (i3 < this.mNumRows) {
CircularIntArray circularIntArray = itemPositionsInRows == null ? null : itemPositionsInRows[i3];
int size = circularIntArray == null ? 0 : circularIntArray.size();
int i4 = 0;
int i5 = -1;
while (i4 < size) {
int i6 = circularIntArray.get(i4);
int i7 = circularIntArray.get(i4 + 1);
int i8 = i6;
i6 = i5;
while (i8 <= i7) {
View findViewByPosition = findViewByPosition(i8);
if (findViewByPosition != null) {
if (z && findViewByPosition.isLayoutRequested()) {
measureChild(findViewByPosition);
}
i5 = this.mOrientation == 0 ? findViewByPosition.getMeasuredHeight() : findViewByPosition.getMeasuredWidth();
if (i5 > i6) {
i8++;
i6 = i5;
}
}
i5 = i6;
i8++;
i6 = i5;
}
i4 += 2;
i5 = i6;
}
size = this.mState.getItemCount();
if (!z || i5 >= 0 || size <= 0) {
size = i5;
} else {
if (i < 0 && r2 < 0) {
if (this.mFocusPosition == -1) {
i2 = 0;
} else if (this.mFocusPosition >= size) {
i2 = size - 1;
} else {
i2 = this.mFocusPosition;
}
measureScrapChild(i2, MeasureSpec.makeMeasureSpec(0, 0), MeasureSpec.makeMeasureSpec(0, 0), this.mMeasuredDimension);
i = this.mMeasuredDimension[0];
i2 = this.mMeasuredDimension[1];
}
size = this.mOrientation == 0 ? i2 : i;
}
if (size < 0) {
size = 0;
}
if (this.mRowSizeSecondary[i3] != size) {
this.mRowSizeSecondary[i3] = size;
z2 = true;
}
i3++;
}
return z2;
}
private void updateRowSecondarySizeRefresh() {
this.mRowSecondarySizeRefresh = processRowSizeSecondary(false);
if (this.mRowSecondarySizeRefresh) {
forceRequestLayout();
}
}
private void forceRequestLayout() {
ViewCompat.postOnAnimation(this.mBaseGridView, this.mRequestLayoutRunnable);
}
public final void onMeasure(Recycler recycler, State state, int i, int i2) {
int size;
int size2;
int mode;
int paddingTop;
int i3 = 1;
saveContext(recycler, state);
if (this.mOrientation == 0) {
size = MeasureSpec.getSize(i);
size2 = MeasureSpec.getSize(i2);
mode = MeasureSpec.getMode(i2);
paddingTop = getPaddingTop() + getPaddingBottom();
} else {
size2 = MeasureSpec.getSize(i);
size = MeasureSpec.getSize(i2);
mode = MeasureSpec.getMode(i);
paddingTop = getPaddingLeft() + getPaddingRight();
}
this.mMaxSizeSecondary = size2;
if (this.mRowSizeSecondaryRequested == -2) {
this.mNumRows = this.mNumRowsRequested == 0 ? 1 : this.mNumRowsRequested;
this.mFixedRowSizeSecondary = 0;
if (this.mRowSizeSecondary == null || this.mRowSizeSecondary.length != this.mNumRows) {
this.mRowSizeSecondary = new int[this.mNumRows];
}
processRowSizeSecondary(true);
switch (mode) {
case Integer.MIN_VALUE:
size2 = Math.min(paddingTop + getSizeSecondary(), this.mMaxSizeSecondary);
break;
case 0:
size2 = getSizeSecondary() + paddingTop;
break;
case 1073741824:
size2 = this.mMaxSizeSecondary;
break;
default:
throw new IllegalStateException("wrong spec");
}
}
switch (mode) {
case Integer.MIN_VALUE:
case 1073741824:
if (this.mNumRowsRequested == 0 && this.mRowSizeSecondaryRequested == 0) {
this.mNumRows = 1;
this.mFixedRowSizeSecondary = size2 - paddingTop;
} else if (this.mNumRowsRequested == 0) {
this.mFixedRowSizeSecondary = this.mRowSizeSecondaryRequested;
this.mNumRows = (this.mMarginSecondary + size2) / (this.mRowSizeSecondaryRequested + this.mMarginSecondary);
} else if (this.mRowSizeSecondaryRequested == 0) {
this.mNumRows = this.mNumRowsRequested;
this.mFixedRowSizeSecondary = ((size2 - paddingTop) - (this.mMarginSecondary * (this.mNumRows - 1))) / this.mNumRows;
} else {
this.mNumRows = this.mNumRowsRequested;
this.mFixedRowSizeSecondary = this.mRowSizeSecondaryRequested;
}
if (mode == Integer.MIN_VALUE) {
paddingTop += (this.mFixedRowSizeSecondary * this.mNumRows) + (this.mMarginSecondary * (this.mNumRows - 1));
if (paddingTop < size2) {
size2 = paddingTop;
break;
}
}
break;
case 0:
if (this.mRowSizeSecondaryRequested != 0) {
this.mFixedRowSizeSecondary = this.mRowSizeSecondaryRequested;
if (this.mNumRowsRequested != 0) {
i3 = this.mNumRowsRequested;
}
this.mNumRows = i3;
size2 = ((this.mFixedRowSizeSecondary * this.mNumRows) + (this.mMarginSecondary * (this.mNumRows - 1))) + paddingTop;
break;
} else if (this.mOrientation == 0) {
throw new IllegalStateException("Must specify rowHeight or view height");
} else {
throw new IllegalStateException("Must specify columnWidth or view width");
}
default:
throw new IllegalStateException("wrong spec");
}
if (this.mOrientation == 0) {
setMeasuredDimension(size, size2);
} else {
setMeasuredDimension(size2, size);
}
leaveContext();
}
private void measureChild(View view) {
int makeMeasureSpec;
int childMeasureSpec;
android.view.ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
if (this.mRowSizeSecondaryRequested == -2) {
makeMeasureSpec = MeasureSpec.makeMeasureSpec(0, 0);
} else {
makeMeasureSpec = MeasureSpec.makeMeasureSpec(this.mFixedRowSizeSecondary, 1073741824);
}
if (this.mOrientation == 0) {
childMeasureSpec = ViewGroup.getChildMeasureSpec(MeasureSpec.makeMeasureSpec(0, 0), 0, layoutParams.width);
makeMeasureSpec = ViewGroup.getChildMeasureSpec(makeMeasureSpec, 0, layoutParams.height);
} else {
int childMeasureSpec2 = ViewGroup.getChildMeasureSpec(MeasureSpec.makeMeasureSpec(0, 0), 0, layoutParams.height);
childMeasureSpec = ViewGroup.getChildMeasureSpec(makeMeasureSpec, 0, layoutParams.width);
makeMeasureSpec = childMeasureSpec2;
}
view.measure(childMeasureSpec, makeMeasureSpec);
}
private <E> E getFacet(ViewHolder viewHolder, Class<? extends E> cls) {
E e = null;
if (viewHolder instanceof FacetProvider) {
e = ((FacetProvider) viewHolder).getFacet(cls);
}
if (e != null || this.mFacetProviderAdapter == null) {
return e;
}
FacetProvider facetProvider = this.mFacetProviderAdapter.getFacetProvider(viewHolder.getItemViewType());
if (facetProvider != null) {
return facetProvider.getFacet(cls);
}
return e;
}
private void layoutChild(int i, View view, int i2, int i3, int i4) {
int i5;
int i6;
int i7;
int measuredHeight = this.mOrientation == 0 ? view.getMeasuredHeight() : view.getMeasuredWidth();
if (this.mFixedRowSizeSecondary > 0) {
measuredHeight = Math.min(measuredHeight, this.mFixedRowSizeSecondary);
}
int i8 = this.mGravity & DvbApi.DVB_SVC_FAV_GetIndex;
int absoluteGravity = (this.mReverseFlowPrimary || this.mReverseFlowSecondary) ? Gravity.getAbsoluteGravity(this.mGravity & GravityCompat.RELATIVE_HORIZONTAL_GRAVITY_MASK, 1) : this.mGravity & 7;
if (!((this.mOrientation == 0 && i8 == 48) || (this.mOrientation == 1 && absoluteGravity == 3))) {
if ((this.mOrientation == 0 && i8 == 80) || (this.mOrientation == 1 && absoluteGravity == 5)) {
i4 += getRowSizeSecondary(i) - measuredHeight;
} else if ((this.mOrientation == 0 && i8 == 16) || (this.mOrientation == 1 && absoluteGravity == 1)) {
i4 += (getRowSizeSecondary(i) - measuredHeight) / 2;
}
}
if (this.mOrientation == 0) {
i5 = i4 + measuredHeight;
i6 = i3;
i7 = i4;
i8 = i2;
} else {
i6 = i4 + measuredHeight;
i5 = i3;
i7 = i2;
i8 = i4;
}
view.layout(i8, i7, i6, i5);
updateChildOpticalInsets(view, i8, i7, i6, i5);
updateChildAlignments(view);
}
private void updateChildOpticalInsets(View view, int i, int i2, int i3, int i4) {
((LayoutParams) view.getLayoutParams()).setOpticalInsets(i - view.getLeft(), i2 - view.getTop(), view.getRight() - i3, view.getBottom() - i4);
}
private void updateChildAlignments(View view) {
LayoutParams layoutParams = (LayoutParams) view.getLayoutParams();
if (layoutParams.getItemAlignmentFacet() == null) {
layoutParams.setAlignX(this.mItemAlignment.horizontal.getAlignmentPosition(view));
layoutParams.setAlignY(this.mItemAlignment.vertical.getAlignmentPosition(view));
return;
}
layoutParams.calculateItemAlignments(this.mOrientation, view);
if (this.mOrientation == 0) {
layoutParams.setAlignY(this.mItemAlignment.vertical.getAlignmentPosition(view));
} else {
layoutParams.setAlignX(this.mItemAlignment.horizontal.getAlignmentPosition(view));
}
}
private void updateChildAlignments() {
int childCount = getChildCount();
for (int i = 0; i < childCount; i++) {
updateChildAlignments(getChildAt(i));
}
}
final void setExtraLayoutSpace(int i) {
if (this.mExtraLayoutSpace != i) {
if (this.mExtraLayoutSpace < 0) {
throw new IllegalArgumentException("ExtraLayoutSpace must >= 0");
}
this.mExtraLayoutSpace = i;
requestLayout();
}
}
final int getExtraLayoutSpace() {
return this.mExtraLayoutSpace;
}
private void removeInvisibleViewsAtEnd() {
if (this.mPruneChild) {
this.mGrid.removeInvisibleItemsAtEnd(this.mFocusPosition, this.mReverseFlowPrimary ? -this.mExtraLayoutSpace : this.mSizePrimary + this.mExtraLayoutSpace);
}
}
private void removeInvisibleViewsAtFront() {
if (this.mPruneChild) {
this.mGrid.removeInvisibleItemsAtFront(this.mFocusPosition, this.mReverseFlowPrimary ? this.mSizePrimary + this.mExtraLayoutSpace : -this.mExtraLayoutSpace);
}
}
private boolean appendOneColumnVisibleItems() {
return this.mGrid.appendOneColumnVisibleItems();
}
private boolean prependOneColumnVisibleItems() {
return this.mGrid.prependOneColumnVisibleItems();
}
private void appendVisibleItems() {
this.mGrid.appendVisibleItems(this.mReverseFlowPrimary ? -this.mExtraLayoutSpace : this.mSizePrimary + this.mExtraLayoutSpace);
}
private void prependVisibleItems() {
this.mGrid.prependVisibleItems(this.mReverseFlowPrimary ? this.mSizePrimary + this.mExtraLayoutSpace : -this.mExtraLayoutSpace);
}
private void fastRelayout() {
Object obj;
int childCount = getChildCount();
int i = -1;
int i2 = 0;
while (i2 < childCount) {
View childAt = getChildAt(i2);
int positionByIndex = getPositionByIndex(i2);
Location location = this.mGrid.getLocation(positionByIndex);
if (location == null) {
i = positionByIndex;
obj = 1;
break;
}
int i3;
int i4;
int rowStartSecondary = getRowStartSecondary(location.row) - this.mScrollOffsetSecondary;
int viewMin = getViewMin(childAt);
int viewPrimarySize = getViewPrimarySize(childAt);
if (((LayoutParams) childAt.getLayoutParams()).viewNeedsUpdate()) {
i = this.mBaseGridView.indexOfChild(childAt);
detachAndScrapView(childAt, this.mRecycler);
childAt = getViewForPosition(positionByIndex);
addView(childAt, i);
}
if (childAt.isLayoutRequested()) {
measureChild(childAt);
}
if (this.mOrientation == 0) {
i = childAt.getMeasuredWidth();
i3 = viewMin + i;
i4 = i;
} else {
i = childAt.getMeasuredHeight();
i3 = viewMin + i;
i4 = i;
}
layoutChild(location.row, childAt, viewMin, i3, rowStartSecondary);
if (viewPrimarySize != i4) {
i = positionByIndex;
int i5 = 1;
break;
}
i2++;
i = positionByIndex;
}
obj = null;
if (obj != null) {
i5 = this.mGrid.getLastVisibleIndex();
this.mGrid.invalidateItemsAfter(i);
if (!this.mPruneChild) {
while (this.mGrid.appendOneColumnVisibleItems()) {
if (this.mGrid.getLastVisibleIndex() >= i5) {
break;
}
}
}
appendVisibleItems();
if (this.mFocusPosition >= 0 && this.mFocusPosition <= i5) {
while (this.mGrid.getLastVisibleIndex() < this.mFocusPosition) {
this.mGrid.appendOneColumnVisibleItems();
}
}
}
updateScrollMin();
updateScrollMax();
updateScrollSecondAxis();
}
public final void removeAndRecycleAllViews(Recycler recycler) {
for (int childCount = getChildCount() - 1; childCount >= 0; childCount--) {
removeAndRecycleViewAt(childCount, recycler);
}
}
public final void onLayoutChildren(Recycler recycler, State state) {
if (this.mNumRows == 0 || state.getItemCount() < 0) {
return;
}
if (this.mLayoutEnabled) {
int i;
int i2;
boolean hasFocus;
int i3;
boolean layoutInit;
int firstVisibleIndex;
int lastVisibleIndex;
View findViewByPosition;
View findViewByPosition2;
this.mInLayout = true;
if (state.didStructureChange()) {
this.mBaseGridView.stopScroll();
}
boolean z = !isSmoothScrolling() && this.mFocusScrollStrategy == 0;
if (!(this.mFocusPosition == -1 || this.mFocusPositionOffset == Integer.MIN_VALUE)) {
this.mFocusPosition += this.mFocusPositionOffset;
this.mSubFocusPosition = 0;
}
this.mFocusPositionOffset = 0;
saveContext(recycler, state);
if (!(this.mFocusPosition == -1 || !z || this.mBaseGridView.getScrollState() == 0)) {
View findViewByPosition3 = findViewByPosition(this.mFocusPosition);
if (findViewByPosition3 != null && getScrollPosition(findViewByPosition3, findViewByPosition3.findFocus(), sTwoInts)) {
i = sTwoInts[0];
i2 = sTwoInts[1];
hasFocus = this.mBaseGridView.hasFocus();
i3 = this.mFocusPosition;
layoutInit = layoutInit();
this.mInFastRelayout = layoutInit;
if (layoutInit) {
this.mInLayoutSearchFocus = hasFocus;
if (this.mFocusPosition != -1) {
while (appendOneColumnVisibleItems()) {
if (findViewByPosition(this.mFocusPosition) != null) {
break;
}
}
}
while (true) {
updateScrollMin();
updateScrollMax();
firstVisibleIndex = this.mGrid.getFirstVisibleIndex();
lastVisibleIndex = this.mGrid.getLastVisibleIndex();
findViewByPosition = findViewByPosition(this.mFocusPosition);
scrollToView(findViewByPosition, false);
if (!(findViewByPosition == null || !hasFocus || findViewByPosition.hasFocus())) {
findViewByPosition.requestFocus();
}
appendVisibleItems();
prependVisibleItems();
removeInvisibleViewsAtFront();
removeInvisibleViewsAtEnd();
if (this.mGrid.getFirstVisibleIndex() != firstVisibleIndex && this.mGrid.getLastVisibleIndex() == lastVisibleIndex) {
break;
}
}
} else {
fastRelayout();
if (this.mFocusPosition != -1) {
findViewByPosition2 = findViewByPosition(this.mFocusPosition);
if (findViewByPosition2 != null) {
if (z) {
scrollToView(findViewByPosition2, false);
}
if (hasFocus && !findViewByPosition2.hasFocus()) {
findViewByPosition2.requestFocus();
}
}
}
}
if (z) {
scrollDirectionPrimary(-i);
scrollDirectionSecondary(-i2);
}
appendVisibleItems();
prependVisibleItems();
removeInvisibleViewsAtFront();
removeInvisibleViewsAtEnd();
if (this.mRowSecondarySizeRefresh) {
updateRowSecondarySizeRefresh();
} else {
this.mRowSecondarySizeRefresh = false;
}
if (!this.mInFastRelayout && this.mFocusPosition != i3) {
dispatchChildSelected();
} else if (!this.mInFastRelayout && this.mInLayoutSearchFocus) {
dispatchChildSelected();
}
this.mInLayout = false;
leaveContext();
return;
}
}
i2 = 0;
i = 0;
hasFocus = this.mBaseGridView.hasFocus();
i3 = this.mFocusPosition;
layoutInit = layoutInit();
this.mInFastRelayout = layoutInit;
if (layoutInit) {
this.mInLayoutSearchFocus = hasFocus;
if (this.mFocusPosition != -1) {
while (appendOneColumnVisibleItems()) {
if (findViewByPosition(this.mFocusPosition) != null) {
break;
}
}
}
while (true) {
updateScrollMin();
updateScrollMax();
firstVisibleIndex = this.mGrid.getFirstVisibleIndex();
lastVisibleIndex = this.mGrid.getLastVisibleIndex();
findViewByPosition = findViewByPosition(this.mFocusPosition);
scrollToView(findViewByPosition, false);
findViewByPosition.requestFocus();
appendVisibleItems();
prependVisibleItems();
removeInvisibleViewsAtFront();
removeInvisibleViewsAtEnd();
if (this.mGrid.getFirstVisibleIndex() != firstVisibleIndex) {
}
}
} else {
fastRelayout();
if (this.mFocusPosition != -1) {
findViewByPosition2 = findViewByPosition(this.mFocusPosition);
if (findViewByPosition2 != null) {
if (z) {
scrollToView(findViewByPosition2, false);
}
findViewByPosition2.requestFocus();
}
}
}
if (z) {
scrollDirectionPrimary(-i);
scrollDirectionSecondary(-i2);
}
appendVisibleItems();
prependVisibleItems();
removeInvisibleViewsAtFront();
removeInvisibleViewsAtEnd();
if (this.mRowSecondarySizeRefresh) {
updateRowSecondarySizeRefresh();
} else {
this.mRowSecondarySizeRefresh = false;
}
if (!this.mInFastRelayout) {
}
dispatchChildSelected();
this.mInLayout = false;
leaveContext();
return;
}
discardLayoutInfo();
removeAndRecycleAllViews(recycler);
}
private void offsetChildrenSecondary(int i) {
int i2 = 0;
int childCount = getChildCount();
if (this.mOrientation == 0) {
while (i2 < childCount) {
getChildAt(i2).offsetTopAndBottom(i);
i2++;
}
return;
}
while (i2 < childCount) {
getChildAt(i2).offsetLeftAndRight(i);
i2++;
}
}
private void offsetChildrenPrimary(int i) {
int i2 = 0;
int childCount = getChildCount();
if (this.mOrientation == 1) {
while (i2 < childCount) {
getChildAt(i2).offsetTopAndBottom(i);
i2++;
}
return;
}
while (i2 < childCount) {
getChildAt(i2).offsetLeftAndRight(i);
i2++;
}
}
public final int scrollHorizontallyBy(int i, Recycler recycler, State state) {
if (!this.mLayoutEnabled || !hasDoneFirstLayout()) {
return 0;
}
int scrollDirectionPrimary;
saveContext(recycler, state);
this.mInScroll = true;
if (this.mOrientation == 0) {
scrollDirectionPrimary = scrollDirectionPrimary(i);
} else {
scrollDirectionPrimary = scrollDirectionSecondary(i);
}
leaveContext();
this.mInScroll = false;
return scrollDirectionPrimary;
}
public final int scrollVerticallyBy(int i, Recycler recycler, State state) {
if (!this.mLayoutEnabled || !hasDoneFirstLayout()) {
return 0;
}
int scrollDirectionPrimary;
this.mInScroll = true;
saveContext(recycler, state);
if (this.mOrientation == 1) {
scrollDirectionPrimary = scrollDirectionPrimary(i);
} else {
scrollDirectionPrimary = scrollDirectionSecondary(i);
}
leaveContext();
this.mInScroll = false;
return scrollDirectionPrimary;
}
private int scrollDirectionPrimary(int i) {
int maxScroll;
int i2;
int i3 = 1;
if (i > 0) {
if (!this.mWindowAlignment.mainAxis().isMaxUnknown()) {
maxScroll = this.mWindowAlignment.mainAxis().getMaxScroll();
if (this.mScrollOffsetPrimary + i > maxScroll) {
i2 = maxScroll - this.mScrollOffsetPrimary;
}
}
i2 = i;
} else {
if (i < 0 && !this.mWindowAlignment.mainAxis().isMinUnknown()) {
maxScroll = this.mWindowAlignment.mainAxis().getMinScroll();
if (this.mScrollOffsetPrimary + i < maxScroll) {
i2 = maxScroll - this.mScrollOffsetPrimary;
}
}
i2 = i;
}
if (i2 == 0) {
return 0;
}
offsetChildrenPrimary(-i2);
this.mScrollOffsetPrimary += i2;
if (this.mInLayout) {
return i2;
}
maxScroll = getChildCount();
if (this.mReverseFlowPrimary ? i2 > 0 : i2 < 0) {
prependVisibleItems();
} else {
appendVisibleItems();
}
if (getChildCount() > maxScroll) {
maxScroll = 1;
} else {
maxScroll = 0;
}
int childCount = getChildCount();
if (this.mReverseFlowPrimary ? i2 > 0 : i2 < 0) {
removeInvisibleViewsAtEnd();
} else {
removeInvisibleViewsAtFront();
}
if (getChildCount() >= childCount) {
i3 = 0;
}
if ((maxScroll | i3) != 0) {
updateRowSecondarySizeRefresh();
}
this.mBaseGridView.invalidate();
return i2;
}
private int scrollDirectionSecondary(int i) {
if (i == 0) {
return 0;
}
offsetChildrenSecondary(-i);
this.mScrollOffsetSecondary += i;
this.mBaseGridView.invalidate();
return i;
}
private void updateScrollMax() {
int i;
int lastVisibleIndex = !this.mReverseFlowPrimary ? this.mGrid.getLastVisibleIndex() : this.mGrid.getFirstVisibleIndex();
if (this.mReverseFlowPrimary) {
i = 0;
} else {
i = this.mState.getItemCount() - 1;
}
if (lastVisibleIndex >= 0) {
boolean z = lastVisibleIndex == i;
boolean isMaxUnknown = this.mWindowAlignment.mainAxis().isMaxUnknown();
if (z || !isMaxUnknown) {
int findRowMax = this.mGrid.findRowMax(true, sTwoInts) + this.mScrollOffsetPrimary;
int i2 = sTwoInts[1];
i = this.mWindowAlignment.mainAxis().getMaxEdge();
this.mWindowAlignment.mainAxis().setMaxEdge(findRowMax);
i2 = getPrimarySystemScrollPosition(findViewByPosition(i2));
this.mWindowAlignment.mainAxis().setMaxEdge(i);
if (z) {
this.mWindowAlignment.mainAxis().setMaxEdge(findRowMax);
this.mWindowAlignment.mainAxis().setMaxScroll(i2);
return;
}
this.mWindowAlignment.mainAxis().invalidateScrollMax();
}
}
}
private void updateScrollMin() {
int firstVisibleIndex = !this.mReverseFlowPrimary ? this.mGrid.getFirstVisibleIndex() : this.mGrid.getLastVisibleIndex();
int itemCount = !this.mReverseFlowPrimary ? 0 : this.mState.getItemCount() - 1;
if (firstVisibleIndex >= 0) {
if (firstVisibleIndex == itemCount) {
firstVisibleIndex = 1;
} else {
boolean z = false;
}
boolean isMinUnknown = this.mWindowAlignment.mainAxis().isMinUnknown();
if (firstVisibleIndex != 0 || !isMinUnknown) {
int findRowMin = this.mGrid.findRowMin(false, sTwoInts) + this.mScrollOffsetPrimary;
int i = sTwoInts[1];
itemCount = this.mWindowAlignment.mainAxis().getMinEdge();
this.mWindowAlignment.mainAxis().setMinEdge(findRowMin);
i = getPrimarySystemScrollPosition(findViewByPosition(i));
this.mWindowAlignment.mainAxis().setMinEdge(itemCount);
if (firstVisibleIndex != 0) {
this.mWindowAlignment.mainAxis().setMinEdge(findRowMin);
this.mWindowAlignment.mainAxis().setMinScroll(i);
return;
}
this.mWindowAlignment.mainAxis().invalidateScrollMin();
}
}
}
private void updateScrollSecondAxis() {
this.mWindowAlignment.secondAxis().setMinEdge(0);
this.mWindowAlignment.secondAxis().setMaxEdge(getSizeSecondary());
}
private void initScrollController() {
this.mWindowAlignment.reset();
this.mWindowAlignment.horizontal.setSize(getWidth());
this.mWindowAlignment.vertical.setSize(getHeight());
this.mWindowAlignment.horizontal.setPadding(getPaddingLeft(), getPaddingRight());
this.mWindowAlignment.vertical.setPadding(getPaddingTop(), getPaddingBottom());
this.mSizePrimary = this.mWindowAlignment.mainAxis().getSize();
this.mScrollOffsetPrimary = -this.mWindowAlignment.mainAxis().getPaddingLow();
this.mScrollOffsetSecondary = -this.mWindowAlignment.secondAxis().getPaddingLow();
}
private void updateScrollController() {
int paddingLeft;
int paddingTop;
if (this.mOrientation == 0) {
paddingLeft = getPaddingLeft() - this.mWindowAlignment.horizontal.getPaddingLow();
paddingTop = getPaddingTop() - this.mWindowAlignment.vertical.getPaddingLow();
} else {
paddingLeft = getPaddingTop() - this.mWindowAlignment.vertical.getPaddingLow();
paddingTop = getPaddingLeft() - this.mWindowAlignment.horizontal.getPaddingLow();
}
this.mScrollOffsetPrimary -= paddingLeft;
this.mScrollOffsetSecondary -= paddingTop;
this.mWindowAlignment.horizontal.setSize(getWidth());
this.mWindowAlignment.vertical.setSize(getHeight());
this.mWindowAlignment.horizontal.setPadding(getPaddingLeft(), getPaddingRight());
this.mWindowAlignment.vertical.setPadding(getPaddingTop(), getPaddingBottom());
this.mSizePrimary = this.mWindowAlignment.mainAxis().getSize();
}
public final void setSelection(RecyclerView recyclerView, int i, int i2) {
setSelection(recyclerView, i, 0, false, i2);
}
public final void setSelectionSmooth(RecyclerView recyclerView, int i) {
setSelection(recyclerView, i, 0, true, 0);
}
public final void setSelectionWithSub(RecyclerView recyclerView, int i, int i2, int i3) {
setSelection(recyclerView, i, i2, false, i3);
}
public final void setSelectionSmoothWithSub(RecyclerView recyclerView, int i, int i2) {
setSelection(recyclerView, i, i2, true, 0);
}
public final int getSelection() {
return this.mFocusPosition;
}
public final int getSubSelection() {
return this.mSubFocusPosition;
}
public final void setSelection(RecyclerView recyclerView, int i, int i2, boolean z, int i3) {
if ((this.mFocusPosition != i && i != -1) || i2 != this.mSubFocusPosition || i3 != this.mPrimaryScrollExtra) {
scrollToSelection(recyclerView, i, i2, z, i3);
}
}
private void scrollToSelection(RecyclerView recyclerView, int i, int i2, boolean z, int i3) {
this.mPrimaryScrollExtra = i3;
View findViewByPosition = findViewByPosition(i);
if (findViewByPosition != null) {
this.mInSelection = true;
scrollToView(findViewByPosition, z);
this.mInSelection = false;
return;
}
this.mFocusPosition = i;
this.mSubFocusPosition = i2;
this.mFocusPositionOffset = Integer.MIN_VALUE;
if (!this.mLayoutEnabled) {
return;
}
if (!z) {
this.mForceFullLayout = true;
recyclerView.requestLayout();
} else if (hasDoneFirstLayout()) {
startPositionSmoothScroller(i);
} else {
Log.w(getTag(), "setSelectionSmooth should not be called before first layout pass");
}
}
final void startPositionSmoothScroller(int i) {
SmoothScroller c01583 = new C01583();
c01583.setTargetPosition(i);
startSmoothScroll(c01583);
}
private void processPendingMovement(boolean z) {
boolean z2 = true;
if (z) {
if (hasCreatedLastItem()) {
return;
}
} else if (hasCreatedFirstItem()) {
return;
}
if (this.mPendingMoveSmoothScroller == null) {
this.mBaseGridView.stopScroll();
int i = z ? 1 : -1;
if (this.mNumRows <= 1) {
z2 = false;
}
SmoothScroller pendingMoveSmoothScroller = new PendingMoveSmoothScroller(i, z2);
this.mFocusPositionOffset = 0;
startSmoothScroll(pendingMoveSmoothScroller);
if (pendingMoveSmoothScroller.isRunning()) {
this.mPendingMoveSmoothScroller = pendingMoveSmoothScroller;
}
} else if (z) {
this.mPendingMoveSmoothScroller.increasePendingMoves();
} else {
this.mPendingMoveSmoothScroller.decreasePendingMoves();
}
}
public final void onItemsAdded(RecyclerView recyclerView, int i, int i2) {
if (!(this.mFocusPosition == -1 || this.mFocusPositionOffset == Integer.MIN_VALUE || i > this.mFocusPosition + this.mFocusPositionOffset)) {
this.mFocusPositionOffset += i2;
}
this.mChildrenStates.clear();
}
public final void onItemsChanged(RecyclerView recyclerView) {
this.mFocusPositionOffset = 0;
this.mChildrenStates.clear();
}
public final void onItemsRemoved(RecyclerView recyclerView, int i, int i2) {
if (!(this.mFocusPosition == -1 || this.mFocusPositionOffset == Integer.MIN_VALUE)) {
int i3 = this.mFocusPosition + this.mFocusPositionOffset;
if (i <= i3) {
if (i + i2 > i3) {
this.mFocusPositionOffset = Integer.MIN_VALUE;
} else {
this.mFocusPositionOffset -= i2;
}
}
}
this.mChildrenStates.clear();
}
public final void onItemsMoved(RecyclerView recyclerView, int i, int i2, int i3) {
if (!(this.mFocusPosition == -1 || this.mFocusPositionOffset == Integer.MIN_VALUE)) {
int i4 = this.mFocusPosition + this.mFocusPositionOffset;
if (i <= i4 && i4 < i + i3) {
this.mFocusPositionOffset += i2 - i;
} else if (i < i4 && i2 > i4 - i3) {
this.mFocusPositionOffset -= i3;
} else if (i > i4 && i2 < i4) {
this.mFocusPositionOffset += i3;
}
}
this.mChildrenStates.clear();
}
public final void onItemsUpdated(RecyclerView recyclerView, int i, int i2) {
int i3 = i + i2;
while (i < i3) {
this.mChildrenStates.remove(i);
i++;
}
}
public final boolean onRequestChildFocus(RecyclerView recyclerView, View view, View view2) {
if (!(this.mFocusSearchDisabled || getPositionByView(view) == -1 || this.mInLayout || this.mInSelection || this.mInScroll)) {
scrollToView(view, view2, true);
}
return true;
}
public final boolean requestChildRectangleOnScreen(RecyclerView recyclerView, View view, Rect rect, boolean z) {
return false;
}
final int getScrollOffsetX() {
return this.mOrientation == 0 ? this.mScrollOffsetPrimary : this.mScrollOffsetSecondary;
}
final int getScrollOffsetY() {
return this.mOrientation == 0 ? this.mScrollOffsetSecondary : this.mScrollOffsetPrimary;
}
public final void getViewSelectedOffsets(View view, int[] iArr) {
if (this.mOrientation == 0) {
iArr[0] = getPrimarySystemScrollPosition(view) - this.mScrollOffsetPrimary;
iArr[1] = getSecondarySystemScrollPosition(view) - this.mScrollOffsetSecondary;
return;
}
iArr[1] = getPrimarySystemScrollPosition(view) - this.mScrollOffsetPrimary;
iArr[0] = getSecondarySystemScrollPosition(view) - this.mScrollOffsetSecondary;
}
private int getPrimarySystemScrollPosition(View view) {
boolean z;
int itemCount;
boolean z2;
boolean z3 = true;
int viewCenter = this.mScrollOffsetPrimary + getViewCenter(view);
int viewMin = getViewMin(view);
int viewMax = getViewMax(view);
if (this.mReverseFlowPrimary) {
if (this.mGrid.getFirstVisibleIndex() == 0) {
z = true;
} else {
z = false;
}
int lastVisibleIndex = this.mGrid.getLastVisibleIndex();
if (this.mState == null) {
itemCount = getItemCount();
} else {
itemCount = this.mState.getItemCount();
}
if (lastVisibleIndex != itemCount - 1) {
z3 = false;
}
z2 = z;
z = z3;
z3 = z2;
} else {
z = this.mGrid.getFirstVisibleIndex() == 0;
if (this.mGrid.getLastVisibleIndex() != (this.mState == null ? getItemCount() : this.mState.getItemCount()) - 1) {
z3 = false;
}
}
itemCount = getChildCount() - 1;
z2 = z3;
z3 = z;
z = z2;
while (true) {
if ((z3 || z) && itemCount >= 0) {
View childAt = getChildAt(itemCount);
if (!(childAt == view || childAt == null)) {
if (z3 && getViewMin(childAt) < viewMin) {
z3 = false;
}
if (z && getViewMax(childAt) > viewMax) {
z = false;
}
}
itemCount--;
}
}
return this.mWindowAlignment.mainAxis().getSystemScrollPos(viewCenter, z3, z);
}
private int getAdjustedPrimaryScrollPosition(int i, View view, View view2) {
int subPositionByView = getSubPositionByView(view, view2);
if (subPositionByView == 0) {
return i;
}
LayoutParams layoutParams = (LayoutParams) view.getLayoutParams();
return i + (layoutParams.getAlignMultiple()[subPositionByView] - layoutParams.getAlignMultiple()[0]);
}
private int getSecondarySystemScrollPosition(View view) {
boolean z;
boolean z2 = true;
int viewCenterSecondary = getViewCenterSecondary(view) + this.mScrollOffsetSecondary;
int i = this.mGrid.getLocation(getPositionByView(view)).row;
if (this.mReverseFlowSecondary) {
if (i == 0) {
z = true;
} else {
z = false;
}
if (i != this.mGrid.getNumRows() - 1) {
z2 = false;
}
boolean z3 = z;
z = z2;
z2 = z3;
} else {
z = i == 0;
if (i != this.mGrid.getNumRows() - 1) {
z2 = false;
}
}
return this.mWindowAlignment.secondAxis().getSystemScrollPos(viewCenterSecondary, z, z2);
}
private void scrollToView(View view, boolean z) {
scrollToView(view, view == null ? null : view.findFocus(), z);
}
private void scrollToView(View view, View view2, boolean z) {
int positionByView = getPositionByView(view);
int subPositionByView = getSubPositionByView(view, view2);
if (!(positionByView == this.mFocusPosition && subPositionByView == this.mSubFocusPosition)) {
this.mFocusPosition = positionByView;
this.mSubFocusPosition = subPositionByView;
this.mFocusPositionOffset = 0;
if (!this.mInLayout) {
dispatchChildSelected();
}
if (this.mBaseGridView.isChildrenDrawingOrderEnabledInternal()) {
this.mBaseGridView.invalidate();
}
}
if (view != null) {
if (!view.hasFocus() && this.mBaseGridView.hasFocus()) {
view.requestFocus();
}
if ((this.mScrollEnabled || !z) && getScrollPosition(view, view2, sTwoInts)) {
scrollGrid(sTwoInts[0], sTwoInts[1], z);
}
}
}
private boolean getScrollPosition(View view, View view2, int[] iArr) {
switch (this.mFocusScrollStrategy) {
case 1:
case 2:
return getNoneAlignedPosition(view, iArr);
default:
return getAlignedPosition(view, view2, iArr);
}
}
private boolean getNoneAlignedPosition(View view, int[] iArr) {
View view2;
View view3 = null;
int positionByView = getPositionByView(view);
int viewMin = getViewMin(view);
int viewMax = getViewMax(view);
int paddingLow = this.mWindowAlignment.mainAxis().getPaddingLow();
int clientSize = this.mWindowAlignment.mainAxis().getClientSize();
int rowIndex = this.mGrid.getRowIndex(positionByView);
if (viewMin < paddingLow) {
if (this.mFocusScrollStrategy == 2) {
view2 = view;
while (prependOneColumnVisibleItems()) {
CircularIntArray circularIntArray = this.mGrid.getItemPositionsInRows(this.mGrid.getFirstVisibleIndex(), positionByView)[rowIndex];
view2 = findViewByPosition(circularIntArray.get(0));
if (viewMax - getViewMin(view2) > clientSize) {
if (circularIntArray.size() > 2) {
view2 = findViewByPosition(circularIntArray.get(2));
}
}
}
} else {
view2 = view;
}
} else if (viewMax <= clientSize + paddingLow) {
view2 = null;
} else if (this.mFocusScrollStrategy == 2) {
do {
CircularIntArray circularIntArray2 = this.mGrid.getItemPositionsInRows(positionByView, this.mGrid.getLastVisibleIndex())[rowIndex];
view2 = findViewByPosition(circularIntArray2.get(circularIntArray2.size() - 1));
if (getViewMax(view2) - viewMin > clientSize) {
view2 = null;
break;
}
} while (appendOneColumnVisibleItems());
if (view2 != null) {
View view4 = view2;
view2 = null;
view3 = view4;
} else {
view3 = view2;
view2 = view;
}
} else {
view2 = null;
view3 = view;
}
if (view2 != null) {
positionByView = getViewMin(view2) - paddingLow;
} else if (view3 != null) {
positionByView = getViewMax(view3) - (paddingLow + clientSize);
} else {
positionByView = 0;
}
if (view2 != null) {
view = view2;
} else if (view3 != null) {
view = view3;
}
int secondarySystemScrollPosition = getSecondarySystemScrollPosition(view) - this.mScrollOffsetSecondary;
if (positionByView == 0 && secondarySystemScrollPosition == 0) {
return false;
}
iArr[0] = positionByView;
iArr[1] = secondarySystemScrollPosition;
return true;
}
private boolean getAlignedPosition(View view, View view2, int[] iArr) {
int primarySystemScrollPosition = getPrimarySystemScrollPosition(view);
if (view2 != null) {
primarySystemScrollPosition = getAdjustedPrimaryScrollPosition(primarySystemScrollPosition, view, view2);
}
int secondarySystemScrollPosition = getSecondarySystemScrollPosition(view) - this.mScrollOffsetSecondary;
primarySystemScrollPosition = (primarySystemScrollPosition - this.mScrollOffsetPrimary) + this.mPrimaryScrollExtra;
if (primarySystemScrollPosition == 0 && secondarySystemScrollPosition == 0) {
return false;
}
iArr[0] = primarySystemScrollPosition;
iArr[1] = secondarySystemScrollPosition;
return true;
}
private void scrollGrid(int i, int i2, boolean z) {
if (this.mInLayout) {
scrollDirectionPrimary(i);
scrollDirectionSecondary(i2);
return;
}
if (this.mOrientation != 0) {
int i3 = i2;
i2 = i;
i = i3;
}
if (z) {
this.mBaseGridView.smoothScrollBy(i, i2);
} else {
this.mBaseGridView.scrollBy(i, i2);
}
}
public final void setPruneChild(boolean z) {
if (this.mPruneChild != z) {
this.mPruneChild = z;
if (this.mPruneChild) {
requestLayout();
}
}
}
public final boolean getPruneChild() {
return this.mPruneChild;
}
public final void setScrollEnabled(boolean z) {
if (this.mScrollEnabled != z) {
this.mScrollEnabled = z;
if (this.mScrollEnabled && this.mFocusScrollStrategy == 0 && this.mFocusPosition != -1) {
scrollToSelection(this.mBaseGridView, this.mFocusPosition, this.mSubFocusPosition, true, this.mPrimaryScrollExtra);
}
}
}
public final boolean isScrollEnabled() {
return this.mScrollEnabled;
}
private int findImmediateChildIndex(View view) {
while (view != null && view != this.mBaseGridView) {
int indexOfChild = this.mBaseGridView.indexOfChild(view);
if (indexOfChild >= 0) {
return indexOfChild;
}
view = (View) view.getParent();
}
return -1;
}
final void onFocusChanged(boolean z, int i, Rect rect) {
if (z) {
int i2 = this.mFocusPosition;
while (true) {
View findViewByPosition = findViewByPosition(i2);
if (findViewByPosition == null) {
return;
}
if (findViewByPosition.getVisibility() == 0 && findViewByPosition.hasFocusable()) {
findViewByPosition.requestFocus();
return;
}
i2++;
}
}
}
final void setFocusSearchDisabled(boolean z) {
this.mFocusSearchDisabled = z;
}
final boolean isFocusSearchDisabled() {
return this.mFocusSearchDisabled;
}
public final View onInterceptFocusSearch(View view, int i) {
return this.mFocusSearchDisabled ? view : null;
}
final boolean hasPreviousViewInSameRow(int i) {
if (this.mGrid == null || i == -1 || this.mGrid.getFirstVisibleIndex() < 0) {
return false;
}
if (this.mGrid.getFirstVisibleIndex() > 0) {
return true;
}
int i2 = this.mGrid.getLocation(i).row;
for (int childCount = getChildCount() - 1; childCount >= 0; childCount--) {
int positionByIndex = getPositionByIndex(childCount);
Location location = this.mGrid.getLocation(positionByIndex);
if (location != null && location.row == i2 && positionByIndex < i) {
return true;
}
}
return false;
}
public final boolean onAddFocusables(RecyclerView recyclerView, ArrayList<View> arrayList, int i, int i2) {
int i3 = 0;
if (this.mFocusSearchDisabled) {
return true;
}
int movement;
int positionByIndex;
int i4;
int i5;
if (recyclerView.hasFocus()) {
movement = getMovement(i);
if (movement != 0 && movement != 1) {
return false;
}
if (this.mPendingMoveSmoothScroller != null) {
return true;
}
positionByIndex = getPositionByIndex(findImmediateChildIndex(recyclerView.findFocus()));
if (positionByIndex != -1) {
findViewByPosition(positionByIndex).addFocusables(arrayList, i, i2);
}
i4 = (this.mGrid == null || positionByIndex == -1) ? -1 : this.mGrid.getLocation(positionByIndex).row;
if (this.mGrid != null) {
int size = arrayList.size();
int childCount = getChildCount();
for (i5 = 0; i5 < childCount; i5++) {
if (movement == 1) {
i3 = i5;
} else {
i3 = (childCount - 1) - i5;
}
View childAt = getChildAt(i3);
if (childAt.getVisibility() == 0 && childAt.hasFocusable()) {
i3 = getPositionByIndex(i3);
Location location = this.mGrid.getLocation(i3);
if ((i4 == -1 || (location != null && location.row == i4)) && (positionByIndex == -1 || ((movement == 1 && i3 > positionByIndex) || (movement == 0 && i3 < positionByIndex)))) {
childAt.addFocusables(arrayList, i, i2);
if (arrayList.size() > size) {
break;
}
}
}
}
}
} else {
if (this.mFocusScrollStrategy != 0) {
int paddingLow = this.mWindowAlignment.mainAxis().getPaddingLow();
i5 = this.mWindowAlignment.mainAxis().getClientSize() + paddingLow;
movement = arrayList.size();
positionByIndex = getChildCount();
for (i4 = 0; i4 < positionByIndex; i4++) {
View childAt2 = getChildAt(i4);
if (childAt2.getVisibility() == 0 && getViewMin(childAt2) >= paddingLow && getViewMax(childAt2) <= i5) {
childAt2.addFocusables(arrayList, i, i2);
}
}
if (arrayList.size() != movement) {
return true;
}
i4 = getChildCount();
while (i3 < i4) {
View childAt3 = getChildAt(i3);
if (childAt3.getVisibility() == 0) {
childAt3.addFocusables(arrayList, i, i2);
}
i3++;
}
if (arrayList.size() != movement) {
return true;
}
}
if (recyclerView.isFocusable()) {
arrayList.add(recyclerView);
}
}
return true;
}
private boolean hasCreatedLastItem() {
int itemCount = this.mState.getItemCount();
return itemCount == 0 || findViewByPosition(itemCount - 1) != null;
}
private boolean hasCreatedFirstItem() {
if (this.mState.getItemCount() == 0 || findViewByPosition(0) != null) {
return true;
}
return false;
}
final boolean canScrollTo(View view) {
return view.getVisibility() == 0 && (!hasFocus() || view.hasFocusable());
}
public final View onFocusSearchFailed(View view, int i, Recycler recycler, State state) {
View view2 = null;
int movement = getMovement(i);
boolean z = this.mBaseGridView.getScrollState() != 0;
saveContext(recycler, state);
if (movement == 1) {
View view3;
if (z || !this.mFocusOutEnd) {
view3 = view;
} else {
view3 = null;
}
if (!this.mScrollEnabled || hasCreatedLastItem()) {
view2 = view3;
} else {
processPendingMovement(true);
view2 = view;
}
} else if (movement == 0) {
if (z || !this.mFocusOutFront) {
view2 = view;
}
if (this.mScrollEnabled && !hasCreatedFirstItem()) {
processPendingMovement(false);
view2 = view;
}
}
leaveContext();
return view2;
}
final boolean gridOnRequestFocusInDescendants(RecyclerView recyclerView, int i, Rect rect) {
switch (this.mFocusScrollStrategy) {
case 1:
case 2:
return gridOnRequestFocusInDescendantsUnaligned(recyclerView, i, rect);
default:
return gridOnRequestFocusInDescendantsAligned(recyclerView, i, rect);
}
}
private boolean gridOnRequestFocusInDescendantsAligned(RecyclerView recyclerView, int i, Rect rect) {
View findViewByPosition = findViewByPosition(this.mFocusPosition);
if (findViewByPosition != null) {
return findViewByPosition.requestFocus(i, rect);
}
return false;
}
private boolean gridOnRequestFocusInDescendantsUnaligned(RecyclerView recyclerView, int i, Rect rect) {
int i2;
int i3 = -1;
int childCount = getChildCount();
if ((i & 2) != 0) {
i3 = 1;
i2 = 0;
} else {
i2 = childCount - 1;
childCount = -1;
}
int paddingLow = this.mWindowAlignment.mainAxis().getPaddingLow();
int clientSize = this.mWindowAlignment.mainAxis().getClientSize() + paddingLow;
for (i2 =
/*
Method generation error in method: android.support.v17.leanback.widget.GridLayoutManager.gridOnRequestFocusInDescendantsUnaligned(android.support.v7.widget.RecyclerView, int, android.graphics.Rect):boolean
jadx.core.utils.exceptions.CodegenException: Error generate insn: PHI: (r3_2 'i2' int) = (r3_1 'i2' int), (r3_5 'i2' int) binds: {(r3_5 'i2' int)=B:13:0x0041, (r3_1 'i2' int)=B:2:0x000b} in method: android.support.v17.leanback.widget.GridLayoutManager.gridOnRequestFocusInDescendantsUnaligned(android.support.v7.widget.RecyclerView, int, android.graphics.Rect):boolean
at jadx.core.codegen.InsnGen.makeInsn(InsnGen.java:226)
at jadx.core.codegen.RegionGen.makeLoop(RegionGen.java:184)
at jadx.core.codegen.RegionGen.makeRegion(RegionGen.java:61)
at jadx.core.codegen.RegionGen.makeSimpleRegion(RegionGen.java:87)
at jadx.core.codegen.RegionGen.makeRegion(RegionGen.java:53)
at jadx.core.codegen.MethodGen.addInstructions(MethodGen.java:183)
at jadx.core.codegen.ClassGen.addMethod(ClassGen.java:328)
at jadx.core.codegen.ClassGen.addMethods(ClassGen.java:265)
at jadx.core.codegen.ClassGen.addClassBody(ClassGen.java:228)
at jadx.core.codegen.ClassGen.addClassCode(ClassGen.java:118)
at jadx.core.codegen.ClassGen.makeClass(ClassGen.java:83)
at jadx.core.codegen.CodeGen.visit(CodeGen.java:19)
at jadx.core.ProcessClass.process(ProcessClass.java:43)
at jadx.api.JadxDecompiler.processClass(JadxDecompiler.java:306)
at jadx.api.JavaClass.decompile(JavaClass.java:62)
at jadx.api.JadxDecompiler$1.run(JadxDecompiler.java:199)
Caused by: jadx.core.utils.exceptions.CodegenException: PHI can be used only in fallback mode
at jadx.core.codegen.InsnGen.fallbackOnlyInsn(InsnGen.java:530)
at jadx.core.codegen.InsnGen.makeInsnBody(InsnGen.java:514)
at jadx.core.codegen.InsnGen.makeInsn(InsnGen.java:220)
... 15 more
*/
private int getMovement(int i) {
int i2 = 3;
int i3 = 1;
if (this.mOrientation != 0) {
if (this.mOrientation == 1) {
switch (i) {
case 17:
if (!this.mReverseFlowPrimary) {
i2 = 2;
}
return i2;
case 33:
return 0;
case 66:
if (this.mReverseFlowPrimary) {
i2 = 2;
}
return i2;
case 130:
return 1;
default:
break;
}
}
}
switch (i) {
case 17:
if (this.mReverseFlowPrimary) {
return 1;
}
return 0;
case 33:
return 2;
case 66:
if (this.mReverseFlowPrimary) {
i3 = 0;
}
return i3;
case 130:
return 3;
}
return 17;
}
final int getChildDrawingOrder(RecyclerView recyclerView, int i, int i2) {
View findViewByPosition = findViewByPosition(this.mFocusPosition);
if (findViewByPosition == null) {
return i2;
}
int indexOfChild = recyclerView.indexOfChild(findViewByPosition);
if (i2 >= indexOfChild) {
return i2 < i + -1 ? ((indexOfChild + i) - 1) - i2 : indexOfChild;
} else {
return i2;
}
}
public final void onAdapterChanged(Adapter adapter, Adapter adapter2) {
if (adapter != null) {
discardLayoutInfo();
this.mFocusPosition = -1;
this.mFocusPositionOffset = 0;
this.mChildrenStates.clear();
}
if (adapter2 instanceof FacetProviderAdapter) {
this.mFacetProviderAdapter = (FacetProviderAdapter) adapter2;
} else {
this.mFacetProviderAdapter = null;
}
super.onAdapterChanged(adapter, adapter2);
}
private void discardLayoutInfo() {
this.mGrid = null;
this.mRowSizeSecondary = null;
this.mRowSecondarySizeRefresh = false;
}
public final void setLayoutEnabled(boolean z) {
if (this.mLayoutEnabled != z) {
this.mLayoutEnabled = z;
requestLayout();
}
}
final void setChildrenVisibility(int i) {
this.mChildVisibility = i;
if (this.mChildVisibility != -1) {
int childCount = getChildCount();
for (int i2 = 0; i2 < childCount; i2++) {
getChildAt(i2).setVisibility(this.mChildVisibility);
}
}
}
public final Parcelable onSaveInstanceState() {
Parcelable savedState = new SavedState();
savedState.index = getSelection();
Bundle saveAsBundle = this.mChildrenStates.saveAsBundle();
int childCount = getChildCount();
Bundle bundle = saveAsBundle;
for (int i = 0; i < childCount; i++) {
View childAt = getChildAt(i);
int positionByView = getPositionByView(childAt);
if (positionByView != -1) {
bundle = this.mChildrenStates.saveOnScreenView(bundle, childAt, positionByView);
}
}
savedState.childStates = bundle;
return savedState;
}
final void onChildRecycled(ViewHolder viewHolder) {
int adapterPosition = viewHolder.getAdapterPosition();
if (adapterPosition != -1) {
this.mChildrenStates.saveOffscreenView(viewHolder.itemView, adapterPosition);
}
}
public final void onRestoreInstanceState(Parcelable parcelable) {
if (parcelable instanceof SavedState) {
SavedState savedState = (SavedState) parcelable;
this.mFocusPosition = savedState.index;
this.mFocusPositionOffset = 0;
this.mChildrenStates.loadFromBundle(savedState.childStates);
this.mForceFullLayout = true;
requestLayout();
}
}
public final int getRowCountForAccessibility(Recycler recycler, State state) {
if (this.mOrientation != 0 || this.mGrid == null) {
return super.getRowCountForAccessibility(recycler, state);
}
return this.mGrid.getNumRows();
}
public final int getColumnCountForAccessibility(Recycler recycler, State state) {
if (this.mOrientation != 1 || this.mGrid == null) {
return super.getColumnCountForAccessibility(recycler, state);
}
return this.mGrid.getNumRows();
}
public final void onInitializeAccessibilityNodeInfoForItem(Recycler recycler, State state, View view, AccessibilityNodeInfoCompat accessibilityNodeInfoCompat) {
android.view.ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
if (this.mGrid == null || !(layoutParams instanceof LayoutParams)) {
super.onInitializeAccessibilityNodeInfoForItem(recycler, state, view, accessibilityNodeInfoCompat);
return;
}
int viewLayoutPosition = ((LayoutParams) layoutParams).getViewLayoutPosition();
int rowIndex = this.mGrid.getRowIndex(viewLayoutPosition);
viewLayoutPosition /= this.mGrid.getNumRows();
if (this.mOrientation == 0) {
accessibilityNodeInfoCompat.setCollectionItemInfo(CollectionItemInfoCompat.obtain(rowIndex, 1, viewLayoutPosition, 1, false, false));
} else {
accessibilityNodeInfoCompat.setCollectionItemInfo(CollectionItemInfoCompat.obtain(viewLayoutPosition, 1, rowIndex, 1, false, false));
}
}
public final boolean performAccessibilityAction(Recycler recycler, State state, int i, Bundle bundle) {
saveContext(recycler, state);
switch (i) {
case 4096:
processSelectionMoves(false, this.mState.getItemCount());
break;
case 8192:
processSelectionMoves(false, -this.mState.getItemCount());
break;
}
leaveContext();
return true;
}
private int processSelectionMoves(boolean z, int i) {
if (this.mGrid == null) {
return i;
}
int rowIndex;
int i2 = this.mFocusPosition;
if (i2 != -1) {
rowIndex = this.mGrid.getRowIndex(i2);
} else {
rowIndex = -1;
}
View view = null;
int childCount = getChildCount();
int i3 = 0;
int i4 = rowIndex;
int i5 = i;
while (i3 < childCount && i5 != 0) {
int i6;
int i7;
if (i5 > 0) {
i6 = i3;
} else {
i6 = (childCount - 1) - i3;
}
View childAt = getChildAt(i6);
if (canScrollTo(childAt)) {
int positionByIndex = getPositionByIndex(i6);
i6 = this.mGrid.getRowIndex(positionByIndex);
if (i4 == -1) {
i7 = i6;
i4 = i5;
i6 = positionByIndex;
} else if (i6 == i4 && ((i5 > 0 && positionByIndex > i2) || (i5 < 0 && positionByIndex < i2))) {
int i8;
if (i5 > 0) {
i6 = positionByIndex;
i8 = i4;
i4 = i5 - 1;
i7 = i8;
} else {
i6 = positionByIndex;
i8 = i4;
i4 = i5 + 1;
i7 = i8;
}
}
i3++;
i2 = i6;
i5 = i4;
i4 = i7;
view = childAt;
}
childAt = view;
i6 = i2;
i7 = i4;
i4 = i5;
i3++;
i2 = i6;
i5 = i4;
i4 = i7;
view = childAt;
}
if (view != null) {
if (z) {
if (hasFocus()) {
this.mInSelection = true;
view.requestFocus();
this.mInSelection = false;
}
this.mFocusPosition = i2;
this.mSubFocusPosition = 0;
} else {
scrollToView(view, true);
}
}
return i5;
}
public final void onInitializeAccessibilityNodeInfo(Recycler recycler, State state, AccessibilityNodeInfoCompat accessibilityNodeInfoCompat) {
saveContext(recycler, state);
if (this.mScrollEnabled && !hasCreatedFirstItem()) {
accessibilityNodeInfoCompat.addAction(8192);
accessibilityNodeInfoCompat.setScrollable(true);
}
if (this.mScrollEnabled && !hasCreatedLastItem()) {
accessibilityNodeInfoCompat.addAction(4096);
accessibilityNodeInfoCompat.setScrollable(true);
}
accessibilityNodeInfoCompat.setCollectionInfo(CollectionInfoCompat.obtain(getRowCountForAccessibility(recycler, state), getColumnCountForAccessibility(recycler, state), isLayoutHierarchical(recycler, state), getSelectionModeForAccessibility(recycler, state)));
leaveContext();
}
}
package android.support.v17.leanback.widget;
import android.animation.Animator;
import android.animation.AnimatorInflater;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.support.v17.leanback.C0029R;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.List;
public class GuidanceStylist implements FragmentAnimationProvider {
private TextView mBreadcrumbView;
private TextView mDescriptionView;
private ImageView mIconView;
private TextView mTitleView;
public class Guidance {
private final String mBreadcrumb;
private final String mDescription;
private final Drawable mIconDrawable;
private final String mTitle;
public Guidance(String str, String str2, String str3, Drawable drawable) {
this.mBreadcrumb = str3;
this.mTitle = str;
this.mDescription = str2;
this.mIconDrawable = drawable;
}
public String getTitle() {
return this.mTitle;
}
public String getDescription() {
return this.mDescription;
}
public String getBreadcrumb() {
return this.mBreadcrumb;
}
public Drawable getIconDrawable() {
return this.mIconDrawable;
}
}
public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup, Guidance guidance) {
View inflate = layoutInflater.inflate(onProvideLayoutId(), viewGroup, false);
this.mTitleView = (TextView) inflate.findViewById(C0029R.id.guidance_title);
this.mBreadcrumbView = (TextView) inflate.findViewById(C0029R.id.guidance_breadcrumb);
this.mDescriptionView = (TextView) inflate.findViewById(C0029R.id.guidance_description);
this.mIconView = (ImageView) inflate.findViewById(C0029R.id.guidance_icon);
if (this.mTitleView != null) {
this.mTitleView.setText(guidance.getTitle());
}
if (this.mBreadcrumbView != null) {
this.mBreadcrumbView.setText(guidance.getBreadcrumb());
}
if (this.mDescriptionView != null) {
this.mDescriptionView.setText(guidance.getDescription());
}
if (this.mIconView != null) {
this.mIconView.setImageDrawable(guidance.getIconDrawable());
}
return inflate;
}
public int onProvideLayoutId() {
return C0029R.layout.lb_guidance;
}
public TextView getTitleView() {
return this.mTitleView;
}
public TextView getDescriptionView() {
return this.mDescriptionView;
}
public TextView getBreadcrumbView() {
return this.mBreadcrumbView;
}
public ImageView getIconView() {
return this.mIconView;
}
public void onActivityEnter(List<Animator> list) {
addAnimator(list, this.mTitleView, C0029R.attr.guidanceEntryAnimation);
addAnimator(list, this.mBreadcrumbView, C0029R.attr.guidanceEntryAnimation);
addAnimator(list, this.mDescriptionView, C0029R.attr.guidanceEntryAnimation);
addAnimator(list, this.mIconView, C0029R.attr.guidanceEntryAnimation);
}
public void onActivityExit(List<Animator> list) {
}
public void onFragmentEnter(List<Animator> list) {
addAnimator(list, this.mTitleView, C0029R.attr.guidedStepEntryAnimation);
addAnimator(list, this.mBreadcrumbView, C0029R.attr.guidedStepEntryAnimation);
addAnimator(list, this.mDescriptionView, C0029R.attr.guidedStepEntryAnimation);
addAnimator(list, this.mIconView, C0029R.attr.guidedStepEntryAnimation);
}
public void onFragmentExit(List<Animator> list) {
addAnimator(list, this.mTitleView, C0029R.attr.guidedStepExitAnimation);
addAnimator(list, this.mBreadcrumbView, C0029R.attr.guidedStepExitAnimation);
addAnimator(list, this.mDescriptionView, C0029R.attr.guidedStepExitAnimation);
addAnimator(list, this.mIconView, C0029R.attr.guidedStepExitAnimation);
}
public void onFragmentReenter(List<Animator> list) {
addAnimator(list, this.mTitleView, C0029R.attr.guidedStepReentryAnimation);
addAnimator(list, this.mBreadcrumbView, C0029R.attr.guidedStepReentryAnimation);
addAnimator(list, this.mDescriptionView, C0029R.attr.guidedStepReentryAnimation);
addAnimator(list, this.mIconView, C0029R.attr.guidedStepReentryAnimation);
}
public void onFragmentReturn(List<Animator> list) {
addAnimator(list, this.mTitleView, C0029R.attr.guidedStepReturnAnimation);
addAnimator(list, this.mBreadcrumbView, C0029R.attr.guidedStepReturnAnimation);
addAnimator(list, this.mDescriptionView, C0029R.attr.guidedStepReturnAnimation);
addAnimator(list, this.mIconView, C0029R.attr.guidedStepReturnAnimation);
}
private void addAnimator(List<Animator> list, View view, int i) {
if (view != null) {
Context context = view.getContext();
TypedValue typedValue = new TypedValue();
context.getTheme().resolveAttribute(i, typedValue, true);
Animator loadAnimator = AnimatorInflater.loadAnimator(context, typedValue.resourceId);
loadAnimator.setTarget(view);
list.add(loadAnimator);
}
}
}
package android.support.v17.leanback.widget;
import android.content.Context;
import android.content.Intent;
import android.graphics.drawable.Drawable;
public class GuidedAction extends Action {
public static final int DEFAULT_CHECK_SET_ID = 1;
public static final int NO_CHECK_SET = 0;
public static final int NO_DRAWABLE = 0;
private static final String TAG = "GuidedAction";
private int mCheckSetId;
private boolean mChecked;
private boolean mEnabled;
private boolean mHasNext;
private boolean mInfoOnly;
private Intent mIntent;
private boolean mMultilineDescription;
public class Builder {
private int mCheckSetId = 0;
private boolean mChecked;
private String mDescription;
private boolean mEnabled = true;
private boolean mHasNext;
private Drawable mIcon;
private long mId;
private boolean mInfoOnly;
private Intent mIntent;
private boolean mMultilineDescription;
private String mTitle;
public GuidedAction build() {
GuidedAction guidedAction = new GuidedAction();
guidedAction.setId(this.mId);
guidedAction.setLabel1(this.mTitle);
guidedAction.setLabel2(this.mDescription);
guidedAction.setIcon(this.mIcon);
guidedAction.mIntent = this.mIntent;
guidedAction.mChecked = this.mChecked;
guidedAction.mCheckSetId = this.mCheckSetId;
guidedAction.mMultilineDescription = this.mMultilineDescription;
guidedAction.mHasNext = this.mHasNext;
guidedAction.mInfoOnly = this.mInfoOnly;
guidedAction.mEnabled = this.mEnabled;
return guidedAction;
}
public Builder id(long j) {
this.mId = j;
return this;
}
public Builder title(String str) {
this.mTitle = str;
return this;
}
public Builder description(String str) {
this.mDescription = str;
return this;
}
public Builder intent(Intent intent) {
this.mIntent = intent;
return this;
}
public Builder icon(Drawable drawable) {
this.mIcon = drawable;
return this;
}
public Builder iconResourceId(int i, Context context) {
return icon(context.getResources().getDrawable(i));
}
public Builder checked(boolean z) {
this.mChecked = z;
return this;
}
public Builder checkSetId(int i) {
this.mCheckSetId = i;
return this;
}
public Builder multilineDescription(boolean z) {
this.mMultilineDescription = z;
return this;
}
public Builder hasNext(boolean z) {
this.mHasNext = z;
return this;
}
public Builder infoOnly(boolean z) {
this.mInfoOnly = z;
return this;
}
public Builder enabled(boolean z) {
this.mEnabled = z;
return this;
}
}
private GuidedAction() {
super(0);
}
public CharSequence getTitle() {
return getLabel1();
}
public CharSequence getDescription() {
return getLabel2();
}
public Intent getIntent() {
return this.mIntent;
}
public boolean isChecked() {
return this.mChecked;
}
public void setChecked(boolean z) {
this.mChecked = z;
}
public int getCheckSetId() {
return this.mCheckSetId;
}
public boolean hasMultilineDescription() {
return this.mMultilineDescription;
}
public boolean isEnabled() {
return this.mEnabled;
}
public void setEnabled(boolean z) {
this.mEnabled = z;
}
public boolean hasNext() {
return this.mHasNext;
}
public boolean infoOnly() {
return this.mInfoOnly;
}
}
package android.support.v17.leanback.widget;
import android.animation.Animator;
import android.animation.Animator.AnimatorListener;
import android.animation.AnimatorInflater;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.support.v17.leanback.C0029R;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.RecyclerView.OnScrollListener;
import android.text.TextUtils;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.view.ViewTreeObserver.OnGlobalFocusChangeListener;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.List;
public class GuidedActionsStylist implements FragmentAnimationProvider {
private static String TAG = "GuidedActionsStylist";
protected VerticalGridView mActionsGridView;
private int mContentWidth;
private int mContentWidthNoIcon;
private int mDescriptionMinLines;
private float mDisabledChevronAlpha;
private int mDisplayHeight;
private float mEnabledChevronAlpha;
protected View mMainView;
protected View mSelectorView;
private int mTitleMaxLines;
private int mTitleMinLines;
private int mVerticalPadding;
class C01611 implements OnGlobalFocusChangeListener {
private boolean mChildFocused;
C01611() {
}
public void onGlobalFocusChanged(View view, View view2) {
View focusedChild = GuidedActionsStylist.this.mActionsGridView.getFocusedChild();
if (focusedChild == null) {
GuidedActionsStylist.this.mSelectorView.setVisibility(4);
this.mChildFocused = false;
} else if (!this.mChildFocused) {
this.mChildFocused = true;
GuidedActionsStylist.this.mSelectorView.setVisibility(0);
GuidedActionsStylist.this.updateSelectorView(focusedChild);
}
}
}
class SelectorAnimator extends OnScrollListener {
private volatile boolean mFadedOut = true;
private final ViewGroup mParentView;
private final View mSelectorView;
class Listener implements AnimatorListener {
private boolean mCanceled;
private boolean mFadingOut;
public Listener(boolean z) {
this.mFadingOut = z;
}
public void onAnimationStart(Animator animator) {
if (!this.mFadingOut) {
SelectorAnimator.this.mFadedOut = false;
}
}
public void onAnimationEnd(Animator animator) {
if (!this.mCanceled && this.mFadingOut) {
SelectorAnimator.this.mFadedOut = true;
}
}
public void onAnimationCancel(Animator animator) {
this.mCanceled = true;
}
public void onAnimationRepeat(Animator animator) {
}
}
SelectorAnimator(View view, ViewGroup viewGroup) {
this.mSelectorView = view;
this.mParentView = viewGroup;
}
public void onScrollStateChanged(RecyclerView recyclerView, int i) {
Animator animator;
boolean z;
Animator animator2 = null;
if (i == 0) {
View focusedChild = this.mParentView.getFocusedChild();
if (focusedChild != null) {
float height = ((float) focusedChild.getHeight()) / ((float) this.mSelectorView.getHeight());
animator2 = (AnimatorSet) GuidedActionsStylist.createAnimator(this.mSelectorView, C0029R.attr.guidedActionsSelectorShowAnimation);
if (this.mFadedOut) {
this.mSelectorView.setScaleY(height);
animator = (Animator) animator2.getChildAnimations().get(0);
z = false;
} else {
((ObjectAnimator) animator2.getChildAnimations().get(1)).setFloatValues(new float[]{height});
}
}
animator = animator2;
z = false;
} else {
animator = GuidedActionsStylist.createAnimator(this.mSelectorView, C0029R.attr.guidedActionsSelectorHideAnimation);
z = true;
}
if (animator != null) {
animator.addListener(new Listener(z));
animator.start();
}
}
}
public class ViewHolder {
private ImageView mCheckmarkView;
private ImageView mChevronView;
private View mContentView;
private TextView mDescriptionView;
private ImageView mIconView;
private TextView mTitleView;
public final View view;
public ViewHolder(View view) {
this.view = view;
this.mContentView = view.findViewById(C0029R.id.guidedactions_item_content);
this.mTitleView = (TextView) view.findViewById(C0029R.id.guidedactions_item_title);
this.mDescriptionView = (TextView) view.findViewById(C0029R.id.guidedactions_item_description);
this.mIconView = (ImageView) view.findViewById(C0029R.id.guidedactions_item_icon);
this.mCheckmarkView = (ImageView) view.findViewById(C0029R.id.guidedactions_item_checkmark);
this.mChevronView = (ImageView) view.findViewById(C0029R.id.guidedactions_item_chevron);
}
public View getContentView() {
return this.mContentView;
}
public TextView getTitleView() {
return this.mTitleView;
}
public TextView getDescriptionView() {
return this.mDescriptionView;
}
public ImageView getIconView() {
return this.mIconView;
}
public ImageView getCheckmarkView() {
return this.mCheckmarkView;
}
public ImageView getChevronView() {
return this.mChevronView;
}
}
public View onCreateView(LayoutInflater layoutInflater, ViewGroup viewGroup) {
this.mMainView = layoutInflater.inflate(onProvideLayoutId(), viewGroup, false);
this.mSelectorView = this.mMainView.findViewById(C0029R.id.guidedactions_selector);
if (this.mMainView instanceof VerticalGridView) {
this.mActionsGridView = (VerticalGridView) this.mMainView;
} else {
this.mActionsGridView = (VerticalGridView) this.mMainView.findViewById(C0029R.id.guidedactions_list);
if (this.mActionsGridView == null) {
throw new IllegalStateException("No ListView exists.");
}
this.mActionsGridView.setWindowAlignmentOffset(0);
this.mActionsGridView.setWindowAlignmentOffsetPercent(50.0f);
this.mActionsGridView.setWindowAlignment(0);
if (this.mSelectorView != null) {
this.mActionsGridView.setOnScrollListener(new SelectorAnimator(this.mSelectorView, this.mActionsGridView));
}
}
this.mActionsGridView.requestFocusFromTouch();
if (this.mSelectorView != null) {
this.mActionsGridView.getViewTreeObserver().addOnGlobalFocusChangeListener(new C01611());
}
Context context = this.mMainView.getContext();
TypedValue typedValue = new TypedValue();
this.mEnabledChevronAlpha = getFloat(context, typedValue, C0029R.attr.guidedActionEnabledChevronAlpha);
this.mDisabledChevronAlpha = getFloat(context, typedValue, C0029R.attr.guidedActionDisabledChevronAlpha);
this.mContentWidth = getDimension(context, typedValue, C0029R.attr.guidedActionContentWidth);
this.mContentWidthNoIcon = getDimension(context, typedValue, C0029R.attr.guidedActionContentWidthNoIcon);
this.mTitleMinLines = getInteger(context, typedValue, C0029R.attr.guidedActionTitleMinLines);
this.mTitleMaxLines = getInteger(context, typedValue, C0029R.attr.guidedActionTitleMaxLines);
this.mDescriptionMinLines = getInteger(context, typedValue, C0029R.attr.guidedActionDescriptionMinLines);
this.mVerticalPadding = getDimension(context, typedValue, C0029R.attr.guidedActionVerticalPadding);
this.mDisplayHeight = ((WindowManager) context.getSystemService("window")).getDefaultDisplay().getHeight();
return this.mMainView;
}
public VerticalGridView getActionsGridView() {
return this.mActionsGridView;
}
public int onProvideLayoutId() {
return C0029R.layout.lb_guidedactions;
}
public int onProvideItemLayoutId() {
return C0029R.layout.lb_guidedactions_item;
}
public ViewHolder onCreateViewHolder(ViewGroup viewGroup) {
return new ViewHolder(LayoutInflater.from(viewGroup.getContext()).inflate(onProvideItemLayoutId(), viewGroup, false));
}
public void onBindViewHolder(ViewHolder viewHolder, GuidedAction guidedAction) {
int i = 0;
if (viewHolder.mTitleView != null) {
viewHolder.mTitleView.setText(guidedAction.getTitle());
}
if (viewHolder.mDescriptionView != null) {
viewHolder.mDescriptionView.setText(guidedAction.getDescription());
viewHolder.mDescriptionView.setVisibility(TextUtils.isEmpty(guidedAction.getDescription()) ? 8 : 0);
}
if (!(viewHolder.mCheckmarkView == null || viewHolder.mCheckmarkView.getVisibility() == 8)) {
int i2;
ImageView access$300 = viewHolder.mCheckmarkView;
if (guidedAction.isChecked()) {
i2 = 0;
} else {
i2 = 4;
}
access$300.setVisibility(i2);
}
if (viewHolder.mContentView != null) {
LayoutParams layoutParams = viewHolder.mContentView.getLayoutParams();
if (setIcon(viewHolder.mIconView, guidedAction)) {
layoutParams.width = this.mContentWidth;
} else {
layoutParams.width = this.mContentWidthNoIcon;
}
viewHolder.mContentView.setLayoutParams(layoutParams);
}
if (viewHolder.mChevronView != null) {
ImageView access$600 = viewHolder.mChevronView;
if (!guidedAction.hasNext()) {
i = 4;
}
access$600.setVisibility(i);
viewHolder.mChevronView.setAlpha(guidedAction.isEnabled() ? this.mEnabledChevronAlpha : this.mDisabledChevronAlpha);
}
if (!guidedAction.hasMultilineDescription()) {
if (viewHolder.mTitleView != null) {
viewHolder.mTitleView.setMaxLines(this.mTitleMinLines);
}
if (viewHolder.mDescriptionView != null) {
viewHolder.mDescriptionView.setMaxLines(this.mDescriptionMinLines);
}
} else if (viewHolder.mTitleView != null) {
viewHolder.mTitleView.setMaxLines(this.mTitleMaxLines);
if (viewHolder.mDescriptionView != null) {
viewHolder.mDescriptionView.setMaxHeight(getDescriptionMaxHeight(viewHolder.view.getContext(), viewHolder.mTitleView));
}
}
}
public void onAnimateItemFocused(ViewHolder viewHolder, boolean z) {
}
public void onAnimateItemPressed(ViewHolder viewHolder, boolean z) {
createAnimator(viewHolder.view, z ? C0029R.attr.guidedActionPressedAnimation : C0029R.attr.guidedActionUnpressedAnimation).start();
}
public void onAnimateItemChecked(ViewHolder viewHolder, boolean z) {
final View access$300 = viewHolder.mCheckmarkView;
if (access$300 == null) {
return;
}
if (z) {
access$300.setVisibility(0);
createAnimator(access$300, C0029R.attr.guidedActionCheckedAnimation).start();
return;
}
Animator createAnimator = createAnimator(access$300, C0029R.attr.guidedActionUncheckedAnimation);
createAnimator.addListener(new AnimatorListenerAdapter() {
public void onAnimationEnd(Animator animator) {
access$300.setVisibility(4);
}
});
createAnimator.start();
}
public void onActivityEnter(List<Animator> list) {
list.add(createAnimator(this.mMainView, C0029R.attr.guidedActionsEntryAnimation));
}
public void onActivityExit(List<Animator> list) {
}
public void onFragmentEnter(List<Animator> list) {
list.add(createAnimator(this.mActionsGridView, C0029R.attr.guidedStepEntryAnimation));
list.add(createAnimator(this.mSelectorView, C0029R.attr.guidedStepEntryAnimation));
}
public void onFragmentExit(List<Animator> list) {
list.add(createAnimator(this.mActionsGridView, C0029R.attr.guidedStepExitAnimation));
list.add(createAnimator(this.mSelectorView, C0029R.attr.guidedStepExitAnimation));
}
public void onFragmentReenter(List<Animator> list) {
list.add(createAnimator(this.mActionsGridView, C0029R.attr.guidedStepReentryAnimation));
list.add(createAnimator(this.mSelectorView, C0029R.attr.guidedStepReentryAnimation));
}
public void onFragmentReturn(List<Animator> list) {
list.add(createAnimator(this.mActionsGridView, C0029R.attr.guidedStepReturnAnimation));
list.add(createAnimator(this.mSelectorView, C0029R.attr.guidedStepReturnAnimation));
}
private void updateSelectorView(View view) {
int height = view.getHeight();
LayoutParams layoutParams = this.mSelectorView.getLayoutParams();
layoutParams.height = height;
this.mSelectorView.setLayoutParams(layoutParams);
this.mSelectorView.setAlpha(1.0f);
}
private float getFloat(Context context, TypedValue typedValue, int i) {
context.getTheme().resolveAttribute(i, typedValue, true);
return Float.valueOf(context.getResources().getString(typedValue.resourceId)).floatValue();
}
private int getInteger(Context context, TypedValue typedValue, int i) {
context.getTheme().resolveAttribute(i, typedValue, true);
return context.getResources().getInteger(typedValue.resourceId);
}
private int getDimension(Context context, TypedValue typedValue, int i) {
context.getTheme().resolveAttribute(i, typedValue, true);
return context.getResources().getDimensionPixelSize(typedValue.resourceId);
}
private static Animator createAnimator(View view, int i) {
Context context = view.getContext();
TypedValue typedValue = new TypedValue();
context.getTheme().resolveAttribute(i, typedValue, true);
Animator loadAnimator = AnimatorInflater.loadAnimator(context, typedValue.resourceId);
loadAnimator.setTarget(view);
return loadAnimator;
}
private boolean setIcon(ImageView imageView, GuidedAction guidedAction) {
Drawable drawable = null;
if (imageView != null) {
imageView.getContext();
drawable = guidedAction.getIcon();
if (drawable != null) {
imageView.setImageLevel(drawable.getLevel());
imageView.setImageDrawable(drawable);
imageView.setVisibility(0);
} else {
imageView.setVisibility(8);
}
}
if (drawable != null) {
return true;
}
return false;
}
private int getDescriptionMaxHeight(Context context, TextView textView) {
return (this.mDisplayHeight - (this.mVerticalPadding * 2)) - ((this.mTitleMaxLines * 2) * textView.getLineHeight());
}
}
package android.support.v17.leanback.widget;
public class HeaderItem {
private final long mId;
private final String mName;
public HeaderItem(long j, String str) {
this.mId = j;
this.mName = str;
}
public HeaderItem(String str) {
this(-1, str);
}
public final long getId() {
return this.mId;
}
public final String getName() {
return this.mName;
}
}
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:sharedUserId="android.uid.system" android:configChanges="locale" android:versionCode="10806" android:versionName="v1.08.06-r1361" package="com.siptv.mytv" platformBuildVersionCode="23" platformBuildVersionName="6.0-2704002">
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="23" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-feature android:name="android.hardware.touchscreen" android:required="false" />
<uses-feature android:name="android.software.leanback" android:required="true" />
<application android:theme="@style/IPTVTheme" android:label="@string/iptv_app_name" android:icon="@mipmap/ic_launcher" android:name="com.siptv.mytv.IPTVApplication" android:debuggable="false" android:allowBackup="true" android:largeHeap="true" android:supportsRtl="false">
<activity android:label="@string/iptv_app_name" android:name="com.siptv.mytv.MainLiveActivity" android:screenOrientation="landscape" android:configChanges="locale|layoutDirection">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.siptv.mytv.VideoPlayerActivity" />
<activity android:label="@string/title_activity_settings" android:name="com.siptv.mytv.ServerActivity" />
<activity android:name="com.siptv.mytv.VodListActivity" />
<activity android:theme="@style/IPTVEPGTheme" android:name="com.siptv.mytv.EPGListActivity" />
<activity android:theme="@style/SettingTheme" android:name="com.siptv.mytv.SettingActivity" />
<service android:name="com.siptv.mytv.EpgService" />
<activity android:theme="@*android:style/Theme.Translucent" android:name="com.siptv.mytv.EpgRemindActivity" />
<activity android:theme="@style/IPTVServiceTheme" android:name="com.siptv.mytv.ServiceListActivity" />
<meta-data android:name="com.siptv.mytv.util.glide.HttpsImageModule" android:value="GlideModule" />
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
</application>
</manifest>
This file has been truncated, but you can view the full file.
package android.support.v17.leanback.widget;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.Canvas;
import android.graphics.LinearGradient;
import android.graphics.Paint;
import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.Shader.TileMode;
import android.support.v17.leanback.C0029R;
import android.support.v17.leanback.widget.BaseGridView.OnKeyInterceptListener;
import android.support.v17.leanback.widget.BaseGridView.OnMotionInterceptListener;
import android.support.v17.leanback.widget.BaseGridView.OnTouchInterceptListener;
import android.support.v17.leanback.widget.BaseGridView.OnUnhandledKeyListener;
import android.support.v4.view.ViewCompat;
import android.support.v7.widget.RecyclerView.RecyclerListener;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
public class HorizontalGridView extends BaseGridView {
private boolean mFadingHighEdge;
private boolean mFadingLowEdge;
private LinearGradient mHighFadeShader;
private int mHighFadeShaderLength;
private int mHighFadeShaderOffset;
private LinearGradient mLowFadeShader;
private int mLowFadeShaderLength;
private int mLowFadeShaderOffset;
private Bitmap mTempBitmapHigh;
private Bitmap mTempBitmapLow;
private Paint mTempPaint;
private Rect mTempRect;
public /* bridge */ /* synthetic */ boolean dispatchGenericFocusedEvent(MotionEvent motionEvent) {
return super.dispatchGenericFocusedEvent(motionEvent);
}
public /* bridge */ /* synthetic */ boolean dispatchKeyEvent(KeyEvent keyEvent) {
return super.dispatchKeyEvent(keyEvent);
}
public /* bridge */ /* synthetic */ boolean dispatchTouchEvent(MotionEvent motionEvent) {
return super.dispatchTouchEvent(motionEvent);
}
public /* bridge */ /* synthetic */ View focusSearch(int i) {
return super.focusSearch(i);
}
public /* bridge */ /* synthetic */ int getChildDrawingOrder(int i, int i2) {
return super.getChildDrawingOrder(i, i2);
}
public /* bridge */ /* synthetic */ int getExtraLayoutSpace() {
return super.getExtraLayoutSpace();
}
public /* bridge */ /* synthetic */ int getFocusScrollStrategy() {
return super.getFocusScrollStrategy();
}
public /* bridge */ /* synthetic */ int getHorizontalMargin() {
return super.getHorizontalMargin();
}
public /* bridge */ /* synthetic */ int getItemAlignmentOffset() {
return super.getItemAlignmentOffset();
}
public /* bridge */ /* synthetic */ float getItemAlignmentOffsetPercent() {
return super.getItemAlignmentOffsetPercent();
}
public /* bridge */ /* synthetic */ int getItemAlignmentViewId() {
return super.getItemAlignmentViewId();
}
public /* bridge */ /* synthetic */ OnUnhandledKeyListener getOnUnhandledKeyListener() {
return super.getOnUnhandledKeyListener();
}
public /* bridge */ /* synthetic */ int getSelectedPosition() {
return super.getSelectedPosition();
}
public /* bridge */ /* synthetic */ int getSelectedSubPosition() {
return super.getSelectedSubPosition();
}
public /* bridge */ /* synthetic */ int getVerticalMargin() {
return super.getVerticalMargin();
}
public /* bridge */ /* synthetic */ void getViewSelectedOffsets(View view, int[] iArr) {
super.getViewSelectedOffsets(view, iArr);
}
public /* bridge */ /* synthetic */ int getWindowAlignment() {
return super.getWindowAlignment();
}
public /* bridge */ /* synthetic */ int getWindowAlignmentOffset() {
return super.getWindowAlignmentOffset();
}
public /* bridge */ /* synthetic */ float getWindowAlignmentOffsetPercent() {
return super.getWindowAlignmentOffsetPercent();
}
public /* bridge */ /* synthetic */ boolean hasOverlappingRendering() {
return super.hasOverlappingRendering();
}
public /* bridge */ /* synthetic */ boolean hasPreviousViewInSameRow(int i) {
return super.hasPreviousViewInSameRow(i);
}
public /* bridge */ /* synthetic */ boolean isChildLayoutAnimated() {
return super.isChildLayoutAnimated();
}
public /* bridge */ /* synthetic */ boolean isFocusDrawingOrderEnabled() {
return super.isFocusDrawingOrderEnabled();
}
public /* bridge */ /* synthetic */ boolean isItemAlignmentOffsetWithPadding() {
return super.isItemAlignmentOffsetWithPadding();
}
public /* bridge */ /* synthetic */ boolean isScrollEnabled() {
return super.isScrollEnabled();
}
public /* bridge */ /* synthetic */ boolean onRequestFocusInDescendants(int i, Rect rect) {
return super.onRequestFocusInDescendants(i, rect);
}
public /* bridge */ /* synthetic */ void onRtlPropertiesChanged(int i) {
super.onRtlPropertiesChanged(i);
}
public /* bridge */ /* synthetic */ void setAnimateChildLayout(boolean z) {
super.setAnimateChildLayout(z);
}
public /* bridge */ /* synthetic */ void setChildrenVisibility(int i) {
super.setChildrenVisibility(i);
}
public /* bridge */ /* synthetic */ void setExtraLayoutSpace(int i) {
super.setExtraLayoutSpace(i);
}
public /* bridge */ /* synthetic */ void setFocusDrawingOrderEnabled(boolean z) {
super.setFocusDrawingOrderEnabled(z);
}
public /* bridge */ /* synthetic */ void setFocusScrollStrategy(int i) {
super.setFocusScrollStrategy(i);
}
public /* bridge */ /* synthetic */ void setGravity(int i) {
super.setGravity(i);
}
public /* bridge */ /* synthetic */ void setHasOverlappingRendering(boolean z) {
super.setHasOverlappingRendering(z);
}
public /* bridge */ /* synthetic */ void setHorizontalMargin(int i) {
super.setHorizontalMargin(i);
}
public /* bridge */ /* synthetic */ void setItemAlignmentOffset(int i) {
super.setItemAlignmentOffset(i);
}
public /* bridge */ /* synthetic */ void setItemAlignmentOffsetPercent(float f) {
super.setItemAlignmentOffsetPercent(f);
}
public /* bridge */ /* synthetic */ void setItemAlignmentOffsetWithPadding(boolean z) {
super.setItemAlignmentOffsetWithPadding(z);
}
public /* bridge */ /* synthetic */ void setItemAlignmentViewId(int i) {
super.setItemAlignmentViewId(i);
}
public /* bridge */ /* synthetic */ void setItemMargin(int i) {
super.setItemMargin(i);
}
public /* bridge */ /* synthetic */ void setLayoutEnabled(boolean z) {
super.setLayoutEnabled(z);
}
public /* bridge */ /* synthetic */ void setOnChildLaidOutListener(OnChildLaidOutListener onChildLaidOutListener) {
super.setOnChildLaidOutListener(onChildLaidOutListener);
}
public /* bridge */ /* synthetic */ void setOnChildSelectedListener(OnChildSelectedListener onChildSelectedListener) {
super.setOnChildSelectedListener(onChildSelectedListener);
}
public /* bridge */ /* synthetic */ void setOnChildViewHolderSelectedListener(OnChildViewHolderSelectedListener onChildViewHolderSelectedListener) {
super.setOnChildViewHolderSelectedListener(onChildViewHolderSelectedListener);
}
public /* bridge */ /* synthetic */ void setOnKeyInterceptListener(OnKeyInterceptListener onKeyInterceptListener) {
super.setOnKeyInterceptListener(onKeyInterceptListener);
}
public /* bridge */ /* synthetic */ void setOnMotionInterceptListener(OnMotionInterceptListener onMotionInterceptListener) {
super.setOnMotionInterceptListener(onMotionInterceptListener);
}
public /* bridge */ /* synthetic */ void setOnTouchInterceptListener(OnTouchInterceptListener onTouchInterceptListener) {
super.setOnTouchInterceptListener(onTouchInterceptListener);
}
public /* bridge */ /* synthetic */ void setOnUnhandledKeyListener(OnUnhandledKeyListener onUnhandledKeyListener) {
super.setOnUnhandledKeyListener(onUnhandledKeyListener);
}
public /* bridge */ /* synthetic */ void setPruneChild(boolean z) {
super.setPruneChild(z);
}
public /* bridge */ /* synthetic */ void setRecyclerListener(RecyclerListener recyclerListener) {
super.setRecyclerListener(recyclerListener);
}
public /* bridge */ /* synthetic */ void setScrollEnabled(boolean z) {
super.setScrollEnabled(z);
}
public /* bridge */ /* synthetic */ void setSelectedPosition(int i) {
super.setSelectedPosition(i);
}
public /* bridge */ /* synthetic */ void setSelectedPosition(int i, int i2) {
super.setSelectedPosition(i, i2);
}
public /* bridge */ /* synthetic */ void setSelectedPositionSmooth(int i) {
super.setSelectedPositionSmooth(i);
}
public /* bridge */ /* synthetic */ void setSelectedPositionSmoothWithSub(int i, int i2) {
super.setSelectedPositionSmoothWithSub(i, i2);
}
public /* bridge */ /* synthetic */ void setSelectedPositionWithSub(int i, int i2) {
super.setSelectedPositionWithSub(i, i2);
}
public /* bridge */ /* synthetic */ void setSelectedPositionWithSub(int i, int i2, int i3) {
super.setSelectedPositionWithSub(i, i2, i3);
}
public /* bridge */ /* synthetic */ void setVerticalMargin(int i) {
super.setVerticalMargin(i);
}
public /* bridge */ /* synthetic */ void setWindowAlignment(int i) {
super.setWindowAlignment(i);
}
public /* bridge */ /* synthetic */ void setWindowAlignmentOffset(int i) {
super.setWindowAlignmentOffset(i);
}
public /* bridge */ /* synthetic */ void setWindowAlignmentOffsetPercent(float f) {
super.setWindowAlignmentOffsetPercent(f);
}
public HorizontalGridView(Context context) {
this(context, null);
}
public HorizontalGridView(Context context, AttributeSet attributeSet) {
this(context, attributeSet, 0);
}
public HorizontalGridView(Context context, AttributeSet attributeSet, int i) {
super(context, attributeSet, i);
this.mTempPaint = new Paint();
this.mTempRect = new Rect();
this.mLayoutManager.setOrientation(0);
initAttributes(context, attributeSet);
}
protected void initAttributes(Context context, AttributeSet attributeSet) {
initBaseGridViewAttributes(context, attributeSet);
TypedArray obtainStyledAttributes = context.obtainStyledAttributes(attributeSet, C0029R.styleable.lbHorizontalGridView);
setRowHeight(obtainStyledAttributes);
setNumRows(obtainStyledAttributes.getInt(C0029R.styleable.lbHorizontalGridView_numberOfRows, 1));
obtainStyledAttributes.recycle();
updateLayerType();
this.mTempPaint = new Paint();
this.mTempPaint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
}
void setRowHeight(TypedArray typedArray) {
if (typedArray.peekValue(C0029R.styleable.lbHorizontalGridView_rowHeight) != null) {
setRowHeight(typedArray.getLayoutDimension(C0029R.styleable.lbHorizontalGridView_rowHeight, 0));
}
}
public void setNumRows(int i) {
this.mLayoutManager.setNumRows(i);
requestLayout();
}
public void setRowHeight(int i) {
this.mLayoutManager.setRowHeight(i);
requestLayout();
}
public final void setFadingLeftEdge(boolean z) {
if (this.mFadingLowEdge != z) {
this.mFadingLowEdge = z;
if (!this.mFadingLowEdge) {
this.mTempBitmapLow = null;
}
invalidate();
updateLayerType();
}
}
public final boolean getFadingLeftEdge() {
return this.mFadingLowEdge;
}
public final void setFadingLeftEdgeLength(int i) {
if (this.mLowFadeShaderLength != i) {
this.mLowFadeShaderLength = i;
if (this.mLowFadeShaderLength != 0) {
this.mLowFadeShader = new LinearGradient(0.0f, 0.0f, (float) this.mLowFadeShaderLength, 0.0f, 0, ViewCompat.MEASURED_STATE_MASK, TileMode.CLAMP);
} else {
this.mLowFadeShader = null;
}
invalidate();
}
}
public final int getFadingLeftEdgeLength() {
return this.mLowFadeShaderLength;
}
public final void setFadingLeftEdgeOffset(int i) {
if (this.mLowFadeShaderOffset != i) {
this.mLowFadeShaderOffset = i;
invalidate();
}
}
public final
View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment