Custom opus lib bridges
This commit is contained in:
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package ru.vtosters.lite.badmanners;
|
package ru.vtosters.lite.deviceinfo;
|
||||||
|
|
||||||
public class Device {
|
public class Device {
|
||||||
private String androidId;
|
private String androidId;
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package ru.vtosters.lite.badmanners;
|
package ru.vtosters.lite.deviceinfo;
|
||||||
|
|
||||||
import android.bluetooth.BluetoothAdapter;
|
import android.bluetooth.BluetoothAdapter;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -19,7 +19,7 @@ import com.vtosters.lite.R;
|
|||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
|
|
||||||
import ru.vtosters.lite.badmanners.DeviceInfoCollector;
|
import ru.vtosters.lite.deviceinfo.DeviceInfoCollector;
|
||||||
|
|
||||||
public class Crashreporter {
|
public class Crashreporter {
|
||||||
protected static String logString;
|
protected static String logString;
|
||||||
|
|||||||
@@ -16,10 +16,10 @@ import android.net.NetworkInfo;
|
|||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
import com.vk.core.util.ToastUtils;
|
|
||||||
import com.vtosters.lite.UserProfile;
|
import com.vtosters.lite.UserProfile;
|
||||||
import com.vtosters.lite.VKActivity;
|
import com.vtosters.lite.VKActivity;
|
||||||
import com.vtosters.lite.api.ExtendedUserProfile;
|
import com.vtosters.lite.api.ExtendedUserProfile;
|
||||||
@@ -144,7 +144,7 @@ public class Globals {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void sendToast(String text) {
|
public static void sendToast(String text) {
|
||||||
ToastUtils.a(text);
|
Toast.makeText(getContext(), text, Toast.LENGTH_SHORT).show();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isEmpty(String str) {
|
public static boolean isEmpty(String str) {
|
||||||
|
|||||||
@@ -0,0 +1,62 @@
|
|||||||
|
package ru.vtosters.lite.utils;
|
||||||
|
|
||||||
|
import static ru.vtosters.lite.utils.Preferences.dev;
|
||||||
|
import static ru.vtosters.lite.utils.Preferences.opusmodule;
|
||||||
|
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
import com.vk.medianative.MediaNative;
|
||||||
|
|
||||||
|
import java.nio.ByteBuffer;
|
||||||
|
|
||||||
|
public class OpusLoader {
|
||||||
|
private static long timetracker;
|
||||||
|
private static boolean inited;
|
||||||
|
|
||||||
|
public static void LoadLibrary(String libname){
|
||||||
|
try {
|
||||||
|
System.loadLibrary(libname);
|
||||||
|
inited = true;
|
||||||
|
} catch (UnsatisfiedLinkError unused2) {
|
||||||
|
if(dev()) Log.d("VTLite", "Failed to load " + libname);
|
||||||
|
inited = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static long getLength() {
|
||||||
|
if (isReadyToUse()) {
|
||||||
|
long length = System.currentTimeMillis() - timetracker;
|
||||||
|
timetracker = System.currentTimeMillis();
|
||||||
|
return length;
|
||||||
|
}
|
||||||
|
return 0L;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int AudioStartRecordBridge(String str) {
|
||||||
|
if (isReadyToUse()) {
|
||||||
|
// Init custom AudioStartRecord
|
||||||
|
timetracker = System.currentTimeMillis();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return MediaNative.nativeAudioStartRecord(str);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int AudioWriteFrameBridge(ByteBuffer buffer, int length) {
|
||||||
|
if (isReadyToUse()) {
|
||||||
|
// Init custom AudioWriteFrame
|
||||||
|
}
|
||||||
|
return MediaNative.nativeAudioWriteFrame(buffer, length);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void AudioStopRecordBridge() {
|
||||||
|
if (isReadyToUse()) {
|
||||||
|
// Init custom AudioStopRecord
|
||||||
|
} else {
|
||||||
|
MediaNative.nativeAudioStopRecord();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static boolean isReadyToUse() {
|
||||||
|
return opusmodule() && inited;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -7,6 +7,7 @@ import static ru.vtosters.lite.utils.Globals.getContext;
|
|||||||
import static ru.vtosters.lite.utils.Globals.getPreferences;
|
import static ru.vtosters.lite.utils.Globals.getPreferences;
|
||||||
import static ru.vtosters.lite.utils.Globals.registerActivities;
|
import static ru.vtosters.lite.utils.Globals.registerActivities;
|
||||||
import static ru.vtosters.lite.utils.Newsfeed.setupFilters;
|
import static ru.vtosters.lite.utils.Newsfeed.setupFilters;
|
||||||
|
import static ru.vtosters.lite.utils.OpusLoader.LoadLibrary;
|
||||||
import static ru.vtosters.lite.utils.Proxy.setProxy;
|
import static ru.vtosters.lite.utils.Proxy.setProxy;
|
||||||
|
|
||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
@@ -30,6 +31,7 @@ public class Preferences {
|
|||||||
migrate();
|
migrate();
|
||||||
reloadMessagesList();
|
reloadMessagesList();
|
||||||
registerActivities(application);
|
registerActivities(application);
|
||||||
|
LoadLibrary("vkopustest");
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean BooleanFalse(String key) {
|
public static boolean BooleanFalse(String key) {
|
||||||
@@ -42,6 +44,10 @@ public class Preferences {
|
|||||||
return prefs.getBoolean(key, true);
|
return prefs.getBoolean(key, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean opusmodule() {
|
||||||
|
return BooleanTrue("opusmodule");
|
||||||
|
}
|
||||||
|
|
||||||
public static boolean authorsrecomm() {
|
public static boolean authorsrecomm() {
|
||||||
return BooleanTrue("authorsrecomm");
|
return BooleanTrue("authorsrecomm");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,6 +46,10 @@
|
|||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:key="msgflat"
|
android:key="msgflat"
|
||||||
android:title="@string/vtlmsgflat" />
|
android:title="@string/vtlmsgflat" />
|
||||||
|
<com.vtosters.lite.ui.MaterialSwitchPreference
|
||||||
|
android:defaultValue="true"
|
||||||
|
android:key="opusmodule"
|
||||||
|
android:title="Opus Module" />
|
||||||
<com.vtosters.lite.ui.SummaryListPreference
|
<com.vtosters.lite.ui.SummaryListPreference
|
||||||
android:defaultValue="system"
|
android:defaultValue="system"
|
||||||
android:dialogTitle="Выберите язык приложения"
|
android:dialogTitle="Выберите язык приложения"
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
.locals 0
|
.locals 0
|
||||||
|
|
||||||
.line 295
|
.line 295
|
||||||
invoke-static {}, Lcom/vk/medianative/MediaNative;->nativeAudioStopRecord()V
|
invoke-static {}, Lru/vtosters/lite/utils/OpusLoader;->AudioStopRecordBridge()V
|
||||||
|
|
||||||
return-void
|
return-void
|
||||||
.end method
|
.end method
|
||||||
|
|||||||
@@ -198,7 +198,7 @@
|
|||||||
move-result v3
|
move-result v3
|
||||||
|
|
||||||
:goto_2
|
:goto_2
|
||||||
invoke-static {v1, v3}, Lcom/vk/medianative/MediaNative;->nativeAudioWriteFrame(Ljava/nio/ByteBuffer;I)I
|
invoke-static {v1, v3}, Lru/vtosters/lite/utils/OpusLoader;->AudioWriteFrameBridge(Ljava/nio/ByteBuffer;I)I
|
||||||
|
|
||||||
move-result v1
|
move-result v1
|
||||||
|
|
||||||
|
|||||||
@@ -116,7 +116,7 @@
|
|||||||
|
|
||||||
move-result-object v3
|
move-result-object v3
|
||||||
|
|
||||||
invoke-static {v3}, Lcom/vk/medianative/MediaNative;->nativeAudioStartRecord(Ljava/lang/String;)I
|
invoke-static {v3}, Lru/vtosters/lite/utils/OpusLoader;->AudioStartRecordBridge(Ljava/lang/String;)I
|
||||||
|
|
||||||
move-result v3
|
move-result v3
|
||||||
|
|
||||||
@@ -207,7 +207,9 @@
|
|||||||
.line 360
|
.line 360
|
||||||
iget-object v3, p0, Lcom/vk/audio/AudioMessageUtils$c;->a:Lcom/vk/audio/AudioMessageUtils;
|
iget-object v3, p0, Lcom/vk/audio/AudioMessageUtils$c;->a:Lcom/vk/audio/AudioMessageUtils;
|
||||||
|
|
||||||
const-wide/16 v4, 0x0
|
invoke-static {}, Lru/vtosters/lite/utils/OpusLoader;->getLength()J
|
||||||
|
|
||||||
|
move-result-wide v4
|
||||||
|
|
||||||
invoke-static {v3, v4, v5}, Lcom/vk/audio/AudioMessageUtils;->a(Lcom/vk/audio/AudioMessageUtils;J)J
|
invoke-static {v3, v4, v5}, Lcom/vk/audio/AudioMessageUtils;->a(Lcom/vk/audio/AudioMessageUtils;J)J
|
||||||
|
|
||||||
@@ -324,7 +326,7 @@
|
|||||||
invoke-interface {v3, v4}, Lcom/vk/audio/AudioRecordObserver;->a(Ljava/lang/String;)V
|
invoke-interface {v3, v4}, Lcom/vk/audio/AudioRecordObserver;->a(Ljava/lang/String;)V
|
||||||
|
|
||||||
.line 373
|
.line 373
|
||||||
invoke-static {}, Lcom/vk/medianative/MediaNative;->nativeAudioStopRecord()V
|
invoke-static {}, Lru/vtosters/lite/utils/OpusLoader;->AudioStopRecordBridge()V
|
||||||
|
|
||||||
.line 374
|
.line 374
|
||||||
iget-object v3, p0, Lcom/vk/audio/AudioMessageUtils$c;->a:Lcom/vk/audio/AudioMessageUtils;
|
iget-object v3, p0, Lcom/vk/audio/AudioMessageUtils$c;->a:Lcom/vk/audio/AudioMessageUtils;
|
||||||
|
|||||||
Reference in New Issue
Block a user