Skip to content

Commit 20fc24a

Browse files
remtrikn00b69index986Marius586Victoria-Freeman
authored
Victorai (#56)
* Misha link was a lie * Somehow gone from credits * Updated screenshots for the readme * Hello * Add the new English strings into all strings files, for easier future translation, Change M2K to Remtrik in credits. * fix, maybe not fully but mostly, the app being unusable when you leave it without closing and then return * Add supported languages to readme, seperate language credits from regular credits, update and add some links to users in credits * another readme update * Doing some horrible czech translation while watching anime * Add functionality to mount/unmount widget, BUT it is bugged It appears as Quickboot (transparency works in the widget at this time) but does not work. When you reinstall the app, it correctly shows the Mount widget (transparency no longer works in the widget now) Mount/unmount works though. * everything about WidgetActivity.java is absolutely disgusting * add devcfg flasher widget except for some reason it cannot be selected and i am too tired to find out why * check devcfg * devcfg widget * devcfg widget * forgot to not use debug code * Delete app/src/main/java/id/kuato/woahelper/preference/WindowPreference.java * Delete app/src/main/java/id/kuato/woahelper/main/Applications.java * W widgets (only mnt so far) * add reboot button to dbkp and devcfg flasher end dialog * i keep forgetting this * M2K * Fix(probably) and update RU strings.xml (#51) * Added NX729J-UN & Fixed minor bug in "no win" dialog & made checkdbkpmodel more readable * Update strings.xml - Fixed some descriptions Fixed some descriptions for buttons * Refactored layout. Moved scripts in toolbox. New settings ui * W moldovan translation * Small refactor * Added quickboot widget * refactor * Refactor + fixed widgets + changed moldovan translation a bit * Added root checking for widgets * Added a toast message to widgets saying "NO ROOT!" if the user didnt give the app root rights * fyi inverse conditions do exist * tbh fuck that boolean equals * smal mistak * reduce file size of most images to 20kb or below * Delete app/src/main/assets/boot_img_auto-flasher_V1.1.exe * Add files via upload * Update MainActivity.java * add WOAHelper folder where all assets are copied to and also not removed (useful if mount fails), backups OTHER THAN BOOT.IMG are also stored there, rework dbkp which is still ridiculously broken on nabu (it works on my g8s, I cannot replicate the issue) * refactor * halo * halo * halo * halo * 1 * hehehe * nabu. * i hate String.format * changes * changes * fix 90% of the app * merge mount and quickboot into QSTiles.kt * changes * rewrite commented out code in kotlin???????? * lateinit vars yay * arrayOf * hi * this might fix mount dialogue not having dismiss button, it still isn't backable though and also I fucking HATE kotlin because notepad++ isn't compatib;e with .kt formatting so editing anything is fucking cancer ass * the funny long space thing was replaced with regular spaces idk if that was intentional but it sucks when editing yes * Revert "the funny long space thing was replaced with regular spaces idk if that was intentional but it sucks when editing yes" This reverts commit 45e9c2b. * few debug changes and small improvements * There was no 42 release therefore 43 is not valid * dbkp Fix: Ensure /sdcard/dbkp directory exists before copying dbkp.bin Before, patching didn’t work cuz /sdcard/dbkp wasn’t made before copying dbkp.bin, so dbkp patching failed, now we create the folder first so everything works! --------- Co-authored-by: the sog <83274506+n00b69@users.noreply.github.com> Co-authored-by: index986 <govro150@bk.ru> Co-authored-by: Marius586 <bogdaneci95@gmail.com> Co-authored-by: Victoria-Freeman <venddair1@proton.me> Co-authored-by: Misha803 <118528504+Misha803@users.noreply.github.com> Co-authored-by: ArKT-7 <arktiothome@gmail.com>
1 parent bdfc87d commit 20fc24a

File tree

123 files changed

+7451
-7318
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

123 files changed

+7451
-7318
lines changed

.github/workflows/android.yml

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -13,30 +13,30 @@ jobs:
1313
runs-on: ubuntu-latest
1414

1515
steps:
16-
- uses: actions/checkout@v4
17-
- name: set up JDK 21
18-
uses: actions/setup-java@v4
19-
with:
20-
java-version: '21'
21-
distribution: 'temurin'
22-
cache: gradle
16+
- uses: actions/checkout@v4
17+
- name: set up JDK 21
18+
uses: actions/setup-java@v4
19+
with:
20+
java-version: '21'
21+
distribution: 'temurin'
22+
cache: gradle
2323

24-
- name: Grant execute permission for gradlew
25-
run: chmod +x gradlew
26-
- name: Build with Gradle
27-
run: ./gradlew assembleRelease -x lint
28-
- name: Sign app APK
29-
uses: ilharp/sign-android-release@v1.0.4
30-
with:
31-
releaseDir: app/build/outputs/apk/release
32-
signingKey: ${{ secrets.ANDROID_SIGNING_KEY }}
33-
keyAlias: ${{ secrets.ANDROID_KEY_ALIAS }}
34-
keyStorePassword: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
35-
keyPassword: ${{ secrets.ANDROID_KEY_PASSWORD }}
36-
buildToolsVersion: 34.0.0
37-
- name: move apk
38-
run: mv app/build/outputs/apk/release/app-release-unsigned-signed.apk woahelper.apk
39-
- uses: actions/upload-artifact@v4
40-
with:
41-
name: woahelper
42-
path: woahelper.apk
24+
- name: Grant execute permission for gradlew
25+
run: chmod +x gradlew
26+
- name: Build with Gradle
27+
run: ./gradlew assembleRelease -x lint
28+
- name: Sign app APK
29+
uses: ilharp/sign-android-release@v1.0.4
30+
with:
31+
releaseDir: app/build/outputs/apk/release
32+
signingKey: ${{ secrets.ANDROID_SIGNING_KEY }}
33+
keyAlias: ${{ secrets.ANDROID_KEY_ALIAS }}
34+
keyStorePassword: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
35+
keyPassword: ${{ secrets.ANDROID_KEY_PASSWORD }}
36+
buildToolsVersion: 34.0.0
37+
- name: move apk
38+
run: mv app/build/outputs/apk/release/app-release-unsigned-signed.apk woahelper.apk
39+
- uses: actions/upload-artifact@v4
40+
with:
41+
name: woahelper
42+
path: woahelper.apk

Helper-dark.png

13.7 KB
Loading

Helper-light.png

12.9 KB
Loading

app/build.gradle.kts

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,35 @@
11
plugins {
22
alias(libs.plugins.agp.app)
3+
alias(libs.plugins.kotlin.android)
34
}
45

56
android {
6-
namespace = "id.kuato.woahelper"
7-
compileSdk = 34
7+
namespace = "com.woa.helper"
8+
compileSdk = 35
89

910
defaultConfig {
10-
applicationId = "id.kuato.woahelper"
11-
minSdk = 24
12-
targetSdk = 34
13-
versionCode = 3
14-
versionName = "1.8.4_BETA41"
15-
16-
val locales =listOf(
17-
"ar", "az", "be", "cs", "de", "en", "es", "fa", "fr", "in", "ja", "ka", "ko", "ms", "nl", "pl", "pt", "ru", "ro","ro-rMD", "th", "tr", "uk", "vi", "zh", "zh-rCN", "zh-rHK", "zh-rMO", "zh-rSG", "zh-rTW"
11+
applicationId = "com.woa.helper"
12+
minSdk = 25
13+
targetSdk = 35
14+
versionCode = 5
15+
versionName = "1.8.4_BETA42"
16+
17+
val locales = listOf(
18+
"ar", "az", "be", "cs", "de", "en", "es", "fa", "fr", "in", "ja", "ka", "ko", "ms", "nl", "pl", "pt", "ru", "ro", "ro-rMD", "th", "tr", "uk", "vi", "zh", "zh-rCN", "zh-rHK", "zh-rMO", "zh-rSG", "zh-rTW"
1819
)
19-
buildConfigField("String[]","LOCALES","{\"${locales.toString().trim('[').trim(']').replace(", ","\",\"").replace("zh-","zh-Hans-").replace("-r","-")}\"}");
20-
resourceConfigurations +=locales;
20+
buildConfigField("String[]", "LOCALES", "{\"${locales.toString().trim('[').trim(']').replace(", ", "\",\"").replace("zh-", "zh-Hans-").replace("-r", "-")}\"}")
21+
resourceConfigurations += locales
2122
}
2223

