mirror of
https://github.com/YTVanced/VancedManager
synced 2024-11-25 12:45:12 +00:00
commit
3c88e8277d
82 changed files with 1314 additions and 719 deletions
28
.github/workflows/android.yml
vendored
Normal file
28
.github/workflows/android.yml
vendored
Normal file
|
@ -0,0 +1,28 @@
|
|||
name: Build & Publish Debug APK
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- dev
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- name: set up JDK 1.8
|
||||
uses: actions/setup-java@v1
|
||||
with:
|
||||
java-version: 1.8
|
||||
- name: Make Gradle executable
|
||||
run: chmod +x ./gradlew
|
||||
- name: Build with Gradle
|
||||
run: ./gradlew build
|
||||
- name: Build Debug APK
|
||||
run: ./gradlew assembleDebug
|
||||
- name: Releasing using Hub
|
||||
uses: ShaunLWM/action-release-debugapk@master
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.TOKEN }}
|
||||
APP_FOLDER: app
|
||||
RELEASE_TITLE: New Build
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -2,3 +2,4 @@
|
|||
.idea/
|
||||
build/
|
||||
out/
|
||||
local.properties
|
||||
|
|
|
@ -7,9 +7,9 @@ No one really thought there would be problems with this format, because installa
|
|||
## Problems with .apks format
|
||||
Main problems with new format were either with device CPU architecture or MemeUI shit with MiUI optimisations. We wrote instructions for VancedHelper but no one used it for troubleshooting. Then some users complained about new format and refused to upgrade to newest version (We don't give a fuck about that) because "I dOn'T WaNT To HaVe OnE MoRE apP To insTalL VanCeD" so we decided to make an installer for Vanced
|
||||
# Vanced Manager
|
||||
Ladies and gentlemen, I'm very proud to introduce the new **Vanced Manager ci Alpha Ui Preview Test Build 0.3.1™** which only has a UI at the time lol
|
||||
Ladies and gentlemen, I'm very proud to introduce the new **Vanced Manager ci Alpha Ui Preview Test Build 0.4.0™** which only has a UI at the time lol
|
||||
Vanced Manager is an universal utility for installing/updating Vanced and MicroG. It will push notifications once the update is ready and for root users, it can also automatically download and install them (Now that's what I call pwetty epic).
|
||||
Vanced manager comes with a slick UI ~~that was stolen from the new Magisk Manager (I'm very sorry John but I looked your code for about 100 times).~~ Actually, while UI may look very similar to new Magisk Manager's UI, It's still very different (that's a blatant lie, I know).
|
||||
Vanced manager comes with a slick UI ~~that was stolen from the new Magisk Manager (I'm very sorry John but I looked at your code for about 100 times).~~ Actually, while UI may look very similar to new Magisk Manager's UI, It's still very different (that's a blatant lie, I know).
|
||||
|
||||
Main Menu screenshot taken from tablet
|
||||
![screenshot](https://i.imgur.com/okeGnlE.png)
|
||||
|
|
28
api/api.iml
28
api/api.iml
|
@ -4,8 +4,8 @@
|
|||
<facet type="android-gradle" name="Android-Gradle">
|
||||
<configuration>
|
||||
<option name="GRADLE_PROJECT_PATH" value=":api" />
|
||||
<option name="LAST_SUCCESSFUL_SYNC_AGP_VERSION" value="3.6.1" />
|
||||
<option name="LAST_KNOWN_AGP_VERSION" value="3.6.1" />
|
||||
<option name="LAST_SUCCESSFUL_SYNC_AGP_VERSION" value="3.6.3" />
|
||||
<option name="LAST_KNOWN_AGP_VERSION" value="3.6.3" />
|
||||
</configuration>
|
||||
</facet>
|
||||
<facet type="android" name="Android">
|
||||
|
@ -32,7 +32,7 @@
|
|||
</compilerSettings>
|
||||
<compilerArguments>
|
||||
<option name="destination" value="$MODULE_DIR$/build/tmp/kotlin-classes/debug" />
|
||||
<option name="classpath" value="$USER_HOME$/.gradle/caches/transforms-2/files-2.1/906801bd8eedd543c2fcbd8760c214dc/jetified-kotlin-android-extensions-runtime-1.3.61.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/a6ee74fb178b3ea5a892efce09fbf14f/jetified-kotlin-stdlib-jdk7-1.3.61.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/2277d7565c8c733363501349d51125ad/jetified-core-ktx-1.0.2-api.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/8c33874182974c323a04f40a626452c3/jetified-kotlin-stdlib-1.3.61.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/710a6a007d3afc426d16b6e039176053/jetified-kotlin-stdlib-common-1.3.61.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/37b2db17f3474094fa0bbcb93412368e/jetified-annotations-13.0.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/273ec28f85a60e20fe49194ab8f012a2/appcompat-1.0.2-api.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/2b2493273aea6ed72fe683c570a2fe54/fragment-1.0.0-api.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/526064812d062c2b559a19f3c7b685ef/vectordrawable-animated-1.0.0-api.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/286f408a9b38af97745db9468c6c6de8/legacy-support-core-ui-1.0.0-api.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/5c56372a7ace7aa8c6e1b8a25b442f97/legacy-support-core-utils-1.0.0-api.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/1496cc64787b94d3101b43d27f5f0c1d/vectordrawable-1.0.1-api.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/3f597a675e0dced4e69dc6514a92c184/loader-1.0.0-api.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/6e36c5267b3ca51fdf75177b25e90817/viewpager-1.0.0-api.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/d8e72c7daf37aa447d92e84c05ab9acf/coordinatorlayout-1.0.0-api.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/675fb8ac46037f96bf818653017729a6/drawerlayout-1.0.0-api.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/1d02d5d4c5387ec2e60b8951315edf0d/slidingpanelayout-1.0.0-api.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/082ba1b7e0063ff8eab2fc487b8009d8/customview-1.0.0-api.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/18c5a845d858ab8f399404f997a5e846/swiperefreshlayout-1.0.0-api.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/f929cc63f148d518cbe02fd4809df469/asynclayoutinflater-1.0.0-api.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/da29613ea93b89cf1e0f490073bab19d/core-1.0.2-api.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/3413cb8c19998a22f4302c898f065df3/versionedparcelable-1.0.0-api.jar:/home/hope/.gradle/caches/modules-2/files-2.1/androidx.collection/collection/1.0.0/42858b26cafdaa69b6149f45dfc2894007bc2c7a/collection-1.0.0.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/70941b0fa6d94b1ca397a5bf2ddcb0af/cursoradapter-1.0.0-api.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/eea16df56f938e5deda46614478d189f/lifecycle-runtime-2.0.0-api.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/8c112935acc502e6cdf14553161ae528/documentfile-1.0.0-api.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/e44f98e282420a53c61932f07788486f/localbroadcastmanager-1.0.0-api.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/e41fae70dc9ce0d3c6b93640751d999a/print-1.0.0-api.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/7a7515bd95cd10b8ce3b32b20633eddb/lifecycle-viewmodel-2.0.0-api.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/d5ab8b4fb10d3f1d5cbf518c9cd0e4a6/lifecycle-livedata-2.0.0-api.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/a460f54149c82ffd1e24c453f10f22e8/lifecycle-livedata-core-2.0.0-api.jar:/home/hope/.gradle/caches/modules-2/files-2.1/androidx.lifecycle/lifecycle-common/2.0.0/e070ffae07452331bc5684734fce6831d531785c/lifecycle-common-2.0.0.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/c16c643d1a59ed2eca32fd41fb3dad82/core-runtime-2.0.0-api.jar:/home/hope/.gradle/caches/modules-2/files-2.1/androidx.arch.core/core-common/2.0.0/bb21b9a11761451b51624ac428d1f1bb5deeac38/core-common-2.0.0.jar:/home/hope/.gradle/caches/transforms-2/files-2.1/cd3fca000496694d0c8706c90d9c1dc0/interpolator-1.0.0-api.jar:/home/hope/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation/1.0.2/2f1d597d48e5309e935ce1212eedf5ae69d3f97/annotation-1.0.2.jar:/home/hope/Android/Sdk/platforms/android-29/android.jar" />
|
||||
<option name="classpath" value="$MODULE_DIR$/build/intermediates/compile_only_not_namespaced_r_class_jar/debug/R.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/2007790f728a1209fc7f4c998ef37192/jetified-kotlin-android-extensions-runtime-1.3.72.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/04a3f47a61e66bdc148e7c91fa0eb96d/jetified-kotlin-stdlib-jdk7-1.3.72.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/95c964fca064d85ea75a548e65e10166/jetified-core-ktx-1.0.2-api.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/88fdafa44c425dc99960dc38fd21e606/jetified-kotlin-stdlib-1.3.72.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/3fc56f9567b3362c5e198a251df74ff8/jetified-kotlin-stdlib-common-1.3.72.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/e6b13d476c07d97a8633c2e07ebe8ba6/jetified-annotations-13.0.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/116c49b6cc9ec52d11afdf70461e1f6e/appcompat-1.0.2-api.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/77b611b33add6a23fa4c7b5bb3953eae/fragment-1.0.0-api.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/b7b989360159f8400799e1bee717d9d6/vectordrawable-animated-1.0.0-api.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/c47fd7d7dc02ea3dddd5829307ed47b4/legacy-support-core-ui-1.0.0-api.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/0597bc315b8daa2a39db6f912dd7fef9/legacy-support-core-utils-1.0.0-api.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/86eb5e85623fc1c570639f917d1b60e1/vectordrawable-1.0.1-api.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/51995cd66ee66f63d9e1fa81d31aba40/loader-1.0.0-api.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/8261cc7dc801583621ae1686e77b20ba/viewpager-1.0.0-api.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/c3fbd0da3a7b0ed87fa307c6e1c9150f/coordinatorlayout-1.0.0-api.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/f60d503848a7312f41ea0c690e81db3c/drawerlayout-1.0.0-api.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/78dab6ef604983c68e9fa7da625a4c99/slidingpanelayout-1.0.0-api.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/df2f814cba6709de2245fe751785df12/customview-1.0.0-api.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/f6b087e5c3383f2243d985d144af9ece/swiperefreshlayout-1.0.0-api.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/ab18de97c4fa444df769be83004a8958/asynclayoutinflater-1.0.0-api.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/b6deceb2d054c33d2827a9a2a32aec4b/core-1.0.2-api.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/d8926a4a3427edee86f29ddf104a05cd/versionedparcelable-1.0.0-api.jar:/Users/Xinto/.gradle/caches/modules-2/files-2.1/androidx.collection/collection/1.0.0/42858b26cafdaa69b6149f45dfc2894007bc2c7a/collection-1.0.0.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/f380750b489f5a279ada37357a1586b3/cursoradapter-1.0.0-api.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/0bae51e8ce65a98e90b67b7ca0d94ca2/lifecycle-runtime-2.0.0-api.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/02682a11fd5ebaa8e055575838fb83a1/documentfile-1.0.0-api.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/954ab66de19329692601713f1041e30a/localbroadcastmanager-1.0.0-api.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/62dbd37bbe25623b96220010fba40082/print-1.0.0-api.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/2b44792743bacf58b1b9b8b08bc5597b/lifecycle-viewmodel-2.0.0-api.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/54d93caba0b752e51ee425b8e71a2171/lifecycle-livedata-2.0.0-api.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/e4c5900a83f53f4e334e8eded8f47bb8/lifecycle-livedata-core-2.0.0-api.jar:/Users/Xinto/.gradle/caches/modules-2/files-2.1/androidx.lifecycle/lifecycle-common/2.0.0/e070ffae07452331bc5684734fce6831d531785c/lifecycle-common-2.0.0.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/ed9a093e6599a9582ff978de64122224/core-runtime-2.0.0-api.jar:/Users/Xinto/.gradle/caches/modules-2/files-2.1/androidx.arch.core/core-common/2.0.0/bb21b9a11761451b51624ac428d1f1bb5deeac38/core-common-2.0.0.jar:/Users/Xinto/.gradle/caches/transforms-2/files-2.1/7a74caff008b00f69ea01931ee62716e/interpolator-1.0.0-api.jar:/Users/Xinto/.gradle/caches/modules-2/files-2.1/androidx.annotation/annotation/1.0.2/2f1d597d48e5309e935ce1212eedf5ae69d3f97/annotation-1.0.2.jar:/Users/Xinto/Library/Android/sdk/platforms/android-29/android.jar" />
|
||||
<option name="noStdlib" value="true" />
|
||||
<option name="noReflect" value="true" />
|
||||
<option name="moduleName" value="api_debug" />
|
||||
|
@ -48,13 +48,13 @@
|
|||
<option name="pluginClasspaths">
|
||||
<array>
|
||||
<option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.intellij.deps/trove4j/1.0.20181211/216c2e14b070f334479d800987affe4054cd563f/trove4j-1.0.20181211.jar" />
|
||||
<option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-android-extensions/1.3.61/54ca7c214a5cd73cd887a42002266e25440097f2/kotlin-android-extensions-1.3.61.jar" />
|
||||
<option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-compiler-embeddable/1.3.61/c35c0833d5a1e3d229359758482c480306724618/kotlin-compiler-embeddable-1.3.61.jar" />
|
||||
<option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-daemon-embeddable/1.3.61/4de83e41a92c8395d89ab2e81d26b788ba163824/kotlin-daemon-embeddable-1.3.61.jar" />
|
||||
<option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-reflect/1.3.61/2e07c9a84c9e118efb70eede7e579fd663932122/kotlin-reflect-1.3.61.jar" />
|
||||
<option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-script-runtime/1.3.61/e5feb39c8de63dcbdc1154b34ca4413874231605/kotlin-script-runtime-1.3.61.jar" />
|
||||
<option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.3.61/65abb71d5afb850b68be03987b08e2c864ca3110/kotlin-stdlib-common-1.3.61.jar" />
|
||||
<option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.3.61/4702105e97f7396ae41b113fdbdc180ec1eb1e36/kotlin-stdlib-1.3.61.jar" />
|
||||
<option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-android-extensions/1.3.72/ecbb105a12a9766d2188f454b3bc3aab46cb80b6/kotlin-android-extensions-1.3.72.jar" />
|
||||
<option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-compiler-embeddable/1.3.72/fb72232c8fa977d5e07d33c43381ddbdc5edab6/kotlin-compiler-embeddable-1.3.72.jar" />
|
||||
<option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-daemon-embeddable/1.3.72/53bbaa2816dbf6bdb85f629451b1fcc88f2164d2/kotlin-daemon-embeddable-1.3.72.jar" />
|
||||
<option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-reflect/1.3.72/86613e1a669a701b0c660bfd2af4f82a7ae11fca/kotlin-reflect-1.3.72.jar" />
|
||||
<option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-script-runtime/1.3.72/657d8d34d91e1964b4439378c09933e840bfe8d5/kotlin-script-runtime-1.3.72.jar" />
|
||||
<option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.3.72/6ca8bee3d88957eaaaef077c41c908c9940492d8/kotlin-stdlib-common-1.3.72.jar" />
|
||||
<option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.3.72/8032138f12c0180bc4e51fe139d4c52b46db6109/kotlin-stdlib-1.3.72.jar" />
|
||||
<option value="$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/13.0/919f0dfe192fb4e063e7dacadee7f8bb9a2672a9/annotations-13.0.jar" />
|
||||
</array>
|
||||
</option>
|
||||
|
@ -139,10 +139,10 @@
|
|||
<orderEntry type="library" scope="TEST" name="Gradle: androidx.test:runner:1.1.1@aar" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Gradle: androidx.test:monitor:1.1.1@aar" level="project" />
|
||||
<orderEntry type="library" scope="TEST" name="Gradle: androidx.test.espresso:espresso-idling-resource:3.1.1@aar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.3.61@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.61@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: org.jetbrains.kotlin:kotlin-stdlib:1.3.61@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:1.3.61@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.3.72@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.72@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: org.jetbrains.kotlin:kotlin-stdlib:1.3.72@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: org.jetbrains.kotlin:kotlin-stdlib-common:1.3.72@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: org.jetbrains:annotations:13.0@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: androidx.collection:collection:1.0.0@jar" level="project" />
|
||||
<orderEntry type="library" name="Gradle: androidx.lifecycle:lifecycle-common:2.0.0@jar" level="project" />
|
||||
|
|
56
app/app.iml
56
app/app.iml
File diff suppressed because one or more lines are too long
|
@ -11,8 +11,8 @@ android {
|
|||
applicationId "com.vanced.manager"
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 29
|
||||
versionCode 1
|
||||
versionName "1.0"
|
||||
versionCode 2
|
||||
versionName "1.0.1 beta"
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
|
||||
|
@ -51,14 +51,14 @@ dependencies {
|
|||
implementation 'androidx.core:core-ktx:1.2.0'
|
||||
implementation 'com.google.android.material:material:1.1.0'
|
||||
implementation 'androidx.fragment:fragment-ktx:1.2.4'
|
||||
implementation 'androidx.preference:preference-ktx:1.1.0'
|
||||
implementation 'androidx.preference:preference-ktx:1.1.1'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
|
||||
implementation 'androidx.browser:browser:1.2.0'
|
||||
implementation 'androidx.navigation:navigation-fragment:2.2.1'
|
||||
implementation 'androidx.navigation:navigation-ui:2.2.1'
|
||||
implementation 'androidx.navigation:navigation-fragment:2.2.2'
|
||||
implementation 'androidx.navigation:navigation-ui:2.2.2'
|
||||
implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
|
||||
implementation 'androidx.navigation:navigation-fragment-ktx:2.2.1'
|
||||
implementation 'androidx.navigation:navigation-ui-ktx:2.2.1'
|
||||
implementation 'androidx.navigation:navigation-fragment-ktx:2.2.2'
|
||||
implementation 'androidx.navigation:navigation-ui-ktx:2.2.2'
|
||||
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
|
||||
testImplementation 'junit:junit:4.12'
|
||||
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
|
||||
|
|
BIN
app/release/app-release.apk
Normal file
BIN
app/release/app-release.apk
Normal file
Binary file not shown.
1
app/release/output.json
Normal file
1
app/release/output.json
Normal file
|
@ -0,0 +1 @@
|
|||
[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.0","enabled":true,"outputFile":"app-release.apk","fullName":"release","baseName":"release","dirName":""},"path":"app-release.apk","properties":{}}]
|
|
@ -23,6 +23,11 @@
|
|||
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="android.app.shortcuts"
|
||||
android:resource="@xml/shortcuts" />
|
||||
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".ui.MainActivity"
|
||||
|
|
56
app/src/main/java/com/vanced/manager/core/Main.kt
Normal file
56
app/src/main/java/com/vanced/manager/core/Main.kt
Normal file
|
@ -0,0 +1,56 @@
|
|||
package com.vanced.manager.core
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import com.vanced.manager.R
|
||||
import com.vanced.manager.ui.core.ThemeActivity
|
||||
|
||||
// This activity will NOT be used in manifest
|
||||
// since MainActivity will extend it
|
||||
@SuppressLint("Registered")
|
||||
open class Main: ThemeActivity() {
|
||||
|
||||
@SuppressLint("ObsoleteSdkInt")
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
val prefs = getSharedPreferences("prefs", MODE_PRIVATE)
|
||||
val firstStart = prefs.getBoolean("firstStart", true)
|
||||
if (firstStart) {
|
||||
//A little surprise for those who
|
||||
//love lowering minSdkVersions
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
|
||||
showUnsupportedSdkDialog()
|
||||
} else showSecurityDialog()
|
||||
}
|
||||
}
|
||||
|
||||
private fun showSecurityDialog() {
|
||||
AlertDialog.Builder(this)
|
||||
.setTitle(resources.getString(R.string.welcome))
|
||||
.setMessage(resources.getString(R.string.security_context))
|
||||
.setPositiveButton(resources.getString(R.string.close)) { dialog, _ -> dialog.dismiss() }
|
||||
.create()
|
||||
.show()
|
||||
|
||||
val prefs = getSharedPreferences("prefs", MODE_PRIVATE)
|
||||
val editor = prefs.edit()
|
||||
editor.putBoolean("firstStart", false)
|
||||
editor.apply()
|
||||
}
|
||||
|
||||
private fun showUnsupportedSdkDialog() {
|
||||
AlertDialog.Builder(this)
|
||||
.setTitle(resources.getString(R.string.whoops))
|
||||
.setMessage(resources.getString(R.string.unsupported_version_context))
|
||||
.setPositiveButton(
|
||||
"OK"
|
||||
) { _, _ -> finish() }
|
||||
.create()
|
||||
.show()
|
||||
}
|
||||
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
package com.vanced.manager.ui.core
|
||||
package com.vanced.manager.core.base
|
||||
|
||||
import android.content.pm.PackageManager
|
||||
import android.net.Uri
|
||||
import androidx.browser.customtabs.CustomTabsIntent
|
||||
import androidx.core.content.ContextCompat
|
||||
|
@ -14,4 +15,13 @@ open class BaseFragment : Fragment() {
|
|||
customTabsIntent.launchUrl(requireContext(), Uri.parse(Url))
|
||||
}
|
||||
|
||||
fun isPackageInstalled(packageName: String, packageManager: PackageManager): Boolean {
|
||||
return try {
|
||||
packageManager.getPackageInfo(packageName, 0)
|
||||
true
|
||||
} catch (e: PackageManager.NameNotFoundException) {
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
}
|
26
app/src/main/java/com/vanced/manager/core/fragments/About.kt
Normal file
26
app/src/main/java/com/vanced/manager/core/fragments/About.kt
Normal file
|
@ -0,0 +1,26 @@
|
|||
package com.vanced.manager.core.fragments
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.widget.Button
|
||||
import com.vanced.manager.R
|
||||
import com.vanced.manager.core.base.BaseFragment
|
||||
|
||||
open class About : BaseFragment() {
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
val githubSource = getView()?.findViewById(R.id.about_github_button) as Button
|
||||
val license = getView()?.findViewById(R.id.about_license_button) as Button
|
||||
|
||||
githubSource.setOnClickListener {
|
||||
openUrl("https://github.com/YTvanced/VancedInstaller", R.color.GitHub)
|
||||
}
|
||||
|
||||
license.setOnClickListener {
|
||||
openUrl("https://raw.githubusercontent.com/YTVanced/VancedInstaller/dev/LICENSE", R.color.GitHub)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
90
app/src/main/java/com/vanced/manager/core/fragments/Home.kt
Normal file
90
app/src/main/java/com/vanced/manager/core/fragments/Home.kt
Normal file
|
@ -0,0 +1,90 @@
|
|||
package com.vanced.manager.core.fragments
|
||||
|
||||
import android.content.ComponentName
|
||||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.widget.Button
|
||||
import androidx.navigation.findNavController
|
||||
import com.vanced.manager.R
|
||||
import com.vanced.manager.core.base.BaseFragment
|
||||
|
||||
open class Home : BaseFragment() {
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
val pm = activity?.packageManager
|
||||
|
||||
//Damn that's a lot of buttons
|
||||
val microginstallbtn = view.findViewById<Button>(R.id.microg_installbtn)
|
||||
val microguninstallbtn = view.findViewById<Button>(R.id.microg_uninstallbtn)
|
||||
val microgsettingsbtn = view.findViewById<Button>(R.id.microg_settingsbtn)
|
||||
val vancedinstallbtn = view.findViewById<Button>(R.id.vanced_installbtn)
|
||||
|
||||
val bravebtn = view.findViewById<Button>(R.id.brave_button)
|
||||
val websitebtn = view.findViewById<Button>(R.id.website_button)
|
||||
val discordbtn = view.findViewById<Button>(R.id.discordbtn)
|
||||
val telegrambtn = view.findViewById<Button>(R.id.tgbtn)
|
||||
val twitterbtn = view.findViewById<Button>(R.id.twitterbtn)
|
||||
val redditbtn = view.findViewById<Button>(R.id.redditbtn)
|
||||
|
||||
//we need to check whether these apps are installed or not
|
||||
val microgStatus = pm?.let { isPackageInstalled("com.mgoogle.android.gms", it) }
|
||||
val vancedStatus = pm?.let { isPackageInstalled("com.vanced.android.youtube", it) }
|
||||
|
||||
vancedinstallbtn.setOnClickListener {
|
||||
view.findNavController().navigate(R.id.toInstallThemeFragment)
|
||||
}
|
||||
|
||||
microginstallbtn.setOnClickListener {
|
||||
openUrl("https://youtu.be/dQw4w9WgXcQ", R.color.YT)
|
||||
}
|
||||
|
||||
if (microgStatus!!) {
|
||||
microguninstallbtn.setOnClickListener {
|
||||
val uri = Uri.parse("package:com.mgoogle.android.gms")
|
||||
val mgUninstall = Intent(Intent.ACTION_DELETE, uri)
|
||||
startActivity(mgUninstall)
|
||||
}
|
||||
|
||||
microgsettingsbtn.setOnClickListener {
|
||||
val intent = Intent()
|
||||
intent.component = ComponentName(
|
||||
"com.mgoogle.android.gms",
|
||||
"org.microg.gms.ui.SettingsActivity"
|
||||
)
|
||||
startActivity(intent)
|
||||
}
|
||||
} else {
|
||||
microgsettingsbtn.visibility = View.INVISIBLE
|
||||
microguninstallbtn.visibility = View.INVISIBLE
|
||||
}
|
||||
|
||||
bravebtn.setOnClickListener {
|
||||
openUrl("https://brave.com/van874", R.color.Brave)
|
||||
|
||||
}
|
||||
websitebtn.setOnClickListener {
|
||||
openUrl("https://vanced.app", R.color.Vanced)
|
||||
}
|
||||
discordbtn.setOnClickListener {
|
||||
openUrl("https://discord.gg/TUVd7rd", R.color.Discord)
|
||||
|
||||
}
|
||||
telegrambtn.setOnClickListener {
|
||||
openUrl("https://t.me/joinchat/AAAAAEHf-pi4jH1SDlAL4w", R.color.Telegram)
|
||||
|
||||
}
|
||||
twitterbtn.setOnClickListener {
|
||||
openUrl("https://twitter.com/YTVanced", R.color.Twitter)
|
||||
|
||||
}
|
||||
redditbtn.setOnClickListener {
|
||||
openUrl("https://reddit.com/r/vanced", R.color.Reddit)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
package com.vanced.manager.core.fragments
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.widget.Button
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.navigation.findNavController
|
||||
import com.vanced.manager.R
|
||||
import com.vanced.manager.ui.fragments.LanguageScrollviewFragment
|
||||
|
||||
open class LanguageInstall : Fragment() {
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
val finishButton = getView()?.findViewById(R.id.vanced_install_finish) as Button
|
||||
|
||||
finishButton.setOnClickListener {
|
||||
view.findNavController().navigate(R.id.action_installTo_homeFragment)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
package com.vanced.manager.core.fragments
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.widget.Button
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.navigation.findNavController
|
||||
import com.vanced.manager.R
|
||||
|
||||
open class ThemeInstall : Fragment() {
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
val nextButton = getView()?.findViewById(R.id.vanced_next_to_variant) as Button
|
||||
|
||||
nextButton.setOnClickListener {
|
||||
view.findNavController().navigate(R.id.toInstallVariantFragment)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
package com.vanced.manager.core.fragments
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import android.widget.Button
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.navigation.findNavController
|
||||
import com.vanced.manager.R
|
||||
|
||||
open class VariantInstall : Fragment() {
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
val nextButton = getView()?.findViewById(R.id.vanced_next_to_language) as Button
|
||||
|
||||
nextButton.setOnClickListener {
|
||||
view.findNavController().navigate(R.id.toInstallLanguageFragment)
|
||||
}
|
||||
}
|
||||
}
|
|
@ -3,17 +3,18 @@ package com.vanced.manager.ui
|
|||
import android.os.Bundle
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.core.view.forEach
|
||||
import android.view.animation.Animation
|
||||
import android.view.animation.AnimationUtils
|
||||
import androidx.navigation.NavDestination
|
||||
import androidx.navigation.findNavController
|
||||
import androidx.navigation.ui.AppBarConfiguration
|
||||
import androidx.navigation.ui.setupWithNavController
|
||||
import com.google.android.material.appbar.MaterialToolbar
|
||||
import com.google.android.material.bottomnavigation.BottomNavigationView
|
||||
import com.vanced.manager.R
|
||||
import com.vanced.manager.ui.core.ThemeActivity
|
||||
import com.vanced.manager.core.Main
|
||||
|
||||
class MainActivity : ThemeActivity() {
|
||||
class MainActivity : Main() {
|
||||
|
||||
private var isParent = true
|
||||
|
||||
|
@ -22,16 +23,16 @@ class MainActivity : ThemeActivity() {
|
|||
setContentView(R.layout.activity_main)
|
||||
|
||||
val toolbar: MaterialToolbar = findViewById(R.id.home_toolbar)
|
||||
|
||||
setSupportActionBar(toolbar)
|
||||
|
||||
val prefs = getSharedPreferences("prefs", MODE_PRIVATE)
|
||||
val firstStart = prefs.getBoolean("firstStart", true)
|
||||
if (firstStart) {
|
||||
showSecurityDialog()
|
||||
}
|
||||
|
||||
val navHost = findNavController(R.id.bottom_nav_host)
|
||||
val appBarConfiguration = AppBarConfiguration(navHost.graph)
|
||||
toolbar.setupWithNavController(navHost, appBarConfiguration)
|
||||
|
||||
|
||||
//WARNING: Reserved code!
|
||||
//DO NOT TOUCH!
|
||||
/*
|
||||
val navBar = findViewById<BottomNavigationView>(R.id.bottom_nav)
|
||||
navBar.setupWithNavController(navHost)
|
||||
|
||||
|
@ -51,39 +52,66 @@ class MainActivity : ThemeActivity() {
|
|||
|
||||
navBar.setOnNavigationItemReselectedListener {
|
||||
}
|
||||
*/
|
||||
|
||||
navHost.addOnDestinationChangedListener{_, currfrag: NavDestination, _ ->
|
||||
//WARNING: Reserved code 2
|
||||
//DO NOT TOUCH
|
||||
/*
|
||||
val navBarHide: Animation = AnimationUtils.loadAnimation(applicationContext, R.anim.navbar_exit)
|
||||
val navBarShow: Animation = AnimationUtils.loadAnimation(applicationContext, R.anim.navbar_enter)
|
||||
when (currfrag.id) {
|
||||
R.id.home_fragment, R.id.settings_fragment -> navBar.visibility = View.VISIBLE
|
||||
else -> navBar.visibility = View.INVISIBLE
|
||||
|
||||
R.id.home_fragment, R.id.settings_fragment -> {
|
||||
|
||||
if (navBar.visibility != View.VISIBLE) {
|
||||
navBar.visibility = View.VISIBLE
|
||||
navBar.startAnimation(navBarShow)
|
||||
}
|
||||
|
||||
}
|
||||
else -> {
|
||||
if (navBar.visibility != View.GONE) {
|
||||
navBar.startAnimation(navBarHide)
|
||||
navBar.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
*/
|
||||
isParent = when (currfrag.id) {
|
||||
R.id.home_fragment, R.id.settings_fragment -> true
|
||||
R.id.home_fragment -> true
|
||||
else -> false
|
||||
}
|
||||
|
||||
setDisplayHomeAsUpEnabled(!isParent)
|
||||
|
||||
navBar.menu.forEach {
|
||||
if (it.itemId == currfrag.id) {
|
||||
it.isChecked = true
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem): Boolean {
|
||||
val navHost = findNavController(R.id.bottom_nav_host)
|
||||
when (item.itemId) {
|
||||
android.R.id.home -> {
|
||||
findNavController(R.id.bottom_nav_host).navigate(R.id.action_homeFragment)
|
||||
onBackPressed()
|
||||
return true
|
||||
}
|
||||
R.id.toolbar_about -> {
|
||||
navHost.navigate(R.id.toAboutFragment)
|
||||
return true
|
||||
}
|
||||
R.id.toolbar_settings -> {
|
||||
navHost.navigate(R.id.action_settingsFragment)
|
||||
return true
|
||||
}
|
||||
R.id.secret_settings -> {
|
||||
navHost.navigate(R.id.toSecretSettingsFragment)
|
||||
return true
|
||||
}
|
||||
else -> super.onOptionsItemSelected(item)
|
||||
|
||||
}
|
||||
return true
|
||||
return false
|
||||
}
|
||||
|
||||
private fun setDisplayHomeAsUpEnabled(isNeeded: Boolean) {
|
||||
|
@ -93,19 +121,4 @@ class MainActivity : ThemeActivity() {
|
|||
else -> toolbar.navigationIcon = null
|
||||
}
|
||||
}
|
||||
|
||||
private fun showSecurityDialog() {
|
||||
AlertDialog.Builder(this)
|
||||
.setTitle("Welcome!")
|
||||
.setMessage("Before we implement a proper security system to check whether app was modified or not, please be sure that you downloaded manager from vanced.app/github")
|
||||
.setPositiveButton("close"
|
||||
) { dialog, _ -> dialog.dismiss() }
|
||||
.create().show()
|
||||
|
||||
val prefs = getSharedPreferences("prefs", MODE_PRIVATE)
|
||||
val editor = prefs.edit()
|
||||
editor.putBoolean("firstStart", false)
|
||||
editor.apply()
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -2,16 +2,24 @@ package com.vanced.manager.ui.core
|
|||
|
||||
import android.annotation.SuppressLint
|
||||
import android.app.ActivityManager
|
||||
import android.content.Context
|
||||
import android.content.SharedPreferences
|
||||
import android.content.res.Configuration
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.util.DisplayMetrics
|
||||
import android.view.KeyEvent
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.core.content.res.ResourcesCompat
|
||||
import androidx.preference.PreferenceManager
|
||||
import com.vanced.manager.R
|
||||
import java.util.*
|
||||
|
||||
// This activity will NOT be used in manifest
|
||||
// since MainActivity will extend it
|
||||
@SuppressLint("Registered")
|
||||
open class ThemeActivity : AppCompatActivity() {
|
||||
|
||||
private lateinit var currentTheme: String
|
||||
private lateinit var pref: SharedPreferences
|
||||
|
||||
|
@ -20,20 +28,32 @@ open class ThemeActivity : AppCompatActivity() {
|
|||
currentTheme = pref.getString("theme_mode", "").toString()
|
||||
|
||||
setFinalTheme(currentTheme)
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
if (android.os.Build.VERSION.SDK_INT < 28) {
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.P) {
|
||||
setTaskBG()
|
||||
}
|
||||
super.onCreate(savedInstanceState)
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
val theme = pref.getString("theme_mode", "")
|
||||
|
||||
//if for some weird reasons we get invalid
|
||||
//theme, recreate activity
|
||||
if (currentTheme != theme)
|
||||
recreate()
|
||||
|
||||
//set Task Header color in recents menu for
|
||||
//devices with lower Android version than Pie
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.P) {
|
||||
setTaskBG()
|
||||
}
|
||||
super.onResume()
|
||||
}
|
||||
|
||||
//This stupid ass AppCompatDelegate does
|
||||
//not want to work, so I have to use my
|
||||
//own implementation of theme switching
|
||||
private fun setFinalTheme(currentTheme: String) {
|
||||
when (currentTheme) {
|
||||
"LIGHT" -> setTheme(R.style.LightTheme_Blue)
|
||||
|
@ -47,10 +67,14 @@ open class ThemeActivity : AppCompatActivity() {
|
|||
else -> setTheme(R.style.LightTheme_Blue)
|
||||
}
|
||||
}
|
||||
|
||||
private fun setTaskBG() {
|
||||
val label = getString(R.string.app_name)
|
||||
val color = ResourcesCompat.getColor(resources, R.color.Black, null)
|
||||
val taskDec: ActivityManager.TaskDescription = ActivityManager.TaskDescription(label, null, color)
|
||||
val taskDec: ActivityManager.TaskDescription =
|
||||
ActivityManager.TaskDescription(label, null, color)
|
||||
setTaskDescription(taskDec)
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
package com.vanced.manager.ui.core
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import androidx.constraintlayout.widget.ConstraintLayout
|
||||
|
||||
open class SlidingConstraintLayout : ConstraintLayout {
|
||||
constructor(context: Context?) : super(context)
|
||||
constructor(context: Context?, attrs: AttributeSet?) : super(
|
||||
context,
|
||||
attrs
|
||||
)
|
||||
|
||||
var xFraction: Float
|
||||
get() {
|
||||
val width = width
|
||||
return if (width != 0)
|
||||
x / getWidth()
|
||||
else
|
||||
x
|
||||
}
|
||||
set(xFraction) {
|
||||
val width = width
|
||||
val newWidth =
|
||||
if (width > 0)
|
||||
xFraction * width
|
||||
else
|
||||
(-9999).toFloat()
|
||||
x = newWidth
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
package com.vanced.manager.ui.core
|
||||
|
||||
import android.content.Context
|
||||
import android.util.AttributeSet
|
||||
import androidx.core.widget.NestedScrollView
|
||||
|
||||
open class SlidingNestedScrollView : NestedScrollView {
|
||||
constructor(context: Context?) : super(context!!)
|
||||
constructor(context: Context?, attrs: AttributeSet?) : super(
|
||||
context!!,
|
||||
attrs
|
||||
)
|
||||
|
||||
var xFraction: Float
|
||||
get() {
|
||||
val width = width
|
||||
return if (width != 0)
|
||||
x / getWidth()
|
||||
else
|
||||
x
|
||||
}
|
||||
set(xFraction) {
|
||||
val width = width
|
||||
val newWidth =
|
||||
if (width > 0)
|
||||
xFraction * width
|
||||
else
|
||||
(-9999).toFloat()
|
||||
x = newWidth
|
||||
}
|
||||
}
|
|
@ -1,45 +1,24 @@
|
|||
package com.vanced.manager.ui.fragments
|
||||
|
||||
import android.os.Bundle
|
||||
import android.view.*
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.fragment.app.Fragment
|
||||
import android.widget.TextView
|
||||
import androidx.navigation.fragment.findNavController
|
||||
|
||||
import com.vanced.manager.R
|
||||
import com.vanced.manager.ui.core.BaseFragment
|
||||
import com.vanced.manager.core.fragments.About
|
||||
|
||||
/**
|
||||
* A simple [Fragment] subclass.
|
||||
*/
|
||||
class AboutFragment : BaseFragment() {
|
||||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
activity?.title = getString(R.string.title_about)
|
||||
}
|
||||
class AboutFragment : About() {
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater, container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
activity?.title = getString(R.string.title_about)
|
||||
return inflater.inflate(R.layout.fragment_about, container, false)
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
val githubSource = getView()?.findViewById(R.id.about_github_button) as TextView
|
||||
val license = getView()?.findViewById(R.id.about_license_button) as TextView
|
||||
|
||||
githubSource.setOnClickListener{
|
||||
openUrl("https://github.com/YTvanced/VancedInstaller", R.color.GitHub)
|
||||
}
|
||||
|
||||
license.setOnClickListener{
|
||||
openUrl("https://raw.githubusercontent.com/YTVanced/VancedInstaller/dev/LICENSE", R.color.GitHub)
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,40 +1,41 @@
|
|||
package com.vanced.manager.ui.fragments
|
||||
|
||||
import android.content.ComponentName
|
||||
import android.net.Uri
|
||||
import android.content.Context
|
||||
import android.net.ConnectivityManager
|
||||
import android.net.Network
|
||||
import android.net.NetworkCapabilities
|
||||
import android.net.NetworkRequest
|
||||
import android.os.Bundle
|
||||
import android.widget.Button
|
||||
import android.content.pm.PackageManager
|
||||
import android.content.Intent
|
||||
import android.view.*
|
||||
import androidx.navigation.findNavController
|
||||
import android.view.animation.Animation
|
||||
import android.view.animation.AnimationUtils
|
||||
import androidx.viewpager2.widget.ViewPager2
|
||||
import com.google.android.material.card.MaterialCardView
|
||||
import com.google.android.material.tabs.TabLayout
|
||||
import com.google.android.material.tabs.TabLayoutMediator
|
||||
import com.vanced.manager.adapter.SectionPageAdapter
|
||||
import com.vanced.manager.R
|
||||
import com.vanced.manager.ui.core.BaseFragment
|
||||
import com.vanced.manager.adapter.SectionPageAdapter
|
||||
import com.vanced.manager.core.fragments.Home
|
||||
|
||||
class HomeFragment : BaseFragment() {
|
||||
class HomeFragment : Home() {
|
||||
|
||||
private lateinit var sectionPageAdapter: SectionPageAdapter
|
||||
private lateinit var viewPager: ViewPager2
|
||||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
activity?.title = getString(R.string.title_home)
|
||||
setHasOptionsMenu(true)
|
||||
}
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater, container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
activity?.title = getString(R.string.title_home)
|
||||
setHasOptionsMenu(true)
|
||||
|
||||
return inflater.inflate(R.layout.fragment_home, container, false)
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
|
||||
connectionStatus()
|
||||
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
sectionPageAdapter = SectionPageAdapter(this)
|
||||
|
@ -49,93 +50,71 @@ class HomeFragment : BaseFragment() {
|
|||
}
|
||||
}.attach()
|
||||
|
||||
val pm = activity?.packageManager
|
||||
|
||||
val microginstallbtn = getView()?.findViewById(R.id.microg_installbtn) as Button
|
||||
val microguninstallbtn = getView()?.findViewById(R.id.microg_uninstallbtn) as Button
|
||||
val microgsettingsbtn = getView()?.findViewById(R.id.microg_settingsbtn) as Button
|
||||
val vancedinstallbtn = getView()?.findViewById(R.id.vanced_installbtn) as Button
|
||||
|
||||
val bravebtn = getView()?.findViewById(R.id.brave_button) as Button
|
||||
val websitebtn = getView()?.findViewById(R.id.website_button) as Button
|
||||
val discordbtn = getView()?.findViewById(R.id.discordbtn) as Button
|
||||
val telegrambtn = getView()?.findViewById(R.id.tgbtn) as Button
|
||||
val twitterbtn = getView()?.findViewById(R.id.twitterbtn) as Button
|
||||
val redditbtn = getView()?.findViewById(R.id.redditbtn) as Button
|
||||
|
||||
val microgStatus = pm?.let { isPackageInstalled("com.mgoogle.android.gms", it) }
|
||||
val vancedStatus = pm?.let { isPackageInstalled("com.vanced.android.youtube", it)}
|
||||
|
||||
vancedinstallbtn.setOnClickListener{
|
||||
view.findNavController().navigate(R.id.toInstallThemeFragment)
|
||||
}
|
||||
|
||||
microginstallbtn.setOnClickListener {
|
||||
openUrl("https://youtu.be/dQw4w9WgXcQ", R.color.YT)
|
||||
}
|
||||
|
||||
if (microgStatus!!) {
|
||||
microguninstallbtn.setOnClickListener {
|
||||
val uri = Uri.parse("package:com.mgoogle.android.gms")
|
||||
val mgUninstall = Intent(Intent.ACTION_DELETE, uri)
|
||||
startActivity(mgUninstall)
|
||||
}
|
||||
|
||||
microgsettingsbtn.setOnClickListener {
|
||||
val intent = Intent()
|
||||
intent.component = ComponentName(
|
||||
"com.mgoogle.android.gms",
|
||||
"org.microg.gms.ui.SettingsActivity"
|
||||
)
|
||||
startActivity(intent)
|
||||
}
|
||||
}
|
||||
else {
|
||||
microgsettingsbtn.visibility = View.INVISIBLE
|
||||
microguninstallbtn.visibility = View.INVISIBLE
|
||||
}
|
||||
|
||||
bravebtn.setOnClickListener {
|
||||
openUrl("https://brave.com/van874", R.color.Brave)
|
||||
|
||||
}
|
||||
websitebtn.setOnClickListener {
|
||||
openUrl("https://vanced.app", R.color.Vanced)
|
||||
}
|
||||
discordbtn.setOnClickListener {
|
||||
openUrl("https://discord.gg/TUVd7rd", R.color.Discord)
|
||||
|
||||
}
|
||||
telegrambtn.setOnClickListener {
|
||||
openUrl("https://t.me/joinchat/AAAAAEHf-pi4jH1SDIAL4w", R.color.Telegram)
|
||||
|
||||
}
|
||||
twitterbtn.setOnClickListener {
|
||||
openUrl("https://twitter.com/YTVanced", R.color.Twitter)
|
||||
|
||||
}
|
||||
redditbtn.setOnClickListener {
|
||||
openUrl("https://reddit.com/r/vanced", R.color.Reddit)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
||||
inflater.inflate(R.menu.toolbar_menu, menu)
|
||||
super .onCreateOptionsMenu(menu, inflater)
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) {
|
||||
R.id.about -> view?.findNavController()?.navigate(R.id.toAboutFragment)
|
||||
else -> null
|
||||
}?.let { true } ?: super.onOptionsItemSelected(item)
|
||||
|
||||
private fun isPackageInstalled(packageName: String, packageManager: PackageManager): Boolean {
|
||||
return try {
|
||||
packageManager.getPackageInfo(packageName, 0)
|
||||
true
|
||||
} catch (e: PackageManager.NameNotFoundException) {
|
||||
false
|
||||
|
||||
private var networkCallback = object: ConnectivityManager.NetworkCallback() {
|
||||
|
||||
override fun onLost(network: Network) {
|
||||
super.onLost(network)
|
||||
|
||||
activity?.runOnUiThread {
|
||||
|
||||
val animationShow: Animation = AnimationUtils.loadAnimation(requireContext(), R.anim.view_enter)
|
||||
val networkErrorLayout = view?.findViewById<MaterialCardView>(R.id.home_network_wrapper)
|
||||
|
||||
networkErrorLayout?.visibility = View.VISIBLE
|
||||
networkErrorLayout?.startAnimation(animationShow)
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun onUnavailable() {
|
||||
super.onUnavailable()
|
||||
|
||||
activity?.runOnUiThread {
|
||||
|
||||
val networkErrorLayout = view?.findViewById<MaterialCardView>(R.id.home_network_wrapper)
|
||||
networkErrorLayout?.visibility = View.VISIBLE
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
override fun onAvailable(network: Network) {
|
||||
super.onAvailable(network)
|
||||
|
||||
activity?.runOnUiThread {
|
||||
|
||||
val animationHide: Animation = AnimationUtils.loadAnimation(requireContext(), R.anim.view_exit)
|
||||
val networkErrorLayout = view?.findViewById<MaterialCardView>(R.id.home_network_wrapper)
|
||||
|
||||
networkErrorLayout?.startAnimation(animationHide)
|
||||
networkErrorLayout?.visibility = View.GONE
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private fun connectionStatus() {
|
||||
val connectivityManager = context?.applicationContext?.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
|
||||
val networkRequest = NetworkRequest.Builder()
|
||||
.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
|
||||
.build()
|
||||
try {
|
||||
connectivityManager.unregisterNetworkCallback(networkCallback)
|
||||
} catch (e: Exception) {
|
||||
|
||||
}
|
||||
connectivityManager.registerNetworkCallback(networkRequest, networkCallback)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -5,8 +5,6 @@ import androidx.fragment.app.Fragment
|
|||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Button
|
||||
import android.widget.TextView
|
||||
import com.vanced.manager.R
|
||||
|
||||
/**
|
||||
|
@ -18,7 +16,7 @@ class LanguageScrollviewFragment : Fragment() {
|
|||
inflater: LayoutInflater, container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
return inflater.inflate(R.layout.fragment_language_scrollview, container, false)
|
||||
return inflater.inflate(R.layout.include_language_scrollview, container, false)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,32 +1,14 @@
|
|||
package com.vanced.manager.ui.fragments
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.fragment.app.Fragment
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.TextView
|
||||
import androidx.preference.PreferenceFragmentCompat
|
||||
import com.vanced.manager.R
|
||||
|
||||
class SecretSettingsFragment : Fragment() {
|
||||
class SecretSettingsFragment : PreferenceFragmentCompat() {
|
||||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
activity?.title = getString(R.string.title_settings)
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||
setPreferencesFromResource(R.xml.secret_settings, rootKey)
|
||||
activity?.title = "Secret Settings"
|
||||
|
||||
}
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater, container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
return TextView(activity).apply {
|
||||
setText(R.string.title_settings)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -4,8 +4,8 @@ import android.content.res.Configuration
|
|||
import android.os.Bundle
|
||||
import android.view.Menu
|
||||
import android.view.MenuInflater
|
||||
import android.view.MenuItem
|
||||
import androidx.navigation.findNavController
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.preference.DialogPreference
|
||||
import androidx.preference.ListPreference
|
||||
import androidx.preference.Preference
|
||||
import androidx.preference.PreferenceFragmentCompat
|
||||
|
@ -13,16 +13,18 @@ import com.vanced.manager.R
|
|||
|
||||
class SettingsFragment : PreferenceFragmentCompat() {
|
||||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
activity?.title = getString(R.string.title_settings)
|
||||
setHasOptionsMenu(true)
|
||||
}
|
||||
|
||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||
setPreferencesFromResource(R.xml.preferences, rootKey)
|
||||
activity?.title = getString(R.string.title_settings)
|
||||
setHasOptionsMenu(true)
|
||||
|
||||
val updateCheck: Preference? = findPreference("update_check")
|
||||
updateCheck?.setOnPreferenceClickListener {
|
||||
val fm = childFragmentManager.beginTransaction()
|
||||
val updateDialog = UpdateCheckFragment()
|
||||
updateDialog.show(fm, "Update Center")
|
||||
true
|
||||
}
|
||||
|
||||
val themeSwitch: ListPreference? = findPreference("theme_mode")
|
||||
themeSwitch?.setOnPreferenceChangeListener { _, _ ->
|
||||
|
@ -59,11 +61,7 @@ class SettingsFragment : PreferenceFragmentCompat() {
|
|||
}
|
||||
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
|
||||
inflater.inflate(R.menu.secret_settings_menu, menu)
|
||||
super .onCreateOptionsMenu(menu, inflater)
|
||||
}
|
||||
|
||||
override fun onOptionsItemSelected(item: MenuItem) = when (item.itemId) {
|
||||
R.id.secret_settings -> view?.findNavController()?.navigate(R.id.toSecretSettingsFragment)
|
||||
else -> null
|
||||
}?.let { true } ?: super.onOptionsItemSelected(item)
|
||||
|
||||
}
|
|
@ -1,26 +1,36 @@
|
|||
package com.vanced.manager.ui.fragments
|
||||
|
||||
import android.app.Dialog
|
||||
import android.graphics.Color
|
||||
import android.graphics.drawable.ColorDrawable
|
||||
import android.os.Bundle
|
||||
import androidx.fragment.app.Fragment
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Button
|
||||
import androidx.fragment.app.DialogFragment
|
||||
|
||||
import com.vanced.manager.R
|
||||
|
||||
/**
|
||||
* A simple [Fragment] subclass.
|
||||
*/
|
||||
class UpdateCheckFragment : DialogFragment() {
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater, container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
// Inflate the layout for this fragment
|
||||
if (dialog != null && dialog?.window != null) {
|
||||
dialog?.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
|
||||
}
|
||||
return inflater.inflate(R.layout.fragment_update_check, container, false)
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
|
||||
val closebtn = view.findViewById<Button>(R.id.update_center_dismiss)
|
||||
|
||||
closebtn.setOnClickListener { dismiss() }
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,45 +1,20 @@
|
|||
package com.vanced.manager.ui.fragments
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.fragment.app.Fragment
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Button
|
||||
import androidx.navigation.findNavController
|
||||
|
||||
import com.vanced.manager.R
|
||||
import kotlinx.android.synthetic.main.fragment_vanced_language_selection.view.*
|
||||
import com.vanced.manager.core.fragments.LanguageInstall
|
||||
|
||||
class VancedLanguageSelectionFragment : Fragment() {
|
||||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
activity?.title = getString(R.string.title_install)
|
||||
}
|
||||
class VancedLanguageSelectionFragment : LanguageInstall() {
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater, container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
activity?.title = getString(R.string.title_install)
|
||||
return inflater.inflate(R.layout.fragment_vanced_language_selection, container, false)
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
val fragmentManager = childFragmentManager
|
||||
|
||||
val finishButton = getView()?.findViewById(R.id.vanced_install_finish) as Button
|
||||
|
||||
finishButton.setOnClickListener {
|
||||
view.findNavController().navigate(R.id.action_installTo_homeFragment)
|
||||
}
|
||||
|
||||
fragmentManager
|
||||
.beginTransaction()
|
||||
.replace(R.id.language_choose_frame, LanguageScrollviewFragment())
|
||||
.commit()
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,39 +1,20 @@
|
|||
package com.vanced.manager.ui.fragments
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.fragment.app.Fragment
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Button
|
||||
import android.widget.TextView
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.navigation.findNavController
|
||||
import com.vanced.manager.R
|
||||
import com.vanced.manager.core.fragments.ThemeInstall
|
||||
|
||||
class VancedThemeSelectionFragment : Fragment() {
|
||||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
activity?.title = getString(R.string.title_install)
|
||||
}
|
||||
class VancedThemeSelectionFragment : ThemeInstall() {
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater, container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
activity?.title = getString(R.string.title_install)
|
||||
return inflater.inflate(R.layout.fragment_vanced_theme_selection, container, false)
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
val fragmentManager = activity?.supportFragmentManager
|
||||
|
||||
val nextButton = getView()?.findViewById(R.id.vanced_next_to_variant) as Button
|
||||
|
||||
nextButton.setOnClickListener{
|
||||
view.findNavController().navigate(R.id.toInstallVariantFragment)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,39 +1,23 @@
|
|||
package com.vanced.manager.ui.fragments
|
||||
|
||||
import android.os.Bundle
|
||||
import androidx.fragment.app.Fragment
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.Button
|
||||
import androidx.navigation.findNavController
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import com.vanced.manager.R
|
||||
import com.vanced.manager.core.fragments.VariantInstall
|
||||
|
||||
class VancedVariantSelectionFragment : Fragment() {
|
||||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
activity?.title = getString(R.string.title_install)
|
||||
}
|
||||
class VancedVariantSelectionFragment : VariantInstall() {
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater, container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
activity?.title = getString(R.string.title_install)
|
||||
return inflater.inflate(R.layout.fragment_vanced_variant_selection, container, false)
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
val fragmentManager = activity?.supportFragmentManager
|
||||
|
||||
val nextButton = getView()?.findViewById(R.id.vanced_next_to_language) as Button
|
||||
|
||||
nextButton.setOnClickListener{
|
||||
view.findNavController().navigate(R.id.toInstallLanguageFragment)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<alpha
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:fromAlpha="0"
|
||||
android:toAlpha="1" />
|
||||
|
||||
<scale
|
||||
android:fromXScale="0.7"
|
||||
android:toXScale="1"
|
||||
android:fromYScale="0.7"
|
||||
android:toYScale="1"
|
||||
android:pivotX="50%p"
|
||||
android:pivotY="50%p" />
|
||||
|
||||
</set>
|
|
@ -1,17 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<alpha
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:fromAlpha="1"
|
||||
android:toAlpha="0" />
|
||||
|
||||
<scale
|
||||
android:fromXScale="1.2"
|
||||
android:toXScale="1"
|
||||
android:fromYScale="1.2"
|
||||
android:toYScale="1"
|
||||
android:pivotX="50%p"
|
||||
android:pivotY="50%p" />
|
||||
|
||||
</set>
|
9
app/src/main/res/anim/navbar_enter.xml
Normal file
9
app/src/main/res/anim/navbar_enter.xml
Normal file
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<translate
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:fromYDelta="50%p"
|
||||
android:toYDelta="0" />
|
||||
|
||||
</set>
|
9
app/src/main/res/anim/navbar_exit.xml
Normal file
9
app/src/main/res/anim/navbar_exit.xml
Normal file
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<translate
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:fromYDelta="0"
|
||||
android:toYDelta="100%p" />
|
||||
|
||||
</set>
|
9
app/src/main/res/anim/view_enter.xml
Normal file
9
app/src/main/res/anim/view_enter.xml
Normal file
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<translate
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:fromYDelta="-100%p"
|
||||
android:toYDelta="0" />
|
||||
|
||||
</set>
|
9
app/src/main/res/anim/view_exit.xml
Normal file
9
app/src/main/res/anim/view_exit.xml
Normal file
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<translate
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:fromYDelta="0"
|
||||
android:toYDelta="-100%p" />
|
||||
|
||||
</set>
|
26
app/src/main/res/animator/fragment_enter.xml
Normal file
26
app/src/main/res/animator/fragment_enter.xml
Normal file
|
@ -0,0 +1,26 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:ordering="together">
|
||||
|
||||
<objectAnimator
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:propertyName="scaleX"
|
||||
android:valueFrom="0.8"
|
||||
android:valueTo="1"
|
||||
android:valueType="floatType"/>
|
||||
|
||||
<objectAnimator
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:propertyName="scaleY"
|
||||
android:valueFrom="0.8"
|
||||
android:valueTo="1"
|
||||
android:valueType="floatType"/>
|
||||
|
||||
<objectAnimator
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:propertyName="alpha"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="1"
|
||||
android:valueType="floatType" />
|
||||
|
||||
</set>
|
|
@ -2,10 +2,10 @@
|
|||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<objectAnimator
|
||||
android:duration="500"
|
||||
android:propertyName="x"
|
||||
android:valueFrom="-1000"
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:valueType="floatType"
|
||||
android:valueFrom="-1.0"
|
||||
android:valueTo="0"
|
||||
android:valueType="floatType" />
|
||||
android:propertyName="xFraction" />
|
||||
|
||||
</set>
|
26
app/src/main/res/animator/fragment_enter_pop.xml
Normal file
26
app/src/main/res/animator/fragment_enter_pop.xml
Normal file
|
@ -0,0 +1,26 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:ordering="together">
|
||||
|
||||
<objectAnimator
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:propertyName="scaleX"
|
||||
android:valueFrom="1.1"
|
||||
android:valueTo="1"
|
||||
android:valueType="floatType"/>
|
||||
|
||||
<objectAnimator
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:propertyName="scaleY"
|
||||
android:valueFrom="1.1"
|
||||
android:valueTo="1"
|
||||
android:valueType="floatType"/>
|
||||
|
||||
<objectAnimator
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:propertyName="alpha"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="1"
|
||||
android:valueType="floatType" />
|
||||
|
||||
</set>
|
|
@ -2,10 +2,10 @@
|
|||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<objectAnimator
|
||||
android:duration="500"
|
||||
android:propertyName="x"
|
||||
android:valueFrom="1000"
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:valueType="floatType"
|
||||
android:valueFrom="1.0"
|
||||
android:valueTo="0"
|
||||
android:valueType="floatType" />
|
||||
android:propertyName="xFraction" />
|
||||
|
||||
</set>
|
26
app/src/main/res/animator/fragment_exit.xml
Normal file
26
app/src/main/res/animator/fragment_exit.xml
Normal file
|
@ -0,0 +1,26 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:ordering="together">
|
||||
|
||||
<objectAnimator
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:propertyName="scaleX"
|
||||
android:valueFrom="1"
|
||||
android:valueTo="0.8"
|
||||
android:valueType="floatType"/>
|
||||
|
||||
<objectAnimator
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:propertyName="scaleY"
|
||||
android:valueFrom="1"
|
||||
android:valueTo="0.8"
|
||||
android:valueType="floatType"/>
|
||||
|
||||
<objectAnimator
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:propertyName="alpha"
|
||||
android:valueFrom="1"
|
||||
android:valueTo="0"
|
||||
android:valueType="floatType" />
|
||||
|
||||
</set>
|
|
@ -2,10 +2,10 @@
|
|||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<objectAnimator
|
||||
android:duration="500"
|
||||
android:propertyName="x"
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:valueType="floatType"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="-1000"
|
||||
android:valueType="floatType" />
|
||||
android:valueTo="-1.0"
|
||||
android:propertyName="xFraction" />
|
||||
|
||||
</set>
|
26
app/src/main/res/animator/fragment_exit_pop.xml
Normal file
26
app/src/main/res/animator/fragment_exit_pop.xml
Normal file
|
@ -0,0 +1,26 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<set xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:ordering="together">
|
||||
|
||||
<objectAnimator
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:propertyName="scaleX"
|
||||
android:valueFrom="1"
|
||||
android:valueTo="1.1"
|
||||
android:valueType="floatType"/>
|
||||
|
||||
<objectAnimator
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:propertyName="scaleX"
|
||||
android:valueFrom="1"
|
||||
android:valueTo="1.1"
|
||||
android:valueType="floatType"/>
|
||||
|
||||
<objectAnimator
|
||||
android:duration="@android:integer/config_shortAnimTime"
|
||||
android:propertyName="alpha"
|
||||
android:valueFrom="1"
|
||||
android:valueTo="0"
|
||||
android:valueType="floatType" />
|
||||
|
||||
</set>
|
|
@ -2,10 +2,10 @@
|
|||
<set xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<objectAnimator
|
||||
android:duration="500"
|
||||
android:propertyName="x"
|
||||
android:duration="@android:integer/config_mediumAnimTime"
|
||||
android:valueType="floatType"
|
||||
android:valueFrom="0"
|
||||
android:valueTo="1000"
|
||||
android:valueType="floatType" />
|
||||
android:valueTo="1.0"
|
||||
android:propertyName="xFraction" />
|
||||
|
||||
</set>
|
|
@ -1,9 +1,10 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="34dp"
|
||||
android:height="34dp"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24.0"
|
||||
android:viewportHeight="24.0">
|
||||
<path
|
||||
android:fillColor="?attr/toolbarIconColor"
|
||||
android:pathData="M12,2C6.48,2 2,6.48 2,12s4.48,10 10,10 10,-4.48 10,-10S17.52,2 12,2zM13,17h-2v-6h2v6zM13,9h-2L11,7h2v2z"/>
|
||||
|
||||
</vector>
|
||||
|
|
|
@ -5,6 +5,6 @@
|
|||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#FF000000"
|
||||
android:fillColor="?attr/toolbarIconColor"
|
||||
android:pathData="M19.1,12.9a2.8,2.8 0,0 0,0.1 -0.9,2.8 2.8,0 0,0 -0.1,-0.9l2.1,-1.6a0.7,0.7 0,0 0,0.1 -0.6L19.4,5.5a0.7,0.7 0,0 0,-0.6 -0.2l-2.4,1a6.5,6.5 0,0 0,-1.6 -0.9l-0.4,-2.6a0.5,0.5 0,0 0,-0.5 -0.4H10.1a0.5,0.5 0,0 0,-0.5 0.4L9.3,5.4a5.6,5.6 0,0 0,-1.7 0.9l-2.4,-1a0.4,0.4 0,0 0,-0.5 0.2l-2,3.4c-0.1,0.2 0,0.4 0.2,0.6l2,1.6a2.8,2.8 0,0 0,-0.1 0.9,2.8 2.8,0 0,0 0.1,0.9L2.8,14.5a0.7,0.7 0,0 0,-0.1 0.6l1.9,3.4a0.7,0.7 0,0 0,0.6 0.2l2.4,-1a6.5,6.5 0,0 0,1.6 0.9l0.4,2.6a0.5,0.5 0,0 0,0.5 0.4h3.8a0.5,0.5 0,0 0,0.5 -0.4l0.3,-2.6a5.6,5.6 0,0 0,1.7 -0.9l2.4,1a0.4,0.4 0,0 0,0.5 -0.2l2,-3.4c0.1,-0.2 0,-0.4 -0.2,-0.6ZM12,15.6A3.6,3.6 0,1 1,15.6 12,3.6 3.6,0 0,1 12,15.6Z"/>
|
||||
</vector>
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
<vector
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#1490D7"
|
||||
android:pathData="M19.1,12.9a2.8,2.8 0,0 0,0.1 -0.9,2.8 2.8,0 0,0 -0.1,-0.9l2.1,-1.6a0.7,0.7 0,0 0,0.1 -0.6L19.4,5.5a0.7,0.7 0,0 0,-0.6 -0.2l-2.4,1a6.5,6.5 0,0 0,-1.6 -0.9l-0.4,-2.6a0.5,0.5 0,0 0,-0.5 -0.4H10.1a0.5,0.5 0,0 0,-0.5 0.4L9.3,5.4a5.6,5.6 0,0 0,-1.7 0.9l-2.4,-1a0.4,0.4 0,0 0,-0.5 0.2l-2,3.4c-0.1,0.2 0,0.4 0.2,0.6l2,1.6a2.8,2.8 0,0 0,-0.1 0.9,2.8 2.8,0 0,0 0.1,0.9L2.8,14.5a0.7,0.7 0,0 0,-0.1 0.6l1.9,3.4a0.7,0.7 0,0 0,0.6 0.2l2.4,-1a6.5,6.5 0,0 0,1.6 0.9l0.4,2.6a0.5,0.5 0,0 0,0.5 0.4h3.8a0.5,0.5 0,0 0,0.5 -0.4l0.3,-2.6a5.6,5.6 0,0 0,1.7 -0.9l2.4,1a0.4,0.4 0,0 0,0.5 -0.2l2,-3.4c0.1,-0.2 0,-0.4 -0.2,-0.6ZM12,15.6A3.6,3.6 0,1 1,15.6 12,3.6 3.6,0 0,1 12,15.6Z"/>
|
||||
</vector>
|
9
app/src/main/res/drawable/shortcut_cloud_download_24.xml
Executable file
9
app/src/main/res/drawable/shortcut_cloud_download_24.xml
Executable file
|
@ -0,0 +1,9 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#1490D7"
|
||||
android:pathData="M19.35,10.04C18.67,6.59 15.64,4 12,4 9.11,4 6.6,5.64 5.35,8.04 2.34,8.36 0,10.91 0,14c0,3.31 2.69,6 6,6h13c2.76,0 5,-2.24 5,-5 0,-2.64 -2.05,-4.78 -4.65,-4.96zM19,18L6,18c-2.21,0 -4,-1.79 -4,-4 0,-2.05 1.53,-3.76 3.56,-3.97l1.07,-0.11 0.5,-0.95C8.08,7.14 9.94,6 12,6c2.62,0 4.88,1.86 5.39,4.43l0.3,1.5 1.53,0.11c1.56,0.1 2.78,1.41 2.78,2.96 0,1.65 -1.35,3 -3,3zM13.45,10h-2.9v3L8,13l4,4 4,-4h-2.55z"/>
|
||||
</vector>
|
|
@ -1,36 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
tools:context=".ui.AboutActivity"
|
||||
android:background="?colorSurface">
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:id="@+id/about_appbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:elevation="1dp"
|
||||
android:background="?colorSurface"
|
||||
android:layout_alignParentTop="true">
|
||||
|
||||
<com.google.android.material.appbar.MaterialToolbar
|
||||
android:id="@+id/about_toolbar"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="?attr/actionBarSize"
|
||||
app:titleTextColor="?attr/toolbarIconColor"
|
||||
android:background="@android:color/transparent"/>
|
||||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<FrameLayout
|
||||
android:id="@+id/frame_layout_about"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_below="@id/about_appbar"
|
||||
android:layout_alignParentBottom="true">
|
||||
</FrameLayout>
|
||||
|
||||
</RelativeLayout>
|
|
@ -13,9 +13,9 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_below="@id/home_appbar"
|
||||
android:layout_above="@id/bottom_nav"
|
||||
app:defaultNavHost="true"
|
||||
app:navGraph="@navigation/mobile_navigation"/>
|
||||
<!--android:layout_above="@id/bottom_nav"-->
|
||||
|
||||
<com.google.android.material.appbar.AppBarLayout
|
||||
android:id="@+id/home_appbar"
|
||||
|
@ -37,6 +37,7 @@
|
|||
|
||||
</com.google.android.material.appbar.AppBarLayout>
|
||||
|
||||
<!--
|
||||
<com.google.android.material.bottomnavigation.BottomNavigationView
|
||||
android:id="@+id/bottom_nav"
|
||||
android:layout_width="match_parent"
|
||||
|
@ -45,5 +46,6 @@
|
|||
android:layout_alignParentBottom="true"
|
||||
app:labelVisibilityMode="unlabeled"
|
||||
app:menu="@menu/bottom_nav_menu" />
|
||||
-->
|
||||
|
||||
</RelativeLayout>
|
|
@ -1,16 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<FrameLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="?colorSurface"
|
||||
tools:context=".ui.core.SplashScreenActivity">
|
||||
|
||||
<ImageView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="400dp"
|
||||
android:src="@drawable/ic_launcher_foreground"
|
||||
android:layout_gravity="center"/>
|
||||
|
||||
</FrameLayout>
|
|
@ -1,6 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.core.widget.NestedScrollView
|
||||
<com.vanced.manager.ui.core.SlidingNestedScrollView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:fillViewport="true"
|
||||
|
@ -9,16 +10,28 @@
|
|||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_marginTop="@dimen/twelvedp"
|
||||
android:layout_marginTop="4dp"
|
||||
android:background="?colorSurface"
|
||||
android:clipToPadding="false"
|
||||
android:orientation="vertical">
|
||||
|
||||
<include
|
||||
android:id="@+id/home_network_wrapper"
|
||||
layout="@layout/include_network_error"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginStart="@dimen/stdp"
|
||||
android:layout_marginEnd="@dimen/stdp"
|
||||
android:visibility="gone"
|
||||
tools:visibility="visible"/>
|
||||
|
||||
<include
|
||||
android:id="@+id/home_vanced_wrapper"
|
||||
layout="@layout/include_vanced"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginStart="@dimen/stdp"
|
||||
android:layout_marginEnd="@dimen/stdp" />
|
||||
|
||||
|
@ -52,4 +65,4 @@
|
|||
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
</com.vanced.manager.ui.core.SlidingNestedScrollView>
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Layout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_height="match_parent"
|
||||
android:layout_width="match_parent">
|
||||
|
||||
|
||||
|
||||
</Layout>
|
|
@ -2,12 +2,14 @@
|
|||
<com.google.android.material.card.MaterialCardView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
app:cardCornerRadius="8dp"
|
||||
app:contentPadding="6dp"
|
||||
app:contentPaddingRight="6dp"
|
||||
app:contentPaddingLeft="6dp"
|
||||
app:cardElevation="0dp"
|
||||
tools:context=".ui.fragments.UpdateCheckFragment">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
|
@ -18,41 +20,53 @@
|
|||
android:id="@+id/update_center_text"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Update Center"
|
||||
android:text="@string/update_center"
|
||||
android:textAlignment="center"
|
||||
android:textSize="18sp"
|
||||
android:fontFamily="@font/exo_semibold"
|
||||
android:textColor="?attr/colorOnSurfaceVariant"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"/>
|
||||
|
||||
<androidx.core.widget.ContentLoadingProgressBar
|
||||
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
|
||||
<ProgressBar
|
||||
android:id="@+id/update_center_progressbar"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toBottomOf="@id/update_center_text"
|
||||
android:progress="10"/>
|
||||
app:layout_constraintBottom_toTopOf="@id/update_button_container"/>
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/update_button_container"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toBottomOf="@id/update_center_progressbar"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent">
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/update_center_dismiss"
|
||||
style="@style/Widget.MaterialComponents.Button.OutlinedButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toBottomOf="@id/update_center_progressbar"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
android:text="Close"
|
||||
android:layout_marginEnd="4dp"
|
||||
android:text="@string/close"
|
||||
android:textAllCaps="false"/>
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
style="@style/Widget.MaterialComponents.Button"
|
||||
android:id="@+id/update_center_recheck"
|
||||
style="@style/Widget.MaterialComponents.Button.UnelevatedButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toBottomOf="@id/update_center_progressbar"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
android:text="Re-check"
|
||||
android:layout_marginStart="4dp"
|
||||
android:text="@string/re_check"
|
||||
android:textAllCaps="false"/>
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</com.google.android.material.card.MaterialCardView>
|
|
@ -1,16 +1,22 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
<com.vanced.manager.ui.core.SlidingConstraintLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_gravity="center_horizontal"
|
||||
app:cardCornerRadius="@dimen/eightdp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginTop="12dp"
|
||||
app:cardBackgroundColor="?colorSurfaceVariant"
|
||||
app:cardElevation="0dp"
|
||||
app:cardPreventCornerOverlap="true">
|
||||
app:cardPreventCornerOverlap="true"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
|
@ -44,12 +50,20 @@
|
|||
android:id="@+id/language_choose_frame"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="360dp"
|
||||
android:layout_marginTop="4dp"
|
||||
android:layout_marginEnd="2dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/install_language_note"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
app:layout_constraintEnd_toEndOf="parent" >
|
||||
|
||||
<include
|
||||
layout="@layout/include_language_scrollview"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
</FrameLayout>
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
style="@style/Widget.AppCompat.Button.Borderless"
|
||||
android:id="@+id/vanced_install_finish"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -63,4 +77,6 @@
|
|||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
|
||||
</com.vanced.manager.ui.core.SlidingConstraintLayout>
|
|
@ -1,16 +1,22 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
<com.vanced.manager.ui.core.SlidingConstraintLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:cardCornerRadius="@dimen/eightdp"
|
||||
app:cardBackgroundColor="?colorSurfaceVariant"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginTop="12dp"
|
||||
app:cardElevation="0dp"
|
||||
app:cardPreventCornerOverlap="true">
|
||||
app:cardCornerRadius="@dimen/eightdp"
|
||||
app:cardBackgroundColor="?colorSurfaceVariant"
|
||||
app:cardPreventCornerOverlap="true"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
|
@ -40,7 +46,7 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="18sp"
|
||||
android:text="Light + Dark"
|
||||
android:text="@string/install_light_dark"
|
||||
android:fontFamily="@font/exo_semibold"/>
|
||||
|
||||
<com.google.android.material.radiobutton.MaterialRadioButton
|
||||
|
@ -49,11 +55,12 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:textSize="18sp"
|
||||
android:fontFamily="@font/exo_semibold"
|
||||
android:text="Light + Black"/>
|
||||
android:text="@string/install_light_black"/>
|
||||
|
||||
</RadioGroup>
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
style="@style/Widget.AppCompat.Button.Borderless"
|
||||
android:id="@+id/vanced_next_to_variant"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -67,5 +74,6 @@
|
|||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
|
||||
</com.vanced.manager.ui.core.SlidingConstraintLayout>
|
|
@ -1,16 +1,22 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
<com.vanced.manager.ui.core.SlidingConstraintLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:layout_marginTop="12dp"
|
||||
android:layout_gravity="center_horizontal"
|
||||
app:cardCornerRadius="@dimen/eightdp"
|
||||
app:cardBackgroundColor="?colorSurfaceVariant"
|
||||
app:cardElevation="0dp"
|
||||
app:cardPreventCornerOverlap="true">
|
||||
app:cardPreventCornerOverlap="true"
|
||||
app:layout_constraintTop_toTopOf="parent">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
|
@ -40,7 +46,7 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="@font/exo_semibold"
|
||||
android:text="non-root"
|
||||
android:text="@string/install_nonroot"
|
||||
android:textSize="18sp" />
|
||||
|
||||
<com.google.android.material.radiobutton.MaterialRadioButton
|
||||
|
@ -49,11 +55,12 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:fontFamily="@font/exo_semibold"
|
||||
android:textSize="18sp"
|
||||
android:text="root"/>
|
||||
android:text="@string/install_root"/>
|
||||
|
||||
</RadioGroup>
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
style="@style/Widget.AppCompat.Button.Borderless"
|
||||
android:id="@+id/vanced_next_to_language"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
|
@ -68,5 +75,7 @@
|
|||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
</com.google.android.material.card.MaterialCardView>
|
||||
|
||||
</com.vanced.manager.ui.core.SlidingConstraintLayout>
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
<com.google.android.material.card.MaterialCardView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:cardCornerRadius="8dp"
|
||||
|
@ -10,7 +11,8 @@
|
|||
app:cardElevation="0dp"
|
||||
app:contentPaddingRight="8dp"
|
||||
app:contentPaddingLeft="8dp"
|
||||
app:contentPaddingBottom="8dp">
|
||||
app:contentPaddingBottom="8dp"
|
||||
tools:ignore="HardcodedText">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
|
@ -20,8 +22,9 @@
|
|||
android:id="@+id/about_card_vancedTeam"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Manager Devs"
|
||||
android:text="@string/manager_devs"
|
||||
android:textSize="24sp"
|
||||
android:textColor="?attr/colorOnSurfaceVariant"
|
||||
android:fontFamily="@font/exo_semibold"
|
||||
android:layout_marginTop="4dp"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="v0.3.2 alpha"
|
||||
android:text="v1.0.0 beta"
|
||||
android:textColor="#fff"
|
||||
android:textAlignment="center"
|
||||
android:textSize="18sp"
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
<com.google.android.material.card.MaterialCardView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
app:cardBackgroundColor="?colorSurfaceVariant"
|
||||
|
@ -19,7 +20,8 @@
|
|||
android:id="@+id/about_card_vancedTeam"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Sources"
|
||||
android:text="@string/sources"
|
||||
android:textColor="?attr/colorOnSurfaceVariant"
|
||||
android:textSize="24sp"
|
||||
android:fontFamily="@font/exo_semibold"
|
||||
android:layout_marginTop="2dp"
|
||||
|
@ -59,24 +61,27 @@
|
|||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@id/about_license_button"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:icon="@drawable/github"
|
||||
app:iconGravity="textStart"
|
||||
app:iconPadding="0dp"/>
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
tools:ignore="HardcodedText"
|
||||
android:id="@+id/about_license_button"
|
||||
style="@style/Widget.AppCompat.Button.Borderless"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="GPL"
|
||||
android:textSize="21sp"
|
||||
android:fontFamily="@font/exo_semibold"
|
||||
android:background="@android:color/transparent"
|
||||
android:backgroundTint="@android:color/transparent"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@id/about_github_button"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:icon="@drawable/ic_assignment_black_24dp"
|
||||
app:iconGravity="textStart"
|
||||
app:iconPadding="0dp"/>
|
||||
app:layout_constraintBottom_toBottomOf="parent"/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
<com.google.android.material.card.MaterialCardView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:cardCornerRadius="8dp"
|
||||
|
@ -10,7 +11,8 @@
|
|||
app:cardElevation="0dp"
|
||||
app:contentPaddingRight="8dp"
|
||||
app:contentPaddingLeft="8dp"
|
||||
app:contentPaddingBottom="8dp">
|
||||
app:contentPaddingBottom="8dp"
|
||||
tools:ignore="HardcodedText">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
|
@ -20,8 +22,9 @@
|
|||
android:id="@+id/about_card_vancedTeam"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Vanced Team"
|
||||
android:text="@string/vanced_team"
|
||||
android:textSize="24sp"
|
||||
android:textColor="?attr/colorOnSurfaceVariant"
|
||||
android:fontFamily="@font/exo_semibold"
|
||||
android:layout_marginTop="4dp"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
|
@ -56,7 +59,7 @@
|
|||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="- Laura Almeida (waman)"
|
||||
android:text="- Laura Almeida"
|
||||
android:textSize="18sp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
|
|
@ -89,7 +89,7 @@
|
|||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/microg_installbtn"
|
||||
style="@style/Widget.AppCompat.Button.Borderless.Colored"
|
||||
android:layout_width="117dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="40dp"
|
||||
android:fontFamily="@font/exo_semibold"
|
||||
android:text="@string/install"
|
||||
|
@ -98,9 +98,9 @@
|
|||
app:icon="@drawable/outline_cloud_download_24"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="1.0"
|
||||
app:layout_constraintStart_toEndOf="@+id/microg_title"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintBottom_toTopOf="@id/microg_uninstallbtn"/>
|
||||
app:layout_constraintBottom_toTopOf="@id/microg_uninstallbtn"
|
||||
android:scrollbars="none"/>
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/microg_settingsbtn"
|
||||
|
@ -108,29 +108,30 @@
|
|||
android:layout_width="30dp"
|
||||
android:layout_height="40dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginBottom="8dp"
|
||||
android:fontFamily="@font/exo_semibold"
|
||||
app:backgroundTint="?colorPrimary"
|
||||
app:icon="@drawable/ic_settings_black_24dp"
|
||||
app:iconGravity="textStart"
|
||||
app:iconPadding="0dp"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@id/microg_installbtn"/>
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@id/microg_uninstallbtn"
|
||||
android:scrollbars="none"/>
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/microg_uninstallbtn"
|
||||
style="@style/Widget.AppCompat.Button.Borderless.Colored"
|
||||
android:layout_width="117dp"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="40dp"
|
||||
android:fontFamily="@font/exo_semibold"
|
||||
android:text="@string/uninstall"
|
||||
app:iconPadding="0dp"
|
||||
android:textAllCaps="false"
|
||||
app:backgroundTint="?attr/colorError"
|
||||
app:icon="@drawable/ic_delete_black_24dp"
|
||||
app:iconGravity="textStart"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/microg_installbtn"/>
|
||||
app:layout_constraintTop_toBottomOf="@id/microg_installbtn"
|
||||
android:scrollbars="none"/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
|
|
34
app/src/main/res/layout/include_network_error.xml
Normal file
34
app/src/main/res/layout/include_network_error.xml
Normal file
|
@ -0,0 +1,34 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<com.google.android.material.card.MaterialCardView
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:cardCornerRadius="@dimen/eightdp"
|
||||
app:cardBackgroundColor="?colorSurfaceVariant"
|
||||
app:cardElevation="0dp"
|
||||
app:cardPreventCornerOverlap="true"
|
||||
app:contentPaddingRight="8dp"
|
||||
app:contentPaddingLeft="8dp">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/network_errortxt"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
android:text="@string/network_error"
|
||||
android:fontFamily="@font/exo_semibold"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
android:textColor="?attr/colorError"
|
||||
android:textSize="18sp"
|
||||
android:gravity="center" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</com.google.android.material.card.MaterialCardView>
|
|
@ -90,7 +90,7 @@
|
|||
android:id="@+id/vanced_installbtn"
|
||||
style="@style/Widget.AppCompat.Button.Borderless.Colored"
|
||||
app:backgroundTint="?colorPrimary"
|
||||
android:layout_width="117dp"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="40dp"
|
||||
android:text="@string/install"
|
||||
android:textAllCaps="false"
|
||||
|
@ -99,22 +99,24 @@
|
|||
app:layout_constraintBottom_toTopOf="@id/vanced_uninstallbtn"
|
||||
app:layout_constraintHorizontal_bias="1.0"
|
||||
android:fontFamily="@font/exo_semibold"
|
||||
app:icon="@drawable/outline_cloud_download_24"/>
|
||||
app:icon="@drawable/outline_cloud_download_24"
|
||||
android:scrollbars="none"/>
|
||||
|
||||
<com.google.android.material.button.MaterialButton
|
||||
android:id="@+id/vanced_uninstallbtn"
|
||||
style="@style/Widget.AppCompat.Button.Borderless.Colored"
|
||||
android:layout_width="117dp"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="40dp"
|
||||
android:fontFamily="@font/exo_semibold"
|
||||
android:text="@string/uninstall"
|
||||
app:iconPadding="0dp"
|
||||
android:textAllCaps="false"
|
||||
app:backgroundTint="?attr/colorError"
|
||||
app:icon="@drawable/ic_delete_black_24dp"
|
||||
app:iconGravity="textStart"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/vanced_installbtn"/>
|
||||
app:layout_constraintTop_toBottomOf="@id/vanced_installbtn"
|
||||
android:scrollbars="none"/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
|
|
|
@ -7,9 +7,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/eightdp"
|
||||
android:layout_marginEnd="@dimen/eightdp"
|
||||
android:paddingTop="@dimen/eightdp"
|
||||
app:cardBackgroundColor="#6958D0"
|
||||
android:paddingBottom="2dp"
|
||||
app:cardCornerRadius="@dimen/eightdp"
|
||||
app:cardElevation="0dp">
|
||||
|
||||
|
|
|
@ -3,9 +3,15 @@
|
|||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<item
|
||||
android:id="@+id/about"
|
||||
android:id="@+id/toolbar_settings"
|
||||
android:title="@string/title_about"
|
||||
android:icon="@drawable/ic_settings_black_24dp"
|
||||
app:showAsAction="ifRoom" />
|
||||
|
||||
<item
|
||||
android:id="@+id/toolbar_about"
|
||||
android:title="@string/title_about"
|
||||
android:icon="@drawable/ic_info_black_24dp"
|
||||
app:showAsAction="always" />
|
||||
app:showAsAction="ifRoom" />
|
||||
|
||||
</menu>
|
|
@ -12,13 +12,21 @@
|
|||
android:label="@string/title_home"
|
||||
tools:layout="@layout/fragment_home">
|
||||
|
||||
<action
|
||||
android:id="@+id/action_settingsFragment"
|
||||
app:destination="@id/settings_fragment"
|
||||
app:enterAnim="@animator/fragment_enter"
|
||||
app:exitAnim="@animator/fragment_exit"
|
||||
app:popEnterAnim="@animator/fragment_enter_pop"
|
||||
app:popExitAnim="@animator/fragment_exit_pop" />
|
||||
|
||||
<action
|
||||
android:id="@+id/toAboutFragment"
|
||||
app:destination="@id/about_fragment"
|
||||
app:enterAnim="@anim/nav_default_enter_anim"
|
||||
app:exitAnim="@anim/nav_default_exit_anim"
|
||||
app:popEnterAnim="@anim/nav_default_pop_enter_anim"
|
||||
app:popExitAnim="@anim/nav_default_pop_exit_anim" />
|
||||
app:enterAnim="@animator/fragment_enter"
|
||||
app:exitAnim="@animator/fragment_exit"
|
||||
app:popEnterAnim="@animator/fragment_enter_pop"
|
||||
app:popExitAnim="@animator/fragment_exit_pop" />
|
||||
|
||||
<action
|
||||
android:id="@+id/toInstallThemeFragment"
|
||||
|
@ -38,10 +46,12 @@
|
|||
<action
|
||||
android:id="@+id/toSecretSettingsFragment"
|
||||
app:destination="@id/secret_settings_fragment"
|
||||
app:enterAnim="@anim/fragment_fade_enter"
|
||||
app:exitAnim="@anim/fragment_fade_exit"
|
||||
app:popEnterAnim="@anim/nav_default_pop_enter_anim"
|
||||
app:popExitAnim="@anim/nav_default_pop_exit_anim" />
|
||||
app:enterAnim="@animator/fragment_enter"
|
||||
app:exitAnim="@animator/fragment_exit"
|
||||
app:popEnterAnim="@animator/fragment_enter_pop"
|
||||
app:popExitAnim="@animator/fragment_exit_pop" />
|
||||
|
||||
<deepLink app:uri="vncdmngr://open_settings_fragment" />
|
||||
|
||||
</fragment>
|
||||
|
||||
|
@ -65,6 +75,8 @@
|
|||
app:popEnterAnim="@animator/fragment_enter_left"
|
||||
app:popExitAnim="@animator/fragment_exit_right" />
|
||||
|
||||
<deepLink app:uri="vncdmngr://open_install_fragment" />
|
||||
|
||||
</fragment>
|
||||
|
||||
<fragment
|
||||
|
@ -104,27 +116,16 @@
|
|||
<fragment
|
||||
android:id="@+id/secret_settings_fragment"
|
||||
android:name="com.vanced.manager.ui.fragments.SecretSettingsFragment"
|
||||
android:label="@string/title_install" />
|
||||
|
||||
<action
|
||||
android:id="@+id/action_settingsFragment"
|
||||
app:destination="@id/settings_fragment"
|
||||
app:enterAnim="@anim/nav_default_enter_anim"
|
||||
app:exitAnim="@anim/nav_default_exit_anim"
|
||||
app:popEnterAnim="@anim/nav_default_pop_enter_anim"
|
||||
app:popExitAnim="@anim/nav_default_pop_exit_anim"
|
||||
app:popUpTo="@id/settings_fragment"
|
||||
app:popUpToInclusive="true"/>
|
||||
android:label="Secret Settings" />
|
||||
|
||||
<action
|
||||
android:id="@+id/action_homeFragment"
|
||||
app:destination="@id/home_fragment"
|
||||
app:enterAnim="@anim/nav_default_enter_anim"
|
||||
app:exitAnim="@anim/nav_default_exit_anim"
|
||||
app:popEnterAnim="@anim/nav_default_pop_enter_anim"
|
||||
app:popExitAnim="@anim/nav_default_pop_exit_anim"
|
||||
app:enterAnim="@animator/fragment_enter"
|
||||
app:exitAnim="@animator/fragment_exit"
|
||||
app:popEnterAnim="@animator/fragment_enter_pop"
|
||||
app:popExitAnim="@animator/fragment_exit_pop"
|
||||
app:popUpTo="@id/home_fragment"
|
||||
app:popUpToInclusive="true"/>
|
||||
|
||||
app:popUpToInclusive="true" />
|
||||
|
||||
</navigation>
|
61
app/src/main/res/values-ka/strings.xml
Normal file
61
app/src/main/res/values-ka/strings.xml
Normal file
|
@ -0,0 +1,61 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<resources>
|
||||
|
||||
<!-- Global Strings -->
|
||||
<string name="close">დახურვა</string>
|
||||
<string name="security_context">გთხოვთ დარწმუნდით რომ აპი გადმოწერეთ vanced.app-იდან, Vanced Discord სერვერიდან ან GitHub-იდან</string>
|
||||
<string name="unsupported_version_context">არ ვიცი როგორ მაგრამ თქვენ როგორღაც დააყენეთ Vanced Manager-ი ძველ Android-ის ვერსიაზე. აპი დაიხურება</string>
|
||||
<string name="welcome">მოგესალმებით</string>
|
||||
<string name="whoops">უფს!</string>
|
||||
|
||||
<!-- Main Activity -->
|
||||
<string name="title_about">შესახებ</string>
|
||||
<string name="title_home">საწყისი</string>
|
||||
<string name="title_install">ინსტალაცია</string>
|
||||
<string name="title_settings">პარამეტრები</string>
|
||||
|
||||
<!-- Home Page -->
|
||||
<string name="brave_browser">Brave Browser</string>
|
||||
<string name="changelogs">ცვლილებები</string>
|
||||
<string name="install">ინსტალაცია</string>
|
||||
<string name="installed">დაინსტალირებული:</string>
|
||||
<string name="latest">უახლესი:</string>
|
||||
<string name="n_a">N/A</string>
|
||||
<string name="network_error">კავშირი არ არის</string>
|
||||
<string name="reddit">Reddit</string>
|
||||
<string name="update">განახლება</string>
|
||||
<string name="useful_links">საჭირო ლინკები</string>
|
||||
<string name="vanced_medias">Vanced სოციალურ ქსელებზე</string>
|
||||
<string name="website">Website</string>
|
||||
<string name="website_text">Vanced-ის ოფიციალური ვებსაიტი</string>
|
||||
<string name="support_us">დაგვიჭირეთ მხარი Brave-ის გადმოწერით</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<string name="check_updates">განახლებების შემოწმება</string>
|
||||
<string name="category_interface">ინტერფეისი</string>
|
||||
<string name="category_manager">მენეჯერი</string>
|
||||
<string name="theme">თემა</string>
|
||||
<string name="theme_summary">აირჩიეთ სასურველი თემა</string>
|
||||
<string name="push_notifications">შეტყობინებები</string>
|
||||
<string name="push_notifications_summary">მიიღეთ შეტყობინება როდესაც განახლება გამოვა</string>
|
||||
<string name="re_check">გადამოწმება</string>
|
||||
<string name="update_center">განახლების ცენტრი</string>
|
||||
|
||||
<!-- Install Page -->
|
||||
<string name="choose_preferred_language">აირჩიეთ სასურველი ენა Vanced-ისთვის</string>
|
||||
<string name="choose_preferred_language_note">შენიშვნა: თუ თქვენ აირჩევთ სხვა ენას გარდა ინგლისურისა, ინგლისური მაინც იქნება დაყენებული როგორც დამატებითი ენა</string>
|
||||
<string name="choose_preferred_theme">აირჩიეთ სასურველი თემა Vanced-ისთვის</string>
|
||||
<string name="choose_preferred_variant">აირჩიეთ სასურველი ვარიანტი Vanced-სთვის</string>
|
||||
<string name="finish">დასრულება</string>
|
||||
<string name="install_light_black">ღია + შავი</string>
|
||||
<string name="install_light_dark">ღია + მუქი</string>
|
||||
<string name="install_nonroot">Non-root</string>
|
||||
<string name="install_root">Root</string>
|
||||
<string name="next">შემდეგი</string>
|
||||
|
||||
<!-- About Page -->
|
||||
<string name="manager_devs">Manager-ის დეველოპერები</string>
|
||||
<string name="sources">წყაროები</string>
|
||||
<string name="vanced_team">Vanced-ის გუნდი</string>
|
||||
|
||||
</resources>
|
|
@ -22,6 +22,7 @@
|
|||
<item name="colorDisabledVariant">#66808080</item>
|
||||
<item name="iconColor">?colorPrimaryVariant</item>
|
||||
<item name="toolbarIconColor">?colorOnPrimary</item>
|
||||
<item name="DialogBG">#111111</item>
|
||||
|
||||
</style>
|
||||
|
||||
|
|
|
@ -14,15 +14,27 @@
|
|||
</string-array>
|
||||
|
||||
<string-array name="languages">
|
||||
<item>Coming soon(tm)</item>
|
||||
<item>English</item>
|
||||
<item>ქართული</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="languages_value">
|
||||
<item>0</item>
|
||||
<item>en</item>
|
||||
<item>ka</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="accent_color">
|
||||
<item>NaN</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="syke">
|
||||
<item>SYKE</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="yomama">
|
||||
<item>Yo</item>
|
||||
<item>mama</item>
|
||||
<item>fat</item>
|
||||
</string-array>
|
||||
|
||||
</resources>
|
|
@ -9,5 +9,6 @@
|
|||
<attr name="colorSurfaceSurfaceVariant" format="color" />
|
||||
<attr name="iconColor" format="reference|color" />
|
||||
<attr name="toolbarIconColor" format="reference|color"/>
|
||||
<attr name="DialogBG" format="reference|color" />
|
||||
|
||||
</resources>
|
|
@ -11,5 +11,6 @@
|
|||
<color name="GitHub">#17191A</color>
|
||||
|
||||
<color name="Black">#000000</color>
|
||||
<color name="White">#ffffff</color>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -7,5 +7,7 @@
|
|||
<string name="twitter" translatable="false">Twitter</string>
|
||||
<string name="vanced" translatable="false">Vanced</string>
|
||||
<string name="microg" translatable="false">MicroG</string>
|
||||
<string name="shortcut_settings" translatable="false">Settings</string>
|
||||
<string name="shortcut_install" translatable="false">Install</string>
|
||||
|
||||
</resources>
|
|
@ -1,24 +1,28 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<resources>
|
||||
|
||||
<!-- Global Strings -->
|
||||
<string name="close">Close</string>
|
||||
<string name="security_context">Please make sure you downloaded app from vanced.app, Vanced Discord server or GitHub</string>
|
||||
<string name="unsupported_version_context">I don\'t know how but you probably installed Vanced Manager on unsupported Android version. The app will now close</string>
|
||||
<string name="welcome">Welcome</string>
|
||||
<string name="whoops">Whoops!</string>
|
||||
|
||||
<!-- Main Activity -->
|
||||
<string name="title_about">About</string>
|
||||
<string name="title_home">Home</string>
|
||||
<string name="title_install">Install</string>
|
||||
<string name="title_settings">Settings</string>
|
||||
|
||||
<!-- Home Page -->
|
||||
<string name="brave_browser">Brave Browser</string>
|
||||
<string name="changelogs">Changelogs</string>
|
||||
<string name="github_bot">Bot</string>
|
||||
<string name="github_manager">Manager</string>
|
||||
<string name="github_projects">GitHub projects</string>
|
||||
<string name="github_website">Website</string>
|
||||
<string name="install">Install</string>
|
||||
<string name="installed">Installed:</string>
|
||||
<string name="latest">Latest:</string>
|
||||
<string name="n_a">N/A</string>
|
||||
<string name="network_error">Network connection unavailable</string>
|
||||
<string name="reddit">Reddit</string>
|
||||
<string name="uninstall">Uninstall</string>
|
||||
<string name="update">Update</string>
|
||||
<string name="useful_links">Useful Links</string>
|
||||
<string name="vanced_medias">Vanced on Social Media</string>
|
||||
|
@ -32,11 +36,10 @@
|
|||
<string name="category_manager">Manager</string>
|
||||
<string name="theme">Theme</string>
|
||||
<string name="theme_summary">Choose your preferred theme</string>
|
||||
<string name="language">Language</string>
|
||||
<string name="language_summary">Choose your preferred language</string>
|
||||
<string name="push_notifications">Push Notifications</string>
|
||||
<string name="push_notifications_summary">Receive push notifications when update is released</string>
|
||||
|
||||
<string name="re_check">Re-check</string>
|
||||
<string name="update_center">Update Center</string>
|
||||
|
||||
<!-- Install Page -->
|
||||
<string name="choose_preferred_language">Choose your preferred language for Vanced</string>
|
||||
|
@ -44,8 +47,15 @@
|
|||
<string name="choose_preferred_theme">Choose your preferred theme for Vanced</string>
|
||||
<string name="choose_preferred_variant">Choose your preferred variant for Vanced</string>
|
||||
<string name="finish">Finish</string>
|
||||
<string name="install_light_black">Light + Black</string>
|
||||
<string name="install_light_dark">Light + Dark</string>
|
||||
<string name="install_nonroot">Non-root</string>
|
||||
<string name="install_root">Root</string>
|
||||
<string name="next">Next</string>
|
||||
<string name="title_install">Install</string>
|
||||
|
||||
<!-- About Page -->
|
||||
<string name="manager_devs">Manager Devs</string>
|
||||
<string name="sources">Sources</string>
|
||||
<string name="vanced_team">Vanced Team</string>
|
||||
|
||||
</resources>
|
|
@ -19,4 +19,19 @@
|
|||
<item name="android:statusBarColor">#000000</item>
|
||||
</style>
|
||||
|
||||
<style name="DialogTheme" parent="@style/Theme.MaterialComponents.Dialog.Alert">
|
||||
<item name="cornerFamily">rounded</item>
|
||||
<item name="cornerSize">8dp</item>
|
||||
<item name="android:textColor">?colorOnSurfaceVariant</item>
|
||||
<item name="android:textColorPrimary">?colorOnSurfaceVariant</item>
|
||||
<item name="colorSurface">?DialogBG</item>
|
||||
<item name="android:buttonBarPositiveButtonStyle">@style/DialogPositiveButton</item>
|
||||
</style>
|
||||
|
||||
<style name="DialogPositiveButton" parent="Widget.MaterialComponents.Button.TextButton">
|
||||
<item name="android:textColor">?colorPrimary</item>
|
||||
<item name="textAllCaps">false</item>
|
||||
<item name="backgroundTint">@android:color/transparent</item>
|
||||
</style>
|
||||
|
||||
</resources>
|
||||
|
|
|
@ -22,6 +22,7 @@
|
|||
<item name="colorDisabledVariant">#000000</item>
|
||||
<item name="iconColor">?colorPrimaryVariant</item>
|
||||
<item name="toolbarIconColor">#111111</item>
|
||||
<item name="DialogBG">#ffffff</item>
|
||||
|
||||
</style>
|
||||
|
||||
|
|
32
app/src/main/res/xml-v25/shortcuts.xml
Normal file
32
app/src/main/res/xml-v25/shortcuts.xml
Normal file
|
@ -0,0 +1,32 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
<shortcut
|
||||
android:enabled="true"
|
||||
android:shortcutId="settings"
|
||||
android:icon="@drawable/ic_shortcut_settings_black_24dp"
|
||||
android:shortcutShortLabel="@string/title_settings">
|
||||
|
||||
<intent
|
||||
android:action="com.vanced.manager.OPEN_SETTINGS"
|
||||
android:targetClass="com.vanced.manager.ui.MainActivity"
|
||||
android:targetPackage="com.vanced.manager"
|
||||
android:data="vncdmngr://open_settings_fragment"/>
|
||||
|
||||
</shortcut>
|
||||
|
||||
<shortcut
|
||||
android:enabled="true"
|
||||
android:shortcutId="install"
|
||||
android:icon="@drawable/shortcut_cloud_download_24"
|
||||
android:shortcutShortLabel="@string/title_install">
|
||||
|
||||
<intent
|
||||
android:action="com.vanced.manager.OPEN_INSTALL"
|
||||
android:targetClass="com.vanced.manager.ui.MainActivity"
|
||||
android:targetPackage="com.vanced.manager"
|
||||
android:data="vncdmngr://open_install_fragment"/>
|
||||
|
||||
</shortcut>
|
||||
|
||||
</shortcuts>
|
|
@ -15,28 +15,12 @@
|
|||
<ListPreference
|
||||
android:icon="@drawable/ic_brush_black_24dp"
|
||||
android:key="theme_mode"
|
||||
android:title="Theme"
|
||||
android:title="@string/theme"
|
||||
android:summary="@string/theme_summary"
|
||||
android:entries="@array/theme_modes"
|
||||
android:entryValues="@array/theme_modes_values"
|
||||
android:defaultValue="LIGHT"/>
|
||||
|
||||
<ListPreference
|
||||
android:icon="@drawable/ic_palette_black_24dp"
|
||||
android:key="accent_color"
|
||||
android:title="Accent Color"
|
||||
app:isPreferenceVisible="false"
|
||||
android:entries="@array/accent_color"
|
||||
android:entryValues="@array/accent_color"/>
|
||||
|
||||
<ListPreference
|
||||
android:key="language"
|
||||
android:icon="@drawable/ic_language_black_24dp"
|
||||
android:title="@string/language"
|
||||
android:summary="@string/language_summary"
|
||||
android:entries="@array/languages"
|
||||
android:entryValues="@array/languages_value"/>
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory
|
||||
|
|
33
app/src/main/res/xml/secret_settings.xml
Normal file
33
app/src/main/res/xml/secret_settings.xml
Normal file
|
@ -0,0 +1,33 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PreferenceScreen
|
||||
xmlns:android="http://schemas.android.com/apk/res/android" >
|
||||
|
||||
<SwitchPreference
|
||||
android:key="ss_switch"
|
||||
android:title="Useless Switch"
|
||||
android:summaryOff="This switch does nothing"
|
||||
android:summaryOn="You're just wasting your time"/>
|
||||
|
||||
<CheckBoxPreference
|
||||
android:key="ss_checkbox"
|
||||
android:title="Useless Checkbox"
|
||||
android:summaryOff="This doesn't do anything either"
|
||||
android:summaryOn="Dude just stop" />
|
||||
|
||||
<DropDownPreference
|
||||
android:key="ss_syke"
|
||||
android:title="Ok this one is quite useful"
|
||||
android:entries="@array/syke"
|
||||
android:entryValues="@array/syke" />
|
||||
|
||||
<SeekBarPreference
|
||||
android:key="ss_speed"
|
||||
android:title="Vanced Manager Speed Controller" />
|
||||
|
||||
<ListPreference
|
||||
android:key="ss_yomama"
|
||||
android:title="This one is cool"
|
||||
android:entries="@array/yomama"
|
||||
android:entryValues="@array/yomama" />
|
||||
|
||||
</PreferenceScreen>
|
|
@ -1,14 +1,14 @@
|
|||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||
|
||||
buildscript {
|
||||
ext.kotlin_version = '1.3.61'
|
||||
ext.kotlin_version = '1.3.72'
|
||||
repositories {
|
||||
google()
|
||||
jcenter()
|
||||
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.6.1'
|
||||
classpath 'com.android.tools.build:gradle:3.6.3'
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
|
|
|
@ -19,3 +19,4 @@ android.useAndroidX=true
|
|||
android.enableJetifier=true
|
||||
# Kotlin code style for this project: "official" or "obsolete":
|
||||
kotlin.code.style=official
|
||||
org.gradle.configureondemand=true
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
## This file must *NOT* be checked into Version Control Systems,
|
||||
# as it contains information specific to your local configuration.
|
||||
#
|
||||
# Location of the SDK. This is only used by Gradle.
|
||||
# For customization when using a Version Control System, please read the
|
||||
# header note.
|
||||
#Wed Mar 18 20:50:18 EET 2020
|
||||
sdk.dir=/home/hope/Android/Sdk
|
Loading…
Reference in a new issue