Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ android {
applicationId "git.artdeell.skymodloader"
minSdk 26
targetSdk 34
versionCode 57
versionName "1.7.1a"
versionCode 58
versionName "1.7.2"

externalNativeBuild {
cmake {
Expand Down Expand Up @@ -72,6 +72,7 @@ dependencies {
implementation 'net.fornwall:jelf:0.9.0'
implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'com.github.bumptech.glide:glide:4.16.0'
implementation 'com.google.zxing:core:3.5.3'
implementation 'androidx.recyclerview:recyclerview:1.3.2'
implementation "io.noties.markwon:core:4.6.2"
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/cpp/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -374,4 +374,4 @@ Java_git_artdeell_skymodloader_MainActivity_nativeSetSkyBuildKey(
env->ReleaseStringUTFChars(key, keyStr);
LOGI("SkyBuildKey set: %s", g_skyBuildKey.c_str());
}
}
}
978 changes: 435 additions & 543 deletions app/src/main/java/com/tgc/sky/GameActivity.java

Large diffs are not rendered by default.

13 changes: 7 additions & 6 deletions app/src/main/java/com/tgc/sky/SystemIO_android.java
Original file line number Diff line number Diff line change
Expand Up @@ -596,12 +596,13 @@ public boolean StartRecording() {
}
}

boolean StartRecording(String str, int i, int i2, int i3, int i4, boolean z, int i5, boolean z2) {
this.m_isGameRecorder = true;
String str2 = C115312.$SwitchMap$com$tgc$sky$SystemIO_android$VideoCodec[VideoCodec.values()[i3].ordinal()] != 2 ? "video/avc" : "video/hevc";
this.m_isRecording = true;
return this.m_videoRecorder.startRecordingWithFilename(str, i, i2,str2, i4, z, i5, z2);
}
boolean StartRecording(String str, int i, int i2, int i3, boolean z, int i4, boolean z2, int i5, boolean z3) {
this.m_isGameRecorder = true;
String str2 = C115312.$SwitchMap$com$tgc$sky$SystemIO_android$VideoCodec[VideoCodec.values()[i3].ordinal()] != 2 ? "video/avc" : "video/hevc";
this.m_isRecording = true;
return this.m_videoRecorder.startRecordingWithFilename(str, i, i2, str2, i4, z2, i5, z3);
}


static /* synthetic */ class C115312 {
static final /* synthetic */ int[] $SwitchMap$com$tgc$sky$SystemIO_android$VideoCodec;
Expand Down
56 changes: 3 additions & 53 deletions app/src/main/java/com/tgc/sky/SystemSupport_android.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,10 @@
import android.app.Application;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.text.Html;
import android.text.method.LinkMovementMethod;
import android.view.View;
import android.widget.TextView;
import android.view.ViewGroup;
import android.view.Window;
import android.widget.ImageButton;
import android.app.Dialog;

import androidx.appcompat.app.AlertDialog;

import java.util.HashMap;
import java.util.Map;

import git.artdeell.skymodloader.R;

public class SystemSupport_android implements GameActivity.OnActivityResultListener {
private static final String TAG = "SystemSupport_android";
private static volatile SystemSupport_android mInstance;
Expand All @@ -33,9 +20,7 @@ public class SystemSupport_android implements GameActivity.OnActivityResultListe
private boolean m_surveyActive;
private boolean m_surveyCompleted;


static void OnApplicationCreate(Application application) {

}

public static SystemSupport_android getInstance() {
Expand All @@ -49,7 +34,6 @@ public static SystemSupport_android getInstance() {
return mInstance;
}

/* access modifiers changed from: package-private */
public void Initialize(GameActivity gameActivity) {
this.m_activity = gameActivity;
}
Expand Down Expand Up @@ -77,55 +61,22 @@ public void ClearMetaData() {
}

public void EnableCustomerSupport(boolean z) {

}

public boolean IsCustomerSupportEnabled() {
return false;
}

public void ShowFAQs() {
m_activity.runOnUiThread(()->{
Dialog dialog = new Dialog(m_activity, R.style.AboutDialog);
dialog.setContentView(R.layout.about_dialog);

// Support links
setupLink(dialog, R.id.englishTelegram, "https://t.me/+Hc6QeQVTH1JjNjky");
setupLink(dialog, R.id.russianTelegram, "https://t.me/+mue7BZWmWOxkMDUy");

// Original developers
setupLink(dialog, R.id.icarusGithub, "https://github.com/lukas0x1");
setupLink(dialog, R.id.artDevGithub, "https://github.com/artdeell");

// Contributors
setupLink(dialog, R.id.romanGithub, "https://github.com/RomanChamelo");
setupLink(dialog, R.id.kiojeenGithub, "https://github.com/Kiojeen");
setupLink(dialog, R.id.gxostGithub, "https://github.com/gxosty");

// Design credits
setupLink(dialog, R.id.bannerVk, "https://vk.com/son583");
setupLink(dialog, R.id.iconTelegram, "https://t.me/Eliatshaha");

// Original game
setupLink(dialog, R.id.thatgamecompanyLink, "https://thatgamecompany.com/");

dialog.show();
});
}

private void setupLink(Dialog dialog, int viewId, String url) {
TextView textView = dialog.findViewById(viewId);
textView.setOnClickListener(v -> {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
m_activity.startActivity(intent);
});
m_activity.runOnUiThread(() ->
git.artdeell.skymodloader.AboutDialogHelper.show(m_activity)
);
}

public void ShowSupportSession() {
}

public void ShowErrorReportConversation() {

}

public boolean IsSupportUIShowing() {
Expand Down Expand Up @@ -175,6 +126,5 @@ public boolean WasQuestionnaireCompleted() {
}

public void onActivityResult(int i, int i2, Intent intent) {

}
}
12 changes: 5 additions & 7 deletions app/src/main/java/com/tgc/sky/SystemUI_android.java
Original file line number Diff line number Diff line change
Expand Up @@ -157,13 +157,11 @@ public boolean HasLocalizedString(String str) {
return this.m_localizationManager.HasLocalizedString(str);
}

public String GetLocalizedTextFromTextId(int textId) {
String textKey = "text_" + textId;
if (HasLocalizedString(textKey)) {
return LocalizeString(textKey);
}
return "";
}
public String GetLocalizedTextFromTextId(int textId) {
LocalizationManager lm = LocalizationManager.getInstance();
if (lm == null) return null;
return lm.GetLocalizedTextFromTextId(textId);
}

public SpannableStringBuilder GetMarkedUpString(String str, ArrayList<Object> arrayList, boolean z) {
return this.m_markup.GetMarkedUpString(str, arrayList, z);
Expand Down
51 changes: 51 additions & 0 deletions app/src/main/java/com/tgc/sky/ui/text/LocalizationManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import android.content.res.Configuration;
import android.content.res.Resources;
import android.text.SpannableStringBuilder;

import androidx.constraintlayout.core.motion.utils.TypedValues;
import androidx.core.app.FrameMetricsAggregator;
Expand Down Expand Up @@ -114,6 +115,10 @@ public static String GetIETFLanguageTag() {
}
return GetIETFLanguageTag(language);
}

public static LocalizationManager getInstance() {
return g_instance;
}

public static String GetIETFLanguageTag(String str) {
String str2 = DEFAULT_COUNTRY_CODES.get(str);
Expand Down Expand Up @@ -474,6 +479,52 @@ public void run() {
});
}

public static SpannableStringBuilder ApplyTextArgs(SpannableStringBuilder sb, ArrayList<Object> args) {
if (args == null || args.size() == 0) return sb;
String[] placeholders = {"{{1}}", "{{2}}", "{{3}}"};
for (int i = 0; i < args.size() && i < placeholders.length; i++) {
String replacement = args.get(i) != null ? args.get(i).toString() : "";
int pos = 0;
while (true) {
String s = sb.toString();
int idx = s.indexOf(placeholders[i], pos);
if (idx == -1) break;
sb.replace(idx, idx + 5, replacement);
pos = idx + replacement.length();
}
}
return sb;
}

private SpannableStringBuilder GetLocalizedTextFromTextIdRecursive(int i) {
int idx = GetAllocatedTextIdx(i);
if (idx >= kMaxLocalizedStrings) return null;

LocalizedStringArgs args = m_localizedStrings.get(idx);

if (args.localizedString != null) {
SpannableStringBuilder sb = new SpannableStringBuilder(args.localizedString);
return ApplyTextArgs(sb, args.args);
}

if (args.compounded != null) {
SpannableStringBuilder sb = new SpannableStringBuilder();
for (int id : args.compounded) {
SpannableStringBuilder part = GetLocalizedTextFromTextIdRecursive(id);
if (part != null) sb.append(part);
}
return sb.length() > 0 ? sb : null;
}

return null;
}

public String GetLocalizedTextFromTextId(int textId) {
SpannableStringBuilder result = GetLocalizedTextFromTextIdRecursive(textId);
if (result == null) return null;
return result.toString();
}

private int GetAllocatedTextIdx(int i) {
return i != -1 ? i & FrameMetricsAggregator.EVERY_DURATION : kMaxLocalizedStrings;
}
Expand Down
Loading
Loading