2324
buildTypes {
24-
getByName("release") {
25+
release {
2526
isShrinkResources = true
2627
isMinifyEnabled = true
27-
proguardFiles(
28-
getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro"
29-
)
28+
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"))
3029
isDebuggable = false
3130
isJniDebuggable = false
3231
}
33-
getByName("debug") {
32+
debug {
3433
isDebuggable = true
3534
}
3635
}
@@ -44,9 +43,14 @@ android {
4443
sourceCompatibility = JavaVersion.VERSION_21
4544
targetCompatibility = JavaVersion.VERSION_21
4645
}
46+
kotlinOptions {
47+
48+
jvmTarget = "21"
49+
}
4750

4851
buildFeatures {
4952
viewBinding = true
53+
buildConfig = true
5054
}
5155
}
5256

@@ -55,9 +59,9 @@ dependencies {
5559
implementation(libs.material)
5660
implementation(libs.androidx.preference.preference)
5761
implementation(libs.com.intuit.sdp.sdp.android)
62+
implementation(libs.com.intuit.ssp.ssp.android)
5863
implementation(libs.com.github.topjohnwu.libsu.core)
5964
implementation(libs.com.github.topjohnwu.libsu.service)
6065
implementation(libs.com.github.topjohnwu.libsu.nio)
6166
implementation(libs.realtimeblurview)
62-
//implementation(libs.blurry)
6367
}

app/proguard-rules.pro

Lines changed: 0 additions & 21 deletions
This file was deleted.

app/src/main/AndroidManifest.xml

Lines changed: 27 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,26 +8,41 @@
88
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
99

1010
<application
11+
android:hardwareAccelerated="true"
1112
android:allowBackup="true"
1213
android:icon="@mipmap/ic_launcher"
1314
android:label="@string/app_name"
14-
android:localeConfig="@xml/languages"
1515
android:roundIcon="@mipmap/ic_launcher_round"
1616
android:supportsRtl="false"
1717
android:theme="@style/Theme.MyApplication"
18+
android:enableOnBackInvokedCallback="true"
1819
tools:targetApi="tiramisu">
19-
<receiver android:name=".widgets.WidgetProvider" android:exported="true">
20+
<receiver
21+
android:name=".widgets.MountWidget"
22+
android:exported="true">
2023
<intent-filter>
2124
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
22-
<action android:name="id.kuato.woahelper.ACTION_SET"/>
23-
<action android:name="id.kuato.woahelper.ACTION_CLICK"/>
25+
<action android:name="android.appwidget.action.ACTION_CLICK" />
26+
<action android:name="android.appwidget.action.UPDATE" />
2427
</intent-filter>
2528
<meta-data
2629
android:name="android.appwidget.provider"
27-
android:resource="@xml/widget_info" />
30+
android:resource="@xml/mount_widget_info" />
2831
</receiver>
2932
<receiver
30-
android:name=".main.automount"
33+
android:name=".widgets.QuickBootWidget"
34+
android:exported="true">
35+
<intent-filter>
36+
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
37+
<action android:name="android.appwidget.action.ACTION_CLICK" />
38+
<action android:name="android.appwidget.action.UPDATE" />
39+
</intent-filter>
40+
<meta-data
41+
android:name="android.appwidget.provider"
42+
android:resource="@xml/quickboot_widget_info" />
43+
</receiver>
44+
<receiver
45+
android:name=".main.AutoMount"
3146
android:enabled="true"
3247
android:exported="true">
3348
<intent-filter>
@@ -36,19 +51,19 @@
3651
<category android:name="android.intent.category.DEFAULT" />
3752
</intent-filter>
3853
</receiver>
39-
54+
4055
<service
41-
android:name=".main.quickboot_tile"
56+
android:name=".main.QuickBootTile"
4257
android:exported="true"
4358
android:icon="@drawable/qs_tile"
44-
android:label="Quickboot"
59+
android:label="QuickBoot"
4560
android:permission="android.permission.BIND_QUICK_SETTINGS_TILE">
4661
<intent-filter>
4762
<action android:name="android.service.quicksettings.action.QS_TILE" />
4863
</intent-filter>
4964
</service>
5065
<service
51-
android:name=".main.mount_tile"
66+
android:name=".main.MountTile"
5267
android:exported="true"
5368
android:icon="@drawable/mnt2"
5469
android:label="Mount win"
@@ -65,18 +80,15 @@
6580
android:name="autoStoreLocales"
6681
android:value="true" />
6782
</service>
83+
6884
<activity
6985
android:name=".widgets.WidgetActivity"
70-
android:theme="@style/Theme.AppCompat.Dialog.Alert"
86+
android:theme="@style/TransparentTheme"
7187
android:exported="true"
7288
android:taskAffinity=""
7389
android:excludeFromRecents="true"
7490
android:noHistory="true"
7591
android:launchMode="singleInstance" />
76-
<activity
77-
android:name=".main.WidgetConfigActivity"
78-
android:exported="true">
79-
</activity>
8092
<activity
8193
android:name=".main.MainActivity"
8294
android:configChanges="orientation|screenSize"
108 KB
Binary file not shown.
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.woa.helper.main
2+
3+
import android.content.BroadcastReceiver
4+
import android.content.Context
5+
import android.content.Intent
6+
import com.topjohnwu.superuser.ShellUtils
7+
import com.woa.helper.main.MainActivity.Companion.getWin
8+
import com.woa.helper.preference.Pref
9+
10+
class AutoMount : BroadcastReceiver() {
11+
private var win: String? = null
12+
13+
override fun onReceive(context: Context?, intent: Intent?) {
14+
if (Pref.getSharedPreference(context)?.getBoolean(Pref.AUTOMOUNT, false) == true) {
15+
win = getWin()
16+
if (Pref.getSharedPreference(context)?.getBoolean(Pref.MOUNT_LOCATION, false) == true) {
17+
ShellUtils.fastCmd("su -mm -c mkdir /mnt/Windows || true")
18+
ShellUtils.fastCmd("su -mm -c " + MainActivity.Companion.context!!.filesDir + "/mount.ntfs $win /mnt/Windows")
19+
} else {
20+
ShellUtils.fastCmd("su -mm -c mkdir /mnt/sdcard/Windows || true")
21+
ShellUtils.fastCmd("su -mm -c " + MainActivity.Companion.context!!.filesDir + "/mount.ntfs $win /mnt/sdcard/Windows")
22+
}
23+
}
24+
}
25+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.woa.helper.main
2+
3+
import android.content.Context
4+
import android.util.AttributeSet
5+
import android.view.LayoutInflater
6+
import androidx.annotation.StringRes
7+
import com.google.android.material.card.MaterialCardView
8+
import com.woa.helper.R
9+
import com.woa.helper.databinding.ButtonBinding
10+
11+
class Button(private val context: Context, attrs: AttributeSet?) : MaterialCardView(context, attrs) {
12+
private val layout: ButtonBinding = ButtonBinding.inflate(LayoutInflater.from(context), this, true)
13+
14+
init {
15+
val a = context.theme.obtainStyledAttributes(attrs, R.styleable.Button, 0, 0)
16+
if (attrs != null) {
17+
val title = a.getString(R.styleable.Button_title)
18+
val subtitle = a.getString(R.styleable.Button_subtitle)
19+
val imageId = a.getResourceId(R.styleable.Button_image, R.drawable.ic_disk)
20+
layout.title.text = title
21+
layout.subtitle.text = subtitle
22+
layout.image.setImageResource(imageId)
23+
}
24+
}
25+
26+
fun setTitle(@StringRes stringId: Int) {
27+
layout.title.text = context.getString(stringId)
28+
}
29+
30+
fun setTitle(title: String?) {
31+
layout.title.text = title
32+
}
33+
34+
fun setSubtitle(@StringRes stringId: Int) {
35+
layout.subtitle.text = context.getString(stringId)
36+
}
37+
38+
fun setSubtitle(subtitle: String?) {
39+
layout.subtitle.text = subtitle
40+
}
41+
}

0 commit comments

Comments
 (0)