a.smali
.class public Lcom/appff/haptic/a/a;
.super Lcom/appff/haptic/base/d;
.source "SourceFile"
# static fields
.field public static a:Ljava/util/concurrent/atomic/AtomicInteger; = null
.field private static final b:Ljava/lang/String; = "PatternHeImpl"
# instance fields
.field private final c:Landroid/os/Vibrator;
.field private final d:Z
.field private e:Ljava/lang/Class;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/lang/Class<",
"*>;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 1
new-instance v0, Ljava/util/concurrent/atomic/AtomicInteger;
invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicInteger;-><init>()V
sput-object v0, Lcom/appff/haptic/a/a;->a:Ljava/util/concurrent/atomic/AtomicInteger;
return-void
.end method
.method public constructor <init>(Landroid/content/Context;)V
.registers 4
.annotation build Landroid/annotation/SuppressLint;
value = {
"PrivateApi"
}
.end annotation
const-string v0, "PatternHeImpl"
invoke-direct {p0}, Lcom/appff/haptic/base/d;-><init>()V
const/4 v1, 0x0
iput-boolean v1, p0, Lcom/appff/haptic/a/a;->d:Z
const-string v1, "vibrator"
invoke-virtual {p1, v1}, Landroid/content/Context;->getSystemService(Ljava/lang/String;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Landroid/os/Vibrator;
iput-object p1, p0, Lcom/appff/haptic/a/a;->c:Landroid/os/Vibrator;
:try_start_12
const-string p1, "android.os.RichTapVibrationEffect"
invoke-static {p1}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object p1
iput-object p1, p0, Lcom/appff/haptic/a/a;->e:Ljava/lang/Class;
:try_end_1a
.catch Ljava/lang/ClassNotFoundException; {:try_start_12 .. :try_end_1a} :catch_1b
goto :goto_20
:catch_1b
const-string p1, "failed to reflect class: ...VibrationEffect!"
invoke-static {v0, p1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
:goto_20
iget-object p1, p0, Lcom/appff/haptic/a/a;->e:Ljava/lang/Class;
if-nez p1, :cond_32
:try_start_24
const-string p1, "android.os.VibrationEffect"
invoke-static {p1}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object p1
iput-object p1, p0, Lcom/appff/haptic/a/a;->e:Ljava/lang/Class;
:try_end_2c
.catch Ljava/lang/ClassNotFoundException; {:try_start_24 .. :try_end_2c} :catch_2d
goto :goto_32
:catch_2d
const-string p1, "failed to reflect class: \"android.os.VibrationEffect\"!"
invoke-static {v0, p1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
:cond_32
:goto_32
return-void
.end method
.method private b(III)Z
.registers 8
const-string p2, "PatternHeImpl"
const/4 v0, 0x0
const/4 v1, 0x1
const/16 v2, 0x16
if-ge p1, v2, :cond_2b
new-instance p3, Ljava/lang/StringBuilder;
invoke-direct {p3}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "can not support he in rt version:"
invoke-virtual {p3, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
new-array v1, v1, [Ljava/lang/Object;
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
aput-object p1, v1, v0
const-string p1, "%x02"
invoke-static {p1, v1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object p1
invoke-virtual {p3, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
:goto_27
invoke-static {p2, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
return v0
:cond_2b
if-ne p1, v2, :cond_57
if-eq p3, v1, :cond_61
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "rt version is "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
new-array v1, v1, [Ljava/lang/Object;
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
aput-object p1, v1, v0
const-string p1, "%x"
invoke-static {p1, v1}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object p1
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p1, " can not support he version: "
invoke-virtual {v2, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
goto :goto_27
:cond_57
const/16 p2, 0x17
if-ne p1, p2, :cond_61
if-eq p3, v1, :cond_61
const/4 p1, 0x2
if-eq p3, p1, :cond_61
return v0
:cond_61
return v1
.end method
.method private b(Ljava/lang/String;)[I
.registers 29
move-object/from16 v1, p0
const-string v0, "Duration"
const-string v2, "Frequency"
const-string v3, "Intensity"
const-string v4, "RelativeTime"
:try_start_a
new-instance v6, Lorg/json/JSONObject;
move-object/from16 v7, p1
invoke-direct {v6, v7}, Lorg/json/JSONObject;-><init>(Ljava/lang/String;)V
const-string v7, "Pattern"
invoke-virtual {v6, v7}, Lorg/json/JSONObject;->getJSONArray(Ljava/lang/String;)Lorg/json/JSONArray;
move-result-object v6
invoke-virtual {v6}, Lorg/json/JSONArray;->length()I
move-result v7
const/16 v8, 0x10
invoke-static {v7, v8}, Ljava/lang/Math;->min(II)I
move-result v7
mul-int/lit8 v8, v7, 0x11
new-array v8, v8, [I
:try_end_25
.catch Ljava/lang/Exception; {:try_start_a .. :try_end_25} :catch_21f
const/4 v11, 0x0
const/4 v12, 0x0
const/4 v13, 0x0
const/4 v14, 0x1
:goto_29
const-string v5, "PatternHeImpl"
if-ge v11, v7, :cond_1d9
:try_start_2d
invoke-virtual {v6, v11}, Lorg/json/JSONArray;->getJSONObject(I)Lorg/json/JSONObject;
move-result-object v9
const-string v15, "Event"
invoke-virtual {v9, v15}, Lorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;
move-result-object v9
const-string v15, "Type"
invoke-virtual {v9, v15}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v15
const-string v10, "continuous"
invoke-static {v10, v15}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z
move-result v10
if-eqz v10, :cond_48
const/16 v10, 0x1000
goto :goto_52
:cond_48
const-string v10, "transient"
invoke-static {v10, v15}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z
move-result v10
if-eqz v10, :cond_1c9
const/16 v10, 0x1001
:goto_52
invoke-virtual {v9, v4}, Lorg/json/JSONObject;->has(Ljava/lang/String;)Z
move-result v12
:try_end_56
.catch Ljava/lang/Exception; {:try_start_2d .. :try_end_56} :catch_1d6
const-string v15, "event:"
if-nez v12, :cond_79
:try_start_5a
new-instance v12, Ljava/lang/StringBuilder;
invoke-direct {v12}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v12, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v12, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-object/from16 v17, v6
const-string v6, " don\'t have relativeTime parameters,set default:"
invoke-virtual {v12, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
mul-int/lit16 v6, v11, 0x190
invoke-virtual {v12, v6}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v12}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v12
invoke-static {v5, v12}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_7f
:cond_79
move-object/from16 v17, v6
invoke-virtual {v9, v4}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v6
:goto_7f
move v12, v6
const v6, 0xc350
move-object/from16 v18, v4
const/4 v4, 0x0
invoke-direct {v1, v12, v4, v6}, Lcom/appff/haptic/a/a;->c(III)Z
move-result v6
if-nez v6, :cond_95
const-string v0, "relativeTime must between 0 and 50000"
invoke-static {v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
move/from16 v21, v7
goto/16 :goto_1d4
:cond_95
const-string v4, "Parameters"
invoke-virtual {v9, v4}, Lorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;
move-result-object v4
invoke-virtual {v4, v3}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v6
move/from16 v19, v13
invoke-virtual {v4, v2}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v13
move/from16 v20, v14
const/16 v14, 0x64
move/from16 v21, v7
const/4 v7, 0x0
invoke-direct {v1, v6, v7, v14}, Lcom/appff/haptic/a/a;->c(III)Z
move-result v16
if-eqz v16, :cond_1c6
invoke-direct {v1, v13, v7, v14}, Lcom/appff/haptic/a/a;->c(III)Z
move-result v22
if-nez v22, :cond_ba
goto/16 :goto_1c6
:cond_ba
mul-int/lit8 v7, v11, 0x11
add-int/lit8 v22, v7, 0x0
aput v10, v8, v22
add-int/lit8 v22, v7, 0x1
aput v12, v8, v22
add-int/lit8 v22, v7, 0x2
aput v6, v8, v22
add-int/lit8 v6, v7, 0x3
aput v13, v8, v6
const/16 v6, 0x1000
if-ne v6, v10, :cond_1b5
invoke-virtual {v9, v0}, Lorg/json/JSONObject;->has(Ljava/lang/String;)Z
move-result v6
if-nez v6, :cond_f3
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v6, v15}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v9, " don\'t have duration parameters,set default:"
invoke-virtual {v6, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const/4 v9, 0x0
invoke-virtual {v6, v9}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v6
invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
const/4 v13, 0x0
goto :goto_f8
:cond_f3
invoke-virtual {v9, v0}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v6
move v13, v6
:goto_f8
const/16 v6, 0x1388
const/4 v9, 0x0
invoke-direct {v1, v13, v9, v6}, Lcom/appff/haptic/a/a;->c(III)Z
move-result v10
if-nez v10, :cond_108
const-string v0, "duration must be less than 5000"
invoke-static {v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
goto/16 :goto_1d4
:cond_108
add-int/lit8 v9, v7, 0x4
aput v13, v8, v9
const-string v9, "Curve"
invoke-virtual {v4, v9}, Lorg/json/JSONObject;->getJSONArray(Ljava/lang/String;)Lorg/json/JSONArray;
move-result-object v4
const/4 v9, 0x0
:goto_113
const/4 v10, 0x4
if-ge v9, v10, :cond_1b7
invoke-virtual {v4, v9}, Lorg/json/JSONArray;->getJSONObject(I)Lorg/json/JSONObject;
move-result-object v10
const-string v15, "Time"
invoke-virtual {v10, v15}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v15
invoke-virtual {v10, v3}, Lorg/json/JSONObject;->getDouble(Ljava/lang/String;)D
move-result-wide v22
const-wide/high16 v24, 0x4059000000000000L # 100.0
move/from16 v26, v7
mul-double v6, v22, v24
double-to-int v6, v6
invoke-virtual {v10, v2}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v7
const/16 v10, -0x64
if-nez v9, :cond_145
if-nez v15, :cond_13d
if-nez v6, :cond_13d
invoke-direct {v1, v7, v10, v14}, Lcom/appff/haptic/a/a;->c(III)Z
move-result v22
if-nez v22, :cond_145
:cond_13d
const-string v4, "first point\'s time, intensity must be 0, frequency must between -100 and 100"
:goto_13f
invoke-static {v5, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
const/4 v14, 0x0
goto/16 :goto_1b9
:cond_145
const/4 v10, 0x1
if-ne v10, v9, :cond_164
const/16 v10, 0x1388
const/4 v14, 0x0
invoke-direct {v1, v15, v14, v10}, Lcom/appff/haptic/a/a;->c(III)Z
move-result v16
if-eqz v16, :cond_161
const/16 v10, 0x64
invoke-direct {v1, v6, v14, v10}, Lcom/appff/haptic/a/a;->c(III)Z
move-result v23
if-eqz v23, :cond_161
const/16 v14, -0x64
invoke-direct {v1, v7, v14, v10}, Lcom/appff/haptic/a/a;->c(III)Z
move-result v24
if-nez v24, :cond_164
:cond_161
const-string v4, "second point\'s time must be less than 5000, intensity must between 0~1, frequency must between -100 and 100"
goto :goto_13f
:cond_164
const/4 v10, 0x2
if-ne v10, v9, :cond_183
const/16 v10, 0x1388
const/4 v14, 0x0
invoke-direct {v1, v15, v14, v10}, Lcom/appff/haptic/a/a;->c(III)Z
move-result v16
if-eqz v16, :cond_180
const/16 v10, 0x64
invoke-direct {v1, v6, v14, v10}, Lcom/appff/haptic/a/a;->c(III)Z
move-result v23
if-eqz v23, :cond_180
const/16 v14, -0x64
invoke-direct {v1, v7, v14, v10}, Lcom/appff/haptic/a/a;->c(III)Z
move-result v24
if-nez v24, :cond_183
:cond_180
const-string v4, "third point\'s time must be less than 5000, and intensity must between 0~1, frequency must between -100 and 100"
goto :goto_13f
:cond_183
const/4 v10, 0x3
if-ne v10, v9, :cond_197
if-ne v15, v13, :cond_194
if-nez v6, :cond_194
const/16 v10, -0x64
const/16 v14, 0x64
invoke-direct {v1, v7, v10, v14}, Lcom/appff/haptic/a/a;->c(III)Z
move-result v10
if-nez v10, :cond_199
:cond_194
const-string v4, "fourth point\'s time must equal with duration, and intensity must be 0, frequency must between -100 and 100"
goto :goto_13f
:cond_197
const/16 v14, 0x64
:cond_199
mul-int/lit8 v10, v9, 0x3
add-int/lit8 v22, v10, 0x5
add-int v22, v26, v22
aput v15, v8, v22
add-int/lit8 v15, v10, 0x6
add-int v15, v26, v15
aput v6, v8, v15
add-int/lit8 v10, v10, 0x7
add-int v6, v26, v10
aput v7, v8, v6
add-int/lit8 v9, v9, 0x1
move/from16 v7, v26
const/16 v6, 0x1388
goto/16 :goto_113
:cond_1b5
move/from16 v13, v19
:cond_1b7
move/from16 v14, v20
:goto_1b9
if-nez v14, :cond_1bc
goto :goto_1df
:cond_1bc
add-int/lit8 v11, v11, 0x1
move-object/from16 v6, v17
move-object/from16 v4, v18
move/from16 v7, v21
goto/16 :goto_29
:cond_1c6
:goto_1c6
const-string v0, "intensity or frequency must between 0 and 100"
goto :goto_1cf
:cond_1c9
move/from16 v21, v7
move/from16 v19, v13
const-string v0, "haven\'t get type value"
:goto_1cf
invoke-static {v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
move/from16 v13, v19
:goto_1d4
const/4 v14, 0x0
goto :goto_1df
:catch_1d6
move-exception v0
move-object v5, v8
goto :goto_222
:cond_1d9
move/from16 v21, v7
move/from16 v19, v13
move/from16 v20, v14
:goto_1df
if-nez v14, :cond_1e8
const-string v0, "current he file data, isn\'t compliance!!!!!!!"
invoke-static {v5, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
const/4 v2, 0x0
return-object v2
:cond_1e8
const/4 v0, 0x1
add-int/lit8 v7, v21, -0x1
mul-int/lit8 v7, v7, 0x11
const/4 v0, 0x0
add-int/2addr v7, v0
aget v0, v8, v7
const/16 v2, 0x1000
if-ne v2, v0, :cond_20b
add-int/2addr v12, v13
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "last event type is continuous, totalDuration:"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v12}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
:goto_207
invoke-static {v5, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_226
:cond_20b
add-int/lit8 v12, v12, 0x50
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "last event type is transient, totalDuration:"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v12}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
:try_end_21e
.catch Ljava/lang/Exception; {:try_start_5a .. :try_end_21e} :catch_1d6
goto :goto_207
:catch_21f
move-exception v0
const/4 v2, 0x0
move-object v5, v2
:goto_222
invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V
move-object v8, v5
:goto_226
return-object v8
.end method
.method private c(III)Z
.registers 4
if-lt p1, p2, :cond_6
if-gt p1, p3, :cond_6
const/4 p1, 0x1
goto :goto_7
:cond_6
const/4 p1, 0x0
:goto_7
return p1
.end method
.method private c(Ljava/lang/String;)[Lcom/appff/haptic/a/e;
.registers 33
move-object/from16 v1, p0
const-string v0, "Duration"
const-string v2, "Frequency"
const-string v3, "Intensity"
const-string v4, "RelativeTime"
:try_start_a
new-instance v6, Lorg/json/JSONObject;
move-object/from16 v7, p1
invoke-direct {v6, v7}, Lorg/json/JSONObject;-><init>(Ljava/lang/String;)V
const-string v7, "PatternList"
invoke-virtual {v6, v7}, Lorg/json/JSONObject;->getJSONArray(Ljava/lang/String;)Lorg/json/JSONArray;
move-result-object v6
invoke-virtual {v6}, Lorg/json/JSONArray;->length()I
move-result v7
mul-int/lit8 v8, v7, 0x40
new-array v8, v8, [B
new-array v8, v7, [Lcom/appff/haptic/a/e;
:try_end_21
.catch Ljava/lang/Exception; {:try_start_a .. :try_end_21} :catch_2ba
const/4 v9, 0x1
const/4 v11, 0x0
const/4 v12, 0x0
const/4 v13, 0x0
:goto_25
if-ge v11, v7, :cond_2b7
:try_start_27
new-instance v14, Lcom/appff/haptic/a/e;
invoke-direct {v14, v1}, Lcom/appff/haptic/a/e;-><init>(Lcom/appff/haptic/a/a;)V
invoke-virtual {v6, v11}, Lorg/json/JSONArray;->getJSONObject(I)Lorg/json/JSONObject;
move-result-object v15
const-string v10, "AbsoluteTime"
invoke-virtual {v15, v10}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v10
iput v10, v14, Lcom/appff/haptic/a/e;->a:I
:try_end_38
.catch Ljava/lang/Exception; {:try_start_27 .. :try_end_38} :catch_2b1
add-int v5, v12, v13
move-object/from16 v16, v6
const-string v6, "PatternHeImpl"
if-lez v11, :cond_5c
if-ge v10, v5, :cond_5c
:try_start_42
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Bad pattern relative time in int:"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v6, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
:try_end_56
.catch Ljava/lang/Exception; {:try_start_42 .. :try_end_56} :catch_58
const/4 v2, 0x0
return-object v2
:catch_58
move-exception v0
move-object v5, v8
goto/16 :goto_2bd
:cond_5c
:try_start_5c
const-string v5, "Pattern"
invoke-virtual {v15, v5}, Lorg/json/JSONObject;->getJSONArray(Ljava/lang/String;)Lorg/json/JSONArray;
move-result-object v5
invoke-virtual {v5}, Lorg/json/JSONArray;->length()I
move-result v10
new-array v10, v10, [Lcom/appff/haptic/a/c;
iput-object v10, v14, Lcom/appff/haptic/a/e;->b:[Lcom/appff/haptic/a/c;
move/from16 v17, v7
const/4 v10, -0x1
const/4 v15, 0x0
:goto_6e
invoke-virtual {v5}, Lorg/json/JSONArray;->length()I
move-result v7
if-ge v15, v7, :cond_283
invoke-virtual {v5, v15}, Lorg/json/JSONArray;->getJSONObject(I)Lorg/json/JSONObject;
move-result-object v7
move-object/from16 v18, v5
const-string v5, "Event"
invoke-virtual {v7, v5}, Lorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;
move-result-object v5
const-string v7, "Type"
invoke-virtual {v5, v7}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v7
move/from16 v19, v9
const-string v9, "continuous"
invoke-static {v9, v7}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z
move-result v9
:try_end_8e
.catch Ljava/lang/Exception; {:try_start_5c .. :try_end_8e} :catch_2b1
move/from16 v20, v12
if-eqz v9, :cond_9e
:try_start_92
iget-object v7, v14, Lcom/appff/haptic/a/e;->b:[Lcom/appff/haptic/a/c;
new-instance v9, Lcom/appff/haptic/a/b;
invoke-direct {v9, v1}, Lcom/appff/haptic/a/b;-><init>(Lcom/appff/haptic/a/a;)V
aput-object v9, v7, v15
:try_end_9b
.catch Ljava/lang/Exception; {:try_start_92 .. :try_end_9b} :catch_58
const/16 v7, 0x1000
goto :goto_b1
:cond_9e
:try_start_9e
const-string v9, "transient"
invoke-static {v9, v7}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z
move-result v7
if-eqz v7, :cond_26d
iget-object v7, v14, Lcom/appff/haptic/a/e;->b:[Lcom/appff/haptic/a/c;
new-instance v9, Lcom/appff/haptic/a/i;
invoke-direct {v9, v1}, Lcom/appff/haptic/a/i;-><init>(Lcom/appff/haptic/a/a;)V
aput-object v9, v7, v15
const/16 v7, 0x1001
:goto_b1
const-string v9, "Index"
invoke-virtual {v5, v9}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v9
iget-object v12, v14, Lcom/appff/haptic/a/e;->b:[Lcom/appff/haptic/a/c;
aget-object v12, v12, v15
int-to-byte v9, v9
iput v9, v12, Lcom/appff/haptic/a/c;->f:I
invoke-virtual {v5, v4}, Lorg/json/JSONObject;->has(Ljava/lang/String;)Z
move-result v9
:try_end_c2
.catch Ljava/lang/Exception; {:try_start_9e .. :try_end_c2} :catch_2b1
const-string v12, "event:"
if-nez v9, :cond_df
:try_start_c6
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v0, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, " don\'t have relativeTime parameters,BAD he!"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v6, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
:try_end_dd
.catch Ljava/lang/Exception; {:try_start_c6 .. :try_end_dd} :catch_58
const/4 v2, 0x0
return-object v2
:cond_df
:try_start_df
invoke-virtual {v5, v4}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v9
:try_end_e3
.catch Ljava/lang/Exception; {:try_start_df .. :try_end_e3} :catch_2b1
if-lez v15, :cond_10a
if-ge v9, v10, :cond_10a
:try_start_e7
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "pattern ind:"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, " event:"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v15}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, " relative time is not right!"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v6, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
:try_end_108
.catch Ljava/lang/Exception; {:try_start_e7 .. :try_end_108} :catch_58
const/4 v2, 0x0
return-object v2
:cond_10a
const v10, 0xc350
move-object/from16 v22, v4
const/4 v4, 0x0
:try_start_110
invoke-direct {v1, v9, v4, v10}, Lcom/appff/haptic/a/a;->c(III)Z
move-result v10
:try_end_114
.catch Ljava/lang/Exception; {:try_start_110 .. :try_end_114} :catch_2b1
if-nez v10, :cond_125
:try_start_116
const-string v4, "relativeTime must between 0 and 50000"
invoke-static {v6, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
:try_end_11b
.catch Ljava/lang/Exception; {:try_start_116 .. :try_end_11b} :catch_58
move-object/from16 v21, v0
move-object v4, v2
move-object/from16 v30, v3
move-object/from16 v24, v8
move v12, v9
goto/16 :goto_281
:cond_125
:try_start_125
const-string v4, "Parameters"
invoke-virtual {v5, v4}, Lorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;
move-result-object v4
invoke-virtual {v4, v3}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v10
move/from16 v23, v13
invoke-virtual {v4, v2}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v13
:try_end_135
.catch Ljava/lang/Exception; {:try_start_125 .. :try_end_135} :catch_2b1
move-object/from16 v24, v8
const/16 v8, 0x64
move-object/from16 v25, v2
const/4 v2, 0x0
:try_start_13c
invoke-direct {v1, v10, v2, v8}, Lcom/appff/haptic/a/a;->c(III)Z
move-result v20
if-eqz v20, :cond_260
invoke-direct {v1, v13, v2, v8}, Lcom/appff/haptic/a/a;->c(III)Z
move-result v8
if-nez v8, :cond_14a
goto/16 :goto_260
:cond_14a
iget-object v2, v14, Lcom/appff/haptic/a/e;->b:[Lcom/appff/haptic/a/c;
aget-object v2, v2, v15
iput v7, v2, Lcom/appff/haptic/a/c;->d:I
iput v9, v2, Lcom/appff/haptic/a/c;->g:I
iput v10, v2, Lcom/appff/haptic/a/c;->h:I
iput v13, v2, Lcom/appff/haptic/a/c;->i:I
const/16 v2, 0x1000
if-ne v2, v7, :cond_23f
invoke-virtual {v5, v0}, Lorg/json/JSONObject;->has(Ljava/lang/String;)Z
move-result v2
if-nez v2, :cond_179
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v0, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, " don\'t have duration parameters"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v6, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
const/4 v2, 0x0
return-object v2
:cond_179
invoke-virtual {v5, v0}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v2
const/16 v5, 0x1388
const/4 v7, 0x0
invoke-direct {v1, v2, v7, v5}, Lcom/appff/haptic/a/a;->c(III)Z
move-result v5
if-nez v5, :cond_195
const-string v4, "duration must be less than 5000"
invoke-static {v6, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
move-object/from16 v21, v0
move v13, v2
move-object/from16 v30, v3
move v12, v9
move-object/from16 v4, v25
goto/16 :goto_281
:cond_195
iget-object v5, v14, Lcom/appff/haptic/a/e;->b:[Lcom/appff/haptic/a/c;
aget-object v5, v5, v15
iput v2, v5, Lcom/appff/haptic/a/c;->j:I
const-string v5, "Curve"
invoke-virtual {v4, v5}, Lorg/json/JSONObject;->getJSONArray(Ljava/lang/String;)Lorg/json/JSONArray;
move-result-object v4
iget-object v5, v14, Lcom/appff/haptic/a/e;->b:[Lcom/appff/haptic/a/c;
aget-object v5, v5, v15
check-cast v5, Lcom/appff/haptic/a/b;
invoke-virtual {v4}, Lorg/json/JSONArray;->length()I
move-result v8
int-to-byte v8, v8
iput v8, v5, Lcom/appff/haptic/a/b;->a:I
invoke-virtual {v4}, Lorg/json/JSONArray;->length()I
move-result v5
new-array v8, v5, [Lcom/appff/haptic/a/h;
move-object/from16 v21, v0
const/4 v7, -0x1
const/4 v10, 0x0
const/4 v13, 0x0
:goto_1b9
invoke-virtual {v4}, Lorg/json/JSONArray;->length()I
move-result v0
if-ge v10, v0, :cond_20b
invoke-virtual {v4, v10}, Lorg/json/JSONArray;->getJSONObject(I)Lorg/json/JSONObject;
move-result-object v0
new-instance v13, Lcom/appff/haptic/a/h;
invoke-direct {v13, v1}, Lcom/appff/haptic/a/h;-><init>(Lcom/appff/haptic/a/a;)V
aput-object v13, v8, v10
const-string v13, "Time"
invoke-virtual {v0, v13}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v13
invoke-virtual {v0, v3}, Lorg/json/JSONObject;->getDouble(Ljava/lang/String;)D
move-result-wide v26
const-wide/high16 v28, 0x4059000000000000L # 100.0
move-object/from16 v30, v3
move-object/from16 v20, v4
mul-double v3, v26, v28
double-to-int v3, v3
move-object/from16 v4, v25
invoke-virtual {v0, v4}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v0
if-nez v10, :cond_1ee
if-eqz v13, :cond_1ee
const-string v0, "time of first point is not 0,bad he!"
invoke-static {v6, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
const/4 v2, 0x0
return-object v2
:cond_1ee
if-lez v10, :cond_1f9
if-ge v13, v7, :cond_1f9
const-string v0, "point times did not arrange in order,bad he!"
invoke-static {v6, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
const/4 v2, 0x0
return-object v2
:cond_1f9
aget-object v7, v8, v10
iput v13, v7, Lcom/appff/haptic/a/h;->a:I
iput v3, v7, Lcom/appff/haptic/a/h;->b:I
iput v0, v7, Lcom/appff/haptic/a/h;->c:I
add-int/lit8 v10, v10, 0x1
move-object/from16 v25, v4
move v7, v13
move-object/from16 v4, v20
move-object/from16 v3, v30
goto :goto_1b9
:cond_20b
move-object/from16 v30, v3
move-object/from16 v4, v25
if-eq v13, v2, :cond_22a
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v0, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v11}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v2, " point last time do not match duration parameter"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v6, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
const/4 v2, 0x0
return-object v2
:cond_22a
if-lez v5, :cond_236
iget-object v0, v14, Lcom/appff/haptic/a/e;->b:[Lcom/appff/haptic/a/c;
aget-object v0, v0, v15
check-cast v0, Lcom/appff/haptic/a/b;
iput-object v8, v0, Lcom/appff/haptic/a/b;->b:[Lcom/appff/haptic/a/h;
move v13, v2
goto :goto_247
:cond_236
const-string v0, "continuous event has nothing in point"
invoke-static {v6, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
move v13, v2
const/16 v19, 0x0
goto :goto_247
:cond_23f
move-object/from16 v21, v0
move-object/from16 v30, v3
move-object/from16 v4, v25
move/from16 v13, v23
:goto_247
if-nez v19, :cond_24d
move v12, v9
move/from16 v9, v19
goto :goto_292
:cond_24d
add-int/lit8 v15, v15, 0x1
move-object v2, v4
move v10, v9
move v12, v10
move-object/from16 v5, v18
move/from16 v9, v19
move-object/from16 v0, v21
move-object/from16 v4, v22
move-object/from16 v8, v24
move-object/from16 v3, v30
goto/16 :goto_6e
:cond_260
:goto_260
move-object/from16 v21, v0
move-object/from16 v30, v3
move-object/from16 v4, v25
const-string v0, "intensity or frequency must between 0 and 100"
invoke-static {v6, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
move v12, v9
goto :goto_27f
:cond_26d
move-object/from16 v21, v0
move-object/from16 v30, v3
move-object/from16 v22, v4
move-object/from16 v24, v8
move/from16 v23, v13
move-object v4, v2
const-string v0, "haven\'t get type value"
invoke-static {v6, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
move/from16 v12, v20
:goto_27f
move/from16 v13, v23
:goto_281
const/4 v9, 0x0
goto :goto_292
:cond_283
move-object/from16 v21, v0
move-object/from16 v30, v3
move-object/from16 v22, v4
move-object/from16 v24, v8
move/from16 v19, v9
move/from16 v20, v12
move/from16 v23, v13
move-object v4, v2
:goto_292
if-nez v9, :cond_29b
const-string v0, "current he file data, isn\'t compliance!!!!!!!"
invoke-static {v6, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
const/4 v2, 0x0
return-object v2
:cond_29b
const/4 v2, 0x0
aput-object v14, v24, v11
:try_end_29e
.catch Ljava/lang/Exception; {:try_start_13c .. :try_end_29e} :catch_2af
add-int/lit8 v11, v11, 0x1
move-object v2, v4
move-object/from16 v6, v16
move/from16 v7, v17
move-object/from16 v0, v21
move-object/from16 v4, v22
move-object/from16 v8, v24
move-object/from16 v3, v30
goto/16 :goto_25
:catch_2af
move-exception v0
goto :goto_2b4
:catch_2b1
move-exception v0
move-object/from16 v24, v8
:goto_2b4
move-object/from16 v5, v24
goto :goto_2bd
:cond_2b7
move-object/from16 v24, v8
goto :goto_2c1
:catch_2ba
move-exception v0
const/4 v2, 0x0
move-object v5, v2
:goto_2bd
invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V
move-object v8, v5
:goto_2c1
return-object v8
.end method
# virtual methods
.method public a(Ljava/lang/String;)I
.registers 18
const-string v0, "get Non FF PatternDuration"
const-string v1, "PatternHeImpl"
invoke-static {v1, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
:try_start_7
new-instance v0, Lorg/json/JSONObject;
move-object/from16 v3, p1
invoke-direct {v0, v3}, Lorg/json/JSONObject;-><init>(Ljava/lang/String;)V
const-string v3, "Pattern"
invoke-virtual {v0, v3}, Lorg/json/JSONObject;->getJSONArray(Ljava/lang/String;)Lorg/json/JSONArray;
move-result-object v0
invoke-virtual {v0}, Lorg/json/JSONArray;->length()I
move-result v3
const/16 v4, 0x10
invoke-static {v3, v4}, Ljava/lang/Math;->min(II)I
move-result v3
mul-int/lit8 v4, v3, 0x2
new-array v5, v4, [J
:try_end_22
.catch Ljava/lang/Exception; {:try_start_7 .. :try_end_22} :catch_d2
const/4 v6, 0x0
const/4 v7, 0x0
const/4 v8, 0x0
:goto_25
if-ge v6, v3, :cond_b8
:try_start_27
invoke-virtual {v0, v6}, Lorg/json/JSONArray;->getJSONObject(I)Lorg/json/JSONObject;
move-result-object v9
const-string v10, "Event"
invoke-virtual {v9, v10}, Lorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;
move-result-object v9
const-string v10, "Type"
invoke-virtual {v9, v10}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v10
const-string v11, "continuous"
invoke-static {v11, v10}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z
move-result v11
:try_end_3d
.catch Ljava/lang/Exception; {:try_start_27 .. :try_end_3d} :catch_b6
const-wide/16 v12, 0x32
const-wide/16 v14, 0x0
const-string v2, "RelativeTime"
if-eqz v11, :cond_77
mul-int/lit8 v10, v6, 0x2
:try_start_47
invoke-virtual {v9, v2}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v11
sub-int/2addr v11, v7
sub-int/2addr v11, v8
int-to-long v7, v11
aput-wide v7, v5, v10
cmp-long v11, v7, v14
if-gez v11, :cond_56
aput-wide v12, v5, v10
:cond_56
const-string v7, "Duration"
invoke-virtual {v9, v7}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v7
const/16 v8, 0x64
const/16 v11, 0x32
if-le v7, v11, :cond_67
if-ge v7, v8, :cond_67
const/16 v7, 0x32
goto :goto_6b
:cond_67
if-le v7, v8, :cond_6b
add-int/lit8 v7, v7, -0x32
:cond_6b
:goto_6b
add-int/lit8 v10, v10, 0x1
int-to-long v11, v7
aput-wide v11, v5, v10
:goto_70
invoke-virtual {v9, v2}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v2
move v8, v7
move v7, v2
goto :goto_ac
:cond_77
const-string v11, "transient"
invoke-static {v11, v10}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z
move-result v10
if-eqz v10, :cond_b0
mul-int/lit8 v10, v6, 0x2
invoke-virtual {v9, v2}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v11
sub-int/2addr v11, v7
sub-int/2addr v11, v8
int-to-long v7, v11
aput-wide v7, v5, v10
cmp-long v11, v7, v14
if-gez v11, :cond_90
aput-wide v12, v5, v10
:cond_90
const-string v7, "Parameters"
invoke-virtual {v9, v7}, Lorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;
move-result-object v7
const-string v8, "Intensity"
invoke-virtual {v7, v8}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v8
const-string v11, "Frequency"
invoke-virtual {v7, v11}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v7
invoke-static {v8, v7}, Lcom/appff/haptic/base/d;->a(II)I
move-result v7
add-int/lit8 v10, v10, 0x1
int-to-long v11, v7
aput-wide v11, v5, v10
goto :goto_70
:goto_ac
add-int/lit8 v6, v6, 0x1
goto/16 :goto_25
:cond_b0
const-string v0, "haven\'t get type value"
invoke-static {v1, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
:try_end_b5
.catch Ljava/lang/Exception; {:try_start_47 .. :try_end_b5} :catch_b6
goto :goto_b8
:catch_b6
move-exception v0
goto :goto_d4
:cond_b8
:goto_b8
const/4 v0, 0x0
const/4 v2, 0x0
:goto_ba
if-ge v0, v4, :cond_c6
:try_start_bc
aget-wide v6, v5, v0
int-to-long v2, v2
add-long/2addr v2, v6
long-to-int v2, v2
add-int/lit8 v0, v0, 0x1
goto :goto_ba
:catch_c4
move-exception v0
goto :goto_d5
:cond_c6
const/16 v0, 0x7530
if-le v2, v0, :cond_d1
const-string v0, "Pattern\'s duration is less than 30000"
invoke-static {v1, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
:try_end_cf
.catch Ljava/lang/Exception; {:try_start_bc .. :try_end_cf} :catch_c4
const/4 v1, 0x0
return v1
:cond_d1
return v2
:catch_d2
move-exception v0
const/4 v1, 0x0
:goto_d4
const/4 v2, 0x0
:goto_d5
invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V
return v2
.end method
.method public a()V
.registers 2
const/4 v0, 0x0
invoke-virtual {p0, v0, v0, v0}, Lcom/appff/haptic/a/a;->a(III)V
return-void
.end method
.method public a(I)V
.registers 3
const/4 v0, -0x1
invoke-virtual {p0, v0, v0, p1}, Lcom/appff/haptic/a/a;->a(III)V
return-void
.end method
.method public a(III)V
.registers 13
const-string v0, "PatternHeImpl"
:try_start_2
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v2, 0x1a
if-lt v1, v2, :cond_3f
iget-object v1, p0, Lcom/appff/haptic/a/a;->e:Ljava/lang/Class;
const-string v2, "createPatternHeParameter"
const/4 v3, 0x3
new-array v4, v3, [Ljava/lang/Class;
sget-object v5, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
const/4 v6, 0x0
aput-object v5, v4, v6
const/4 v7, 0x1
aput-object v5, v4, v7
const/4 v8, 0x2
aput-object v5, v4, v8
invoke-virtual {v1, v2, v4}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v1
new-array v2, v3, [Ljava/lang/Object;
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
aput-object p1, v2, v6
invoke-static {p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
aput-object p1, v2, v7
invoke-static {p3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
aput-object p1, v2, v8
const/4 p1, 0x0
invoke-virtual {v1, p1, v2}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Landroid/os/VibrationEffect;
iget-object p2, p0, Lcom/appff/haptic/a/a;->c:Landroid/os/Vibrator;
invoke-static {p2, p1}, Lcom/appff/haptic/n;->a(Landroid/os/Vibrator;Landroid/os/VibrationEffect;)V
goto :goto_4e
:cond_3f
const-string p1, "The system apk is low than 26,does not support rt!!"
invoke-static {v0, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
:try_end_44
.catch Ljava/lang/Exception; {:try_start_2 .. :try_end_44} :catch_45
goto :goto_4e
:catch_45
move-exception p1
invoke-virtual {p1}, Ljava/lang/Throwable;->printStackTrace()V
const-string p1, "The system doesn\'t integrate rt software"
invoke-static {v0, p1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
:goto_4e
return-void
.end method
.method public a(Ljava/io/File;IIII)V
.registers 13
invoke-virtual {p1}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v0
const-string v1, ".he"
invoke-static {v0, v1}, Lcom/appff/haptic/base/Utils;->validatePath(Ljava/lang/String;Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_d
return-void
:cond_d
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "looper:"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, " interval:"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, " amplitude:"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, " freq:"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const-string v1, "PatternHeImpl"
invoke-static {v1, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
:try_start_40
new-instance v1, Ljava/io/BufferedReader;
new-instance v2, Ljava/io/InputStreamReader;
new-instance v3, Ljava/io/FileInputStream;
invoke-direct {v3, p1}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
invoke-direct {v2, v3}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;)V
invoke-direct {v1, v2}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V
:goto_4f
invoke-virtual {v1}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;
move-result-object p1
if-eqz p1, :cond_5d
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:try_end_58
.catch Ljava/lang/Exception; {:try_start_40 .. :try_end_58} :catch_59
goto :goto_4f
:catch_59
move-exception p1
invoke-virtual {p1}, Ljava/lang/Throwable;->printStackTrace()V
:cond_5d
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
move-object v1, p0
move v3, p2
move v4, p3
move v5, p4
move v6, p5
invoke-virtual/range {v1 .. v6}, Lcom/appff/haptic/a/a;->a(Ljava/lang/String;IIII)V
return-void
.end method
.method public a(Ljava/lang/String;IIII)V
.registers 31
move-object/from16 v9, p0
iget-object v0, v9, Lcom/appff/haptic/a/a;->c:Landroid/os/Vibrator;
const-string v10, "PatternHeImpl"
if-nez v0, :cond_e
const-string v0, "Please call the init method"
:goto_a
invoke-static {v10, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
return-void
:cond_e
const-string v0, "play new he api applyPatternHeWithString(String patternString, int loop,int interval,int amplitude,int freq)"
invoke-static {v10, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
const/4 v0, 0x1
move/from16 v11, p2
if-ge v11, v0, :cond_1b
const-string v0, "The minimum count of loop pattern is 1"
goto :goto_a
:cond_1b
:try_start_1b
new-instance v1, Lorg/json/JSONObject;
move-object/from16 v2, p1
invoke-direct {v1, v2}, Lorg/json/JSONObject;-><init>(Ljava/lang/String;)V
invoke-static {}, Lcom/appff/haptic/base/Utils;->isNonFFVersionInFramework()Z
move-result v3
const/4 v12, 0x0
if-nez v3, :cond_70
const-string v4, "Metadata"
invoke-virtual {v1, v4}, Lorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;
move-result-object v1
const-string v4, "Version"
invoke-virtual {v1, v4}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v1
invoke-static {}, Lcom/appff/haptic/base/Utils;->getMajorVersion()I
move-result v4
invoke-static {}, Lcom/appff/haptic/base/Utils;->getMinorVersion()I
move-result v5
invoke-direct {v9, v4, v5, v1}, Lcom/appff/haptic/a/a;->b(III)Z
move-result v5
if-nez v5, :cond_6e
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "rt version check failed, MajorVersion:"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v3, "%x02"
new-array v0, v0, [Ljava/lang/Object;
invoke-static {v4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v4
aput-object v4, v0, v12
invoke-static {v3, v0}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v0
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v0, " heVersion:"
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v10, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
:try_end_6d
.catch Ljava/lang/Exception; {:try_start_1b .. :try_end_6d} :catch_1b0
return-void
:cond_6e
move v4, v1
goto :goto_71
:cond_70
const/4 v4, 0x0
:goto_71
const-class v14, [I
const-string v15, "for createPatternHe, The system doesn\'t integrate rt software"
const-string v8, "createPatternHeWithParam"
const-string v7, "The system is low than 26,does not support rt!!"
const/16 v6, 0x1a
const/16 v16, 0x4
const/16 v17, 0x3
const/4 v5, 0x5
if-ne v4, v0, :cond_fc
:try_start_82
invoke-direct/range {p0 .. p1}, Lcom/appff/haptic/a/a;->b(Ljava/lang/String;)[I
move-result-object v2
if-nez v2, :cond_9d
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "serialize he failed!! ,heVersion:"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v10, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
return-void
:cond_9d
array-length v13, v2
:try_end_9e
.catch Ljava/lang/Exception; {:try_start_82 .. :try_end_9e} :catch_1b0
:try_start_9e
sget v1, Landroid/os/Build$VERSION;->SDK_INT:I
if-lt v1, v6, :cond_ee
iget-object v1, v9, Lcom/appff/haptic/a/a;->e:Ljava/lang/Class;
new-array v6, v5, [Ljava/lang/Class;
aput-object v14, v6, v12
sget-object v7, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
aput-object v7, v6, v0
const/4 v14, 0x2
aput-object v7, v6, v14
aput-object v7, v6, v17
aput-object v7, v6, v16
invoke-virtual {v1, v8, v6}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v1
if-nez v3, :cond_c3
add-int/2addr v13, v0
new-array v3, v13, [I
aput v4, v3, v12
array-length v4, v2
invoke-static {v2, v12, v3, v0, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
move-object v2, v3
:cond_c3
new-array v3, v5, [Ljava/lang/Object;
aput-object v2, v3, v12
invoke-static/range {p2 .. p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v2
aput-object v2, v3, v0
invoke-static/range {p3 .. p3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
const/4 v2, 0x2
aput-object v0, v3, v2
invoke-static/range {p4 .. p4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
aput-object v0, v3, v17
invoke-static/range {p5 .. p5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
aput-object v0, v3, v16
const/4 v0, 0x0
invoke-virtual {v1, v0, v3}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/os/VibrationEffect;
iget-object v1, v9, Lcom/appff/haptic/a/a;->c:Landroid/os/Vibrator;
invoke-static {v1, v0}, Lcom/appff/haptic/n;->a(Landroid/os/Vibrator;Landroid/os/VibrationEffect;)V
goto/16 :goto_1b4
:cond_ee
invoke-static {v10, v7}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
:try_end_f1
.catch Ljava/lang/Exception; {:try_start_9e .. :try_end_f1} :catch_f3
goto/16 :goto_1b4
:catch_f3
move-exception v0
:try_start_f4
invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V
:goto_f7
invoke-static {v10, v15}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
goto/16 :goto_1b4
:cond_fc
const/4 v1, 0x2
if-ne v4, v1, :cond_19b
invoke-direct/range {p0 .. p1}, Lcom/appff/haptic/a/a;->c(Ljava/lang/String;)[Lcom/appff/haptic/a/e;
move-result-object v13
if-eqz v13, :cond_186
array-length v2, v13
if-nez v2, :cond_10a
goto/16 :goto_186
:cond_10a
sget-object v2, Lcom/appff/haptic/a/a;->a:Ljava/util/concurrent/atomic/AtomicInteger;
invoke-virtual {v2}, Ljava/util/concurrent/atomic/AtomicInteger;->getAndIncrement()I
move-result v18
invoke-static {}, Landroid/os/Process;->myPid()I
move-result v19
const/4 v2, 0x2
array-length v3, v13
const/16 v20, 0x0
const/16 v21, 0x2
move-object/from16 v1, p0
move/from16 v22, v3
move v3, v4
move/from16 v4, v22
const/4 v0, 0x5
move/from16 v5, v19
const/16 v12, 0x1a
move/from16 v6, v18
move-object/from16 v23, v7
move/from16 v7, v20
move-object/from16 v24, v8
move-object v8, v13
invoke-virtual/range {v1 .. v8}, Lcom/appff/haptic/a/a;->a(IIIIII[Lcom/appff/haptic/a/e;)[I
move-result-object v1
:try_end_133
.catch Ljava/lang/Exception; {:try_start_f4 .. :try_end_133} :catch_1b0
:try_start_133
sget v2, Landroid/os/Build$VERSION;->SDK_INT:I
if-lt v2, v12, :cond_17a
iget-object v2, v9, Lcom/appff/haptic/a/a;->e:Ljava/lang/Class;
new-array v3, v0, [Ljava/lang/Class;
const/4 v4, 0x0
aput-object v14, v3, v4
sget-object v4, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
const/4 v5, 0x1
aput-object v4, v3, v5
aput-object v4, v3, v21
aput-object v4, v3, v17
aput-object v4, v3, v16
move-object/from16 v4, v24
invoke-virtual {v2, v4, v3}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v2
new-array v0, v0, [Ljava/lang/Object;
const/4 v3, 0x0
aput-object v1, v0, v3
invoke-static/range {p2 .. p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
const/4 v3, 0x1
aput-object v1, v0, v3
invoke-static/range {p3 .. p3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
aput-object v1, v0, v21
invoke-static/range {p4 .. p4}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
aput-object v1, v0, v17
invoke-static/range {p5 .. p5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v1
aput-object v1, v0, v16
const/4 v1, 0x0
invoke-virtual {v2, v1, v0}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/os/VibrationEffect;
iget-object v1, v9, Lcom/appff/haptic/a/a;->c:Landroid/os/Vibrator;
invoke-static {v1, v0}, Lcom/appff/haptic/n;->a(Landroid/os/Vibrator;Landroid/os/VibrationEffect;)V
goto :goto_1b4
:cond_17a
move-object/from16 v0, v23
invoke-static {v10, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
:try_end_17f
.catch Ljava/lang/Exception; {:try_start_133 .. :try_end_17f} :catch_180
goto :goto_1b4
:catch_180
move-exception v0
:try_start_181
invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V
goto/16 :goto_f7
:cond_186
:goto_186
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "serialize he failed!!, heVersion:"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v10, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
return-void
:cond_19b
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "unsupport he version heVersion:"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, v4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v10, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
:try_end_1af
.catch Ljava/lang/Exception; {:try_start_181 .. :try_end_1af} :catch_1b0
goto :goto_1b4
:catch_1b0
move-exception v0
invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V
:goto_1b4
return-void
.end method
.method a(IIIIII[Lcom/appff/haptic/a/e;)[I
.registers 13
array-length v0, p7
const/4 v1, 0x0
const/4 v2, 0x0
const/4 v3, 0x0
:goto_4
if-ge v2, v0, :cond_10
aget-object v4, p7, v2
invoke-virtual {v4}, Lcom/appff/haptic/a/e;->b()I
move-result v4
add-int/2addr v3, v4
add-int/lit8 v2, v2, 0x1
goto :goto_4
:cond_10
const/4 v0, 0x5
add-int/2addr v3, v0
new-array v2, v3, [I
invoke-static {v2, v1}, Ljava/util/Arrays;->fill([II)V
aput p1, v2, v1
const/4 p1, 0x1
aput p2, v2, p1
const/4 p2, 0x2
aput p4, v2, p2
const/4 p2, 0x3
aput p5, v2, p2
const/4 p2, 0x4
aget p4, v2, p2
const p5, 0xffff
and-int/2addr p3, p5
or-int/2addr p3, p4
aput p3, v2, p2
array-length p4, p7
shl-int/lit8 p4, p4, 0x10
const/high16 p5, -0x10000
and-int/2addr p4, p5
or-int/2addr p3, p4
aput p3, v2, p2
array-length p2, p7
const/4 p3, 0x0
:goto_37
if-ge p3, p2, :cond_49
aget-object p4, p7, p3
invoke-virtual {p4, p6}, Lcom/appff/haptic/a/e;->a(I)[I
move-result-object p4
array-length p5, p4
invoke-static {p4, v1, v2, v0, p5}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V
array-length p4, p4
add-int/2addr v0, p4
add-int/2addr p6, p1
add-int/lit8 p3, p3, 0x1
goto :goto_37
:cond_49
return-object v2
.end method
.method public b(I)V
.registers 3
const/4 v0, -0x1
invoke-virtual {p0, p1, v0, v0}, Lcom/appff/haptic/a/a;->a(III)V
return-void
.end method
.method public b(II)V
.registers 13
const-string v0, "PatternHeImpl"
new-instance v7, Lcom/appff/haptic/a/g;
const/16 v2, 0x1001
const/4 v3, 0x0
const/4 v4, 0x0
move-object v1, v7
move v5, p1
move v6, p2
invoke-direct/range {v1 .. v6}, Lcom/appff/haptic/a/g;-><init>(IIIII)V
invoke-virtual {v7}, Lcom/appff/haptic/a/g;->a()[I
move-result-object p1
:try_start_12
sget p2, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x1a
if-lt p2, v1, :cond_61
iget-object p2, p0, Lcom/appff/haptic/a/a;->e:Ljava/lang/Class;
const-string v1, "createPatternHeWithParam"
const/4 v2, 0x5
new-array v3, v2, [Ljava/lang/Class;
const-class v4, [I
const/4 v5, 0x0
aput-object v4, v3, v5
sget-object v4, Ljava/lang/Integer;->TYPE:Ljava/lang/Class;
const/4 v6, 0x1
aput-object v4, v3, v6
const/4 v7, 0x2
aput-object v4, v3, v7
const/4 v8, 0x3
aput-object v4, v3, v8
const/4 v9, 0x4
aput-object v4, v3, v9
invoke-virtual {p2, v1, v3}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object p2
new-array v1, v2, [Ljava/lang/Object;
aput-object p1, v1, v5
invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
aput-object p1, v1, v6
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
aput-object p1, v1, v7
const/16 p1, 0xff
invoke-static {p1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
aput-object p1, v1, v8
invoke-static {v5}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
aput-object p1, v1, v9
const/4 p1, 0x0
invoke-virtual {p2, p1, v1}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object p1
check-cast p1, Landroid/os/VibrationEffect;
iget-object p2, p0, Lcom/appff/haptic/a/a;->c:Landroid/os/Vibrator;
invoke-static {p2, p1}, Lcom/appff/haptic/n;->a(Landroid/os/Vibrator;Landroid/os/VibrationEffect;)V
goto :goto_70
:cond_61
const-string p1, "The system is low than 26,does not support rt!!"
invoke-static {v0, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
:try_end_66
.catch Ljava/lang/Exception; {:try_start_12 .. :try_end_66} :catch_67
goto :goto_70
:catch_67
move-exception p1
invoke-virtual {p1}, Ljava/lang/Throwable;->printStackTrace()V
const-string p1, "The system doesn\'t integrate rt software"
invoke-static {v0, p1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
:goto_70
return-void
.end method
.method public b(Ljava/io/File;IIII)V
.registers 13
invoke-virtual {p1}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v0
const-string v1, ".he"
invoke-static {v0, v1}, Lcom/appff/haptic/base/Utils;->validatePath(Ljava/lang/String;Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_d
return-void
:cond_d
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "looper:"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, " interval:"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p3}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, " amplitude:"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p4}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
const-string v1, " freq:"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0, p5}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const-string v1, "PatternHeImpl"
invoke-static {v1, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
:try_start_40
new-instance v1, Ljava/io/BufferedReader;
new-instance v2, Ljava/io/InputStreamReader;
new-instance v3, Ljava/io/FileInputStream;
invoke-direct {v3, p1}, Ljava/io/FileInputStream;-><init>(Ljava/io/File;)V
invoke-direct {v2, v3}, Ljava/io/InputStreamReader;-><init>(Ljava/io/InputStream;)V
invoke-direct {v1, v2}, Ljava/io/BufferedReader;-><init>(Ljava/io/Reader;)V
:goto_4f
invoke-virtual {v1}, Ljava/io/BufferedReader;->readLine()Ljava/lang/String;
move-result-object p1
if-eqz p1, :cond_5d
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
:try_end_58
.catch Ljava/lang/Exception; {:try_start_40 .. :try_end_58} :catch_59
goto :goto_4f
:catch_59
move-exception p1
invoke-virtual {p1}, Ljava/lang/Throwable;->printStackTrace()V
:cond_5d
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
move-object v1, p0
move v3, p2
move v4, p3
move v5, p4
move v6, p5
invoke-virtual/range {v1 .. v6}, Lcom/appff/haptic/a/a;->b(Ljava/lang/String;IIII)V
return-void
.end method
.method public b(Ljava/lang/String;IIII)V
.registers 32
move-object/from16 v1, p0
move/from16 v0, p4
iget-object v2, v1, Lcom/appff/haptic/a/a;->c:Landroid/os/Vibrator;
const-string v3, "PatternHeImpl"
if-nez v2, :cond_10
const-string v0, "Please call the init method"
:goto_c
invoke-static {v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
return-void
:cond_10
const-string v2, "play new he api, applyPatternHeWithStringOn No FF"
invoke-static {v3, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
const/4 v2, 0x1
move/from16 v4, p2
if-ge v4, v2, :cond_1d
const-string v0, "The minimum count of loop pattern is 1"
goto :goto_c
:cond_1d
:try_start_1d
new-instance v4, Lorg/json/JSONObject;
move-object/from16 v5, p1
invoke-direct {v4, v5}, Lorg/json/JSONObject;-><init>(Ljava/lang/String;)V
const-string v5, "Pattern"
invoke-virtual {v4, v5}, Lorg/json/JSONObject;->getJSONArray(Ljava/lang/String;)Lorg/json/JSONArray;
move-result-object v4
invoke-virtual {v4}, Lorg/json/JSONArray;->length()I
move-result v5
const/16 v6, 0x10
invoke-static {v5, v6}, Ljava/lang/Math;->min(II)I
move-result v5
mul-int/lit8 v6, v5, 0x2
new-array v7, v6, [J
new-array v8, v6, [I
const/4 v9, 0x0
invoke-static {v8, v9}, Ljava/util/Arrays;->fill([II)V
const/4 v10, 0x0
const/4 v11, 0x0
const/4 v12, 0x0
:goto_41
if-ge v10, v5, :cond_17a
invoke-virtual {v4, v10}, Lorg/json/JSONArray;->getJSONObject(I)Lorg/json/JSONObject;
move-result-object v13
const-string v14, "Event"
invoke-virtual {v13, v14}, Lorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;
move-result-object v13
const-string v14, "Type"
invoke-virtual {v13, v14}, Lorg/json/JSONObject;->getString(Ljava/lang/String;)Ljava/lang/String;
move-result-object v14
const-string v15, "continuous"
invoke-static {v15, v14}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z
move-result v15
:try_end_59
.catch Ljava/lang/Exception; {:try_start_1d .. :try_end_59} :catch_1c8
const-wide/high16 v16, 0x4059000000000000L # 100.0
const-string v2, "Frequency"
const-string v9, "Parameters"
const-wide/16 v18, 0x32
const-wide/16 v20, 0x0
move-object/from16 p2, v4
const-string v4, "Intensity"
move/from16 v22, v5
const-string v5, "RelativeTime"
if-eqz v15, :cond_10c
mul-int/lit8 v14, v10, 0x2
:try_start_6f
invoke-virtual {v13, v5}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v15
sub-int/2addr v15, v11
sub-int/2addr v15, v12
int-to-long v11, v15
aput-wide v11, v7, v14
cmp-long v15, v11, v20
if-gez v15, :cond_7e
aput-wide v18, v7, v14
:cond_7e
const/4 v11, 0x0
aput v11, v8, v14
const-string v11, "Duration"
invoke-virtual {v13, v11}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v11
const/16 v12, 0x64
const/16 v15, 0x32
if-le v11, v15, :cond_92
if-ge v11, v12, :cond_92
const/16 v11, 0x32
goto :goto_96
:cond_92
if-le v11, v12, :cond_96
add-int/lit8 v11, v11, -0x32
:cond_96
:goto_96
add-int/lit8 v14, v14, 0x1
move-object/from16 v23, v5
move v15, v6
int-to-long v5, v11
aput-wide v5, v7, v14
invoke-virtual {v13, v9}, Lorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;
move-result-object v5
const-string v6, "Curve"
invoke-virtual {v5, v6}, Lorg/json/JSONObject;->getJSONArray(Ljava/lang/String;)Lorg/json/JSONArray;
move-result-object v6
const/4 v9, 0x1
invoke-virtual {v6, v9}, Lorg/json/JSONArray;->getJSONObject(I)Lorg/json/JSONObject;
move-result-object v12
invoke-virtual {v12, v4}, Lorg/json/JSONObject;->getDouble(Ljava/lang/String;)D
move-result-wide v18
const-wide v20, 0x406fe00000000000L # 255.0
move/from16 v24, v11
mul-double v11, v18, v20
double-to-int v9, v11
const/16 v11, 0xff
invoke-static {v9, v11}, Ljava/lang/Math;->min(II)I
move-result v9
const/4 v12, 0x2
invoke-virtual {v6, v12}, Lorg/json/JSONArray;->getJSONObject(I)Lorg/json/JSONObject;
move-result-object v6
invoke-virtual {v6, v4}, Lorg/json/JSONObject;->getDouble(Ljava/lang/String;)D
move-result-wide v18
move-object/from16 v25, v7
mul-double v6, v18, v20
double-to-int v6, v6
invoke-static {v6, v11}, Ljava/lang/Math;->min(II)I
move-result v6
invoke-static {v9, v6}, Ljava/lang/Math;->max(II)I
move-result v6
invoke-virtual {v5, v4}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v4
invoke-virtual {v5, v2}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v2
:try_end_df
.catch Ljava/lang/Exception; {:try_start_6f .. :try_end_df} :catch_1c8
int-to-double v4, v4
invoke-static {v4, v5}, Ljava/lang/Double;->isNaN(D)Z
div-double v4, v4, v16
int-to-double v6, v6
invoke-static {v6, v7}, Ljava/lang/Double;->isNaN(D)Z
mul-double v6, v6, v4
int-to-double v4, v0
invoke-static {v4, v5}, Ljava/lang/Double;->isNaN(D)Z
mul-double v6, v6, v4
div-double v6, v6, v20
double-to-int v4, v6
const/4 v5, 0x1
:try_start_f5
invoke-static {v5, v4}, Ljava/lang/Math;->max(II)I
move-result v11
const/16 v4, 0x1e
if-ge v2, v4, :cond_fe
const/4 v11, 0x0
:cond_fe
aput v11, v8, v14
move-object/from16 v5, v23
invoke-virtual {v13, v5}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v2
move v11, v2
move-object v9, v8
move/from16 v12, v24
const/4 v7, 0x1
goto :goto_165
:cond_10c
move v15, v6
move-object/from16 v25, v7
const-string v6, "transient"
invoke-static {v6, v14}, Landroid/text/TextUtils;->equals(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Z
move-result v6
if-eqz v6, :cond_173
mul-int/lit8 v6, v10, 0x2
invoke-virtual {v13, v5}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v7
sub-int/2addr v7, v11
sub-int/2addr v7, v12
int-to-long v11, v7
aput-wide v11, v25, v6
cmp-long v7, v11, v20
if-gez v7, :cond_128
aput-wide v18, v25, v6
:cond_128
const/4 v7, 0x0
aput v7, v8, v6
invoke-virtual {v13, v9}, Lorg/json/JSONObject;->getJSONObject(Ljava/lang/String;)Lorg/json/JSONObject;
move-result-object v9
invoke-virtual {v9, v4}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v4
invoke-virtual {v9, v2}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v2
invoke-static {v4, v2}, Lcom/appff/haptic/base/d;->a(II)I
move-result v2
add-int/lit8 v6, v6, 0x1
int-to-long v11, v2
aput-wide v11, v25, v6
:try_end_140
.catch Ljava/lang/Exception; {:try_start_f5 .. :try_end_140} :catch_1c8
int-to-double v11, v0
const-wide/high16 v18, 0x3ff0000000000000L # 1.0
invoke-static {v11, v12}, Ljava/lang/Double;->isNaN(D)Z
mul-double v11, v11, v18
move-object v9, v8
int-to-double v7, v4
invoke-static {v7, v8}, Ljava/lang/Double;->isNaN(D)Z
mul-double v11, v11, v7
div-double v11, v11, v16
double-to-int v4, v11
const/16 v7, 0xff
:try_start_154
invoke-static {v4, v7}, Ljava/lang/Math;->min(II)I
move-result v4
const/4 v7, 0x1
invoke-static {v7, v4}, Ljava/lang/Math;->max(II)I
move-result v4
aput v4, v9, v6
invoke-virtual {v13, v5}, Lorg/json/JSONObject;->getInt(Ljava/lang/String;)I
move-result v4
move v12, v2
move v11, v4
:goto_165
add-int/lit8 v10, v10, 0x1
move-object/from16 v4, p2
move-object v8, v9
move v6, v15
move/from16 v5, v22
move-object/from16 v7, v25
const/4 v2, 0x1
const/4 v9, 0x0
goto/16 :goto_41
:cond_173
move-object v9, v8
const-string v0, "haven\'t get type value"
invoke-static {v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_17e
:cond_17a
move v15, v6
move-object/from16 v25, v7
move-object v9, v8
:goto_17e
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "times:"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-static/range {v25 .. v25}, Ljava/util/Arrays;->toString([J)Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v3, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
move v5, v15
const/4 v0, 0x0
const/4 v2, 0x0
:goto_199
if-ge v0, v5, :cond_1a3
aget-wide v6, v25, v0
int-to-long v10, v2
add-long/2addr v10, v6
long-to-int v2, v10
add-int/lit8 v0, v0, 0x1
goto :goto_199
:cond_1a3
const/16 v0, 0x7530
if-le v2, v0, :cond_1ad
const-string v0, "Pattern\'s duration is less than 30000"
invoke-static {v3, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
return-void
:cond_1ad
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v2, 0x1a
const/4 v3, -0x1
if-lt v0, v2, :cond_1c0
iget-object v0, v1, Lcom/appff/haptic/a/a;->c:Landroid/os/Vibrator;
move-object/from16 v2, v25
invoke-static {v2, v9, v3}, Lcom/appff/haptic/m;->a([J[II)Landroid/os/VibrationEffect;
move-result-object v2
invoke-static {v0, v2}, Lcom/appff/haptic/n;->a(Landroid/os/Vibrator;Landroid/os/VibrationEffect;)V
goto :goto_1cc
:cond_1c0
move-object/from16 v2, v25
iget-object v0, v1, Lcom/appff/haptic/a/a;->c:Landroid/os/Vibrator;
invoke-virtual {v0, v2, v3}, Landroid/os/Vibrator;->vibrate([JI)V
:try_end_1c7
.catch Ljava/lang/Exception; {:try_start_154 .. :try_end_1c7} :catch_1c8
goto :goto_1cc
:catch_1c8
move-exception v0
invoke-virtual {v0}, Ljava/lang/Throwable;->printStackTrace()V
:goto_1cc
return-void
.end method
.method public c(I)V
.registers 3
const/4 v0, -0x1
invoke-virtual {p0, v0, p1, v0}, Lcom/appff/haptic/a/a;->a(III)V
return-void
.end method