AndroidHack$HandlerHack.smali
.class final Lorg/acdd/hack/AndroidHack$HandlerHack;
.super Ljava/lang/Object;
.source "AndroidHack.java"
# interfaces
.implements Landroid/os/Handler$Callback;
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lorg/acdd/hack/AndroidHack;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x18
name = "HandlerHack"
.end annotation
# instance fields
.field final activityThread:Ljava/lang/Object;
.field final handler:Landroid/os/Handler;
# direct methods
.method constructor <init>(Landroid/os/Handler;Ljava/lang/Object;)V
.registers 3
.prologue
.line 299
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 300
iput-object p1, p0, Lorg/acdd/hack/AndroidHack$HandlerHack;->handler:Landroid/os/Handler;
.line 301
iput-object p2, p0, Lorg/acdd/hack/AndroidHack$HandlerHack;->activityThread:Ljava/lang/Object;
.line 302
return-void
.end method
# virtual methods
.method public handleMessage(Landroid/os/Message;)Z
.registers 10
.prologue
const/4 v7, 0x1
.line 307
:try_start_1
invoke-static {}, Lorg/acdd/hack/AndroidHack;->ensureLoadedApk()V
.line 308
iget v0, p1, Landroid/os/Message;->what:I
sget v1, Lorg/acdd/hack/AndroidHack;->LAUNCH_ACTIVITY:I
if-ne v0, v1, :cond_94
.line 309
iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
const-string v1, "intent"
invoke-virtual {v0, v1}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v0
.line 310
const/4 v1, 0x1
invoke-virtual {v0, v1}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 311
iget-object v1, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
invoke-virtual {v0, v1}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/content/Intent;
.line 312
sget-object v1, Lorg/acdd/runtime/RuntimeVariables;->delegateClassLoader:Lorg/acdd/runtime/DelegateClassLoader;
invoke-virtual {v0, v1}, Landroid/content/Intent;->setExtrasClassLoader(Ljava/lang/ClassLoader;)V
.line 313
invoke-virtual {v0}, Landroid/content/Intent;->getComponent()Landroid/content/ComponentName;
move-result-object v1
invoke-virtual {v1}, Landroid/content/ComponentName;->getClassName()Ljava/lang/String;
move-result-object v2
.line 314
invoke-static {}, Lorg/acdd/bundleInfo/BundleInfoList;->getInstance()Lorg/acdd/bundleInfo/BundleInfoList;
move-result-object v1
invoke-virtual {v1, v2}, Lorg/acdd/bundleInfo/BundleInfoList;->getBundleNameForComponet(Ljava/lang/String;)Ljava/lang/String;
move-result-object v3
.line 315
if-eqz v3, :cond_57
.line 316
invoke-static {v3}, Lorg/acdd/framework/BundleManager;->getBundle(Ljava/lang/String;)Lorg/osgi/framework/Bundle;
move-result-object v1
.line 317
if-nez v1, :cond_4f
.line 318
invoke-static {v3}, Lorg/acdd/framework/Framework;->tryLoadBundleInstance(Ljava/lang/String;)Lorg/osgi/framework/Bundle;
move-result-object v1
.line 319
if-nez v1, :cond_4f
.line 320
invoke-static {v3}, Lorg/acdd/hack/AndroidHack;->installPlugin(Ljava/lang/String;)V
.line 321
invoke-static {v2}, Lorg/acdd/runtime/ClassLoadFromBundle;->checkInstallBundleIfNeed(Ljava/lang/String;)V
.line 322
invoke-static {v3}, Lorg/acdd/framework/BundleManager;->getBundle(Ljava/lang/String;)Lorg/osgi/framework/Bundle;
move-result-object v1
.line 325
:cond_4f
if-eqz v1, :cond_57
.line 326
invoke-interface {v1}, Lorg/osgi/framework/Bundle;->start()V
.line 327
invoke-static {v3, v1}, Lorg/acdd/hack/AndroidHack;->initPluginModule(Ljava/lang/String;Lorg/osgi/framework/Bundle;)V
.line 330
:cond_57
iget-object v1, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v1
iget-object v3, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
const-string v4, "activityInfo"
invoke-static {v1, v3, v4}, Lorg/acdd/hack/Reflect;->getField(Ljava/lang/Class;Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroid/content/pm/ActivityInfo;
.line 331
invoke-static {v2}, Lorg/acdd/runtime/ActivityProxyHook;->isPluginComponentName(Ljava/lang/String;)Z
move-result v3
if-eqz v3, :cond_77
.line 332
sget-object v3, Lorg/acdd/runtime/RuntimeVariables;->androidApplication:Landroid/app/Application;
invoke-static {v3, v0}, Lorg/acdd/runtime/ActivityProxyHook;->getTheme(Landroid/content/Context;Landroid/content/Intent;)I
move-result v0
.line 333
if-eqz v0, :cond_77
.line 334
iput v0, v1, Landroid/content/pm/ActivityInfo;->theme:I
.line 338
:cond_77
invoke-static {}, Lorg/acdd/framework/ACDD;->getInstance()Lorg/acdd/framework/ACDD;
move-result-object v0
invoke-virtual {v0, v2}, Lorg/acdd/framework/ACDD;->setFirstUIActName(Ljava/lang/String;)V
.line 417
:cond_7e
:goto_7e
iget v0, p1, Landroid/os/Message;->what:I
.line 418
iget-object v1, p0, Lorg/acdd/hack/AndroidHack$HandlerHack;->handler:Landroid/os/Handler;
invoke-virtual {v1, p1}, Landroid/os/Handler;->handleMessage(Landroid/os/Message;)V
.line 419
sget v1, Lorg/acdd/hack/AndroidHack;->GC_WHEN_IDLE:I
if-eq v0, v1, :cond_8d
sget v1, Lorg/acdd/hack/AndroidHack;->DESTROY_ACTIVITY:I
if-ne v0, v1, :cond_90
.line 420
:cond_8d
invoke-static {}, Lorg/acdd/hack/AndroidHack;->clearDrawableCache()V
.line 422
:cond_90
invoke-static {}, Lorg/acdd/hack/AndroidHack;->ensureLoadedApk()V
.line 485
:cond_93
:goto_93
return v7
.line 339
:cond_94
iget v0, p1, Landroid/os/Message;->what:I
sget v1, Lorg/acdd/hack/AndroidHack;->CREATE_SERVICE:I
:try_end_98
.catch Ljava/lang/Throwable; {:try_start_1 .. :try_end_98} :catch_e8
if-ne v0, v1, :cond_123
.line 341
:try_start_9a
iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
const-string v1, "info"
invoke-virtual {v0, v1}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v0
.line 342
const/4 v1, 0x1
invoke-virtual {v0, v1}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 343
iget-object v1, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
invoke-virtual {v0, v1}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/content/pm/ServiceInfo;
.line 345
iget-object v1, v0, Landroid/content/pm/ServiceInfo;->name:Ljava/lang/String;
.line 346
invoke-static {}, Lorg/acdd/bundleInfo/BundleInfoList;->getInstance()Lorg/acdd/bundleInfo/BundleInfoList;
move-result-object v0
invoke-virtual {v0, v1}, Lorg/acdd/bundleInfo/BundleInfoList;->getBundleNameForComponet(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
.line 347
if-eqz v2, :cond_7e
.line 348
invoke-static {v2}, Lorg/acdd/framework/BundleManager;->getBundle(Ljava/lang/String;)Lorg/osgi/framework/Bundle;
move-result-object v0
.line 349
if-nez v0, :cond_d1
.line 350
invoke-static {v2}, Lorg/acdd/framework/Framework;->tryLoadBundleInstance(Ljava/lang/String;)Lorg/osgi/framework/Bundle;
move-result-object v0
.line 351
if-nez v0, :cond_d1
.line 352
invoke-static {v1}, Lorg/acdd/runtime/ClassLoadFromBundle;->checkInstallBundleIfNeed(Ljava/lang/String;)V
.line 353
invoke-static {v2}, Lorg/acdd/framework/BundleManager;->getBundle(Ljava/lang/String;)Lorg/osgi/framework/Bundle;
move-result-object v0
.line 356
:cond_d1
if-eqz v0, :cond_93
.line 357
invoke-interface {v0}, Lorg/osgi/framework/Bundle;->start()V
.line 358
invoke-static {v2, v0}, Lorg/acdd/hack/AndroidHack;->initPluginModule(Ljava/lang/String;Lorg/osgi/framework/Bundle;)V
:try_end_d9
.catch Ljava/lang/Throwable; {:try_start_9a .. :try_end_d9} :catch_da
goto :goto_7e
.line 363
:catch_da
move-exception v0
.line 364
:try_start_db
invoke-static {}, Lorg/acdd/framework/ACDD;->getInstance()Lorg/acdd/framework/ACDD;
move-result-object v1
const-string v2, "4012"
invoke-virtual {v1, v2, v0}, Lorg/acdd/framework/ACDD;->reportCrash(Ljava/lang/String;Ljava/lang/Throwable;)V
.line 365
invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V
:try_end_e7
.catch Ljava/lang/Throwable; {:try_start_db .. :try_end_e7} :catch_e8
goto :goto_7e
.line 423
:catch_e8
move-exception v0
move-object v1, v0
.line 424
invoke-virtual {v1}, Ljava/lang/Throwable;->printStackTrace()V
.line 426
instance-of v0, v1, Ljava/lang/ClassNotFoundException;
if-nez v0, :cond_fd
.line 427
invoke-virtual {v1}, Ljava/lang/Throwable;->toString()Ljava/lang/String;
move-result-object v0
const-string v2, "ClassNotFoundException"
invoke-virtual {v0, v2}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_235
.line 428
:cond_fd
iget v0, p1, Landroid/os/Message;->what:I
sget v2, Lorg/acdd/hack/AndroidHack;->RECEIVER:I
if-eq v0, v2, :cond_93
.line 429
sget-object v0, Lorg/acdd/runtime/RuntimeVariables;->androidApplication:Landroid/app/Application;
iget-object v2, p0, Lorg/acdd/hack/AndroidHack$HandlerHack;->activityThread:Ljava/lang/Object;
sget-object v3, Lorg/acdd/runtime/RuntimeVariables;->androidApplication:Landroid/app/Application;
.line 433
invoke-virtual {v3}, Landroid/app/Application;->getPackageName()Ljava/lang/String;
move-result-object v3
.line 429
invoke-static {v0, v2, v3}, Lorg/acdd/hack/AndroidHack;->getLoadedApk(Landroid/app/Application;Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
move-result-object v0
.line 434
if-nez v0, :cond_1ef
.line 435
sget-object v0, Lorg/acdd/hack/AndroidHack;->logger:Lorg/acdd/log/Logger;
const-string v1, ""
new-instance v2, Ljava/lang/RuntimeException;
const-string v3, "loadedapk is null"
invoke-direct {v2, v3}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
invoke-interface {v0, v1, v2}, Lorg/acdd/log/Logger;->error(Ljava/lang/String;Ljava/lang/Throwable;)V
goto/16 :goto_93
.line 367
:cond_123
:try_start_123
iget v0, p1, Landroid/os/Message;->what:I
sget v1, Lorg/acdd/hack/AndroidHack;->RECEIVER:I
:try_end_127
.catch Ljava/lang/Throwable; {:try_start_123 .. :try_end_127} :catch_e8
if-ne v0, v1, :cond_176
.line 369
:try_start_129
iget-object v0, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
const-string v1, "intent"
invoke-virtual {v0, v1}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v0
.line 370
const/4 v1, 0x1
invoke-virtual {v0, v1}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 371
iget-object v1, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
invoke-virtual {v0, v1}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/content/Intent;
.line 372
invoke-virtual {v0}, Landroid/content/Intent;->getComponent()Landroid/content/ComponentName;
move-result-object v0
invoke-virtual {v0}, Landroid/content/ComponentName;->getClassName()Ljava/lang/String;
move-result-object v1
.line 373
invoke-static {}, Lorg/acdd/bundleInfo/BundleInfoList;->getInstance()Lorg/acdd/bundleInfo/BundleInfoList;
move-result-object v0
invoke-virtual {v0, v1}, Lorg/acdd/bundleInfo/BundleInfoList;->getBundleNameForComponet(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
.line 374
if-eqz v2, :cond_7e
.line 375
invoke-static {v2}, Lorg/acdd/framework/BundleManager;->getBundle(Ljava/lang/String;)Lorg/osgi/framework/Bundle;
move-result-object v0
.line 376
if-nez v0, :cond_166
.line 377
invoke-static {v2}, Lorg/acdd/framework/Framework;->tryLoadBundleInstance(Ljava/lang/String;)Lorg/osgi/framework/Bundle;
move-result-object v0
.line 378
if-nez v0, :cond_166
.line 379
invoke-static {v1}, Lorg/acdd/runtime/ClassLoadFromBundle;->checkInstallBundleIfNeed(Ljava/lang/String;)V
.line 380
invoke-static {v2}, Lorg/acdd/framework/BundleManager;->getBundle(Ljava/lang/String;)Lorg/osgi/framework/Bundle;
move-result-object v0
.line 383
:cond_166
if-eqz v0, :cond_7e
.line 384
invoke-interface {v0}, Lorg/osgi/framework/Bundle;->start()V
.line 385
invoke-static {v2, v0}, Lorg/acdd/hack/AndroidHack;->initPluginModule(Ljava/lang/String;Lorg/osgi/framework/Bundle;)V
:try_end_16e
.catch Ljava/lang/Throwable; {:try_start_129 .. :try_end_16e} :catch_170
goto/16 :goto_7e
.line 388
:catch_170
move-exception v0
.line 389
:try_start_171
invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V
goto/16 :goto_7e
.line 391
:cond_176
iget v0, p1, Landroid/os/Message;->what:I
sget v1, Lorg/acdd/hack/AndroidHack;->EXECUTE_TRANSACTION:I
if-ne v0, v1, :cond_7e
.line 393
const-string v0, "android.app.servertransaction.ClientTransaction"
invoke-static {v0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v0
.line 394
const-string v1, "getCallbacks"
const/4 v2, 0x0
new-array v2, v2, [Ljava/lang/Class;
invoke-virtual {v0, v1, v2}, Ljava/lang/Class;->getDeclaredMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v0
.line 395
const/4 v1, 0x1
invoke-virtual {v0, v1}, Ljava/lang/reflect/Method;->setAccessible(Z)V
.line 396
iget-object v1, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
const/4 v2, 0x0
new-array v2, v2, [Ljava/lang/Object;
invoke-virtual {v0, v1, v2}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/List;
.line 397
if-eqz v0, :cond_7e
invoke-interface {v0}, Ljava/util/List;->size()I
move-result v1
if-lez v1, :cond_7e
.line 398
invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;
move-result-object v0
:cond_1a6
invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z
move-result v1
if-eqz v1, :cond_7e
invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v1
.line 399
const-string v2, "LaunchActivityItem"
invoke-virtual {v1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_1a6
.line 400
const-string v0, "android.app.servertransaction.LaunchActivityItem"
invoke-static {v0}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v2
.line 401
const-string v0, "mIntent"
invoke-virtual {v2, v0}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v0
.line 402
const/4 v3, 0x1
invoke-virtual {v0, v3}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 403
invoke-virtual {v0, v1}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/content/Intent;
.line 405
const-string v3, "mInfo"
invoke-virtual {v2, v3}, Ljava/lang/Class;->getDeclaredField(Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v2
.line 406
const/4 v3, 0x1
invoke-virtual {v2, v3}, Ljava/lang/reflect/Field;->setAccessible(Z)V
.line 407
invoke-virtual {v2, v1}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Landroid/content/pm/ActivityInfo;
.line 408
if-eqz v0, :cond_7e
if-eqz v1, :cond_7e
.line 409
# invokes: Lorg/acdd/hack/AndroidHack;->handlerLaunchActivityForP(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;)V
invoke-static {v0, v1}, Lorg/acdd/hack/AndroidHack;->access$000(Landroid/content/Intent;Landroid/content/pm/ActivityInfo;)V
:try_end_1ed
.catch Ljava/lang/Throwable; {:try_start_171 .. :try_end_1ed} :catch_e8
goto/16 :goto_7e
.line 437
:cond_1ef
sget-object v2, Lorg/acdd/hack/ACDDHacks;->LoadedApk_mClassLoader:Lorg/acdd/hack/Hack$HackedField;
invoke-virtual {v2, v0}, Lorg/acdd/hack/Hack$HackedField;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/ClassLoader;
.line 438
instance-of v2, v0, Lorg/acdd/runtime/DelegateClassLoader;
if-eqz v2, :cond_20b
.line 439
sget-object v0, Lorg/acdd/hack/AndroidHack;->logger:Lorg/acdd/log/Logger;
const-string v2, ""
new-instance v3, Ljava/lang/RuntimeException;
const-string v4, "From ACDD:classNotFound ---"
invoke-direct {v3, v4, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
invoke-interface {v0, v2, v3}, Lorg/acdd/log/Logger;->error(Ljava/lang/String;Ljava/lang/Throwable;)V
goto/16 :goto_93
.line 442
:cond_20b
sget-object v2, Lorg/acdd/hack/AndroidHack;->logger:Lorg/acdd/log/Logger;
const-string v3, ""
new-instance v4, Ljava/lang/RuntimeException;
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v6, "wrong classloader in loadedapk---"
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Class;->getName()Ljava/lang/String;
move-result-object v0
invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v4, v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;Ljava/lang/Throwable;)V
invoke-interface {v2, v3, v4}, Lorg/acdd/log/Logger;->error(Ljava/lang/String;Ljava/lang/Throwable;)V
goto/16 :goto_93
.line 447
:cond_235
instance-of v0, v1, Ljava/lang/ClassCastException;
if-nez v0, :cond_245
.line 448
invoke-virtual {v1}, Ljava/lang/Throwable;->toString()Ljava/lang/String;
move-result-object v0
const-string v2, "ClassCastException"
invoke-virtual {v0, v2}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_24e
.line 449
:cond_245
invoke-static {}, Landroid/os/Process;->myPid()I
move-result v0
invoke-static {v0}, Landroid/os/Process;->killProcess(I)V
goto/16 :goto_93
.line 451
:cond_24e
iget v0, p1, Landroid/os/Message;->what:I
sget v2, Lorg/acdd/hack/AndroidHack;->STOP_ACTIVITY_SHOW:I
if-eq v0, v2, :cond_93
iget v0, p1, Landroid/os/Message;->what:I
sget v2, Lorg/acdd/hack/AndroidHack;->STOP_ACTIVITY_HIDE:I
if-eq v0, v2, :cond_93
.line 455
iget v0, p1, Landroid/os/Message;->what:I
sget v2, Lorg/acdd/hack/AndroidHack;->RECEIVER:I
if-eq v0, v2, :cond_93
.line 461
invoke-virtual {v1}, Ljava/lang/Throwable;->toString()Ljava/lang/String;
move-result-object v0
const-string v2, "com.cm.perm.PermService"
invoke-virtual {v0, v2}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_93
.line 464
instance-of v0, v1, Ljava/lang/IllegalStateException;
if-eqz v0, :cond_27c
invoke-virtual {v1}, Ljava/lang/Throwable;->toString()Ljava/lang/String;
move-result-object v0
const-string v2, "The current thread must have a looper!"
invoke-virtual {v0, v2}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_93
.line 468
:cond_27c
instance-of v0, v1, Ljava/lang/IllegalArgumentException;
if-eqz v0, :cond_28c
invoke-virtual {v1}, Ljava/lang/Throwable;->toString()Ljava/lang/String;
move-result-object v0
const-string v2, "View not attached to window manager"
invoke-virtual {v0, v2}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_93
.line 472
:cond_28c
iget-object v0, p0, Lorg/acdd/hack/AndroidHack$HandlerHack;->activityThread:Ljava/lang/Object;
invoke-static {v1, p1, v0}, Lorg/acdd/android/compat/ThrowableCustomHandler;->onHandleMessageException(Ljava/lang/Throwable;Landroid/os/Message;Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_93
.line 476
invoke-virtual {v1}, Ljava/lang/Throwable;->toString()Ljava/lang/String;
move-result-object v0
const-string v2, "android.app.RemoteServiceException"
invoke-virtual {v0, v2}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_2ac
.line 477
invoke-virtual {v1}, Ljava/lang/Throwable;->toString()Ljava/lang/String;
move-result-object v0
const-string v2, "can\'t deliver broadcast"
invoke-virtual {v0, v2}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_93
.line 482
:cond_2ac
new-instance v0, Ljava/lang/RuntimeException;
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/Throwable;)V
throw v0
.end method