Full port of the CW/Morse decoder from Morse Expert 1.15 (com.ve3nea.morse_expert), preserving obfuscated class names and logic. Ads (gms.ads), billing (BillingClient), and library code were removed per user; SettingsActivity deferred to Compose integration. Ported modules: - pas.*: decoder engine interface + JNI (libnativedecoderjni.so, armeabi-v7a) - k3.*: FFT library (pseudo-enum q rewritten from smali; sun.misc stubs for Unsafe/Cleaner since Android lacks them; FFT path uses float[] branch) - i3.*, g3.*, j3.*, s.*, d1.AbstractC1518b: DSP/sin-cos tables (long[] tables f/f11589g restored from smali) - H2.a/b: audio capture + decode control core (jadx catch-block illusions cleaned per smali; recording try/catch restored around write block) - J2.a/b: waterfall OpenGL renderer + palette (r10 = anchor color per smali) - E2.g: waterfall touch frequency picker (height = ScaleView per smali) - B0.b/B.RunnableC0001b: status-bar + decoded-text UI runnables (real constructors recovered from smali) - MainActivity → controller class (Activity injected; immersive status bar inlined); C1646n trimmed to view holder; D.n keeps waterfall texture case - F2.a: text selection menu (Save/Share) Verified: :feature:cw:compileDebugJavaWithJavac BUILD SUCCESSFUL.
56 lines
1.5 KiB
Java
56 lines
1.5 KiB
Java
package i3;
|
|
|
|
import k3.g;
|
|
import k3.s;
|
|
|
|
/* loaded from: classes.dex */
|
|
public final class c implements Runnable {
|
|
public final /* synthetic */ int f = 1;
|
|
|
|
/* renamed from: g, reason: collision with root package name */
|
|
public final /* synthetic */ long f11696g;
|
|
|
|
/* renamed from: h, reason: collision with root package name */
|
|
public final /* synthetic */ long f11697h;
|
|
|
|
/* renamed from: i, reason: collision with root package name */
|
|
public final /* synthetic */ g f11698i;
|
|
|
|
/* renamed from: j, reason: collision with root package name */
|
|
public final /* synthetic */ Object f11699j;
|
|
|
|
public c(long j4, long j5, s sVar, s sVar2) {
|
|
this.f11696g = j4;
|
|
this.f11697h = j5;
|
|
this.f11698i = sVar;
|
|
this.f11699j = sVar2;
|
|
}
|
|
|
|
@Override // java.lang.Runnable
|
|
public final void run() {
|
|
switch (this.f) {
|
|
case 0:
|
|
k3.d dVar = (k3.d) this.f11698i;
|
|
long j4 = this.f11697h;
|
|
long j5 = this.f11696g;
|
|
if (j5 >= j4) {
|
|
return;
|
|
}
|
|
dVar.b(j5 * 2);
|
|
throw null;
|
|
default:
|
|
for (long j6 = this.f11696g; j6 < this.f11697h; j6++) {
|
|
((s) this.f11698i).c(j6, ((s) this.f11699j).b(j6));
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
|
|
public c(d dVar, long j4, long j5, k3.d dVar2) {
|
|
this.f11699j = dVar;
|
|
this.f11696g = j4;
|
|
this.f11697h = j5;
|
|
this.f11698i = dVar2;
|
|
}
|
|
}
|